From f6721d02b3117752b4660acf2da650756a43accf Mon Sep 17 00:00:00 2001 From: The0bserver Date: Tue, 16 Feb 2021 09:53:09 -0500 Subject: [PATCH 01/83] Adds chemicals I missed on the first pass. --- .../reagents/chemistry/reagents/drug_reagents.dm | 7 +++++++ .../reagents/chemistry/reagents/food_reagents.dm | 5 +++++ .../chemistry/reagents/medicine_reagents.dm | 12 ++++++++++++ .../chemistry/reagents/pyrotechnic_reagents.dm | 15 +++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 675502c5fb..51eb0bd622 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -45,6 +45,13 @@ trippy = FALSE pH = 8 +//Nicotine is used as a pesticide IRL. +/datum/reagent/drug/nicotine/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustToxic(round(chems.get_reagent_amount(type))) + mytray.adjustPests(-rand(1,2)) + /datum/reagent/drug/nicotine/on_mob_life(mob/living/carbon/M) if(prob(1)) var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.") diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 1975eede70..303fd981fb 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -49,6 +49,11 @@ var/brute_heal = 1 var/burn_heal = 0 +/datum/reagent/consumable/nutriment/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.adjustHealth(round(chems.get_reagent_amount(type) * 0.2)) + /datum/reagent/consumable/nutriment/on_mob_life(mob/living/carbon/M) if(!HAS_TRAIT(M, TRAIT_NO_PROCESS_FOOD)) if(prob(50)) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index e55286ed3f..806b9c30f0 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -155,6 +155,12 @@ pH = 11 value = REAGENT_VALUE_COMMON +// Healing +/datum/reagent/medicine/cryoxadone/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + mytray.adjustHealth(round(chems.get_reagent_amount(type) * 3)) + mytray.adjustToxic(-round(chems.get_reagent_amount(type) * 3)) + /datum/reagent/medicine/cryoxadone/on_mob_life(mob/living/carbon/M) var/power = -0.00003 * (M.bodytemperature ** 2) + 3 if(M.bodytemperature < T0C) @@ -935,6 +941,12 @@ pH = 0 value = REAGENT_VALUE_RARE +// FEED ME SEYMOUR +/datum/reagent/medicine/strange_reagent/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + mytray.spawnplant() + /datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(M.stat == DEAD) if(M.suiciding || M.hellbound) //they are never coming back diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm index 3f0ebcb3e3..2e05f66cf8 100644 --- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm @@ -32,6 +32,12 @@ value = REAGENT_VALUE_VERY_COMMON taste_description = "metal" +//It has stable IN THE NAME. IT WAS MADE FOR THIS MOMENT. +/datum/reagent/stabilizing_agent/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(myseed && chems.has_reagent(type, 1)) + myseed.adjust_instability(-1) + /datum/reagent/clf3 name = "Chlorine Trifluoride" description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, sometimes through the very floors of the station and exposing it to the vacuum of space." @@ -167,6 +173,15 @@ taste_description = "burning" value = REAGENT_VALUE_COMMON +// Smells like victory... +/datum/reagent/napalm/on_hydroponics_apply(obj/item/seeds/myseed, datum/reagents/chems, obj/machinery/hydroponics/mytray, mob/user) + . = ..() + if(chems.has_reagent(type, 1)) + if(!(myseed.resistance_flags & FIRE_PROOF)) + mytray.adjustHealth(-round(chems.get_reagent_amount(type) * 6)) + mytray.adjustToxic(round(chems.get_reagent_amount(type) * 7)) + mytray.adjustWeeds(-rand(5,9)) //At least give them a small reward if they bother. + /datum/reagent/napalm/on_mob_life(mob/living/carbon/M) M.adjust_fire_stacks(1) ..() From 15a8d1d5e07c987f761567f9847f212bb72014f3 Mon Sep 17 00:00:00 2001 From: kiwedespars <47008095+kiwedespars@users.noreply.github.com> Date: Sat, 20 Feb 2021 17:24:30 -0800 Subject: [PATCH 02/83] i did a thing - reverted salt nerf - made it so you can't parry while resting --- code/modules/clothing/gloves/miscellaneous.dm | 4 ++-- code/modules/mob/living/carbon/human/human_defines.dm | 8 ++++---- code/modules/mob/living/living_active_parry.dm | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 4728001699..a558abbfe8 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -220,8 +220,8 @@ parry_max_attacks = INFINITY parry_failed_cooldown_duration = 2.25 SECONDS parry_failed_stagger_duration = 2.25 SECONDS - parry_cooldown = 3 SECONDS - parry_failed_clickcd_duration = 0.5 SECONDS + parry_cooldown = 0 + parry_failed_clickcd_duration = 0 /obj/item/clothing/gloves/botanic_leather name = "botanist's leather gloves" diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 772022a987..ca1a26fa07 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -142,10 +142,10 @@ parry_efficiency_considered_successful = 0.01 parry_efficiency_to_counterattack = 0.01 parry_max_attacks = INFINITY - parry_failed_cooldown_duration = 3 SECONDS - parry_failed_stagger_duration = 2 SECONDS - parry_cooldown = 3 SECONDS - parry_failed_clickcd_duration = 0.8 SECONDS + parry_failed_cooldown_duration = 1.5 SECONDS + parry_failed_stagger_duration = 2 + parry_cooldown = 0 + parry_failed_clickcd_duration = 0.8 parry_data = list( // yeah it's snowflake "UNARMED_PARRY_STAGGER" = 3 SECONDS, diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm index c0423286c1..10f8aaf2f4 100644 --- a/code/modules/mob/living/living_active_parry.dm +++ b/code/modules/mob/living/living_active_parry.dm @@ -23,6 +23,9 @@ if(!(combat_flags & COMBAT_FLAG_PARRY_CAPABLE)) to_chat(src, "You are not something that can parry attacks.") return + if(!(mobility_flags & MOBILITY_STAND)) + to_chat(src, "You aren't able to parry without solid footing!") + return // Prioritize item, then martial art, then unarmed. // yanderedev else if time var/obj/item/using_item = get_active_held_item() From 6a694841aaaa519121c6d2ef30813f6d5672900f Mon Sep 17 00:00:00 2001 From: kiwedespars <47008095+kiwedespars@users.noreply.github.com> Date: Sat, 20 Feb 2021 17:46:06 -0800 Subject: [PATCH 03/83] i forgot this thing microstagger is now a stagger --- code/modules/mob/living/carbon/human/human_defines.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index ca1a26fa07..66d3154ee3 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -143,7 +143,7 @@ parry_efficiency_to_counterattack = 0.01 parry_max_attacks = INFINITY parry_failed_cooldown_duration = 1.5 SECONDS - parry_failed_stagger_duration = 2 + parry_failed_stagger_duration = 1 SECONDS parry_cooldown = 0 parry_failed_clickcd_duration = 0.8 From 1eb2d3dd93b4279d0b8e42cb969ebb1593703b9a Mon Sep 17 00:00:00 2001 From: Hatterhat <31829017+Hatterhat@users.noreply.github.com> Date: Sun, 21 Feb 2021 02:58:19 -0600 Subject: [PATCH 04/83] buhhh lingfist nerf --- code/modules/mob/living/carbon/human/species.dm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index c3cdb3354f..c17f3b58c5 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1454,9 +1454,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/armor_block = target.run_armor_check(affecting, "melee") - if(HAS_TRAIT(user, TRAIT_MAULER)) // maulers get 15 armorpierce because if you're going to punch someone you might as well do a good job of it - armor_block = target.run_armor_check(affecting, "melee", armour_penetration = 15) // lot of good that sec jumpsuit did you - playsound(target.loc, user.dna.species.attack_sound, 25, 1, -1) target.visible_message("[user] [atk_verb]ed [target]!", \ "[user] [atk_verb]ed you!", null, COMBAT_MESSAGE_RANGE, null, \ @@ -1473,9 +1470,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) target.apply_damage(damage*1.5, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) target.apply_damage(damage*0.5, STAMINA, affecting, armor_block) log_combat(user, target, "kicked") - else if(HAS_TRAIT(user, TRAIT_MAULER)) // mauler punches deal 1.1x raw damage + 1.3x stam damage, and have some armor pierce - target.apply_damage(damage*1.1, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) - target.apply_damage(damage*1.3, STAMINA, affecting, armor_block) + else if(HAS_TRAIT(user, TRAIT_MAULER)) // mauler punches deal 1.2x raw damage but nstam + target.apply_damage(damage*1.2, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) log_combat(user, target, "punched (mauler)") else //other attacks deal full raw damage + 2x in stamina damage target.apply_damage(damage, attack_type, affecting, armor_block, wound_bonus = punchwoundbonus) From 81fdb96968a30e19a9f1b150ac22bdf6f04415cb Mon Sep 17 00:00:00 2001 From: kappa-sama <44128284+kappa-sama@users.noreply.github.com> Date: Sun, 21 Feb 2021 17:50:23 -0500 Subject: [PATCH 05/83] small moment --- code/modules/tcg/cards.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm index ff7d2fee2a..258e7a4c23 100644 --- a/code/modules/tcg/cards.dm +++ b/code/modules/tcg/cards.dm @@ -66,6 +66,7 @@ desc = "A flipped TCG-branded card." icon_state = "cardback" icon = 'icons/obj/tcg/pack_1.dmi' + w_class = WEIGHT_CLASS_SMALL var/datum_type = /datum/tcg_card var/datum/tcg_card/card_datum @@ -548,6 +549,7 @@ desc = "A TCG-branded card binder, specifically for your infinite collection of TCG cards!" icon = 'icons/obj/tcg/misc.dmi' icon_state = "binder" + w_class = WEIGHT_CLASS_SMALL var/list/cards = list() var/list/decks = list() From d9e966234aff08f96bf50b632bc3539a8139a62b Mon Sep 17 00:00:00 2001 From: SandPoot Date: Mon, 22 Feb 2021 13:36:06 -0300 Subject: [PATCH 06/83] upload hivelord.dm --- .../hostile/mining_mobs/hivelord.dm | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index ae0f5ea3ca..f742bfb8d1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -42,6 +42,8 @@ A.GiveTarget(target) A.friends = friends A.faction = faction.Copy() + if(!A.istype(/mob/living/simple_animal/hostile/poison/bees/toxin)) + A.my_creator = type ranged_cooldown = world.time + ranged_cooldown_time /mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget() @@ -88,6 +90,7 @@ density = FALSE del_on_death = 1 var/swarming = FALSE + var/my_creator = null /mob/living/simple_animal/hostile/asteroid/hivelordbrood/Initialize() . = ..() @@ -205,11 +208,7 @@ /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/infest(mob/living/carbon/human/H) visible_message("[name] burrows into the flesh of [H]!") - var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L - if(HAS_TRAIT(H, TRAIT_DWARF)) //dwarf legions aren't just fluff! - L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(H.loc) - else - L = new(H.loc) + var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L = check_infest_type(H) visible_message("[L] staggers to [L.p_their()] feet!") H.death() H.adjustBruteLoss(1000) @@ -217,6 +216,20 @@ H.forceMove(L) qdel(src) +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/check_infest_type(mob/living/carbon/human) + var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L + var/list/blacklisted_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf) + if(HAS_TRAIT(human, TRAIT_DWARF)) //dwarf legions aren't just fluff! + L = new /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf(human.loc) + else if(my_creator) + if(my_creator in blacklisted_types) + L = new(human.loc) + else + L = new my_creator(human.loc) + else + L = new(human.loc) + return L + //Advanced Legion is slightly tougher to kill and can raise corpses (revive other legions) /mob/living/simple_animal/hostile/asteroid/hivelord/legion/advanced stat_attack = DEAD From 19efaba061e9924ef90b851f8ca10bece1f5f066 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Mon, 22 Feb 2021 13:37:49 -0300 Subject: [PATCH 07/83] upload hivelord.dm --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index f742bfb8d1..340458c132 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -216,7 +216,7 @@ H.forceMove(L) qdel(src) -/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/check_infest_type(mob/living/carbon/human) +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/proc/check_infest_type(mob/living/carbon/human/human) var/mob/living/simple_animal/hostile/asteroid/hivelord/legion/L var/list/blacklisted_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf) if(HAS_TRAIT(human, TRAIT_DWARF)) //dwarf legions aren't just fluff! From eb4fcd8a005abaad1fcbdd1205879b8e979e55d7 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Mon, 22 Feb 2021 13:51:49 -0300 Subject: [PATCH 08/83] for some reason A doesn't have istype? what. --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index 340458c132..446fe80c7d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -42,7 +42,7 @@ A.GiveTarget(target) A.friends = friends A.faction = faction.Copy() - if(!A.istype(/mob/living/simple_animal/hostile/poison/bees/toxin)) + if(!A == /mob/living/simple_animal/hostile/poison/bees/toxin) A.my_creator = type ranged_cooldown = world.time + ranged_cooldown_time From e925aea45471c1e61e53ce6f2c8e357f9b214dbe Mon Sep 17 00:00:00 2001 From: SmArtKar <44720187+SmArtKar@users.noreply.github.com> Date: Tue, 23 Feb 2021 12:44:11 +0300 Subject: [PATCH 09/83] Fixes --- code/__HELPERS/roundend.dm | 2 ++ code/controllers/subsystem/job.dm | 24 ++++++++++++++----- .../subsystem/persistence/_persistence.dm | 1 - code/modules/tcg/cards.dm | 16 ++++++++++++- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index a860a8cd3f..6f7eeb95c3 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -242,6 +242,8 @@ SSpersistence.station_was_destroyed = TRUE if(!mode.allow_persistence_save) SSpersistence.station_persistence_save_disabled = TRUE + else + SSpersistence.SaveTCGCards() SSpersistence.CollectData() //stop collecting feedback during grifftime diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 0ba6076be2..c090d7367c 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -496,9 +496,15 @@ SUBSYSTEM_DEF(job) H.equip_to_slot_if_possible(binder, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE) for(var/card_type in H.client.prefs.tcg_cards) if(card_type) - var/obj/item/tcg_card/card = new(get_turf(H), card_type, H.client.prefs.tcg_cards[card_type]) - card.forceMove(binder) - binder.cards.Add(card) + if(islist(H.client.prefs.tcg_cards[card_type])) + for(var/duplicate in H.client.prefs.tcg_cards[card_type]) + var/obj/item/tcg_card/card = new(get_turf(H), card_type, duplicate) + card.forceMove(binder) + binder.cards.Add(card) + else + var/obj/item/tcg_card/card = new(get_turf(H), card_type, H.client.prefs.tcg_cards[card_type]) + card.forceMove(binder) + binder.cards.Add(card) binder.check_for_exodia() if(length(H.client.prefs.tcg_decks)) binder.decks = H.client.prefs.tcg_decks @@ -508,9 +514,15 @@ SUBSYSTEM_DEF(job) H.equip_to_slot_if_possible(binder, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE) for(var/card_type in N.client.prefs.tcg_cards) if(card_type) - var/obj/item/tcg_card/card = new(get_turf(H), card_type, N.client.prefs.tcg_cards[card_type]) - card.forceMove(binder) - binder.cards.Add(card) + if(islist(H.client.prefs.tcg_cards[card_type])) + for(var/duplicate in N.client.prefs.tcg_cards[card_type]) + var/obj/item/tcg_card/card = new(get_turf(H), card_type, duplicate) + card.forceMove(binder) + binder.cards.Add(card) + else + var/obj/item/tcg_card/card = new(get_turf(H), card_type, N.client.prefs.tcg_cards[card_type]) + card.forceMove(binder) + binder.cards.Add(card) binder.check_for_exodia() if(length(N.client.prefs.tcg_decks)) binder.decks = N.client.prefs.tcg_decks diff --git a/code/controllers/subsystem/persistence/_persistence.dm b/code/controllers/subsystem/persistence/_persistence.dm index 9b2c019db4..d494561d0f 100644 --- a/code/controllers/subsystem/persistence/_persistence.dm +++ b/code/controllers/subsystem/persistence/_persistence.dm @@ -88,7 +88,6 @@ SUBSYSTEM_DEF(persistence) SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION. SavePaintings() SaveScars() - SaveTCGCards() /** * Loads persistent data relevant to the current map: Objects, etc. diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm index ff7d2fee2a..b581e1d5b4 100644 --- a/code/modules/tcg/cards.dm +++ b/code/modules/tcg/cards.dm @@ -381,6 +381,14 @@ . = ..() LoadComponent(/datum/component/storage/concrete/tcg) +/obj/item/tcgcard_deck/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage/concrete/tcg) + STR.storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT + STR.max_volume = DEFAULT_VOLUME_TINY * 30 + STR.max_w_class = DEFAULT_VOLUME_TINY + STR.max_items = 30 + /obj/item/tcgcard_deck/update_icon_state() . = ..() if(flipped) @@ -796,7 +804,13 @@ var/list/card_types = list() for(var/obj/item/tcg_card/card in binder.cards) //if(!card.illegal) //Uncomment if you want to block syndie cards from saving - card_types[card.datum_type] = card.illegal + if(!(card.datum_type in card_types)) + card_types[card.datum_type] = card.illegal + else + if(islist(card_types[card.datum_type])) + card_types[card.datum_type] += card.illegal + else + card_types[card.datum_type] = list(card_types[card.datum_type], card.illegal) client.prefs.tcg_decks = binder.decks client.prefs.tcg_cards = card_types From cc8c75539ea29411e030e30522ef5cd6e7acc0f0 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Tue, 23 Feb 2021 12:50:33 +0100 Subject: [PATCH 10/83] sigh --- .../antagonists/changeling/changeling.dm | 38 +++++++------------ .../antagonists/traitor/classes/subterfuge.dm | 9 ++--- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index ba4578add9..9c0b19cd83 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -433,31 +433,21 @@ destroy_objective.find_target() objectives += destroy_objective else - if(prob(70)) - var/datum/objective/assassinate/once/kill_objective = new - kill_objective.owner = owner - if(team_mode) //No backstabbing while in a team - kill_objective.find_target_by_role(role = ROLE_CHANGELING, role_type = 1, invert = 1) - else - kill_objective.find_target() - objectives += kill_objective - - /*else - var/datum/objective/maroon/maroon_objective = new - maroon_objective.owner = owner - if(team_mode) - maroon_objective.find_target_by_role(role = ROLE_CHANGELING, role_type = 1, invert = 1) - else - maroon_objective.find_target() - objectives += maroon_objective*/ + var/datum/objective/assassinate/once/kill_objective = new + kill_objective.owner = owner + if(team_mode) //No backstabbing while in a team + kill_objective.find_target_by_role(role = ROLE_CHANGELING, role_type = 1, invert = 1) + else + kill_objective.find_target() + objectives += kill_objective - if (!(locate(/datum/objective/escape) in objectives) && escape_objective_possible) - var/datum/objective/escape/escape_with_identity/identity_theft = new - identity_theft.owner = owner - identity_theft.target = kill_objective.target - identity_theft.update_explanation_text() - objectives += identity_theft - escape_objective_possible = FALSE + if(!(locate(/datum/objective/escape) in objectives) && escape_objective_possible && prob(50)) + var/datum/objective/escape/escape_with_identity/identity_theft = new + identity_theft.owner = owner + identity_theft.target = kill_objective.target + identity_theft.update_explanation_text() + objectives += identity_theft + escape_objective_possible = FALSE if (!(locate(/datum/objective/escape) in objectives) && escape_objective_possible) if(prob(50)) diff --git a/code/modules/antagonists/traitor/classes/subterfuge.dm b/code/modules/antagonists/traitor/classes/subterfuge.dm index ea073f38c1..73dc455a45 100644 --- a/code/modules/antagonists/traitor/classes/subterfuge.dm +++ b/code/modules/antagonists/traitor/classes/subterfuge.dm @@ -12,11 +12,10 @@ mode = SSticker.mode assassin_prob = max(0,mode.threat_level-40) if(prob(assassin_prob)) - if(prob(assassin_prob)) - var/datum/objective/assassinate/once/kill_objective = new - kill_objective.owner = T.owner - kill_objective.find_target() - T.add_objective(kill_objective) + var/datum/objective/assassinate/once/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) else var/list/weights = list() weights["sabo"] = length(subtypesof(/datum/sabotage_objective)) From 5d17b9bfeaa4cd258eb6cbb948740863b8014def Mon Sep 17 00:00:00 2001 From: Putnam Date: Tue, 23 Feb 2021 04:36:59 -0800 Subject: [PATCH 11/83] Removes open-air fusion completely. --- code/modules/atmospherics/gasmixtures/reactions.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 7f073567c5..743931fbdd 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -256,6 +256,8 @@ /datum/gas_reaction/fusion/react(datum/gas_mixture/air, datum/holder) var/turf/open/location + if (isopenturf(holder)) + return if (istype(holder,/datum/pipeline)) //Find the tile the reaction is occuring on, or a random part of the network if it's a pipenet. var/datum/pipeline/fusion_pipenet = holder location = get_turf(pick(fusion_pipenet.members)) From 04764600bb5b7201c4d96976093b1bf125d99701 Mon Sep 17 00:00:00 2001 From: keronshb Date: Tue, 23 Feb 2021 16:25:18 -0500 Subject: [PATCH 12/83] Unlocks Sentient disease abilities Let's the Sentient Disease start with stuff to unlock. --- code/modules/antagonists/disease/disease_abilities.dm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/code/modules/antagonists/disease/disease_abilities.dm b/code/modules/antagonists/disease/disease_abilities.dm index 496d11bcbc..fc53575bd8 100644 --- a/code/modules/antagonists/disease/disease_abilities.dm +++ b/code/modules/antagonists/disease/disease_abilities.dm @@ -191,8 +191,6 @@ new /datum/disease_ability/symptom/powerful/youth /datum/disease_ability/action/sneeze name = "Voluntary Sneezing" actions = list(/datum/action/cooldown/disease_sneeze) - cost = 2 - required_total_points = 3 short_desc = "Force the host you are following to sneeze, spreading your infection to those in front of them." long_desc = "Force the host you are following to sneeze with extra force, spreading your infection to any victims in a 4 meter cone in front of your host.
Cooldown: 20 seconds" @@ -229,8 +227,6 @@ new /datum/disease_ability/symptom/powerful/youth /datum/disease_ability/action/infect name = "Secrete Infection" actions = list(/datum/action/cooldown/disease_infect) - cost = 2 - required_total_points = 3 short_desc = "Cause all objects your host is touching to become infectious for a limited time, spreading your infection to anyone who touches them." long_desc = "Cause the host you are following to excrete an infective substance from their pores, causing all objects touching their skin to transmit your infection to anyone who touches them for the next 30 seconds. This includes the floor, if they are not wearing shoes, and any items they are holding, if they are not wearing gloves.
Cooldown: 40 seconds" @@ -271,23 +267,20 @@ new /datum/disease_ability/symptom/powerful/youth //healing costs more so you have to techswitch from naughty disease otherwise we'd have friendly disease for easy greentext (no fun!) /datum/disease_ability/symptom/mild - cost = 2 - required_total_points = 4 category = "Symptom (Weak)" /datum/disease_ability/symptom/medium - cost = 4 - required_total_points = 8 category = "Symptom" /datum/disease_ability/symptom/medium/heal cost = 5 + required_total_points = 5 malefit = -1 category = "Symptom (+)" /datum/disease_ability/symptom/powerful cost = 4 - required_total_points = 16 + required_total_points = 10 category = "Symptom (Strong)" /datum/disease_ability/symptom/powerful/heal From a55d492d9d9eeda1bd5549dee39e23bd5cfd67a9 Mon Sep 17 00:00:00 2001 From: kappa-sama <44128284+kappa-sama@users.noreply.github.com> Date: Tue, 23 Feb 2021 18:58:18 -0500 Subject: [PATCH 13/83] reading moment --- code/modules/tcg/cards.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/tcg/cards.dm b/code/modules/tcg/cards.dm index 258e7a4c23..54d6d5abd9 100644 --- a/code/modules/tcg/cards.dm +++ b/code/modules/tcg/cards.dm @@ -66,7 +66,6 @@ desc = "A flipped TCG-branded card." icon_state = "cardback" icon = 'icons/obj/tcg/pack_1.dmi' - w_class = WEIGHT_CLASS_SMALL var/datum_type = /datum/tcg_card var/datum/tcg_card/card_datum From 8400a664e85dad614823c8fa33ae9689b9bd1e4e Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Tue, 23 Feb 2021 22:00:49 -0600 Subject: [PATCH 14/83] Enables Novel Posting --- code/__DEFINES/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 57484ae85b..791e6554ab 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -86,7 +86,7 @@ #define EMOTE_OMNI 4 //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam -#define MAX_MESSAGE_LEN 2048 //Citadel edit: What's the WORST that could happen? +#define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen? #define MAX_FLAVOR_LEN 4096 //double the maximum message length. #define MAX_TASTE_LEN 40 //lick... vore... ew... #define MAX_NAME_LEN 42 From 60708b03dfeb328ea936fa4270807087693d2051 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Wed, 24 Feb 2021 05:16:15 +0100 Subject: [PATCH 15/83] check --- .../game/machinery/computer/buildandrepair.dm | 6 ---- code/game/machinery/constructable_frame.dm | 29 ++++++++++--------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 280348368d..00ba621550 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -117,12 +117,6 @@ if(user.a_intent == INTENT_HARM) return ..() -//callback proc used on stacks use_tool to stop unnecessary amounts being wasted from spam clicking. -/obj/structure/frame/computer/proc/check_state(target_state) - if(state == target_state) - return TRUE - return FALSE - /obj/structure/frame/computer/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(state == 4) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index b00edfd82c..d5bbcb0adc 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -21,6 +21,11 @@ circuit = null qdel(src) +//callback proc used on stacks use_tool to stop unnecessary amounts being wasted from spam clicking. +/obj/structure/frame/proc/check_state(target_state) + if(state == target_state) + return TRUE + return FALSE /obj/structure/frame/machine name = "machine frame" @@ -84,7 +89,7 @@ if(!P.tool_start_check(user, amount=5)) return to_chat(user, "You start to add cables to the frame...") - if(P.use_tool(src, user, 20, volume=50, amount=5)) + if(P.use_tool(src, user, 20, volume=50, amount=5, extra_checks = CALLBACK(src, .proc/check_state, 1))) to_chat(user, "You add cables to the frame.") state = 2 icon_state = "box_1" @@ -93,25 +98,23 @@ if(P.tool_behaviour == TOOL_SCREWDRIVER && !anchored) user.visible_message("[user] disassembles the frame.", \ "You start to disassemble the frame...", "You hear banging and clanking.") - if(P.use_tool(src, user, 40, volume=50)) - if(state == 1) - to_chat(user, "You disassemble the frame.") - var/obj/item/stack/sheet/metal/M = new (loc, 5) - M.add_fingerprint(user) - qdel(src) + if(P.use_tool(src, user, 40, volume=50, extra_checks = CALLBACK(src, .proc/check_state, 1))) + to_chat(user, "You disassemble the frame.") + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) + qdel(src) return if(P.tool_behaviour == TOOL_WRENCH) to_chat(user, "You start [anchored ? "un" : ""]securing [name]...") - if(P.use_tool(src, user, 40, volume=75)) - if(state == 1) - to_chat(user, "You [anchored ? "un" : ""]secure [name].") - setAnchored(!anchored) + if(P.use_tool(src, user, 40, volume=75, extra_checks = CALLBACK(src, .proc/check_state, 1))) + to_chat(user, "You [anchored ? "un" : ""]secure [name].") + setAnchored(!anchored) return if(2) if(P.tool_behaviour == TOOL_WRENCH) to_chat(user, "You start [anchored ? "un" : ""]securing [name]...") - if(P.use_tool(src, user, 40, volume=75)) + if(P.use_tool(src, user, 40, volume=75, extra_checks = CALLBACK(src, .proc/check_state, 2))) to_chat(user, "You [anchored ? "un" : ""]secure [name].") setAnchored(!anchored) return @@ -169,7 +172,7 @@ if(P.tool_behaviour == TOOL_WRENCH && !circuit.needs_anchored) to_chat(user, "You start [anchored ? "un" : ""]securing [name]...") - if(P.use_tool(src, user, 40, volume=75)) + if(P.use_tool(src, user, 40, volume=75, extra_checks = CALLBACK(src, .proc/check_state, 3))) to_chat(user, "You [anchored ? "un" : ""]secure [name].") setAnchored(!anchored) return From 94cc70f7b9139bbd3ad3fb8891e4d205e69e815c Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 24 Feb 2021 01:21:00 -0700 Subject: [PATCH 16/83] Update traits.dm --- code/_globalvars/traits.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index f376ba50d7..965513d98c 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -15,6 +15,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_HUSK" = TRAIT_HUSK, "TRAIT_SACRIFICED" = TRAIT_SACRIFICED, "TRAIT_NOCLONE" = TRAIT_NOCLONE, + "TRAIT_CLOWN_MENTALITY" = TRAIT_CLOWN_MENTALITY, "TRAIT_CLUMSY" = TRAIT_CLUMSY, "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS, "TRAIT_DUMB" = TRAIT_DUMB, From fd497b3297700a5d7dc230b4b046ebefb9f396b8 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 24 Feb 2021 01:23:06 -0700 Subject: [PATCH 17/83] Update traits.dm --- code/_globalvars/traits.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 965513d98c..ac6ea4e25c 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -15,7 +15,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_HUSK" = TRAIT_HUSK, "TRAIT_SACRIFICED" = TRAIT_SACRIFICED, "TRAIT_NOCLONE" = TRAIT_NOCLONE, - "TRAIT_CLOWN_MENTALITY" = TRAIT_CLOWN_MENTALITY, "TRAIT_CLUMSY" = TRAIT_CLUMSY, "TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS, "TRAIT_DUMB" = TRAIT_DUMB, @@ -133,6 +132,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NODROP" = TRAIT_NODROP, "TRAIT_NO_TELEPORT" = TRAIT_NO_TELEPORT, "TRAIT_SPOOKY_THROW" = TRAIT_SPOOKY_THROW + ), + /datum/mind = list( + "TRAIT_CLOWN_MENTALITY" = TRAIT_CLOWN_MENTALITY ) )) From 504a36f50dc854dee6b479d1601eae61f0399f62 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Wed, 24 Feb 2021 01:36:03 -0700 Subject: [PATCH 18/83] Update holy_weapons.dm --- code/game/objects/items/holy_weapons.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index a541fb8fe3..44121d64d1 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -771,7 +771,10 @@ /obj/item/nullrod/tribal_knife/process() slowdown = rand(-2, 2) - + if(iscarbon(loc)) + var/mob/living/carbon/wielder = loc + if(wielder.is_holding(src)) + wielder.update_equipment_speed_mods() /obj/item/nullrod/pitchfork icon_state = "pitchfork0" From 04b5ee0b16a730ac7e5d2ff8ecac7e3e20d1e1ea Mon Sep 17 00:00:00 2001 From: Putnam Date: Wed, 24 Feb 2021 03:29:19 -0800 Subject: [PATCH 19/83] Adds a new event: "supermatter surge" --- code/modules/events/supermatter_surge.dm | 22 ++++++++++++++++++++++ tgstation.dme | 1 + 2 files changed, 23 insertions(+) create mode 100644 code/modules/events/supermatter_surge.dm diff --git a/code/modules/events/supermatter_surge.dm b/code/modules/events/supermatter_surge.dm new file mode 100644 index 0000000000..8ef95ea22e --- /dev/null +++ b/code/modules/events/supermatter_surge.dm @@ -0,0 +1,22 @@ +/datum/round_event_control/supermatter_surge + name = "Supermatter Surge" + typepath = /datum/round_event/supermatter_surge + weight = 20 + max_occurrences = 4 + earliest_start = 10 MINUTES + +/datum/round_event_control/supermatter_surge/canSpawnEvent() + if(GLOB.main_supermatter_engine?.has_been_powered) + return ..() + +/datum/round_event/supermatter_surge + var/power = 2000 + +/datum/round_event/supermatter_surge/setup() + power = rand(200,4000) + +/datum/round_event/supermatter_surge/announce() + priority_announce("Class [round(power/500) + 1] supermatter surge detected. Intervention may be required.", "Anomaly Alert") + +/datum/round_event/supermatter_surge/start() + GLOB.main_supermatter_engine.matter_power += power diff --git a/tgstation.dme b/tgstation.dme index 40666bc7ac..62fb451513 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2060,6 +2060,7 @@ #include "code\modules\events\spider_infestation.dm" #include "code\modules\events\spontaneous_appendicitis.dm" #include "code\modules\events\stray_cargo.dm" +#include "code\modules\events\supermatter_surge.dm" #include "code\modules\events\travelling_trader.dm" #include "code\modules\events\vent_clog.dm" #include "code\modules\events\wisdomcow.dm" From 526105ffd6a5666fce67d941f8e4fe917c0d1f92 Mon Sep 17 00:00:00 2001 From: Putnam Date: Wed, 24 Feb 2021 03:35:30 -0800 Subject: [PATCH 20/83] Made it not announce 100% of the time --- code/modules/events/supermatter_surge.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/events/supermatter_surge.dm b/code/modules/events/supermatter_surge.dm index 8ef95ea22e..d54fc4dcd2 100644 --- a/code/modules/events/supermatter_surge.dm +++ b/code/modules/events/supermatter_surge.dm @@ -16,7 +16,8 @@ power = rand(200,4000) /datum/round_event/supermatter_surge/announce() - priority_announce("Class [round(power/500) + 1] supermatter surge detected. Intervention may be required.", "Anomaly Alert") + if(power > 800 || prob(round(power/8))) + priority_announce("Class [round(power/500) + 1] supermatter surge detected. Intervention may be required.", "Anomaly Alert") /datum/round_event/supermatter_surge/start() GLOB.main_supermatter_engine.matter_power += power From 2c8880c087198242b8ac7c4f5fe41d2568b4c6f9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 24 Feb 2021 05:37:26 -0600 Subject: [PATCH 21/83] Automatic changelog generation for PR #14294 [ci skip] --- html/changelogs/AutoChangeLog-pr-14294.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14294.yml diff --git a/html/changelogs/AutoChangeLog-pr-14294.yml b/html/changelogs/AutoChangeLog-pr-14294.yml new file mode 100644 index 0000000000..f724b96568 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14294.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - bugfix: "Traitor / Ling objective amount should now be correct again." From b2b8534edc9afbeb4b54d33971d62365243e3301 Mon Sep 17 00:00:00 2001 From: dzahlus Date: Wed, 24 Feb 2021 18:50:12 +0100 Subject: [PATCH 22/83] im fucking retarded thinking that was balanced --- .../code/modules/projectiles/guns/ballistic/rifles.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm index 5a3f149dbb..e89bb92b33 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm @@ -168,8 +168,8 @@ /obj/item/projectile/bullet/cflechetteshredder //you only get this with a 30TC bundle,5 magazines, as such this should be the superior ammotype name = "flechette (shredder)" damage = 10 - dismemberment = 50 - wound_bonus = 50 + dismemberment = 15 + wound_bonus = 20 armour_penetration = 100 sharpness = SHARP_EDGED wound_falloff_tile = 0 From aca2f896870a5442e325f36e02e48d24bc14f257 Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Wed, 24 Feb 2021 17:20:21 -0600 Subject: [PATCH 23/83] Update say.dm Deleted the comment on line 90 since max_message_len and max_flavor_len are now equal as it was a requested change --- code/__DEFINES/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 791e6554ab..9403eca2da 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -87,7 +87,7 @@ //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam #define MAX_MESSAGE_LEN 4096 //Citadel edit: What's the WORST that could happen? -#define MAX_FLAVOR_LEN 4096 //double the maximum message length. +#define MAX_FLAVOR_LEN 4096 #define MAX_TASTE_LEN 40 //lick... vore... ew... #define MAX_NAME_LEN 42 #define MAX_BROADCAST_LEN 512 From ccc50ff9ceb78da9e3c58a142dbdcdb22a3697b8 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Wed, 24 Feb 2021 20:47:46 -0300 Subject: [PATCH 24/83] upload toxichealing.dm --- code/modules/surgery/advanced/toxichealing.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/surgery/advanced/toxichealing.dm b/code/modules/surgery/advanced/toxichealing.dm index 0e0fd10c1c..adec2857fc 100644 --- a/code/modules/surgery/advanced/toxichealing.dm +++ b/code/modules/surgery/advanced/toxichealing.dm @@ -24,6 +24,12 @@ /datum/surgery_step/toxichealing/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) user.visible_message("[user] starts rejuvenating some of [target]'s flesh back to life.", "You start knitting some of [target]'s flesh back to life.") +/datum/surgery_step/toxichealing/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE) + if(..()) + while((target.getToxLoss() >= 1) || (target.getOxyLoss() >= 1)) + if(!..()) + break + /datum/surgery_step/toxichealing/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) user.visible_message("[user] fixes some of [target]'s wounds.", "You succeed in fixing some of [target]'s wounds.") target.heal_bodypart_damage(0,0,30) //Heals stam From f79ed26258e3ab66b547fa793907263b49259a6f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 25 Feb 2021 00:13:41 +0000 Subject: [PATCH 25/83] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14294.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14294.yml diff --git a/html/changelog.html b/html/changelog.html index 1a9457b200..ef4f86f424 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

25 February 2021

+

DeltaFire15 updated:

+
    +
  • Traitor / Ling objective amount should now be correct again.
  • +
+

24 February 2021

SandPoot updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 5ce1e25a37..3898798d10 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -28591,3 +28591,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. silicons: - balance: xeno cube makes hostile xenos now, and drops a sentinel instead of a drone. +2021-02-25: + DeltaFire15: + - bugfix: Traitor / Ling objective amount should now be correct again. diff --git a/html/changelogs/AutoChangeLog-pr-14294.yml b/html/changelogs/AutoChangeLog-pr-14294.yml deleted file mode 100644 index f724b96568..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14294.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Traitor / Ling objective amount should now be correct again." From 2819d028f0166fc866721b87335dda129fdf8d92 Mon Sep 17 00:00:00 2001 From: Jay Date: Wed, 24 Feb 2021 22:52:05 -0600 Subject: [PATCH 26/83] Fixes misaligned sprite for the strange metal mask donator item --- icons/mob/clothing/custom_w.dmi | Bin 48424 -> 48375 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/custom_w.dmi b/icons/mob/clothing/custom_w.dmi index 5116be4d52979a31b84a49cf1ae5ae2fd08950ed..3d3e0d24aae5fcc89435b08da44cb6b5ebd52783 100644 GIT binary patch delta 8916 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 F{{Zx1XNCX( delta 8924 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 LPgKg4t%Cj!I38=R From c816fcb672542a9bb7d94e99046952c8d98fb704 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 25 Feb 2021 05:11:47 -0700 Subject: [PATCH 27/83] Update instruments.dm --- code/__DEFINES/instruments.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/instruments.dm b/code/__DEFINES/instruments.dm index 3c414f87f4..69d2a60e51 100644 --- a/code/__DEFINES/instruments.dm +++ b/code/__DEFINES/instruments.dm @@ -19,7 +19,7 @@ #define INSTRUMENT_EXP_FALLOFF_MAX 10 /// Minimum volume for when the sound is considered dead. -#define INSTRUMENT_MIN_SUSTAIN_DROPOFF 0 +#define INSTRUMENT_MIN_SUSTAIN_DROPOFF 1 #define SUSTAIN_LINEAR 1 #define SUSTAIN_EXPONENTIAL 2 From bf6c574ea41e83748d3276d6cd4d6cdaca5907bd Mon Sep 17 00:00:00 2001 From: Putnam Date: Thu, 25 Feb 2021 05:55:44 -0800 Subject: [PATCH 28/83] Makes tablets not permacontam. --- code/modules/modular_computers/computers/item/computer.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index 63cb1cc5fa..e53f4087ab 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -9,6 +9,7 @@ var/light_on = FALSE integrity_failure = 0.5 max_integrity = 100 + rad_flags = RAD_PROTECT_CONTENTS armor = list("melee" = 0, "bullet" = 20, "laser" = 20, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) var/enabled = 0 // Whether the computer is turned on. From 9b6c23fa9c7612929a5c9e50aa05c5463bddd67d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 25 Feb 2021 18:03:03 -0600 Subject: [PATCH 29/83] Automatic changelog generation for PR #14303 [ci skip] --- html/changelogs/AutoChangeLog-pr-14303.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14303.yml diff --git a/html/changelogs/AutoChangeLog-pr-14303.yml b/html/changelogs/AutoChangeLog-pr-14303.yml new file mode 100644 index 0000000000..eddaf71cd6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14303.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - code_imp: "All machine-frame based tool-use actions now have state-checking callbacks." From 2c728535c5bdcd9ec4d8a1165b34a4d482519197 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 26 Feb 2021 00:13:46 +0000 Subject: [PATCH 30/83] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-14303.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14303.yml diff --git a/html/changelog.html b/html/changelog.html index ef4f86f424..d5bb2485e1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
    +

    26 February 2021

    +

    DeltaFire15 updated:

    +
      +
    • All machine-frame based tool-use actions now have state-checking callbacks.
    • +
    +

    25 February 2021

    DeltaFire15 updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 3898798d10..ed74d59468 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -28594,3 +28594,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-02-25: DeltaFire15: - bugfix: Traitor / Ling objective amount should now be correct again. +2021-02-26: + DeltaFire15: + - code_imp: All machine-frame based tool-use actions now have state-checking callbacks. diff --git a/html/changelogs/AutoChangeLog-pr-14303.yml b/html/changelogs/AutoChangeLog-pr-14303.yml deleted file mode 100644 index eddaf71cd6..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14303.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - code_imp: "All machine-frame based tool-use actions now have state-checking callbacks." From 744f393d38d0a003c42b481332ccbc4e033a57a1 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 25 Feb 2021 20:35:11 -0600 Subject: [PATCH 31/83] Automatic changelog generation for PR #14305 [ci skip] --- html/changelogs/AutoChangeLog-pr-14305.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14305.yml diff --git a/html/changelogs/AutoChangeLog-pr-14305.yml b/html/changelogs/AutoChangeLog-pr-14305.yml new file mode 100644 index 0000000000..3fbb7accfa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14305.yml @@ -0,0 +1,4 @@ +author: "silicons" +delete-after: True +changes: + - bugfix: "chaplain arrythmic knives can no longer be abused for infinite speed." From b2388c0f08c249f0b756189fcf3cce39eea3cedf Mon Sep 17 00:00:00 2001 From: Putnam Date: Thu, 25 Feb 2021 23:11:40 -0800 Subject: [PATCH 32/83] Removes auto-matchmaking from valentines event --- code/modules/events/holiday/vday.dm | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index 1da03623e6..df00f873b5 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -21,27 +21,6 @@ new /obj/item/reagent_containers/food/snacks/candyheart(B) new /obj/item/storage/fancy/heart_box(B) - var/list/valentines = list() - for(var/mob/living/M in GLOB.player_list) - if(!M.stat && M.client && M.mind && !HAS_TRAIT(M, TRAIT_NO_MIDROUND_ANTAG)) - valentines |= M - - - while(valentines.len) - var/mob/living/L = pick_n_take(valentines) - if(valentines.len) - var/mob/living/date = pick_n_take(valentines) - - - forge_valentines_objective(L, date) - forge_valentines_objective(date, L) - - if(valentines.len && prob(4)) - var/mob/living/notgoodenough = pick_n_take(valentines) - forge_valentines_objective(notgoodenough, date) - else - L.mind.add_antag_datum(/datum/antagonist/heartbreaker) - /proc/forge_valentines_objective(mob/living/lover,mob/living/date,var/chemLove = FALSE) lover.mind.special_role = "valentine" if (chemLove == TRUE) From ac0fd530f27129c8a139aaadc1587c03cdcceabd Mon Sep 17 00:00:00 2001 From: Putnam Date: Fri, 26 Feb 2021 00:13:23 -0800 Subject: [PATCH 33/83] Makes polychromic windbreaker's message not be nonsense --- code/modules/clothing/suits/miscellaneous.dm | 6 ++++++ code/modules/clothing/suits/toggles.dm | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 8580b153b2..3e72765234 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -1040,6 +1040,12 @@ icon_state = "wbreakpoly" item_state = "wbreakpoly" +/obj/item/clothing/suit/toggle/wbreakpoly/on_toggle(mob/user) + if(suittoggled) + to_chat(usr, "You zip up [src].") + else + to_chat(usr, "You unzip [src].") + /obj/item/clothing/suit/toggle/wbreakpoly/polychromic/ComponentInitialize() . = ..() AddElement(/datum/element/polychromic, list("#464F65", "#916035", "#474747"), 3) diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index aa22834670..98d6809d64 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -110,6 +110,9 @@ suit_toggle(user) return TRUE +/obj/item/clothing/suit/toggle/proc/on_toggle(mob/user) // override this, not suit_toggle, which does checks + to_chat(usr, "You toggle [src]'s [togglename].") + /obj/item/clothing/suit/toggle/ui_action_click() suit_toggle() @@ -119,7 +122,7 @@ if(!can_use(usr)) return 0 - to_chat(usr, "You toggle [src]'s [togglename].") + on_toggle(usr) if(src.suittoggled) src.icon_state = "[initial(icon_state)]" src.suittoggled = FALSE From 50c1a83c6a1066e3d1c7003c8805bded86ef2b75 Mon Sep 17 00:00:00 2001 From: Putnam Date: Fri, 26 Feb 2021 00:34:13 -0800 Subject: [PATCH 34/83] Adds a pAI policy config --- code/__DEFINES/configuration.dm | 2 ++ code/game/objects/items/devices/paicard.dm | 5 ++++- config/policy.txt | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/configuration.dm b/code/__DEFINES/configuration.dm index 0428a16828..9915563cab 100644 --- a/code/__DEFINES/configuration.dm +++ b/code/__DEFINES/configuration.dm @@ -22,3 +22,5 @@ #define POLICYCONFIG_ON_DEFIB_LATE "ON_DEFIB_LATE" /// Displayed to pyroclastic slimes on spawn #define POLICYCONFIG_ON_PYROCLASTIC_SENTIENT "PYROCLASTIC_SLIME" +/// Displayed to pAIs on spawn +#define POLICYCONFIG_PAI "PAI_SPAWN" diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 9a722feb6a..e7a9d51ebe 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -122,7 +122,10 @@ /obj/item/paicard/proc/setPersonality(mob/living/silicon/pai/personality) src.pai = personality src.add_overlay("pai-null") - + var/list/policies = CONFIG_GET(keyed_list/policyconfig) + var/policy = policies[POLICYCONFIG_PAI] + if(policy) + to_chat(personality, policy) playsound(loc, 'sound/effects/pai_boot.ogg', 50, 1, -1) audible_message("\The [src] plays a cheerful startup noise!") diff --git a/config/policy.txt b/config/policy.txt index 610acd2be8..502b525ad0 100644 --- a/config/policy.txt +++ b/config/policy.txt @@ -3,7 +3,10 @@ ## ON_CLONE - displayed after a successful cloning operation to the cloned person ## ON_DEFIB_INTACT - displayed after defibbing before memory loss time threshold ## ON_DEFIB_LATE - displayed after defibbing post memory loss time threshold -## +## SDGF - displayed on SDGF clone spawning +## SDGF_GOOD - displayed on SDGF clone spawning, if the clone is loyal +## SDGF_BAD - displayed on SDGF clone spawning, if the clone is not loyal +## PAI - displayed on PAI personality being loaded ## EXAMPLE: ## POLICYCONFIG ON_CLONE insert text here span classes are fully supported From 08d19e349fdd92453bdc761903586b4212e1c80a Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Fri, 26 Feb 2021 10:06:53 -0300 Subject: [PATCH 35/83] Update code/modules/surgery/advanced/toxichealing.dm Co-authored-by: Putnam3145 --- code/modules/surgery/advanced/toxichealing.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/surgery/advanced/toxichealing.dm b/code/modules/surgery/advanced/toxichealing.dm index adec2857fc..376fb43c31 100644 --- a/code/modules/surgery/advanced/toxichealing.dm +++ b/code/modules/surgery/advanced/toxichealing.dm @@ -27,7 +27,8 @@ /datum/surgery_step/toxichealing/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE) if(..()) while((target.getToxLoss() >= 1) || (target.getOxyLoss() >= 1)) - if(!..()) + . = ..() + if(!.) break /datum/surgery_step/toxichealing/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) From 12c7e22c2826e66f72ae462beb6cf9acafdf27f0 Mon Sep 17 00:00:00 2001 From: dzahlus Date: Fri, 26 Feb 2021 15:57:27 +0100 Subject: [PATCH 36/83] ugh lavaland --- .../living/simple_animal/hostile/megafauna/drake.dm | 11 ++++++++++- code/modules/spells/spell_types/shapeshift.dm | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index 477483862b..cd7f2fe328 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -398,6 +398,14 @@ Difficulty: Medium crusher_loot = list() butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) +/mob/living/simple_animal/hostile/megafauna/dragon/lesser/transformed //ash drake balanced around player control + name = "transformed ash drake" + desc = "A sentient being transformed into an ash drake" + mob_size = MOB_SIZE_HUMAN //prevents crusher vulnerability + move_force = MOVE_FORCE_NORMAL //stops them from destroying and unanchoring shit by walking into it + environment_smash = ENVIRONMENT_SMASH_STRUCTURES //no we dont want sentient megafauna be able to delete the entire station in a minute flat + damage_coeff = list(BRUTE = 0.7, BURN = 0.5, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) //200 health but not locked to standard movespeed, needs armor befitting of a dragon + /mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) return @@ -413,7 +421,8 @@ Difficulty: Medium if(L in hit_list || L == source) continue hit_list += L - L.adjustFireLoss(20) + L.adjustFireLoss(5) + L.adjust_fire_stacks(6) to_chat(L, "You're hit by [source]'s fire breath!") // deals damage to mechs diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index e513865246..c376845451 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -77,8 +77,10 @@ name = "Dragon Form" desc = "Take on the shape a lesser ash drake." invocation = "RAAAAAAAAWR!" + cooldown_min = 450 + charge_max = 1800 - shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser + shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser/transformed /obj/shapeshift_holder From 51595705e4fe81153b6428d159a994b26c349ba9 Mon Sep 17 00:00:00 2001 From: dzahlus Date: Fri, 26 Feb 2021 20:59:28 +0100 Subject: [PATCH 37/83] simpin for slimes --- code/modules/antagonists/eldritch_cult/eldritch_magic.dm | 2 +- code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm | 2 +- code/modules/reagents/chemistry/reagents/other_reagents.dm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm index ba79cca07a..bb95a8bdf3 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_magic.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_magic.dm @@ -566,7 +566,7 @@ human_user.adjustBruteLoss(-10, FALSE) human_user.adjustFireLoss(-10, FALSE) human_user.adjustStaminaLoss(-10, FALSE) - human_user.adjustToxLoss(-10, FALSE) + human_user.adjustToxLoss(-10, FALSE, TRUE) human_user.adjustOxyLoss(-10) /obj/effect/proc_holder/spell/pointed/manse_link diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 9d65396c63..43678e17c6 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -183,7 +183,7 @@ var/mob/living/carbon/human/human_user = user human_user.adjustBruteLoss(-6, FALSE) human_user.adjustFireLoss(-6, FALSE) - human_user.adjustToxLoss(-6, FALSE) + human_user.adjustToxLoss(-6, FALSE, TRUE) human_user.adjustOxyLoss(-6, FALSE) human_user.adjustStaminaLoss(-20) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 6552d82e95..fe8f923e1a 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2545,7 +2545,7 @@ M.drowsyness = max(M.drowsyness-5, 0) M.AdjustAllImmobility(-40, FALSE) M.adjustStaminaLoss(-15, FALSE) - M.adjustToxLoss(-3, FALSE) + M.adjustToxLoss(-3, FALSE, TRUE) M.adjustOxyLoss(-3, FALSE) M.adjustBruteLoss(-3, FALSE) M.adjustFireLoss(-3, FALSE) From 107abc05519be36adf7a2817965b6afcd67bb25d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 14:35:05 -0600 Subject: [PATCH 38/83] Automatic changelog generation for PR #14285 [ci skip] --- html/changelogs/AutoChangeLog-pr-14285.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14285.yml diff --git a/html/changelogs/AutoChangeLog-pr-14285.yml b/html/changelogs/AutoChangeLog-pr-14285.yml new file mode 100644 index 0000000000..83acb59ab4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14285.yml @@ -0,0 +1,4 @@ +author: "kappa-sama" +delete-after: True +changes: + - tweak: "cards and card binders are now small-class items" From 0621bf3f4daa264a54e97f08d5a017cf3d332b6f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 14:36:04 -0600 Subject: [PATCH 39/83] Automatic changelog generation for PR #14283 [ci skip] --- html/changelogs/AutoChangeLog-pr-14283.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14283.yml diff --git a/html/changelogs/AutoChangeLog-pr-14283.yml b/html/changelogs/AutoChangeLog-pr-14283.yml new file mode 100644 index 0000000000..560b6e0355 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14283.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - balance: "Lingfists (trait_mauler) now deal no stam damage and lost their 15(!!!) armor penetration." From eda96681e20346d8531eeef349e4f810eb5a00cc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 14:36:11 -0600 Subject: [PATCH 40/83] Automatic changelog generation for PR #14281 [ci skip] --- html/changelogs/AutoChangeLog-pr-14281.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14281.yml diff --git a/html/changelogs/AutoChangeLog-pr-14281.yml b/html/changelogs/AutoChangeLog-pr-14281.yml new file mode 100644 index 0000000000..5a8d1fdc5f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14281.yml @@ -0,0 +1,5 @@ +author: "kiwedespars" +delete-after: True +changes: + - balance: "reverted the pr that absolutely gutted pugilism and made it worse than base unarmed, also gives it a second long stagger" + - balance: "removed the ability to parry while horizontal, because that's dumb and makes it easy to just time the parries right." From a4a5fa2e7d65086ce9abbe51149f282cc0cc6eff Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 14:36:29 -0600 Subject: [PATCH 41/83] Automatic changelog generation for PR #14300 [ci skip] --- html/changelogs/AutoChangeLog-pr-14300.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14300.yml diff --git a/html/changelogs/AutoChangeLog-pr-14300.yml b/html/changelogs/AutoChangeLog-pr-14300.yml new file mode 100644 index 0000000000..eb6bf4e2ac --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14300.yml @@ -0,0 +1,5 @@ +author: "keronshb" +delete-after: True +changes: + - balance: "16 > 10 unlock cost for stronger abilities" + - balance: "Made nearly all other abilities for free." From 933522d6f96e5761ea43e85ff9b7ba059b9082f2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 14:38:58 -0600 Subject: [PATCH 42/83] Automatic changelog generation for PR #14289 [ci skip] --- html/changelogs/AutoChangeLog-pr-14289.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14289.yml diff --git a/html/changelogs/AutoChangeLog-pr-14289.yml b/html/changelogs/AutoChangeLog-pr-14289.yml new file mode 100644 index 0000000000..71c8364b6f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14289.yml @@ -0,0 +1,4 @@ +author: "TheObserver-sys" +delete-after: True +changes: + - rscadd: "Chems that should have been usable are now usable, try some cryoxadone on a plant today!!!" From dbc6e1435880722bcf3c75321f3d1c0fe7f4226f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 14:41:45 -0600 Subject: [PATCH 43/83] Automatic changelog generation for PR #14316 [ci skip] --- html/changelogs/AutoChangeLog-pr-14316.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14316.yml diff --git a/html/changelogs/AutoChangeLog-pr-14316.yml b/html/changelogs/AutoChangeLog-pr-14316.yml new file mode 100644 index 0000000000..fafa28453d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14316.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Tablets now protect their contents from rads." From 9ea578987ff38bf89a83f35eceb257f8574799a0 Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Fri, 26 Feb 2021 15:03:32 -0600 Subject: [PATCH 44/83] Bigger Belly Doubles the number of characters available to be used for bellies_desc_max. Additionally, doubles the number of characters available for the bellies_name_max. --- code/modules/vore/eating/vorepanel.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 6e3951e60a..37ea23b171 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -4,8 +4,8 @@ #define BELLIES_MAX 20 #define BELLIES_NAME_MIN 2 -#define BELLIES_NAME_MAX 12 -#define BELLIES_DESC_MAX 1024 +#define BELLIES_NAME_MAX 24 +#define BELLIES_DESC_MAX 2048 /mob/living/proc/insidePanel() set name = "Vore Panel" From d3ea3ee4f13d5f4e230b2eb9f27f623ddc2f3765 Mon Sep 17 00:00:00 2001 From: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Fri, 26 Feb 2021 18:13:12 -0300 Subject: [PATCH 45/83] fixes pacifist zombo --- code/_onclick/item_attack.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 7a614da07b..6495e18966 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -82,7 +82,7 @@ SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user) if(item_flags & NOBLUDGEON) return - if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM)) + if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM) && !is_species(user, /datum/species/zombie/infectious)) // probably it's here to_chat(user, "You don't want to harm other living beings!") return From 791ddd03d9de11558809c5abd3eae8bbec7a1200 Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Fri, 26 Feb 2021 15:24:07 -0600 Subject: [PATCH 46/83] Tweaks anamolous crystal to prevent clown-griefing --- .../mob/living/simple_animal/hostile/megafauna/colossus.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index a584d34995..ceb940ba58 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -424,7 +424,7 @@ Difficulty: Very Hard /obj/machinery/anomalous_crystal/honk //Strips and equips you as a clown. I apologize for nothing observer_desc = "This crystal strips and equips its targets as clowns." - possible_methods = list(ACTIVATE_MOB_BUMP, ACTIVATE_SPEECH) + possible_methods = list(ACTIVATE_TOUCH) \\Because We love AOE transformations! activation_sound = 'sound/items/bikehorn.ogg' /obj/machinery/anomalous_crystal/honk/ActivationReaction(mob/user) From ccdfbbdc04d8d4ceb70486b9234f1265a3a9226f Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Fri, 26 Feb 2021 15:33:37 -0600 Subject: [PATCH 47/83] I'm really stupid. // not \\ --- .../mob/living/simple_animal/hostile/megafauna/colossus.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index ceb940ba58..d087d9399a 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -424,7 +424,7 @@ Difficulty: Very Hard /obj/machinery/anomalous_crystal/honk //Strips and equips you as a clown. I apologize for nothing observer_desc = "This crystal strips and equips its targets as clowns." - possible_methods = list(ACTIVATE_TOUCH) \\Because We love AOE transformations! + possible_methods = list(ACTIVATE_TOUCH) //Because We love AOE transformations! activation_sound = 'sound/items/bikehorn.ogg' /obj/machinery/anomalous_crystal/honk/ActivationReaction(mob/user) From d02b713b461e3b401991e9b71b4d159ab722061b Mon Sep 17 00:00:00 2001 From: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Fri, 26 Feb 2021 18:45:34 -0300 Subject: [PATCH 48/83] removes a comment i left behind --- code/_onclick/item_attack.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 6495e18966..327e6df0e5 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -82,7 +82,7 @@ SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user) if(item_flags & NOBLUDGEON) return - if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM) && !is_species(user, /datum/species/zombie/infectious)) // probably it's here + if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM) && !is_species(user, /datum/species/zombie/infectious)) to_chat(user, "You don't want to harm other living beings!") return From 99dbe4bd1e855d9e7daabed1869e49215a608fac Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 27 Feb 2021 00:13:56 +0000 Subject: [PATCH 49/83] Automatic changelog compile [ci skip] --- html/changelog.html | 32 ++++++++++++++++++++++ html/changelogs/.all_changelog.yml | 21 ++++++++++++++ html/changelogs/AutoChangeLog-pr-14281.yml | 5 ---- html/changelogs/AutoChangeLog-pr-14283.yml | 4 --- html/changelogs/AutoChangeLog-pr-14285.yml | 4 --- html/changelogs/AutoChangeLog-pr-14289.yml | 4 --- html/changelogs/AutoChangeLog-pr-14300.yml | 5 ---- html/changelogs/AutoChangeLog-pr-14305.yml | 4 --- html/changelogs/AutoChangeLog-pr-14316.yml | 4 --- 9 files changed, 53 insertions(+), 30 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14281.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14283.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14285.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14289.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14300.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14305.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14316.yml diff --git a/html/changelog.html b/html/changelog.html index d5bb2485e1..6b6c8b2589 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,38 @@ -->
      +

      27 February 2021

      +

      Hatterhat updated:

      +
        +
      • Lingfists (trait_mauler) now deal no stam damage and lost their 15(!!!) armor penetration.
      • +
      +

      Putnam3145 updated:

      +
        +
      • Tablets now protect their contents from rads.
      • +
      +

      TheObserver-sys updated:

      +
        +
      • Chems that should have been usable are now usable, try some cryoxadone on a plant today!!!
      • +
      +

      kappa-sama updated:

      +
        +
      • cards and card binders are now small-class items
      • +
      +

      keronshb updated:

      +
        +
      • 16 > 10 unlock cost for stronger abilities
      • +
      • Made nearly all other abilities for free.
      • +
      +

      kiwedespars updated:

      +
        +
      • reverted the pr that absolutely gutted pugilism and made it worse than base unarmed, also gives it a second long stagger
      • +
      • removed the ability to parry while horizontal, because that's dumb and makes it easy to just time the parries right.
      • +
      +

      silicons updated:

      +
        +
      • chaplain arrythmic knives can no longer be abused for infinite speed.
      • +
      +

      26 February 2021

      DeltaFire15 updated:

        diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index ed74d59468..6d36900b23 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -28597,3 +28597,24 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-02-26: DeltaFire15: - code_imp: All machine-frame based tool-use actions now have state-checking callbacks. +2021-02-27: + Hatterhat: + - balance: Lingfists (trait_mauler) now deal no stam damage and lost their 15(!!!) + armor penetration. + Putnam3145: + - tweak: Tablets now protect their contents from rads. + TheObserver-sys: + - rscadd: Chems that should have been usable are now usable, try some cryoxadone + on a plant today!!! + kappa-sama: + - tweak: cards and card binders are now small-class items + keronshb: + - balance: 16 > 10 unlock cost for stronger abilities + - balance: Made nearly all other abilities for free. + kiwedespars: + - balance: reverted the pr that absolutely gutted pugilism and made it worse than + base unarmed, also gives it a second long stagger + - balance: removed the ability to parry while horizontal, because that's dumb and + makes it easy to just time the parries right. + silicons: + - bugfix: chaplain arrythmic knives can no longer be abused for infinite speed. diff --git a/html/changelogs/AutoChangeLog-pr-14281.yml b/html/changelogs/AutoChangeLog-pr-14281.yml deleted file mode 100644 index 5a8d1fdc5f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14281.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "kiwedespars" -delete-after: True -changes: - - balance: "reverted the pr that absolutely gutted pugilism and made it worse than base unarmed, also gives it a second long stagger" - - balance: "removed the ability to parry while horizontal, because that's dumb and makes it easy to just time the parries right." diff --git a/html/changelogs/AutoChangeLog-pr-14283.yml b/html/changelogs/AutoChangeLog-pr-14283.yml deleted file mode 100644 index 560b6e0355..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14283.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Hatterhat" -delete-after: True -changes: - - balance: "Lingfists (trait_mauler) now deal no stam damage and lost their 15(!!!) armor penetration." diff --git a/html/changelogs/AutoChangeLog-pr-14285.yml b/html/changelogs/AutoChangeLog-pr-14285.yml deleted file mode 100644 index 83acb59ab4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14285.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "kappa-sama" -delete-after: True -changes: - - tweak: "cards and card binders are now small-class items" diff --git a/html/changelogs/AutoChangeLog-pr-14289.yml b/html/changelogs/AutoChangeLog-pr-14289.yml deleted file mode 100644 index 71c8364b6f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14289.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheObserver-sys" -delete-after: True -changes: - - rscadd: "Chems that should have been usable are now usable, try some cryoxadone on a plant today!!!" diff --git a/html/changelogs/AutoChangeLog-pr-14300.yml b/html/changelogs/AutoChangeLog-pr-14300.yml deleted file mode 100644 index eb6bf4e2ac..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14300.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "keronshb" -delete-after: True -changes: - - balance: "16 > 10 unlock cost for stronger abilities" - - balance: "Made nearly all other abilities for free." diff --git a/html/changelogs/AutoChangeLog-pr-14305.yml b/html/changelogs/AutoChangeLog-pr-14305.yml deleted file mode 100644 index 3fbb7accfa..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14305.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "chaplain arrythmic knives can no longer be abused for infinite speed." diff --git a/html/changelogs/AutoChangeLog-pr-14316.yml b/html/changelogs/AutoChangeLog-pr-14316.yml deleted file mode 100644 index fafa28453d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14316.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - tweak: "Tablets now protect their contents from rads." From af4b8ef0c5f30c5cb583b0261610eb14940cd25c Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Fri, 26 Feb 2021 19:36:44 -0600 Subject: [PATCH 50/83] Update vorepanel.dm Made it uniform with the maximum characters allowed for emotes because uniformity is nice. --- code/modules/vore/eating/vorepanel.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 37ea23b171..5622ec0382 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -5,7 +5,7 @@ #define BELLIES_MAX 20 #define BELLIES_NAME_MIN 2 #define BELLIES_NAME_MAX 24 -#define BELLIES_DESC_MAX 2048 +#define BELLIES_DESC_MAX 4096 /mob/living/proc/insidePanel() set name = "Vore Panel" From 8452fff356624ebd50d9bf479f99932a783ae6a6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 26 Feb 2021 19:42:36 -0600 Subject: [PATCH 51/83] Automatic changelog generation for PR #14326 [ci skip] --- html/changelogs/AutoChangeLog-pr-14326.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14326.yml diff --git a/html/changelogs/AutoChangeLog-pr-14326.yml b/html/changelogs/AutoChangeLog-pr-14326.yml new file mode 100644 index 0000000000..2dc18b5674 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14326.yml @@ -0,0 +1,4 @@ +author: "R3dtail" +delete-after: True +changes: + - tweak: "doubled max belly name length and quadrupled belly description length" From 04d478bb208f1e90db4b61fcd2cc0c527f6d34b0 Mon Sep 17 00:00:00 2001 From: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Sat, 27 Feb 2021 01:49:56 -0300 Subject: [PATCH 52/83] turning removes pacifism --- code/_onclick/item_attack.dm | 2 +- code/modules/mob/living/carbon/human/species.dm | 2 ++ .../mob/living/carbon/human/species_types/zombies.dm | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 327e6df0e5..7a614da07b 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -82,7 +82,7 @@ SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user) if(item_flags & NOBLUDGEON) return - if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM) && !is_species(user, /datum/species/zombie/infectious)) + if(force && damtype != STAMINA && HAS_TRAIT(user, TRAIT_PACIFISM)) to_chat(user, "You don't want to harm other living beings!") return diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 432052d322..d67265be53 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -78,6 +78,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/list/species_traits = list(HAS_FLESH,HAS_BONE) //by default they can scar and have bones/flesh unless set to something else // generic traits tied to having the species var/list/inherent_traits = list() + // blacklisted traits that conflict with species. If i can figure how to use these lists and mass removes, will uncomment + //var/list/blacklisted_traits = list() var/inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID var/attack_verb = "punch" // punch-specific attack verb diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 385dd94f04..91e00bb3f5 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -37,6 +37,8 @@ armor = 20 // 120 damage to KO a zombie, which kills it speedmod = 1.6 // they're very slow mutanteyes = /obj/item/organ/eyes/night_vision/zombie + // same as in species.dm + //blacklisted_traits = list(TRAIT_PACIFISM) var/heal_rate = 1 var/regen_cooldown = 0 @@ -96,6 +98,10 @@ part.incoming_stam_mult = incoming_stam_mult //todo: add negative wound resistance to all parts when wounds is merged (zombies are physically weak in terms of limbs) + // this removes pacifism quirk so our zombie can attack normally. but how to add back when cured? + REMOVE_TRAIT(C, TRAIT_PACIFISM, ROUNDSTART_TRAIT) // and why "cannot be removed without admin intervention"? what does that mean? + + // Your skin falls off /datum/species/krokodil_addict name = SPECIES_HUMAN From c5e8d8131e2fefacbd0c99ce6d83b5c902497b40 Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Sat, 27 Feb 2021 17:47:22 +0800 Subject: [PATCH 53/83] you're going on the tabl --- code/game/machinery/colormate.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index 1f1c16248c..d059d492ae 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -44,7 +44,8 @@ icon_state = "colormate" /obj/machinery/gear_painter/Destroy() - inserted.forceMove(drop_location()) + if(inserted) //please i beg you do not drop nulls + inserted.forceMove(drop_location()) return ..() /obj/machinery/gear_painter/attackby(obj/item/I, mob/living/user) From 2ae258d0028d008f6f694f19ae4be0d4fabb61ae Mon Sep 17 00:00:00 2001 From: Detective Google <48196179+Detective-Google@users.noreply.github.com> Date: Sat, 27 Feb 2021 04:42:05 -0600 Subject: [PATCH 54/83] turtlenecks --- code/modules/clothing/under/suits.dm | 24 ++++++++++++++++++ icons/mob/clothing/uniform.dmi | Bin 467424 -> 470646 bytes icons/obj/clothing/uniforms.dmi | Bin 135579 -> 136471 bytes .../code/modules/client/loadout/uniform.dm | 16 ++++++++++++ 4 files changed, 40 insertions(+) diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index b9f55e695a..b3762608ce 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -138,3 +138,27 @@ icon_state = "greyturtle" item_state = "greyturtle" can_adjust = FALSE + +/obj/item/clothing/under/suit/turtle/science + name = "science turtleneck" + icon_state = "turtle_sci" + item_state = "turtle_sci" + can_adjust = FALSE + +/obj/item/clothing/under/suit/turtle/engineering + name = "engineering turtleneck" + icon_state = "turtle_eng" + item_state = "turtle_eng" + can_adjust = FALSE + +/obj/item/clothing/under/suit/turtle/security + name = "security turtleneck" + icon_state = "turtle_sec" + item_state = "turtle_sec" + can_adjust = FALSE + +/obj/item/clothing/under/suit/turtle/medical + name = "medical turtleneck" + icon_state = "turtle_med" + item_state = "turtle_med" + can_adjust = FALSE diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 325f04cedebfabe6019ae2ff21f1e31a9c2ca1ff..f2611b3ab70feb39511c039d26e839231b0956c6 100644 GIT binary patch delta 23406 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

        yZUWA14zU@Vqq@r0cPn3^ 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 IdQP$b0|I(T5&!@I delta 20164 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 QFmRnbde*M&@U_Ul0TT0B5C8xG diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 4ad3d4124f428dc76ecf0458beca2f62e532e53a..6171e032dd721c72092a2b9d30db09c7752cbd56 100644 GIT binary patch delta 24628 zcmbSybyQoy^Dj_nON-OuPO(zl-Q5etr9cbCp}1aLiw+Z2sNK(Z$Na9tp`KBQs;N zdaVg}aMBOxr)lMtx!Rs0^Z90$&oQ-Rl|T`ghai^`Es>Y^f;&*XwW|6uJ z)WI1D-}`uZLcZ_}r!9$kdTjMyBKls15nARCJ%Zh*ruF4N{v;iyY2=s;F^Yf9H!P?4 z@ePjSt}}k*alghlHG;PuRF%jY3RqHAAJYtTjs|#t1gr)23{Ye@H#Hhv2NkUK(W@Hv zHA?U~CmPz?BoK073N}i-*I32gpQNQJ9N)~V1pLaIt^rrFg!DBuHz8+fw zQ*Ma+dQzi=dRqvX9kU1Fh@M#^9eZzd9F(Cyl>FpiuvH=T#vpsviYE0M|C>hnbEj^a zmKu$hCxnv*mw!qciVgd5J}BBs>9O_1m1TZRcg~2MU0N7<_<*G=5Mmf#Z@n4^42atg zM-jD!k8(dEsPU0PBSYC=wAtY}qFV<%c=66GxHuu_@T>qQ}Y`VgX{ zsJjsqU{2Ni`CD#qKzZm1-;NIEW&Nbk5}V)>Te>ZW?z33sZUUcFE8OmNnUi~Isa)>H zSkWKQZbH?BB2!7cI%T}M=N|yp9kaT+7YFh)q9~pP?{HeIm)g4bl*&TkfY)MKDL-=k7#^$fgkzuNjm@FC|W0MMkxq? zGR3ssC(QVZQ6Moe8h0;6%&(HVIy^9oRLt?w+F)old`Pt2ZJ%jiw7c{QJp-~4pqVWW zw>8VMP31u%g>AFH;LMDmn+&#%Ds5@CLJ`Q3Hm%IF#0YaY#< z_}j!1SyhW+yGg`6qMiXT$iWHyq)p_Anc{Hu<+ZFm8H#!Eod#;`58ko`Bam&JH`)R8+-Sf|5+3 z&Gj7cNUxFj3dhUtzEtv*ctg6tx3kY=COE3`esj~B(De)-eWC#pMbri|x~nDWBqFft!Tt4eraK3aeHE(#0hXLv;U;~(kxGBO;OY6%6uMlzwzMTBZrCh_Ah^< zv{m|>FK5w2H6QPPOFPLg=1Vl$Xunc0 zAr)T_;vRP&&=f66Or3HG$+n~}h-OWS__+0y%Cm|D#R%6p&&6xqVF(C&?=ef2ZKa?uSVOOt5wB-yWQeh?6ZvyXsaC)32#H8 z&*-ODx_6VGfLH2wpnMZa#yM8+XA%m8=rskpk>0c#pIFR{@cc(4h3d~3-=ARxp`5YP zUzkUqSTvHpRD9Ikel-Ho-CoHz=rB4$KbyXQH<&|z`}44?m$m-PAre}pMlR{%8kDqh zcwG*q6+aN8c-Do+`Z4)~k>n5k$N~S1Bj86+k1(mfK2R(D9yO6wEN`pdZ(FDkS$h=( zK(-vfU9bzW6Y?%q?#~3iSYBTnO3%m`zkfg3=waULNeZpCXy|uCGJ2xbBvD>?Tk_je zHSn}!U72}o@g7RE-d2U2F+3N)oX9PQYaKWs`%>g zn`L}L8IZ0Qu<(ogS(VpBg_U)2LHrC&>3UjX)NorJrrlStMvl>7A6LmpX8($jvM~1N z$sw#>6|z6XkgNya!jDT0NnCYd6#_>@?}bq8-Pk(DN%&1t<5YTy>H}ll=hfskPU1SuD79HJ{++I_`urKsIoz)cqM(V zjIs$t`-1J5n{VC)9p&`74%tqf$TyB6tH`eu&+Tey%`83(Q5CWbyH3~L2;75 z`!u{XDRVwAWc}g?M~RoYSVi#qcb6~S~iO9V&D8Z9kLGatTMK6}Q)q2IzCZkTyT?;$f zlq$nErnHLOctC&+OT9&L_t(45rx&@Yo9@m4F@B zM)?$fnNLxu&w1q=<-`3!l`<%JLN@VnM{S{QaxN@*aqlV!(B)+>%Lw@3%)@$>m?nL1 zd2+cW7l%(Z|8pw*8Li zxTL=CKa;t9AeX_|7KeB9ii&jlJsw^kKJsD1(VlI{bFR3ly9CvtH`k#f+cg5maW%9# zIRwblf&FNeCKXK!m2bpstDK-*RPk zGy#-)!G3D@JcM2uqM7Y|bbXxowU7xag7<`$+O9XLEDC%*)N<;tuv<6^Glnly`VHw= zOfI;JLe8ZwwvLy}xnA_9c_ErN8g95 z!zyMdP#gt2OZF4DAHn6HZ@XfHdIgqTzs!>Fs)>TBsKDtMRC71Ml}QIC?hoF1^G4Bl zcW11So-0?pKlL7v{(7~gMUzA9Dww98b6?USZF5PMXCohn)l@TmZEij- zz_CY`3jVo1qUWFeo@hCcijU7OB*aKI69%w>Fnw}9rpep1b;m1(pwaRUeDg# zs)<3hz+HO*gO3H^qrx}`B&Rl0pl_uS;p&H@YmnT!1;3W#ye@_m@eR~zy9XL zq~kWXt5Qqra)Vhdr3yadi^btoK*H|c`0B@*bGk}gLe44Si9>TAD%%Su>u>GI-?*-2 zo>}FdsOXvpCjPBPmsLY27pGlX5fTj2h)XK72Wr>x@H>2%%wz-F>|z6UR|O#n6wd+i z^$kPoX!Mf`063b}yy=pwTD9mD4ZkB`-5D&`nSDAeH-h|RZ4Cyq8V)U&>lj=@)G|3` zp0)?Qkv;xKW!Km&vUWN=-Cr0ALimt;j+)Jvnta>m#BguqLa&QuroebJV24Z?QwRv{ z^IV@=+x{7|;4}Y9IJB_Z^XcoZ49KR>NSDD?X<9TH>YjEu?4oAjr7 z9g{|Bcxi=z*{!6I>#EI?>${NU*C$@!uyW{+N!NIe{$WIkp#Xhh%pqc2#gx5E3AA7z zf)4Ai`)an);i*;K9;(1K_a>Z$ROC&vXDWNo?}k(-q~oy=HszJ5~dWLyocb z3&1a4)D{EB-h+o*$`Ej@rlY@ywL1{#7`eW6b#|=`FBXyQ46ycUBz3tSXWS1@)Gvh(0j{gp>GKez)v6ZBd1Ow+l#h%kLX(_^=^!@M z(e)@NB7XfXU{1d$k0(E|?ZMc+NGA|^${lEq($F_OaJ|T}|5g>U3Y6dJMT}bvTGTs# zzFT95K5O4Q^wq{A&)+yyGodIl0U+NyCqF{>zvboU*Dl+dLU_|v&guh;>vn0Z=h|?44L_c($inac#R?l{caVE(o7o*>{-isALtM{aYrXi!GRO ze4g661xpy*SFg!s`DkeY+CQ*QI!12^m_$iBIlDcjLc_5cls}JX45%P)kP0PrP)jNM zqFjbz;Lf)%#B(&{3_1}@y)IdTH61|M*7tB`U)eUapt0EBsO^1WgkVlR7QJ1%) z#rmV1!{qX8h-;1gIy2(oxiVsZ`@B}VX{F(SL@Yqgx4%#7ZY@^^1S@1HG9DgjJH$^x zjyVqR@f9ekSX81fY^s4zpMLpqHQ8*BeK|~IqT%J`J%$1ZW#GL;Z86Ir`85kMGdE8a z{2EzW4Vn{Ey?z#$BrXql|9gqeSr&GI!I5C_tL}hxXLM8)vLz8h@w0j@FeYpY4nPk^ z5wf}LDp|mFdgD+9zNLZ@avkK*lJmpXk`X@H&e_XMCNcFAk!aNTO zG*q;;U)b5z|4!Eb)p!DGjko8=qX2$!&1(l%{;>=2ecV|LUvMZw=S?$VxhzjL!n89v zI*UR-)kM9ItTli5wdK}}$#-5}YfcP>Jw90<>sAp7HL(FzlgGLbTv(uo3cvQPP*VP< z-TF2614D%1gOE0C>?4#wO%An&E8^l63x(2OtLJ3v*K}bJmi~2=>2+znKX~(guWO!# z*#Mt{h;7*O2GSS&S{9z`?svt6nQxW0CwFlxc^e;7^DFftl{`Z_vCDeA!RGb?K% z6qEFWx=t%3R|6Le|JCXcM^x>2BbEPQ_EZ7%+3RTY5X9R8i3QDbvO^x_Ok>ZZH9S{I z-wiMtc7pYxc7i^lDBT7^{u5*7Ifd zn(x|r6W`;2p{MTS_gsUGeo+RF1yz}lqAFjQe@>n1$s!H6#Vjfrk~PisLqMcD5Zuf4 zLhbcjqLgN^NdU6g+@~@q#g)pr9*~={@C+2ZLMd?xe+?3VWv}>cCU0%4z47%|N#|oO zEG#T2F1`{ULN$T);UfvRIa2e9`HCXMwksXW2}e^WCnwS}GEV)MRrCzd&Bc~$SUjRW zy|F>DHN9|nwuU3t0@*_x$v1oNFfw3-xW@3Xu7SeBXZi4lDxtP(DDanqE&Hs^T>M(> z9xzflRZ`ijy_L&~^AW>~%mldfi!Nk!BR_VKlClNWS1OUL{+%h;8X1 zss-oGe(sK8P`3KbF+KY=C-WUI2jU-Dy~cw-ZHv5l-%q2)!y}o);(JMlp(pQ~d66}@ zI5HC!0Z|^53Oh=BKb&%IMK!Y$~Z6RD62!RRIDW#66D=} z-Cy{{#cFmS?bi#R$!D?5<=U06xIiSCw7+xGHb0eX-w0y2=sa)vb8cE#TU*N~Wo2hq zh^T0q1pi)u4@`EBWL?H!CyfXOh`BILQR0{ud8oBM{M7qK@!I&({$!?z zp{uTW*7gLflViI6Dmy^C+4vTTecbc~Z|yJWn7=q{0?dCZJ+oL+UA^cUeW&04)^@ea z2(gzyx^7_(R#pd>Fl0D=j{&i=vZ5xs-oA15 z;ll{_Q(^%c&~ge3Lz<90Fm;|@NPAqo4Put%{N4_B9 z8JkDEaymoR;I^$>--2+U-i}W#%*!k+u0)%AOI6c$zYW7?cJtneY9DZ`AK$ykbKq_~ z7~b+7$j6&NM?#`PQjnI=@+}|9Ay%oZ*UYX@ce22RT0=1X)}`5~xidiDVuHK-8u z<;nu6((6p4tTrZJfNjs0w_4m-C)sY;rZ!zDH5T82-f~S9!kmi02j)vHVmOePrMVi> zZJ7Ulaqu1S-3v)EQBmRk?iPn%FasN79VCQ(wyak^b*J~T<+aIfvNAvR;XyIwD74Fx z?D9N;XUJ;)L8OO{D$d^>rN|MLT_~m&z_QvGN{ej(f#Q>sk3&7n`bMOAKDYu|X3MD3 znC8CVIcd^#Q728q-LIpvYAFxDT>T$InX1#k)uBjjTqW9EQ;>n>1@hHrcU|@F^&+2% z%0+aw9&#C;KR&5>LBr30QebAEv`j?T=z$te%>nfEs=hPkvTn-vjZG-_FGQ=8kC@-{SMW6ac73s_=IJRSQUN9t_K2H-nloMO z#ARlxXloOgKqm}00Jv{id3kABSzcXTLSRZz5`~tVY<_^vH(>MHz-cQY2Z4tut}C-cnOty}Qlzh>?-;^X>7nq1QoShWBY} z(&01HU7hq}fLDE&kS5(|{0-%6U&uoV^d}}kP$hgcS(eLrSDD~aGP!I1vHJ7&K=jUz zv`3DDu#giCm*qsTW!Axr&i9kXvM$$4<)_E>u?&Hqmbz<&XDjP)Q$%mw2hI9n4xhk{OM@^APUq(uLjsS}sI$v^5(WkD8C?!Hx@NDcul-BEGH%lgxz8M^{zj45 zZC5?ntZWqQ(uHD-%BefpkM8d&o;k!mA`djh}olfcxXL5 zBwyUnpyj~K$e2@gy5#4BIdSuojf0fW{>$B|6*rITn6QGXYEh}xcK1QHldKLj`dKkB zaJp`E%|~)u`6n+{%z{5I7~*NrZcALR!3F?4v$$xf-D9n7joO*gHOv* zVh%l6?(J&0N<(Y6@neu7lO}qxO9KD@08Cwn@(!Lv-)O+4`E67jQdQ zYo5a1ky@GDA$hVlUh$c3wdv$9+eF|UzgaYI_hpf^`1k{6Q{(iZ+fN+ISQf!F@AnPh z7Yjt2AYo|3W#&;8J^+6NBNOr35`~0>Bqk>2G+J$c5b(ztKw}qd#+H85l9NMqys>0& zh}YVDJ&I&$Ve!$x=HzSawu%@V8xXr|aYJd$)1~6&EfaD>n6G956_W6*4f|qKPLHGr z#Zuk9%brVyFtm#zJXvcQs^<1z9y)=>m?)nY(MM%jvzy0w#v^DMa2>wB zW-_o|qU5i$9m3hwXHiWAx}S_B&CWdaUfTcJ}7X1Fq>zOFkbj z)of*AmaN-bT5809Wt;hYq?X3dp$xu9E}*`toK41H4T3_Hd`sDGUZ?>Z74y&++HOi3Yo#ruHgjw6Xym@t2kM#F0|#f6uXCC(A6cUZ<6Mn%$0 zOXkO=2F(r}0F&}Fpk}!b@Xh_^?JE_Okd;J_CO%pHw4liP7G=_=!w*sQ{AAt!$0dmqmIii-KCI9The>zFi2$aS>*Zr?= zNPquGjalXDofB zt{WV9959F9ikujXGc!fx75hd=&u~RP#s0gY;pC9U{JOsLrEf^8QDRCC@Ucz`|7Tsi z!0uVOcEt?1$+ca+#T<9UgtvZgO!NA-meN7S$MSh4^Ty{xCe07CAedTp6r~X-wtr@R z*#61SE`E&eGh?H{>?+U@r*FiLw8Vc6%79=b^gL4eKSAR1hZVZX8MUF+QE{W_Jc|dV!YEqzDWO> z!|T2k4Lvi-42WwXu^|hJ@MB)p^ky()3J&2oqM-)^zr*gxjRUZ{B&srWLQB>|OG-2 zp3(uV|zMW+R1 z`}F+J^@pLM@BvM1%_3#wId8Sj6+f>e!HGA&RTn zNqNKjqX>I{jQ92Tha3#{_y7Je{=v8-1<{ZZM>zj0BG3B(J!Fy+#RNDPc7GnE zI8Ea~ElBYg8W5p&*v@Vwb!#h)0F#1p2D=0RqGO;#ubfnbLLYArYV#5XoWN)5GNiRHv+08>&9H>D^7nC?^q8HLjM-MyrYTJ<9)|{o>HE|-?4jrGD?}4iKT$&2e+kp;U(zU}aJ*$i0t7*mlP??9 zFr(`wO-%FD-+GCn^ygj0vMS?o;3w2ZtG?TvYpCf;(VU&TMIV+Xq}R*K{_7HXd~D0f z$w?&W@=X^!l`A!jfarvT(mxc>;z5&kE#earde&N<4{QU)9`4QKfBuwGRD8uUKAyC{ zx4RSG(!&2|dmGW1Z^w%Zkdi7H8j`gN2qf*>>^4!Y4(F#wO{>)4{Fxr_fAdACcOZ45 zT#}uf5jEi@U#CKD(?RYn{*Ow7rtqS8S^;(Kg_G8|Cu>Yt1x2^~yQ4#SSC;R+@7f#% z=j9Kt5As{@HU_7Z&nr^7`aADL2M`iuN5TB%_C>@HEz`W1xT%3x6Sn9dT}u=NHf?5C zdGKwydtdn2X_1$GM9AGD2q>9pL+PCs^r8fO_GfFZW|SQ*xqR-YibwP;SuFad-f3RH zp264S_kRDi{f-&r?P{b8{<_ECdkfqh3XZs)=@3k0t(aFiIuMK5XS8^&^7{hc3EI$O zlyvTRsy29IE`aTUREQY6-x@#1=^Z(QCntULsJQfzWZTan8iv4OE6g8Staj+4}^E7sfp`Zn`Up(c%{u%7+^&Uy1R-*y`m0bgRxc0Rh(&M#OoEE<;+ zjkEa!;IrbwR=s!hbg4zz=|5>v0+9T@T3@TL*;9*iq?!1OQ;FNF#_)gCvr6l-uqJ%7 zSYr{W$@jb2g%h+w6pX_d>G^!;6E!2MegNv{m+E+?hRkIWexF{la%g}Eg_F}*t86Ry zjOrT-q_z0Tz7!X0Ca0o*{c3g}j%(zC2uNaDfEJ2DAHCLx-BEcJmA?Tmv{Cjg+!w}D z^V-_{@LO3 zQp>d&mAG3@xPDv2IYj`_=XGz>RrueV%p&HZ43c#LMls&+-q?d`9vakEtW$YC2M-uCbLtB zO3DHYDEy{c4Mpzme)fi8bA8{D_Z2GzelBeFh8T}Yda}~u54R%H7SbQLaWz_#W{+pVgM<~{m(l0H>e0!ZI zEqAoryuPTaWt)f)ee;9*iMh2K@%>IiMq~>N3`nP^5%JpR{D=7|#9F!n%1!?RePWIu z%Rc%bLb6_E#2N&R1fqY?)kF|M%C>x6oH>v_8H+7r2_f0g^UrgHmG$@J>OtW+b7R%A z%!i=gIGZ)O>-VksGJ!1Yzwv1bme>AXXi#A2n+2w)rz?z)(r(`6Grn@|4Rhycp=)=K zTG{!MfsT%ZJD3u(2<(~PS{0*LPZl=|n3;2&rVkI{(n=%ZYSrR;B@44cu> z(O&yzF1$Wi9jE35JcLMMjsHbq_e#nK(#1_+2?ic3FyC@O63i4lcip8bXgRc!B zma5>VGev#Y^uFA>Oxx93oeuO5ZBJ$cv6q)4^^{J317CaC1LN?P>s1reMbQ@yFn79D zak4bw(4D8gp zZawT}TOI>TwHaWaYp~Ci3L;W|Hd~xt1oBozX;0Q>KONC#ZL1b{ zfX~602z}#<&yp9CF1IL!YdDeJ(%*G4C^{a^#6YW~B{YiEKYm0B3HiasgeZ3}_6(j6 z*#*{~?E1nIlhcK&V#!3;F24RmI8R<)f^sor0JVq+dG=QQB!3m(^kMLYE>IORr!C(tNo3+!LRcx6!pY-S#+h*g5 z+v0kuCFGpJ-`dGnZ%@b=nSN9L{`QJmUJ+0!EX_p*Gh|O~Y}g+n!0)+Q5)_nnjv_9DjR1+7q?#s0B*%=MnHV^zMRT zb0kLCzLBx#Ep3i@&nokzpY(;?S!nbu#iEHBZ-?4g=-oxkqbS_t8cmgwhyG8?EFc%X zMH$=W@4j|-GkBd`$VaZFE&6~Y)-g}Mkd>NB+yw76Sg-K8L{8dpnVO^Yn=Mk)K^RBx z)ub3WABK3J%o6cV;q`4Rg_!-d2>Dfpd#V83WuWR3lQlQ zD=K%WymVjWYnXnre(4^!NzG?bD6X|Q$LPtyVU(96p7JpN5*3A;m)A@ixF!T;BT{~d zKaZoz<`j0*zzyJh^LNcfe}6xO4v&ShMNDIJErU#g%71c?mI&jcjt=3%nOnP4dwUm~ zk7#xl_F6XM`JvQ&-bgvg!%P{8BG>0RBNb)GT^C}5Pn!K*LZ9IIP)6PLY(~euA%}v* zFnJ%A3OCpu0tw>cONJa;*O6f*jEthk99RoCP)eYC-+i2&60cje zvwGu^LnL4pj5ws`@5;+oF1(nDMFfkZ9-x1s6b-AewzJdHMi4ufauiB)Q@Lk%e^yfs zRDN5WoR6ASAAH7!45AvSs&O7P7SF^XWCH1=-!~yD^ePm?-EW*h`dDtydRS`H0_TCeMb zkXtSWSf2L8_MV-Oh$U<4gdOban6F$Pj3iBp5jKPUgt#omkTwU!U>xxKK{2GI4$peg ziC4b0!1wyR51G`)VsO`&2f*2+lm~S0Z7>!R?KEiu}{C zrX`<66u1)4N^%Wb4GSG3a~=zmG054|&hg%^yepwjURv*2rn8kL3v0wwKs4t5mqbEQHS`cF2ts)Q=6lmMB3K&L#2K5j1k&PT9m}#C0)%MBUZxZ3_%TK-Npi4ZckF$nArhg z01?E9M`jUBv*~M$I}G(zDW|@-=qoAu7RnMoE^%{txhqbqWVAZBXv{T0@d@{FxfFf!vKPP^^W%EH>BP?^2#YM&Or z&d;~D^;o&DD{-^J5MkBmb%rX#{QNv%Y9|7v6wFk8|Ng!5Y&NJ`Ur$I;#doR+KQH{7 zJ&)$v0|#_E+iT>_*VToSo)!_aZwdBp(LadN`X;7Ohz16)<-na#G&-1KFl~d#hh}vT z2G^agB82g5WYi;{tF|GFwrcodgl8L;iWZ4MNH&tOKeA&nYB$<7rJJU<8L0!9XQ{5s zAkreZli(si2&++ApR8XWYj!Uclgzj{FBa1`c)nFN7V?47P~yS9NhmAbM zHfA{kf!5F0SvuG`@*^h2-Ybg^7)Y_1`U?Zn{}xp-0r@0UHrj8Xft zOEIS-vlqrGF5`5QXk)sH79W7G+-7rztq%zb9sNr~M~BwlSzdc&ZwpM#P{xFq`(}jd z8WqR^JlZTw1WpR^Y*&MH{dLv~wfykE=%(3z&`1<_&KhRTqR1whRU*9i?ph1ar6e65 zF%3TdCDjbE4`iWY;+}00=$U_687pp(+y$FjTax$MhtdbR%I&tH~B4fYdM?$2CtA0>&$x3s!SK9Nn-=2z?f*yX*-*P5rXXa{!BjBUZ zLD{1_eSihZ*CmT+upwmqtG=v{q)$>VuROkR)(Gpp2H%q$O!Nt+H-G%;+~k$*qF7Dg z{6YA;TUhg&2DvftU@GT&&(BQItDfYxFN9wGw0X=u5!ugv+I7TgBqk=7{avccrc0Ze zn%iESpqH@)=j)gxW6RX{Qv6iW_9oPXeKNFD*7vq(3NF#V-3Wh*;KowD|1G=6=;*Ft z%3QO0;u3@6PWbke?SPm#l4E}9$G6l?C3v~tm$f1i~!Rk0o; z$PB!JzfYaZZFxyigBse_54Rys3dVZu0S?tnyR|>g-PD}V7=(x!2FbaygE&G=7gn8z zjaC~QW-30vPDht1V$(=uWqLzjGe<}Tw%FdoJyh9PTu}97A5v5K0Ymws^9h&q{oU-! zN+h3X)@OEkK+pO;aTwN?Q~NL}Ph?9lDxRcCB$wrQ-OlUt%F!-1UN7@hy{BweUs8q- zyOjr`P8(vBT<}-wGBU}-_Ujx@f21|@LGkyNk(sZzUwhQbWZF4=h;lRaL53?cg|?ki ztOFYeA5iv<&o9@rvUvi8Vy?Sz(Mf)L3!1xtKeiiQ*Amczk_B0(5#oyKVU1BE z*{`)#i9;Ntjo&EN-(rIf8U^gJ|%nO@2SvhwaT6t3NC@n*43r7e_=fXrOLQA zmWj33CG6{kAzcAJ2&zP#@1vWdlG6Ou~Scfa|S; zU4ah34t3@gaeBkb?;aiw&4_x#q?7$ zk>ohrBMJ_faJ2DcP_%W1I$| za^!E`zKaA zGxC@eh9bgk@D_D8U+EwT^6ye73uOpZh41o8+xg#qBR%;=9?JC|7z`-Eq)Hp_d|D;0 zUR1KNVb;*lFg}5t)0G>Kizs5^y#`OA;=;W5rMlz5ZIg)eF|Yun6heb zY!BF-A$wUPIogE#J4TR~UVD8XE3Ef7X)z^@<-U3m2;+qX#pnBhEuZ^Ff;18moYl%3 zs=Y$2$5qnC$12zmfV=fxoHXNZ`gieg`#zgi2P_k2eZt19`Jb65){hQ_5KwfSeX?)$ z4B5Ed^sVOfk@iS!fLH1l8al!r%tjX~i{uJ~$j0h^ZX7|`J-z5b1P#$vem`f^Ru zTjr_&q0^ct{*~4F94U69ZVS@;dGOfWndTo0GNyt*(o?b|tp$JHMH`~pAwIBd#uZ*! zcd3z<{dEaFU6ov2Fv$Ncf{j15#vx{Knfy&!%?k=E4^W$ZowzwPWEcK%|&)gw1@LSR3G{xF8 zA|S<8=Ye`=r%B$fvyyE3bp}(X!ESr=He_Uh#X#D~o^^Wt!=2S-!BN$Y(KVsJOlm%C zVPiqoyQXt{VPPO|Oas_{S}qC&3#NlFfS=!q#h8+}Xfte~J|I6*(Vo(~n`;lQhwAnQ zrMKb1jE%ljjLg36h%&C!PejRE{F<73t1`@&%hOs;ovEzxV(7)We95)FA)}az4Kt!X z7n4I*{ou`v#dwtvdbN_h)hJeOw;1-LdV!bCivO&V|8oRvTTM6@;eUTL1Pqm(YW1-` zwUd-I^6>Ir-s7w3LL|=TG{Ip=5OS9PAroNQnD*)$`&`KQK9&}DITU_Ca&`Ts$WA2Q zF0%r!JGc`-si6KQMJ?DsB)jOx%noz4Lyv5-hp6?@vdenR%dp#qH+}9yG{|~1%CP_7 zQL79`Is-SWX=wx6-v?4H4;@bPRUBu_#9dg{!R~l}wnHZO@>!NHexF`=c>O?S=o@_P zzhgdU$j`0x@R)TOE?Y&lT3RgeMd;Wo`mDvX|MCa-57HhAVl&*Q& zxS9d38wyFsczForn@}(sC(b!|FiuJERWkLOL z!^*XOC79uvp;~JK7R|?k#h@s!5f)!gtN_k8((jJ8U)>m#vN2-+>WTD0?fG+sO>xV} zixW@Nnb#VQ zuYtAD$JgA#rcs|k4jnT+-Lzim+#JcrU?-TF(P#tV+*sKU2RH~`mj@nRxKg;`YUTKu zTuKX)GT}tFo%wv2L_Yd+$s+ee6+Y0jZUpjcW&QnU1{tNB1KN5jI3Q2xYL$Ed-3hS3 z8GgF$6ITxZNk&OFIs-~@ggja0r5V~JwI5;r+x)1XKRi|Pw#wy~w(8|Br^(A%Hbn6H z^8D5}0Ca+83E<&TQAZ!Aa~bd}8gDFl_{TTf+FDC;R9v`J!$}?SFzyKUkc7<49Q*n< zF;UxCf_7gPGVC-r*0(u!=<3#u0uAtAJ3C*jp?+q^ZV2#`gSzq=7xw2>r*P@)*dMsG zV+pSr5@A#Qncl`PFEi-34D}PR{qgdXY{Tu>Js5cB&4O4r5Bh>aJ6KvDwSJbm*Iq!%`;J>El-5g zP1cdS#k4+mba!cP2^o$ub}70a!bO|=8%Mq_T-`4h!}!ncm&UMzvv{40@S4rTUM42t z5fT=IZhPf^s8^)BQ{?>tZq8~VtLXU?s22td!U=BBa@MxO29gJe*>SEC7Eg?E;%9xXsB9U}O$VObRt2-%_juE}A&xw(WRq z-wK`XU+Phms?2yJvbSW-`@4&A@YPg#jZLlzVaWui}CBzm-4Tx_s?zZy%8*f>MUuRygIkBTsuv6hD zo&tnPq<)^ArKI|9Rlm)Cb3QWQW!3#WF+eX|4v|(LLuAp1lSAY4WtjlqU1AMg-EfXh ziKsW}re26g15UKx;2;>a=3YSrOa%05Q-;1J`b0Wj-XHR5-`h&t%zh6wV&!35a={0L z<-d+YdS>a_LOvX@xb-MWDk75Q7ym}U_BL%8`cF@)s#u645LO^~jmA<(y1vAS;QbyL z(k^|_rYu`v=$7H^jAxG_y?%w8fd9%I62!5NygzgLoqW%e6OoJ!{C6d$mA;nvpaL)f z#`{dA{L~17hxzv+*KeUt+CZVCyy|;IWcB@80@3@DPO{eR#_NBn2KO|F`%?eIG)TaI z@&8E>KwSC%rXb|0y*5=Q5;NupGF5jcvnM+|udZ)hj}~eXd`oLz$YJh@7pVq3{`S9#F;QK0&s1(Nc;4 zdciQx2RK`NMt6nposou?R>7HC27mm+UIs1vjLt;Rs}pA+_+lF|vj7$ng4NEz%pB!; zwOebyE{NcfEjQW_BK`XH3qc!LNpQK4FcpcNNSFH$CjK)mjReu7_3OIeZeqbtJza+b zu|E^!LegV9!#-?198XT`f+#|6>{gdwMq_d*q%mE}&roN!f}!jX==k0%kbiUJYFh@} z6F;w(`Mh@!EC6gxz!%-unT$OjvNICWCt#rj6P@Q~evr-YfB(rh9?oojC@XzAiuYnQ zLbxivj;#lKVu*ornD$7o+4CW8^9Kn}ZtT%}jj z_n{T|)G;?#;?nHE6XXkH!1LwoR!~rYz)Fj=6cO`*z)x&f8WbEH?CqQSkU;0fF1X&E z)_%;)%ub|9xzVw)3=9lm1`CzFcf~GMEgK~GPm7jWxWkCl7iBMeeo<4;trFTGk6z4MFPN*&upLmP$p!THdC@z&o@_c zqkJ?u%&vgMie84_Z)d|LT|d!L`ko{I{rlI;#LrLEB$X?y;+U-KZvD)0w6aU@gif^U~ZDj(pRG_+w5_^+8a z3m%-C?*jcJ_4s_}DKj+{LHQ@}zl?lk#306|hIH>EYHe-9G7A#i0gzx8=X~ppccI3_ zn-jZ)-CK_8nwmkg2Yp93p*MP_feb$=*@9n+ttg063Q4hrhvqRR$>h9vBzkTDFQbbJ zUZ=qJ2cPYpv4L^{X=^S69om_PSfyA~cVDWC@vD!Z=g)7p*1Oo) zVinD7kIN#*OGegZh^J-Pa!5BPzC9o!?nviX?PnH$`Xb)Eed`2%hKg?|nhGOE3Q%*LpmO z%94GU1y@|h*BFm*DV}zON^Z|?t?)8>w>C#K(vcA)(06on z2fKHOiW5JX?}KxvMbG_3UR70<(&NOEuAd(u$8!YN9G^TZc|J$@udNf)_U?g5Uthmx zMeNcmmBaiw8|aA>fgU4h()|hMQ`gb)4(i!KDJ8waZrRC*kCt_NrR!?_I{A0+-r?ip ztN8ekm6j44HhzhhR~e@gVF^h|`G$v=&}uzQGn?(b4|{T7e1WhpA?N)m>MT+~C<)|y zl`hQZ_8|<5yzZkaL%%8F^&+RXv{fnn*Ef0{t~NOvzSk$CCg$>f^ir2xR<^ct%{&Oz zg?mJ_fFO@mOb5SUT{emzroq7Csqw)X$flVN5=(wxq4V#33=jHCZ0zV4Y=m-G?+QY> z|Mv*!PFn=P#pGZikwXAjF>CWfETe~q2Y>7D^>xlIX8|t|AOQ89$T^bUvVd|Hck3vE zg-y~|GSy_!4deLovNG4({E@MTHqe6ot8%WqnkpKVkYc0q-v4Rjy2Ii6y7h>jh?0=# z5-CV@1_{xL9wmt0OVr57=#G*^^e9Pm2}1PVqD=HUI)lLwLiFfShP(Z~``!EfbD!sW z#vEs#bDVSb-fQo*-u1qlmA7O5z-_}~uS4m3hIi5K!qe;sfrCTQ6~`q5Q?tm9&CL47 zhXvCY{p@VBJ3Bi+H#DS5L(-Q;?r?C#rGMgxjf*1~1EGC%!oYO>!Qe?Gil#tcaZHGTfoVLp<+0PSd9Azc-%Ff2-r zPoS;>X^g;IW2}H_K52dEM&Az^dsCPR8$zd4h0kufpzugWCMLI9PtAWgxF|&v&7r zTI&2{LhMaRht9G*tbG&JC=ytM6;s3Ylp-Tk(@Zv4Qb#ioYtWy7O)=ST7k~BYs=7gtCANe=WIY zm6p;3=$m@I>ET1AJRTaV0nO+2>w|vt5gJ;^q2kr2WRbiOz(KuGR>x{?ZOERpkS!$0 z6VtQd4SOPupL_ND56v(l;9#9kXMY`wsVhC+H;5%%L)J|+`iaAU1Krw@|6FuyYs=p2 zIkwuhdROSP=#d^fnC+!knGk-F*5awXe>V_db8?j8Rv>BTPz>^+8L~9biZM_)X0>hZ z1vMSrS0Jj;R?5k1NX^?vW_LVPIw!9b+Vc0I3JcZG+=xMfRs+x%L~oDp`CYz$A)wGb z!PF`tzhamkrq6bUEKY}`N2)3-71l75h5V?tIwaR*G4(C8(DyIFU}>=|;O-wN&IZt= ziUsK6Z^{gN!(PXj!Xkr1M*y8w>V#M!K9JjE}Diz7$ zQm{wJ9)72(ZYyNwlb%{Y@XVQ+(O$j2p5BE&r#|WDzwZ;iDK>xsa8G1jtUPhIIJ991 z)1HWKeSCLM#f-^LL@Lo!v3R%A&2}ePO7~wyad-Ej?Y(q+^s3bI)X2yYb~ zqj|dZe}9Ji;?G=W-!eh%n6piib0A6&AdsJAg_Bbi6pj!N9MmKc{gQIg-fivef(L6t z^zgekkYj{g5 zvkHDD5TOcJ-WCf)a$-A7@%GJren5`&py}DnkRxG%`n`)p7YcA!T?#OpG~a2eytiYJ z6azGP=66%L`E_~{?Xz>&Nxpl1l>LXIp;0n-A<>sFsm0d_Sl=z->>Y-OMySkrE)=YL zu-aXlWTyuTtubk)%ckj#EYDLWT01(o!Yi0qyy~5sb2FRiL^7EoN9P#pF|6(Lg*woNUx0*o4F>Qu8igr zctUe;uEUg`s9vQEA*`E@Lfg)-nw>oqNxlqrTIPWJpl&}O-1Pa>6U@M`3E@}PF0hK} z@^rqxAVwDbcTE0>kmh$KK@m`c*?C>peGPRu9HY_b5e&w|tAN2>WGqlRfJaNqBqI6) ziNuhA@4_DCxB$f>g1T!&F$`v8LV|{B*vN>+wSKV<97x+$ko}P!nBCISp0{kxHJkhS zwfax689pui(@gU_9h9tcWH?E*7wRZlG(xMe@58f*W825LtVW;?n6tM%pfM6s)NvAl zE-CCr#3f3wj*d6@7Y75frRh=V0M^@ksS!gXkkpS(zh?^N3 zp6?yP^u1~dA_nYXz;?8I^#Cg0y$;0ZM|-QaKf~@fPgauu26}p7V8lm_?LaZy*1-n# zHov)ad<%NIF(aJW{{WS`JnTLQpzI=^sXoN9?dMd4ni@s_dU8|cn`EycBlE=bin81N zJqT1Wv8k!(+9k;*=+37f`NhrRn^W?-x^#dLG#Ad-SR!vG{q_&rjZ#hXJjTwzf75I1DEHq!+5OP^18x?~S`Cm2+{!moIvkz1Mtw zS%HOiG-6z=M%t*T5*l&E8b40kU1=p)sjlNQGM#U5y6Ob;FuAB^7d`4^s=htzP~Es4 z_ZC^SiYW#LS7M81?CC>gSLwNFB(g{7g8(x_>0A?&8_MKTL!hae@rqYR+@?F;A450> zt(-7owF8C&`UBEmv;UZE++utu;GE6j-EhTN16if?gL#*i4{0htDWMvmrB?q)Fpz}EYm`k0(hI7=f8dAP6G-Pxf zE3g2~D=aKLFfy`wTM>5&~Bh7EenT^D$8- zQX#$WbJ1&Lg@9f$k;lKkZPQUgLOOhQB7o~ku#!~=f(bw&hIV~WxM=F2={qaO{eNpt z&AILNiQeg%6aAs&CwX;cs@6SAVv3d#ixsqQh=S?s>2f`|VQ4gJZzd}nWa^`t?6tmg z$SuSQ1FS;%#~#dO*mcSt@rbCXs(Q*zbG8=qWz^9kX@DWgMitiO7C<@5`z4bPW_+SS zM`HE=J4XQJ21<Ezs*H7{y9$k##3~Ge_^~^2itB!*hpp%^j##3Nh(tieebNupf_8XHhK@Hgw zcDzhRS@}1mMC(p+tjA~h#CUq12>d@&iQ~W!OIaDhop7pl+JTV50ctHTpD6!MvD#H+ z28e-bYHHOV{Fy09U8XN1=ahfCz7_M>(g4ir2K4~Cu_IZ{x)zE9!(=^n^?VlJ3e?%xFqkUI_2(`?wY0Esr+2}H$|SxhkMVtHal15+5BHwj zha29t8Ocav+eEW>#^gWkcgIee1qz5b{-u!;9Por1OhM+cWfFXmy5EeA(?xO2JEtT_ z(r2;wDarp^_w;gVc;bYm&}1c9?nxXLz5^2M_7k`NrrqmxT=ZDcYFGFlNma)qe-x^x znJQ*7tI=y@WbB?~dNk-gULPJBneg1I_seZWcIJPESlIR&|jEvHqJ^Fr9`M;ViQ;QUOyRXaZl$i`0 z`O9$j|CD)sl!*haA|pFSciuWpG8#c(|6HH*A38DU|0@*xKXqbdphFC)ZX6=368M`5 z0{pr+cadlNYy_Idi@#3o^11J?8+K9-6-W^ELrkfU)t(GY3miUQ2xp`#J?Zk3IP&Mjibm-4Ai-TBY znS?`P`W6Oj?H@KR8+W2ZKmI;{a$`OH#|6`@w*Ca*@k1-IwFO0eU~b~;rJazvZ|95j z1y|KrYu}wOpYJ*~cu;Jb@I3T1acP=kv0pr{qBn?t=Mw+RDfS^q@KS=*rdprGW~0nm z`ulUG+~9H?K_4)YDw18U`Hyd=&jF}W#lN!D*Mm5*C@HlZr!)U^g%JR9&s9BBg@qOm zH^%hN{~mkqntS>(#q#oD#(GLV*L{h{sLE6X+_Cd|Pw8n$=Lw=utGlO%>z^Q<4eg8c z*MJJ-eHv9&RpbE#Gr83(wUly(o0(`Ad6nvRVz(V+^46ZLN;x#6q)Iu2(B$<~8@a5A zs$f17(hOns%Bl>V(IR$dnX5WdV5IibA{h=kV$ViqQs`#ra>~ip2y;)ll0S_ScP%(`ov$@=AxJM%1qGPMCBQfZ^w<>+5HLq&b8C(R4Fxq zb4?@{NyaT3-3y4h`|K{aVgn3z(f52|0_S|>ef5%w6IRJF!U*V})5FQH5y{kS)!rpE zmUMjMzdCXccJbmx*l)I}7HM|bv)Q!xzlA#a+@ej%A}%8ys}EO7U(CtIFFQLqSlZ-sD zUCaClf?g5m);GZ-I2;bpZKQuiaIG#P)M1(nVaegpm}w}A$X_hm$z=Hl`gVwjs4$tl z9^x*EJzz;+Kknmi8a=3q7;n4jlSRma9mj3mOl20e4DVt6N}XfjPteRf*Ak^qk?BNN zr=l{ht1XK=+)-3ZG%aV?5QoxO+S=aIRD~@=M)wjLzXqkYkX$WF0LNy$3P{&KXt$6V zwar;QVwN0}I}UyHughGdN<;94q!hQf$%1Z7)kJvHqzIyx6K8(%RU0d;h7OYPyZDPX0SO4b%cxRYmIvjEwD3d9KaJ9C;sYZ|`Lsc}vVBzI{LfG@5hZ6#b`qh8bpth8KTm z@WNh*%_zX*A|*pY=3zZ5s+Vuszws9Vyf?5ShxAJg7;A1ZhwZ0X{^$`5lQ#?mV|P?P zju#{?c#1Vy-4EBU%HM?C+|CGf2*w*TqYbV(BCohlHSu_-1kyO$?&QA{lIF8`NN%`2 zN=V>(jpk9)qYWPSQ4Hr;3+!<@3#gL`j{b0 z4u1XXz>>E{*P9pr*p^iznafbt0x!r)%CiR!FIx{~LCT6#yh+K)&mA2JV->55ilRhu zzUNssz5X#1<#PhMj!?cxtt`f;myEqlC7@{X| zP2o$h2q#w{hU%O98r{n<3kuW>pxLbtvftKR5eOj|DJ3(EKjKdmi}L zpx^;G?rzhITo(giGyW>zr)?PlK0JKkM%H?l`jsr@rd!9!WdKy{8dpZG>X!blvjNt`DQQ z5otWUpl6dcD=DgD@9pGwGZ+^w5KBS$V@lYJ-=^Fx66%eU@h@s6be!ejV3jMb&no(n zZH23g>yyL$qg;GDK=&4An}Ufh5a@{t)3+;zw+&bdoR(V@Z5fw-|I$Q5MkMC>XO?W( z_t6n>z!Y#!L1^e(%}~GfWQQui$FYvdOFvwODtmXV_XKhftI^wkop2sMK2ZFzJ8sPM zG~A%D_l_(cg`+ZK(uk|RFM0?MmH*JgoJ1*lUwh`@PYmi>QV~C8?H0Rl{k^fH?}`;!hV6y{Bmcm+LJCZK2++d-+9n`1sE)F_`+Mlg)IJ zohM?rPFUi&_1m!tm1_eY*^Uvw{I$(HKv&_ODfi#q-@E-Oc-zzN%INp!^hw=S7IN1{ zzegf#v_(o2wrIc{Q`V1ZUU^Fr!lGExU;+7!Rqf7KU)u3`ADSQOCgJYx{-O-8A-k36 z*rrlhcREk;!v^KQrof$GSozK?bf|Z&ZMNI1kb7$89*gm?w7P^U0dA8 zx{}WJCJIdSHJ(__RI78Zi7Hl!8PEBjXV=EH|;LO&4Qk37S&`TZv2=ahoV#KQyFy;18N zlNhRNDTmZ}CLJ?sBAJpX0jAm3KZ1{wvJE5?2KhgUfK^QNij2F)3XMW16JDu2PAs-^ z<;hs7)oVOl@bW)dMJ>qJaq$`W7z$^KwGky%i(a;w8WqGl3)Oq84MWT@mty@VY@{L( z??~xAlWLCz&$X1`*g2h32i#R?7-k8u z{MXi|ww|7%jm@uj1)DybDA!fyla$CWj}R?^*p=MP{~H5=Hxdh}%Tq>g!&8&Gq;Ewl)6XEXW+b zZ9zvQlR#etn7K_&GMTip7N!@`E+guE!s;!ndyEF=bzDhW5t#MG-=&#~i+i}jLRvJZ z#>^E+jPwpHk+(*uV|{UG;Lc6Y1pc=D*QL-4=BOGQK+?mGie za2CwyFs_N2OV@0Cr! zdgJ<5WLS4eww+;l8)_5OFiYvFTM?w0v<&|NMqTj96tLw;R=OQQQSuYq;g$;f+U$Fr ztHc>*vXToLPKVf*S05ygIxTv0m4%KqOd6kG6LiBkQot@?7`43 z(KZ?}BhSzjYRevd7$S!I=gf%o)kd0jdjau;gCW)2K#XY*eK{1qyXQf-__cGbp3Eg< zul%`2JdL{9)o16=O*CgnKP+f34{laE65F}3!rIas3@WzF&-xrbBqHgd>@tKiY zlMByfD@vAtdt42spIwzsT7y) e(0fDY&S+D&zW@9dt}y@uKgtRk@gS%elh61cx~sans-Ei93ardRtZy%YaNm!*Ut}%aE!=EfzSufDAt8BZ zWoM}-P`408OfH-7*44T`doLl2Nn@`36|gnxijHIMW;%cS zRWEarNYT-}M#;u{!=)ZCZtG+7^|h$xcg^wrFk4$xImc3qO$l zS5b~S4VO6W>%_8WVe-XpqRMEh9r}IioeEor)Z3W84PE#AH)cG|TAkKPJ~J65g%RjH z_j)+B-|IRtQHP|QdZ(nZQFZWFoPRr0{S}%NT_mSD9%V7Wo9_`PsY5rh(noXg(iD}L z)?igVDI~OzJda8)vQ7II#*vKHgd79lwxv}azY|GnOprQd!$zy2Z00(@NV3c4UXC6= zu6S=d#JjTXmYEscm!!v!jD1h3DE8%VW3tAd)V6Kq;bNI-55EU6*#> zOPc>C4_{zWlksg$@pr0*3a$*&qF$*OPreI6YQh*v{5CtT`BCNI;X|+P=cT?u0AqPs zS2c(<5mfaK9~RO;9sK6E_X}cx4YicbU3AHtV&jdxk|VAU1<{iA0)hB|_X}YUiC`_T zsLLVAey-|RGG_yZX&>-*ELg?be3+kM#r(CC6P2of&0Sy;(j04ZEX56$reB@2AB~dn zwu{L&j^+8DUJ%LLaI52_?$+@zK*kzo_TxE*A?ogm*iuL$RV30!t{#dAv_Fa^IIV8) zrQ(!J+VT`+BmU;UD`_*`KdAy-C>1sg0|-Y?sJZ7UR+Qg}@_AzTcXqmLpzNc0660~T!nAs69c4Oj9m2SmhPcT{oFv}-d&5BljN~8$-c+D| znUcc7%Q~pOL!oDJ)Rs}o_;opjnC&IyGK0JMPcs(f-%g22vtp+9NBSF>7hPA#;oJhG zAHR>5Gb^nW(fir=2mSb^K)q%U=Yf}*#>GeN$DH~Zeq>K&6#aT89eUp6g)-ng;OUQ4 zaWNYFs;c+-%Rc?>vg4>*g~tNFoLr7yT6o1t8-;zgR|@L_ja@8 zsfm0Eq(NHHQKI9XgO??X@1{=qMde%5=OuCy#Qi;gl`C?IhjRIt?v*KjSmXb@wIr(G z;~`gV-Oqfm?>`}seKd`{R3wh-lo=h*`=D08$B=3P%i%2~Q!Z**p&D-2wcocK>|mM606NEcuAyhlx3;hL+m0-8F>_*<kco;aE>2MGj1U$4K@- zw{yu!&J%SOnu)#}Ak<~*n+U;29(+rvp(@U8Zu#5VIQWjw2zN^8WR`DA5T>VX2f!zP zCWVMB>lGCp0#@329+pEvl{x(O8Ov<8MU9GfEi60cKWiLh43>mQZ5DVh@G9J_>pjUy zCQ%ppfA+bMM0!VbTR$0=lL}Vvd_88cpAd-{i4V$L!*y=Jn6PFk!Zl|u{B2C_d+WCY z!sZ(n?|g+SJxM|>9xPz&OLcS3(v^eJmF#5Xp8Ms91b8emNR^TR9TNZE(+NO@ z5ijIZyf@D~Iu;4i`i55%O1!|(@UDevP7U=-ruQC(g49OaFPyMBc3eA+6EyV|Udv{Z zeugz2W(!I3UhA_m8lJ(t!#G$SvFGS?BC?m1;m32bSz&^%zxu(a`|Pp(F;rp^w>7&M z>KI=n#euQa+wmA#RVk#TviFgmXETXOD;O^GD#`-V2lT~gw5V;C>fFKXvLCHxh#($e zjolHevX2!G{{9ta&=piCsQ@f!pG| ztgV#$g~m~#|B|QfU4@)9+M^>U@wY|2m@vZyfkx2+`^2D^W=)Dxd`Uu0tq_y<@pg{) zFKf!Mi;3FRJp1BcQNf)@f_VvnE|W%#9`RUw<2$Sv!neO^rxR+`x!N8lvX{ChsGdx> zpKeGtPa=gPh0efhF!Bm!(%J8XVmG0E*e!k7$c{~b;v(@peO?|Ja;kKUb|YD3wTJyc z#iz>VCdr$X50%Zc=10c1mDT#G`jt&`=+9lrN%c@)(xWNTr*nM%IhHXDfw}IjufAtt zV7Oz!+JpIy+nsYu*Ss8~r{t?r3MK2}j!nVd~~toyyxq;}Xx+E@Xd>y>~=(R#2p z%%?nn9L##5&VbDPHHYuTwPkR_3F-b%uMR{;NOG|cE0CVGWIL}xxV0yNKW@T9E;;N{ z4n|c@;O5o#tA*=a1JUrfOu++@S8C~uT{Zy^wOcRBDGKj6Yc*bw-1)9`eXA}3kp*{OfYp^7T{(C6WaX2s85tz+^+oz z*XwP6f1+K_>KY4A_oSoXJN=|~ljhPsVv`RSz>(ZR7_JRV}kQ_?nyV~A#A<{bT~8&_wSQZJFvLJn`CIQA+wfDVi*H?81K z+(-0DDg;PaR~gz4A4wKBetg_6?LhKAh{>%Fc<}6U zM(BS-VW=09|6Mn)!*ZwIAzciVsSm1ExbKX0bXKnh?@xL_q7b;)c7k?{s-c@&K-4*B zay=&1klg0M^QvHh05$-LZk2bQ4~EOtii9Mm*?xeVAD9e!yc|v0m(1Ze7|U=jHFKv~ zAuQpw?>0JnFtrT2fH?hB%J#40b5Y4K9e+$&5ks)C+Q;%_XB0I)@{JBa- zO^K9)?w+MVaRP#AB@>EBrboVXZ{6X883OkAJ4wtXw0*1gz!_Qkt5{@4{MrbsuT*y@ zKl{U=oVAZo9oqjAf5QCTzJX$AXLoHdk50Z{+a)-G(|C8!ynSkcm}xW= zPwJi&>VhTbBnqaMah=FFG`11!Rtw-0Aghzij{p?)`=EGmpw#UnM0{{0;qq3`qRG?AsL?-0ScWv%cl^c=7aLc7^+m%n#*s(P6cI$?%zo99S(z962aSgAv@a#PJqx zs(3!1$=P{hg{x)#a(`FH9yg-OXL%2?L|D_rw7}|$qqF$6u2gxZmt$WQ>tERHl8eMS zX=?-8v#?RF4i3f-{=(4DLAVk4By=iiQU_*(KTytMX_R~G%t|DX(fcB>7j6YU<8z;S z7|x%YR|tV@|Fbq`&8ezs-&HEWW_Hfj|{aeH0arwx^ zz@QQwd$KIdpZ-Dr_15+_(>gpgwj;rm=Qs2AY+2SkIUU{P_dg%BOn`FW`#vUmb#L9% z?!POrby5i?l@}+Khac1>y88?d1Hl%8AOs7#F;O<*@IkEFlv^L5+`b?TvN$|Ps$*Z32K)9ui?O--nRI}OLAgPD&N?u)2*T+8C2oo{ZU z%3WXaNq`+o9=|obmdvfLHx4w+B9zki6SqCNdCU!H>c&6c-ttE%Gwq!{12^iG*8y3u zIns$IyXbDheaGeQbc%6jpz(JtQ8ieF#NiD{|E~^z2jz12JeZDTwHE7~*<$FDs_!Jj zzGhR%Vu%mA<^>sFtT*KIbO4?VK}$a$;lk(88R-8s=s8k%UkG>qSKy%c1f(3c_=++G z8NFBgXmg|gS{-*|Kc8D*)tN0v`|AnANYb~eTZ14PVU1dVa?CrFNMOD37WHOV;a8+S zo$1MP(`PHI%c(~QQdZk%Y_8N8{!|W4;J!0m$;yhwexasG%4p~EK|wA6zVH_$?^f_@ z=Pu!=N{0|^%hpk*5ZJ$uTa5y0r&2I*EYJt;JHWVvfr`|R5)euGZ z=hfp51lYa#GLcASQIjPs5}78L6SFPI1T-RHqbMhU371|$m0klz(4@p^Y>&-zhS(GB zB1!Kx{7r)*WI_4BIoCL-F8}l&TJ0*`{1%V6N0chv`hp?Ss2rYRoPNT*CHo6le#fA1~i=r$T|j($W(1m>!>G?xvqfFsO=pJ76 z)0{Oke$ErQrZM~hG!gzhv=9!tHR!kjU^ixTxy~RDjcf1&u%>#7J8oieqb^Sv{iMv@ zHCyd`b2!&|{tGwd;9-@su{HC&&7iDCEDx-|s`|HEGK466qrLW+;*byprUf zt)5iP5&tN8-kVr&`a}_IDDd9=>SQtY8Tj<$@{4eVUtR#6&y(-vqaB*=iUcs#O&C;q zb+u&j$r5T^XJwbEFXNlZyH(kg=@_^m=2`lu)tNl*!PDbNS#k7mz9de7o$!9bk5&`G z4kEKafp+RIGO1qCUxQAWS zq-Sep!!KK7fHfbru56I&YJE}d^x|UK5#?EvC;MWfPXj`m+ytD!z{|_aConoZ4AtB) zrke!5fLi)zI7g9aalsSyq50rlS0WsA8%IZGQk;z|uRtNZh(LQlyb&|Msp-cp{XL$} zBc=?ftu6ib*7FmnizcCz|Fuo{Q%2Jn>jX)JmR}uZZbx`~zym^;VbUgK#Pbzzeq4LZ z(R;~}iI&>&_vHt9D;F1c{sCMC9)38BW~U1prjSrFA7AJyv-Zo}a+{LdC?clova>(U z=+IjdCVAP|hUjbHGnI2!x$)5)V~=y!lC*Y)hq6eO&#{^uf1`NuJDZcidMnpG@dVb4 zd`FwFHMLDtL$~1)3PF{G)EdXP`{Z76Csvu0g>qmUJAN&uhgs(IdL$%zr1!G#KE^(1 z|9Horp>LfkVNJL__VU+kiM%nC=hQ$CL$$EwiViPA37CcgH-`0Y%m|Z*uK-rcuH!Z^ z@`FPkw9eg?K%+x-t^m(9&BXyxz##11w0g`j|0!Wapt`Bt3uHQMbG6*oYuxRU$`k|Xs6;XW3rNNOIRAyFnmYL(Q-H;&ePoOMZ*AZ(`?YIVv8fsAK}3hPnc05vGEq z(>4AaZB@%^Q5cYSeCfjs&r*1Z=IClBDKI9Jn%xzIxO* zKyD!cO%Bb?%~4NLE^k(Jo$rN&tkVjb-kz)|4CK^*_q+N%KF<8=Rb*`-KycRmz=crM z%gg!*^My5j#rnYYWs&8UhmdC_YE_egsDM%IKJwbOC!Za$|1>>)e3mVyILYWDa2Iz)yjM?_25c z4=6~30wwI=pJfI#j^NPn>9I84P>9$t9LWMSDnu$dYqfqk3l&%OVh zG>S6me}PJ?xAW4{8e?>jYft{{2M1M0Rx;3%hFA@X4+Zg5fOij$Ez(nF`3r7t(>G=j zuy&i7*>NUGu@~xLn_59kr>%|fPdXDB zci3O$v38H6#d?d^L0YUY@LjSyrHEz%SOQ3#zAhog@O>wBO;(u_^dF20=XzJ zaDARz?-$1`Flxg2MZUMV+oPzY zoS}P@?{QIl>0^xAowH8aZdoOUo75K_5WL+Ys2Ro8qU78p1lSNPVK; z+qO*8*+n{`NQ;3yaZ6-&a9@Q#Nr}pPT(0UKTfdbDb!L>7BSdb|2)SMe#=a#}O5Uq2 zMVLLJmFSY{SNW_s#<>aL_T=k8_WI>jS|EWH_MYN3t*D^6w+^aZ%gU0zw$)P1n^|Zw zi(2fIP#}`6V!+Wgv&^Ulf)^%-2=9I-SM&;Rddq2x@PfucGHnn;M^ww*{6+4W)x*0c z(uhyYQ%GtY*}kmL@ZLlb1j`JwUB-)KhOIeolGG?M%lFb+tAks8LLtg#l=p?>0Lv+k z!U`23%?CbyKC~Y0j7*3t>z6U$?xy)y=F-k&!So7_GmH%=ndV02NK|}D93{(`=)c5k z$t?Wu?q9**(U3Pi|5L8`GHDyfHi-GZ#L)9UNXq|tLNT7b2s!1yk5lU?{-1XNZ)?6` z=>F$LvTlY9_;vsLt*z3OrvL3?*fsqB-NRpHh23lCnDyK0-8eHyK}$fT4;!c6bu)LO zqOU?CocG@kg8Z!W{TNR{M2Fim994RBlIy#UX<7?_viZF_NGq>}99KD#oQ#4l7jBNl zPGq|Rjuohgz`1HGKNr&6%*zoG7dYh8MKbO#N}b0wPglSna!jOq*r@&e)!d$533nnj z`+o+N#EqT-$p!*(=sK7GR0H!qY*qfn1AHW%w%b;TSvfKHPhaF~D)#3=*2cUeCJVsK z@<;n9?5AD}II*PB8+9=EgvxviJEg&mqiqOtQXkWQCM4cBHW6GzF?WpOe{QGT?`aSz zvhG0QFML&L_5)im!=&)yB-$#h7&}GL_myWEq13+#OfR?~5{f=af?!7Ou?~PZ7 z;?7LdH?_%_B;cESV)GJlK7OJ%I&r%FP4&6_C+aiLMyqE)+qWygK-Ues-c`2c?A+YJ ziCSrL+vNJl$Tj+dn0$uOC{2#fbp0i0b(HO5zwAmF}-o}u2^W{RCtb&^44%%-w4&jq> zUOvqD<>m<^P`K#9`LEwGrJUI(RCY`6B#?tr*u^yF1E^e;2tHd5Y&nMg`SU@l>rSxZ zr1WpuwhGa4$fa<|!PM&NSgw%lA>1c)dE)w97+1H&vs$;+g+awcU0PZ?EKph+Ma5+D zS2(U-i{}ZikET(&q{+7wjPUSpDf7004Gp}_3TdB7(g9KHcnU!W3MPg4SRN2UGZhsT z@woj}jKHTNGfR4q2I0A2&&VMzmT+^7m}>);aOtBXu&TkL>FAH)d2R^wfL!GtSLs*wRN09{}CJZiLLieOkiTV=;!T9# z7qqKLp6~2z^%0KrN78+d`bYCykA0oW0Nz?ecsmY=1gOaQv>|Rbb8EYkM8$N1C?VN@ zs0*r5iD$MHRbpZ&N}FB`y`Te%@TdZ#k;+!Vzs?Kz(~UG0dFZh)7~xg(f*l3lHs!28 zw1JqnE)+Wb20}>*%gtkE#<_17 zPeA*!GXn_ag6>&@IMk;92(nn15DgEy|1t0s+1fhskkbtMe7%H3&ZCKEfwM%)AMx93 znL>>@(>#JV9EC;yl2HYP7o8QrXz!j>$8S-`PH2!eF)Pq`?kkBhP;iyN`JTv??APwrWWL#3?DGDUBHe=A?Jv=*tA;;+{-lub_m%~pZ}tt3j4%obrBav95X0tE z$P!ah2D9F}@7sk)KJ7Clrlur+;9a;EI>?d?Q`g`p9XkQ~^BSU3s-M09irfklD% z_@wOH?=}lB49gs~#1nROIPVJ*Uq+xsRDO_AZxbxGJtN%%?vub|T+eTG8( zXJ<>xggxzMkIKc&ob{tLZYJD`^!(%Hoxy{TOyx5ral5G?e~NLm$t+%($IDbge#d1S zq^t>D&l9(XjjR_X#yEg#bnuM6%!^EkNvQoPm967eROomwgMn4kyJ|=amB?0#uNO5{)*Cgv*E21=(w(FDd-y@H_6> ze77N5%cm-~u3enF9~aw$QKLd}Gk34{@-jEVR6Irqa+F)hi06yYF{p%L)YayJ~(jysk71Dt*v>r8-4Rm@% zQP)k${AL+|m!AzuQ#IX|E+|=Q4A0rCLPj+E)wgHexi4rz&#&BqKWeSqF=C&t3uuWt8_-m;2z!wD%aC7H#=XM|E=aSMGA0Wl z&cjzki9p`b9Bj&`{F@rSfkJZg(8GU_zV)X>enx2r@6 zgu@{W5EJ{-Tv_fwkGL7d#k2iR^$7AZ*V6f|uu?~h&pOr|ANLhvZ0+pK69$H^?}G&c z9{k?leuW+I&RgGpTJV%NjEN|fJtoAMn^3_yqG8{FJuz5RQsa*p=jN|^KmLnOa+U?NjEC6WYBl7n zpEswo2>*G!g<&B!Vfm|-X);EZ;gSqf0JA_mjF_r26HEYL@?P*FiV7k4Xef&(o@;3K z7`ptRlarJF!NCl>khonP8U9`)V7xXWodwaaz?%lDqdSE(6MTNvy6MN)S1dfvbAsBc z8u(`jMS!evg!}EN4z+SR*@%r9+j0vouy{oB9S^e&>uy@w2Xs;Q@3&wi&kIy^UwDyfJ^Ng&%`_Q zIuR~~AUj{c(2Wt`04pxQ9M?Uy6Gn)hYt1cex8bAmm)63)-d2;Vngcu9f{shf#+YP= z{u0{?5buKn!nQB#ZDK&fAz*mlRa+O(61o8I$Wo=hRi~9Xl1ui6foglAiWREPe&$LK z(H;A{3cP%R5nmYXzX4$k{u3~dxbsU&Vr6b3&Qy>hqDAX*j46`jd#CQ{zAgJnv&VbM zI+snHE`+<-;9|CC?H&*yeg=Yzr${yv)rgw6If*?SH^c%oqAAJh66t4wcO68~v#vYi zu&1M1(8NTxsM+$HnQN~xHS?h@yFsJnK_9Q@2&;8bacGJF%z;q^#J>faKDyEcJ=LQVA2IQ+t{y>OdP^w+?fukpJ-S*Ttw-j^c(j?jPzHzQAePf>f zsAEJkS`RWs^^ldRvUg`2-U-o{#_;`fuPNhoh?m8dg$8x@E_q&8Rr*FenaHwq$sr~R z^76_GlU4WN;NYQ993nzu$VG01e4J_;G9=d5@EC3(%DJfvf{YRi_kYPw^Sk! zSpCgar4iYYT?VFfHFr-1wpxFMqnP;Xxaj5fGKk3X2Cl>Mfrj8Qmu-tiCi z;lbW-I^zCecynd2cOkp#M8<&QD0r&+RY)to>&K6Rz(pSO6HkXsp@x>uEGg1LwlI2T zKsOK2kp-xn97>|1#@1yqA^Mn*<{kDokNO^?-H@G}SrMId}{j{fQZa&Rl%MM7lG_IFK-f_PEDa+c!hV#@t~5T*!>N$L5oNmxQG?p&_oa=zXk zA0K~(WjbHiJ=Xi_B5JgNd(~_~)ulG~SCbMC4z*CkCx@ul>F2{n+mgeWoulU|mGZ4Z zFq(#BQy=e6y;y7p+D>d^6E(HDA>S+aN%5h<^DcP=aSnC!c%--z3(^JJKIGSet$Xth ze$dDMpg{;lVLWg1T`6(D8B@>PcQy+}Qe&|-=<&-h_E%f^iArNi!HYN}c+b}6q6!FT z^Y|Wx`LEF}qooVzM<92eXja8ijj1iHu2F&vVr$?j`Kw9>F$U=e@w6W(n-!H>I9pro za_@q%t|}4R3_`2_ssi@8gOLOT1iq)HUJX(?^O*fY>jJ>t0Yuv^jw>Z5jMJCFn8fH4 zlcOYPp@`^|bpA7Ze0(ApZ31RO>BGaXv%4cm4{8)j?dlnElf>L_o!NQKMD#)@XR8qY z+LguSc70E936$ARu&`K6cH3Pft{(m1nTKYMGZ2(1hvmCZg*EZ$Pie&E zMosXcq5>=Kz)7r;?%n$iPff4=XXUgB#hM$v=ASha71h-j?(FSF&mndc;v%(~5ZG1> z&+~B+pa(8j}L9 zRP|p$5D0kz4pON6i^RN3lc~;X`s%mMejZ7ba-HG*0k=~Gl{Dlov;_EAZ&W>G`O*#w zohtlmm}?~B0vlL3(Mpl@4QV~@Flak3SV3yNUB-XhliWi(|09|DXDaAmSH}V&79$ap zlH@I`Zn!h0>X;j)k}x*-{g5P*E-0`|Vge_i9`Nrf;K<=J7T^1Xbp$`>?(@DOp9>>I znpYQEctl~14tXYh+?XGWj-wu)ZvFG~uyQ9#7U(at_)Tw=1T5d(Qp_c7X*l`R%_%PUtGc$}BvQ!li{LIB2Tdn?U;W<*(7Ul+t zB4cA?ItTN5zhvmL{q9?~WjZl8Up|n0jgktny7#h*A0ftLU{d#e$e$TCEkoySHh)J) zqFqmC%VNZ4hvFO{uIk~zA-qSu6M6?GAIq?uXZTXcIdb*wdzwvp&dfpojvFA?cykNv ze-SCKsS#9#kF9Z8-mnVXyjxL=W~gYJQ*m7w!jlC?qKZdK;xfZsJ8Zn8ojl_ZcCVSe zH!|L~1xCTy(qmSVH`_0wbqNNL>^+OeZg&aDgSWerAL(4R9Ydm9I{@!%u2F@A6+M)) zoBU2wj9{_EZpC4tkJzJQ5kNmn^H>65mcVQ&b>K)(tww9ybw-nS&6SeUSyAVEl6nRh zo43c1F?K!qIf5HL_)v3#kJZpP5@`zQPrI|%rd^O<*;d+9t+;$cJ^Lpdt4%Kk$8_$f z=IE^Kmitm~h3@iZ&KRSV2ni3$*BpF5yy$!`9&wBHUDp7#JkC-Q31G7z97Hru*t@|~B4*lg3>SFeit8_cH#T_<8l7$smB zr0A#Srm3Z>L?^g{yc~w7Wj|>m!oj!pLOquYC0J`{22x7iC9cZfD~a^!dT*TqQ1gq+ zqsGo3RI!39D{vUl0KGCcVtgifjoX9LRw^nstWrjVvGnuyRNzJ!Nn)i_?}emQ>{lz# z6*1c8vt^I5z^fOk$8x7g27Tqv{9q@sUlZoenx1?yoc!Y`RF4-x^=YslmB==Z70hqN zbwCSHLLQfG`=VDQM-EGhM(ZyQ14g0(e8&>cH(q3~yT!2o1TOo?bp8snll5tkc^!&I zRXuJT^G!q#@SL{7JdHqgb>Cjg)Y#{1GcbrbX^{1?K4FZcK{OumM~mYvp(o2piuv}W zt)*pk&x@wSF;=uxZgs^%(q2*-750eBg;)1Dwaf_MtZIGq&iia-$u=09TN`j<-+3`e zr5RVfa{Ic2;(UR%m?9&7^>#|E{iPmM}amt**v5F=x!z0KSe~fBAWPHgt5M!DB~?{r>&S za1g2WSeETD`34m^OtI=}fZt*TXuqk>totTZ0vT9%g498Df+{LIR6UQPqDWq4P{QH{ zC1;NPnd;N_4Ca<@2Y=dt6*+cuZCCR0OBD#S{@HZ}TeUxT9h;V=?X{}cbv{0RGKQaB zBCGlWN8A%BaglUyq(%-M9h60X+#Oxcx~1~I<QKL=1F zh#}+LTJr+$Y$r%+Pl8J1P3ZgFUO&YwHo3U~s^>bO3hfXIUg<7wj*sMh2)#i`HTU#` zoio{_&J?++sVU2QD@yZ>oI@As?3R143ydM0v82i(qaIwBVWZ8Dit#>RKY>1Dsi}DB zh7_wZ%F2_5ATkHVj2ZFwcgJHAn4_@izjG-nExn^$QdLw8iUl1y7i~H4f{lNZ^Dlt=h0Tjbv?fbE`({mGb^yFVerj=8SJ^DCdyleSCw^Sp@v){va3kYKa zFh_roTq<+aN_MfHqE5J=&`9B*qZsCSh-_wKu=cgHC(^0h2UP+{$ay&T0A|m^TsPi^ z2@u>CTc-lt9xsh$3UL=WPGr4>-Xana+f`GVV;R08SwHRGAyOv#`@aBjq9W2^(z~jU z@q>TBu+2KCcMosaa8?=P9$v6p&ApS55)$6>cBf-hfbux5ZxxSHlXzk z8)xEyeGY+V=IQ&rX8-X&Qy-zdtzp4_w|>JXWC&7m?zpQ-eW6LJ$8rL&YqRdxO}v{1jGK>foVsqDeLrc}+cS@_NopfJX{)85>>Kk2oRabJ1OofdaM0_QFn}8& z{+ov%t?5#f2f{>+$?qf%goo+r-iaOvzwgm^Pm0Jmn~Ar3o4xsPd)|CAZ)1}n^*%~& zI9{eP^6RjB-shq6-4^k%B$~)1b4S{reVg=bY*F#?0Ktb39~7087@3*F5uGI^C8?-~ zQtVeap$0rk>3B5QeGqpjz6Q0dRF`}>miR?yCH^V!t6&?azJUq5!ZotB zJ~#z(der*#)3py{`dhBL1L0^uhS)*7DEc1kx#_#xGLTne%M8)serHol1HIoY_^owH z`DRNEukSTS021v7LcTBzewFe_z_ zwBbaO6Lis z_EFBUL&U+qskx1f$=iC#SoxaH=UTJ4yc~#fTxqU%%+x3N)InL+gs{XfeitU_L*Jd> zyYfg!{O@FfZOM?PO0yHY9N@_(;NfBj_*~3^gpV(v#7ZjLA-4kmd2lC+QpI4Sz#!O3 zA%7Rh&hzBqh#h@P3r!ec;*s~BljCvtdaE&usF3$=lH-XLP_O=qbhgw57|hPjx*Xb; z9yp)&sk+QmNPXd60|QCKB;nw*Qt??x@9B-NUmV&iW)_^FS*F=6NihWzbto{reV66^bvqKCNi%svpBKwVaDb+vWZIqMryZ?OZ59s_#i8on134 z)~2U}#U*I{Iz_NAuH?P}&(#F*!ll1_`J(F_qT~N;D@(5#eW~#2Ngw7E;5h&9*6G+9 zQdy!5YBtYSR960V@DV&`G=7@K3z?l0xLS_(_;qagO$QNm(1)2+ccwQx_E#lY8!a`u zHcTBt?RLf+9hs&pq|sgkjkxQ-*GaZ*I%v`dnP9XgzGfzo zZB(o!7mE9+2mO4EX({~GW`2m~wB>_|#&fRl=P<0Wfjv5rjZY5r1#-S}%A)zG#>zLD z2KwJ;5ACM4UNi!`WLL^{a{TQG%Q;e@*Q!`)Uw(lnpOb-MvyR0(ubeoe?F73J8{>Lz zv;FeA>cFcRhJTq{LTpiCMf*)_%c#gA*pJ@{~{plc##km z7UuMv#+ScWe?>|=bOx`cBQgeOSypH}to7ZiVHamtf;uKH0tG|rZqvFUKAU(KUuiQx zOm^kL7yz=fqWWO+URAYN;u-yf(<=%*V)FTAQ48*7&WHE655uot^C@#BxjRQ+=n1DR9GPS?9sDdgVu0{6Pffh29rClddb?e+wt zuDTsnkHAJ#qVB!jb$Y~dC{}Z4h~G;h;#r84R$ydw^sRsrpsu-odFiI4q*O4EdrIi) z>Ixn4oZe>}S(%-c_4RFcN{UAt-|%#-EvufXls@(<*OHEQ&(>7V*%3LWcE#Vw*|&AY zO(yT!A88K7e6Eoy<9U7F=_Kl{0dZ8y=&=fCD_B;UxaZlOgxBs=-PBCykxz(esR{i6J z0Dq~Q_IDS)!B>9RXl`h!i>g8pAd~ESV7Lco+HQ9t?LQT_8j4YlcG0@>o_SUOOqAyG zQ3g7vEGu7jyCX)o5Y^)9NXMAzSQqCif_q3a`f@UhI&C{Q)%dKPd}|Bu5SD7Sakw`3 zF=6R*ik1XaSO!LmbSRbQu_jgQ3USou9t1@D){c#v`-~S_Ic-2nv3~>9M;4ZsmoJ2K z=k2k&u#!@`s48;)sZ2MqTt^FRv@>Yo)qfpEhHl&jW_IEcy{zQ@YIUbrhSj9y5K~;^ zc^*5G$A`wUAdFm7>TklySQRJa$C!mcu+!q+^duFg{2M1PrLJT7c8+!k>XdeT$JPit z<|F#5z-8r+t|%+t4uI<$gVZL^ZX5T%@iuh_8BcF+azB{Q2{TQKb$Ms(jYf zxTKlp>usx5_{KDJWP_uh2?6k0A<*)_%6-2z3%`TJAw{fgY`tmgd2-R?JY8MWyBDlD zSRil$Z`ZpRQrzTMHvde%!5{0i6Nj-lRMX3iS!OK;c7=wWSplGc&B|?;g zt}@09(rzkdDgaN3DAL;U+G(Mfx;z4jMgaVm%yO9<+ELS7aE9?QP%iPcwq_izA;3 z0Lh7pk66R512smNgp!Jg*4?tK^EJi@n{4dewR=|F~&iBUd@bGZ4IiQ21ojXytXV^jkC+JONc1!d3 zBe=D-Iv0_X2~v={*J=GR+rq> zs|tK@)YR54IaALPPUN2yQGNm|cYnF|`Pcmr5Q7L|AR!Xl)zuKb#NLGEc!of$Ay>0A zm_SNZHO`WywOdT9Q|Hfb8TY-Utz;sct|2Z1rdO`{Y*!o_KNehj|JCufAaq9Y;>n)kqqkp>@_*cdbAGM`;dEbf-Yz zZ?(ngBjESoxK&IJAC7{gAHSU)Spo~^=7KvuLQYOvqFSCFaG3a$mb~i{amkJPC(n%R zppXPgy_YO1XNUSn z%oBlB=m)s>tchGc>uVtM2fGd*;JPK-)m2p$3%T0U(sLubD*O2;?3ShWFIwok+=4j% zP!dC)k@-F6w%V#}60Tcdf+5VzEC-f6C`$f4JlwnEcClogdvL;u05>T%_MWoXwraJ< zomExwY5VvZqoShz?(DesWeD8Evxb><3@k$6w||ovZ${W}Ebg@}n4SafdmlQj@Zlq4 zvkCc-;a6>l1*$3;0fZtk=7eggy$wg4VR^ar7U_PM*Cr&@*sIyb{^tBi!Y^SDfMO#j zC6Tn9Xxgiszn>|^4LbAR6J3Mm1l;N&{Ywu1;y8|!%j+zWtd^x@CQo@J0q%*l)hZYH zYjre;-`QYSyn`4Dz#NW<#UtRLygPgxs-9lGZvCvZe1_hD% zLsttW6u-~ApD}rgu56AV1p6gaRJ=wY7j@ri$8uEFoMarm(%2kks`d|#cO)9j3LA75GM+f z>gm%0xVuYa?fDIKn3f?4qp=nW7CZ&x6;~i&iO+TJla6aII{7)`pj4gx0#}zaA|Wu# zb?`+e;&_bMML)^EjkV+eetWyp|JQYZ19Gz#JEmwgnXet_KciYyS~4}e`iqXvTgutw z67c$IsSsYyfxD*>Z`*w}rDYEHh(eUHJv_e@$1)n(c zmfN#h(QN3`a}SS~$c{Z=yc3h!%A*$SL)>BurG9Un>TVMsX(H@f?@nY%IpE>-&F#tC zHivb~ry~=Q64}{SsvB5h8+!Xw&az#XI5+1Eae%dFvx`V}|G)t9)YO#JCy%BNx*GHd z_#X)iBNUN0qh}t%jpzh^Ti%aNe4`FJ9%6@0fvuT+T?lNJS2k&XZEHY;GwDIWyJ;kG66aX|P$+f(0QJUZhd<)0XZu3809YzOXJljh(b}quSo(_UlUqOK za1o{pS^5iG#4k_!{(S_&_q3-~naMp+A+Ip&9{30B;SRVOTdaSCiGnxN>n)Z*0O*IC zh%JFA;zCj#=UiK^lI3s9m=-te(6cdlqU^(Ic%hx9s->0OUCmqGD16Ag6?}NsUC^lx z?WkpKkp(7CM4?5Xy;~Z@@u|+c8HoeLrLX{T=xokcCvj0TF6)c?p|es zMS-qE;E!E)cs}W%~m~6 zybctOn|>A#tc*+{RvHMFeJ&|M{YF)&U(!JMaTEXk?L!dM;(t|g)lpG({dxfD6i|?q zkPwlQj-h!a1Vu_1244y34kgZj3ep170s^9R!_WhQfKn2Y4h*8y5Ym!!H}Cg-cinsc zyR+7uwa(dlpV+_OuIKkWo8S1ZvYEY;Lcyc{;Ir7H=_jVrO~1)b?n^iEPM3Z4w|9sx zExn@b3vz#x-wV1x>&E_gkcb0|;PJav3}?0$#vCa3h~r=^l;Hcm@e7o28v~5U)(*0pKREVm z9HS43=u`tk;MUd_2=hF!wA|a$$aUus+lx@gtjob6@4a&h0kD#ZiOJabw*5T&iS$>xp>#WJ6^eLjXw#_Ibv|$n|1(CBm}}vak-D zuEWf-igY9l@Ichn!`%D`Tv78!mBJg#%kB6*Mi!P288!^|nqksAGh}PT@87Z^P~I!I z+HSWC;4UZ_cp$9_Dq1MC>s&c&zT$`Y*pue&;1VxXs2enlp$}HsH(TOmu z>FUSKx=Cwzo&nOrQM?EW;4>hU+$iw5eAC(dBFrU!beFBu>Jp+G)^L1?K0YaRd|%(% zs_cXrcYAS&1@pJOQ!0t=WFcV|(4JDbG$vRY@DiXI=*7)H4xm$&e*0id7E(qibLq5T zy%wfM4~IC?v1J2ab_fR;0%sNS{{1m$jK$;kG7MB(LxGzwmyefP{TV1QVr6MC@?Zj{ ze)UO3Q4tXi>#wp1{sQtAu}=jB1@W%kp7v5JNT%a=6|qv8k@R;~liFkkT|#8G##C0E z7y1`_pz`&9E(sVwYYTYzFzAg&rdEPS>Eor6ib4EQ!_v}B#}&c3NpPxe!;Vgd+QghW zRTN)dkBN>RHNF{p@#_QL{C1LIS#4yiiWtmM!U-i}e3zApoqd=LxA%lEuhJgRy>T)y zcHYs{*4_eD4EpYKUDE7q+yuS=h+K?>G#@?UvxX|n4j_;Q8lCYyo}1(e(QJohq$4Pp z)0jU?@f23efjRAWgRX)xKi!An%^X@vN=j7+{yWVR(`CHVEcgh7z}()g4RiVM+%b2@ z_3XdjYN6<52XEwMO-w8A1+&Q-xi#*Y{yIC}Tmo}!9v&Vw0&#I^>4h;dz`MJU{bUik zvVkFl7z=h>aip$a*eCTkCJuPU6WlDydKyub?lRYwbxFkZ_sP!C&VW0jQ+nczd+uah zT8VJ717u+8VlN)cSoVF{UGf@BQ(t`JS~c;$nnlm5f8t$zs9d`tZ`gCMF~ zEF>b*X=2Ir&`%J7(ViKN&-$J7y*&%k``}4%0z##4x{osEl6r5 zx~To5gJczU8`pbx#aVxzW+ikVoo1=ael#^y8HpoO$j^C}a2#06*=e&1-}~XLTl?Kw zl-T86S=rQxE(6>2p%Z{!1I}XK%kXKO!p3>qr$Z(@?Q=!Lh>9uQsO!CZmnP8pz$3f5 zH0}G-)Ivg3%n;BPt^E*Nj~HQ7VS8ui^U%HPQFAX&z|ogyC{XIRlV7Kt5UsXU8ck6;_Q9BWfu-kPg)!Lo@Fo2U0-zsqJvU z{qLG7a3aS+2WaWfWmK4{R^nx&`_$x&_&VHh*-2wzG>)iey)WGnwQzY6xWA50V&)FHFGWV9V(@2GUSl_jlqVgML z_ci9Y!{(J}UA9^HLU`QC z`fc?=eZ`uYB%XNU$A#+E{?>{8s1$7h}fzOgu(ZXC>%1z^^NJMhz8w3NAsvB?wXibJm8vod3mKtIs9*#(`2Lfl0;F(@W`~bu2&)#QN84P zNAIxLnRe46%<^;PnC8773xy|Z8rR{+;&~Na>DtloLc{QysKrHl0BpcKnz7h@a)>0p z=a~d|khlOwHy8{U^G2;~yOT$~Rssl2IJV+@SK$sf>#b8&)hyKM`kZh;tM%ZqiNlPI z(YJCk%kkOQx*9q!C*1z}h-1e69am5gp2*oZB-Yij{d4<=_8|~da-9pH?MjmwWe>KdyeTGY z2DG@Vc5yK#JTb1Zv9V)g;~8fnx4?CvBe!;@Jq}V)&wX|6NT*YRrl8Gqibq)Z=oYaxOEsOHMF5$2NYMQKN z9&r$r7nPZ8tJc;P4Y$2}$KSgDR%T~<^T5(x2?peQk+JJaw(&ho3I43??9NX(XLD7; zb4Q@Vy#rVs&36M?tR|S^IlS>C+icmP19~}fE-1jp$muHm-VVV;N7*sX{EcUoQtkTH zSY*rxpFtTnxelGId`@(wz2x)<#RDP1curv%uCTv~qz7r_q^9 zuGNNM+5hCplOyG~6|b)C6|{}Xau1w1`JxbY(nm5(g7>UV?Tb_x>b65K6V)luA7}kp zPKH>>^tj0gC(=xcpT^|^j)ekeI}KG6vSytW3*@0r8}k@ z@J9(}BNfaPA_K0-+8r%({c_PQZ2 zFJD_V(P3krS<9O6n6(=Mh8Zy;iquYJ z!Wtg{`#XFBAKS3zj-I*w*I%s6Bu`sboD07GaFqcTUtV6m3IdGrJ^9d*fB+=0D$D?| z{}>VBi-1}6{zhb}sPFgirmv)hm#*&Trf81tOB*YZ1zglbrfSOge`brmqDvA|%h73s zcOIVD-}l3wu+5a7Lo++H?5}~dYgM5zvd8$IsIoW zasE2O>E*TKL-M^2>jaU|ICa&OOw}~e;J40YbuXi%@l_-7o%3K-iSuhVs35x^k+BLZ zo{9~(kMiI9I>!_|2$V$k5|j4O(F69QeC^$Z?t0E8w@~M(C5>d2Pt@09)z{BQxg@J= zdOr{3yX*)!(>9C>kBp9P1tjb+>M1z45ERo#Y z>P(hv1C2&6F8ugG@k0ISIxck8ISJ>rQc9pMo>K1csHk(iHc~s?5pjHsET*WmeVnjp zdX6t5dG$9Ie`~EwPpd_qIMIw(_uPY9QRc;qG&%OzovR#^uhQut2gEo!bUps9k%FGZ z4lU*9=kw*2<>x;#V&Rpy-V2nP?T%d0Q0tzL(A4^m2uep8F)%kjUC<`KE7ORO!kqhq zLD**5#}@mL4;=PZxBjEA@)~2JxX>he!cbVDp!pZ`=R!I{mjp7jb!E z?vyYs=&o{jkJ%^i_7w4k(%cW4!9wNM4z%`{{2riR6IAYqt9VnYv2nFlE8TzXpD%Bqw`z9C}%mo2vc@QS_)ef7L1(&Xn{-YNB zDfGdRtf3HR$*XL~2qR!xkEvbpO$)FylM{z6^S_jjSEpyMC9pWrmaj9)M1_0S*RAw( zk(F>WF3=FKb1_EM*}!dm=uNG^XxqnM+og9A)oT{_h?Wv!9-BXW4nHHDr7Ydt?(EFaFFseSQFhd12tZa_p$Ssm?D z$;i>xR`b%rTTX$2^C|2Ba%7-D#L8b?kGGz37F7sQ!Ej_LF!|8hOc;#(;`zn|FykV^ z54pDP9I0e>atO6_=>@r(;3`X=5LH;mRn(dU5enS#uc+&3-c9J#2@(|869!aYhe?e} ze1YfU{jy(YTOXV~wi`8IC_G>EA5#l^bqb#6ukJCoQg?-tOuhG1$U`7|1NT5+qGq^=HIG3 z-pUDy%Q<;UgTbIt!u|8>`vQ+M$gZ)dXSIi+-#ey!JzmIgFNc2~yCeh0d`h@tzLfX# zjP>g++Pj3SyZd}60S&*%R3|vgoqnaT|1Q~r9#ZKAG`CWM)Y>f<|2G2zD+kJ~6b+Nr z;mr`Ya@Ro{!50Rbxfm8pqAJAv(dMeEq8bDErsm1_dRP0gbN$=FFdTLkp#5AS1DrT; zYRuA5Tfk6y3??d6umJ~vy(ad;hI_?1qkAG< zvYLOs8S{tQ_V!2j>{Gh1Ar;cA%`#BRi?8=mFMMa?Uc%0K$hoZShNK-OLK4R2KX#a_ zm`PA}Wfd(N&CBWW=qGf%V3$0jKmt?}w6-&OblctK&BuRS?AW!DEbRrd{!Q+CfxwSL z+yo_JSir&nW?KUGGI%RH`h|^PWo2KAlocj~(_!$z*Ttpcjdl&k-%qJ5_~!~ z$upA*5#l#ViOKA($zRcS_`{#R?1ic^XjnWy`v6(T9EnGJFn*wtn_>D-=qr1Eoruh1L0 zJ%V&lVP~2Uf}kg4v!=%uis>hwDC(J7UzLL4>fa%6E(F#--N3<-H{M;1q(wt-&N*v zM02<%@7;R&%HMlaC2&o=9?!|KJEjW_?MGCPwcSfV1OoDv17+yqac9XB%0L4dygwWy-D28xfDd2BFPN&7Myju0TeQB(N=1I?negVA~ z(2cS;wYj(Lncl5)tP%%r0No4G@<-8gtHj*DZfCJ?gh0e*WU$S0ULIK3`q?VVMvZZq zn|aQK#K6Lfd3giKi7)TA6n`<4D=Dj3aDJubZv!4`mApfp!myUY{^ygLra!dv?Uw&r zEdr5|OT#tbV!a!+Wv!W#>HXoA&a+eowdOav#h&u?Np2EHn_40va*M>@D-Jo^xV?BI zin=}DDLvxUhm@*qOdI_RdFdMBid>+J|J`c%#S}P#+K6%{=1UtfT0ywmH#3F_%d~gO$0#F`Lc#?O&BKXW5Rf+}eamIXgSs zSr7tc8E|NVinz_88>W>TN3VYXg2?8Lj*f~Z?gu$ zdFS;&*z6tBj;#8m%|lP6S&)rF7+Wv)ybAi3MzJo2ap4U3mE7_uZ}MQyuHP~tQi;;- z1D>V0(O7M)P4L`K>b?0wPTaVjEdIU|k17QDTHr#;BW|4fUSAzkSgU~18PoQ4k?XWJ z!Ojh>P1If4ndgP7>5X8sWS85_VRq;~iy3Q3aLFhxBk Date: Sat, 27 Feb 2021 04:45:23 -0600 Subject: [PATCH 55/83] for everyone --- code/modules/clothing/under/suits.dm | 16 ++++++------- .../code/modules/client/loadout/uniform.dm | 24 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index b3762608ce..7f0ecf3d70 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -139,26 +139,26 @@ item_state = "greyturtle" can_adjust = FALSE -/obj/item/clothing/under/suit/turtle/science - name = "science turtleneck" +/obj/item/clothing/under/suit/turtle/purple + name = "purple turtleneck" icon_state = "turtle_sci" item_state = "turtle_sci" can_adjust = FALSE -/obj/item/clothing/under/suit/turtle/engineering - name = "engineering turtleneck" +/obj/item/clothing/under/suit/turtle/orange + name = "orange turtleneck" icon_state = "turtle_eng" item_state = "turtle_eng" can_adjust = FALSE -/obj/item/clothing/under/suit/turtle/security - name = "security turtleneck" +/obj/item/clothing/under/suit/turtle/red + name = "red turtleneck" icon_state = "turtle_sec" item_state = "turtle_sec" can_adjust = FALSE -/obj/item/clothing/under/suit/turtle/medical - name = "medical turtleneck" +/obj/item/clothing/under/suit/turtle/blue + name = "blue turtleneck" icon_state = "turtle_med" item_state = "turtle_med" can_adjust = FALSE diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 96eb2201ef..022d823291 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -236,21 +236,21 @@ name = "Grey Turtleneck" path = /obj/item/clothing/under/suit/turtle/grey -/datum/gear/uniform/sciturtle - name = "Science Turtleneck" - path = /obj/item/clothing/under/suit/turtle/science +/datum/gear/uniform/purpleturtle + name = "Purple Turtleneck" + path = /obj/item/clothing/under/suit/turtle/purple -/datum/gear/uniform/engturtle - name = "Engineering Turtleneck" - path = /obj/item/clothing/under/suit/turtle/engineering +/datum/gear/uniform/orangeturtle + name = "Orange Turtleneck" + path = /obj/item/clothing/under/suit/turtle/orange -/datum/gear/uniform/medturtle - name = "Medical Turtleneck" - path = /obj/item/clothing/under/suit/turtle/medical +/datum/gear/uniform/blueturtle + name = "Blue Turtleneck" + path = /obj/item/clothing/under/suit/turtle/blue -/datum/gear/uniform/secturtle - name = "Security Turtleneck" - path = /obj/item/clothing/under/suit/turtle/security +/datum/gear/uniform/redturtle + name = "Red Turtleneck" + path = /obj/item/clothing/under/suit/turtle/red /datum/gear/uniform/polyjump name = "Polychromic Jumpsuit" From 0952777c56cbe84aac845cc2be14a407192cf731 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Sat, 27 Feb 2021 15:53:17 -0300 Subject: [PATCH 56/83] upload transform_procs.dm --- code/modules/mob/transform_procs.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index e49bd5162b..69cff897f9 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -178,10 +178,7 @@ new /obj/effect/temp_visual/monkeyify/humanify(loc) - transformation_timer = addtimer(CALLBACK(src, .proc/finish_humanize, tr_flags), TRANSFORMATION_DURATION, TIMER_UNIQUE) - -/mob/living/carbon/proc/finish_humanize(tr_flags) - transformation_timer = null + sleep(TRANSFORMATION_DURATION) var/list/stored_implants = list() var/list/int_organs = list() From d8d2a5d4c41545916600762662e9dea4b03752a5 Mon Sep 17 00:00:00 2001 From: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Sat, 27 Feb 2021 15:56:44 -0300 Subject: [PATCH 57/83] using quirk susbsysten instead of trats --- .../modules/mob/living/carbon/human/species.dm | 18 ++++++++++++++++-- .../carbon/human/species_types/zombies.dm | 7 +------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d67265be53..0e9441f731 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -78,10 +78,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/list/species_traits = list(HAS_FLESH,HAS_BONE) //by default they can scar and have bones/flesh unless set to something else // generic traits tied to having the species var/list/inherent_traits = list() - // blacklisted traits that conflict with species. If i can figure how to use these lists and mass removes, will uncomment - //var/list/blacklisted_traits = list() var/inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID + var/list/blacklisted_quirks = list() // Quirks that will be removed upon gaining this species, to be defined by species + var/attack_verb = "punch" // punch-specific attack verb var/sound/attack_sound = 'sound/weapons/punch1.ogg' var/sound/miss_sound = 'sound/weapons/punchmiss.ogg' @@ -344,6 +344,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) for(var/X in inherent_traits) ADD_TRAIT(C, X, SPECIES_TRAIT) + //lets remove those conflicting quirks + remove_blacklisted_quirks(C) + if(TRAIT_VIRUSIMMUNE in inherent_traits) for(var/datum/disease/A in C.diseases) A.cure(FALSE) @@ -426,6 +429,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) +// shamelessly inspired by antag_datum.remove_blacklisted_quirks() +/datum/species/proc/remove_blacklisted_quirks(mob/living/carbon/C) + var/mob/living/L = C.mind.current + if(istype(L)) + var/list/my_quirks = L.client?.prefs.all_quirks.Copy() + SSquirks.filter_quirks(my_quirks, blacklisted_quirks) + for(var/q in L.roundstart_quirks) + var/datum/quirk/Q = q + if(!(SSquirks.quirk_name_by_path(Q.type) in my_quirks)) + L.remove_quirk(Q.type) + /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) H.remove_overlay(HAIR_LAYER) var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD) diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 91e00bb3f5..57a11481d7 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -37,8 +37,7 @@ armor = 20 // 120 damage to KO a zombie, which kills it speedmod = 1.6 // they're very slow mutanteyes = /obj/item/organ/eyes/night_vision/zombie - // same as in species.dm - //blacklisted_traits = list(TRAIT_PACIFISM) + blacklisted_quirks = list(/datum/quirk/nonviolent) var/heal_rate = 1 var/regen_cooldown = 0 @@ -98,10 +97,6 @@ part.incoming_stam_mult = incoming_stam_mult //todo: add negative wound resistance to all parts when wounds is merged (zombies are physically weak in terms of limbs) - // this removes pacifism quirk so our zombie can attack normally. but how to add back when cured? - REMOVE_TRAIT(C, TRAIT_PACIFISM, ROUNDSTART_TRAIT) // and why "cannot be removed without admin intervention"? what does that mean? - - // Your skin falls off /datum/species/krokodil_addict name = SPECIES_HUMAN From b3c2f5235843879b9984f6e3f6e3aadb9cd06c61 Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Sat, 27 Feb 2021 15:57:04 -0300 Subject: [PATCH 58/83] Update transform_procs.dm --- code/modules/mob/transform_procs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 69cff897f9..fcaa77cac4 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -178,7 +178,7 @@ new /obj/effect/temp_visual/monkeyify/humanify(loc) - sleep(TRANSFORMATION_DURATION) + sleep(TRANSFORMATION_DURATION) //This entire proc CANNOT be split into two var/list/stored_implants = list() var/list/int_organs = list() From 6cd8486c7712bf691d3ad95b64b99ffe68887b7e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 Feb 2021 14:41:35 -0600 Subject: [PATCH 59/83] Automatic changelog generation for PR #14325 [ci skip] --- html/changelogs/AutoChangeLog-pr-14325.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14325.yml diff --git a/html/changelogs/AutoChangeLog-pr-14325.yml b/html/changelogs/AutoChangeLog-pr-14325.yml new file mode 100644 index 0000000000..73694d8794 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14325.yml @@ -0,0 +1,4 @@ +author: "dzahlus" +delete-after: True +changes: + - bugfix: "fixes toxinlovers dying from heretic stuff that should heal them instead" From 5a11f6209ce721d3bc616aac4983a9e955071476 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 Feb 2021 14:43:38 -0600 Subject: [PATCH 60/83] Automatic changelog generation for PR #14321 [ci skip] --- html/changelogs/AutoChangeLog-pr-14321.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14321.yml diff --git a/html/changelogs/AutoChangeLog-pr-14321.yml b/html/changelogs/AutoChangeLog-pr-14321.yml new file mode 100644 index 0000000000..c1afc0f3ac --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14321.yml @@ -0,0 +1,5 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Polychromic windbreaker's alt-click message is now coherent" + - code_imp: "Toggleable suits now have an on_toggle proc to be overridden." From 6d5afe146c327216dbedb76d0d07a1b50b489bee Mon Sep 17 00:00:00 2001 From: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Sat, 27 Feb 2021 19:17:12 -0300 Subject: [PATCH 61/83] restores any removed quirks when unchanging --- code/modules/mob/living/carbon/human/species.dm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 0e9441f731..cb5abb56aa 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -81,6 +81,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID var/list/blacklisted_quirks = list() // Quirks that will be removed upon gaining this species, to be defined by species + var/list/removed_quirks = list() // Quirks that got removed due to being blacklisted, and will be restored when on_species_loss() is called var/attack_verb = "punch" // punch-specific attack verb var/sound/attack_sound = 'sound/weapons/punch1.ogg' @@ -400,6 +401,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) for(var/X in inherent_traits) REMOVE_TRAIT(C, X, SPECIES_TRAIT) + // lets restore the quirks that got removed when gaining this species + restore_quirks(C) + C.remove_movespeed_modifier(/datum/movespeed_modifier/species) if(mutant_bodyparts["meat_type"]) @@ -431,7 +435,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) // shamelessly inspired by antag_datum.remove_blacklisted_quirks() /datum/species/proc/remove_blacklisted_quirks(mob/living/carbon/C) - var/mob/living/L = C.mind.current + var/mob/living/L = C.mind?.current if(istype(L)) var/list/my_quirks = L.client?.prefs.all_quirks.Copy() SSquirks.filter_quirks(my_quirks, blacklisted_quirks) @@ -439,6 +443,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/datum/quirk/Q = q if(!(SSquirks.quirk_name_by_path(Q.type) in my_quirks)) L.remove_quirk(Q.type) + removed_quirks += Q.type + +// restore any quirks that we removed +datum/species/proc/restore_quirks(mob/living/carbon/C) + var/mob/living/L = C.mind?.current + if(istype(L)) + for(var/q in removed_quirks) + L.add_quirk(q) + /datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour) H.remove_overlay(HAIR_LAYER) From d89bc85ae72ea90a690c012ca5201ce4ada3d4ee Mon Sep 17 00:00:00 2001 From: qweq12yt <45515587+qweq12yt@users.noreply.github.com> Date: Sat, 27 Feb 2021 19:26:29 -0300 Subject: [PATCH 62/83] oops forgot a "/" it could happen to anyone --- code/modules/mob/living/carbon/human/species.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index cb5abb56aa..2334520d90 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -446,7 +446,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) removed_quirks += Q.type // restore any quirks that we removed -datum/species/proc/restore_quirks(mob/living/carbon/C) +/datum/species/proc/restore_quirks(mob/living/carbon/C) var/mob/living/L = C.mind?.current if(istype(L)) for(var/q in removed_quirks) From 30ad7e0a3efd88e5b608818b30d244dd91738da4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 27 Feb 2021 17:13:18 -0600 Subject: [PATCH 63/83] Automatic changelog generation for PR #14311 [ci skip] --- html/changelogs/AutoChangeLog-pr-14311.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14311.yml diff --git a/html/changelogs/AutoChangeLog-pr-14311.yml b/html/changelogs/AutoChangeLog-pr-14311.yml new file mode 100644 index 0000000000..fd76cc3f4d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14311.yml @@ -0,0 +1,4 @@ +author: "SandPoot" +delete-after: True +changes: + - tweak: "Body rejuvenation surgery will loop until the patient is completely healed." From 59ba3155e0016c6ef9cdcfc71d485ac1c00efdcc Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 28 Feb 2021 00:14:48 +0000 Subject: [PATCH 64/83] Automatic changelog compile [ci skip] --- html/changelog.html | 19 +++++++++++++++++++ html/changelogs/.all_changelog.yml | 10 ++++++++++ html/changelogs/AutoChangeLog-pr-14311.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14321.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14325.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14326.yml | 4 ---- 6 files changed, 29 insertions(+), 17 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14311.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14321.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14325.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14326.yml diff --git a/html/changelog.html b/html/changelog.html index 6b6c8b2589..65e2d571a2 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,25 @@ -->
        +

        28 February 2021

        +

        Putnam3145 updated:

        +
          +
        • Polychromic windbreaker's alt-click message is now coherent
        • +
        • Toggleable suits now have an on_toggle proc to be overridden.
        • +
        +

        R3dtail updated:

        +
          +
        • doubled max belly name length and quadrupled belly description length
        • +
        +

        SandPoot updated:

        +
          +
        • Body rejuvenation surgery will loop until the patient is completely healed.
        • +
        +

        dzahlus updated:

        +
          +
        • fixes toxinlovers dying from heretic stuff that should heal them instead
        • +
        +

        27 February 2021

        Hatterhat updated:

          diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 6d36900b23..6ba2436d94 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -28618,3 +28618,13 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. makes it easy to just time the parries right. silicons: - bugfix: chaplain arrythmic knives can no longer be abused for infinite speed. +2021-02-28: + Putnam3145: + - bugfix: Polychromic windbreaker's alt-click message is now coherent + - code_imp: Toggleable suits now have an on_toggle proc to be overridden. + R3dtail: + - tweak: doubled max belly name length and quadrupled belly description length + SandPoot: + - tweak: Body rejuvenation surgery will loop until the patient is completely healed. + dzahlus: + - bugfix: fixes toxinlovers dying from heretic stuff that should heal them instead diff --git a/html/changelogs/AutoChangeLog-pr-14311.yml b/html/changelogs/AutoChangeLog-pr-14311.yml deleted file mode 100644 index fd76cc3f4d..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14311.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SandPoot" -delete-after: True -changes: - - tweak: "Body rejuvenation surgery will loop until the patient is completely healed." diff --git a/html/changelogs/AutoChangeLog-pr-14321.yml b/html/changelogs/AutoChangeLog-pr-14321.yml deleted file mode 100644 index c1afc0f3ac..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14321.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Polychromic windbreaker's alt-click message is now coherent" - - code_imp: "Toggleable suits now have an on_toggle proc to be overridden." diff --git a/html/changelogs/AutoChangeLog-pr-14325.yml b/html/changelogs/AutoChangeLog-pr-14325.yml deleted file mode 100644 index 73694d8794..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14325.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "dzahlus" -delete-after: True -changes: - - bugfix: "fixes toxinlovers dying from heretic stuff that should heal them instead" diff --git a/html/changelogs/AutoChangeLog-pr-14326.yml b/html/changelogs/AutoChangeLog-pr-14326.yml deleted file mode 100644 index 2dc18b5674..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14326.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "R3dtail" -delete-after: True -changes: - - tweak: "doubled max belly name length and quadrupled belly description length" From 60011f339d8f7f0978d72b234d70ac3a6e8670b1 Mon Sep 17 00:00:00 2001 From: Vynzill Date: Sun, 28 Feb 2021 00:33:10 -0600 Subject: [PATCH 65/83] Jungle Gateway Quickfix haha, whoops! forgot I left a cursed rice hat in front of gate during my testing --- _maps/RandomZLevels/away_mission/jungleresort.dmm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/_maps/RandomZLevels/away_mission/jungleresort.dmm b/_maps/RandomZLevels/away_mission/jungleresort.dmm index 4afe638edb..9ff92b619a 100644 --- a/_maps/RandomZLevels/away_mission/jungleresort.dmm +++ b/_maps/RandomZLevels/away_mission/jungleresort.dmm @@ -413,10 +413,6 @@ /obj/item/toy/figure/chef, /turf/open/floor/wood, /area/awaymission/jungleresort) -"gC" = ( -/obj/item/clothing/head/rice_hat/cursed, -/turf/open/floor/plating/dirt/jungle, -/area/awaymission/jungleresort) "gK" = ( /obj/structure/table/wood, /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted, @@ -13828,7 +13824,7 @@ io du YF io -gC +io io io ia @@ -26666,4 +26662,3 @@ bG bG bG "} - From 2bcf05ee2255048c37b0f3695dca830bb25bddf3 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 28 Feb 2021 01:23:37 -0700 Subject: [PATCH 66/83] Update hydroponics.dm --- code/modules/hydroponics/hydroponics.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index e186364cff..aca727ad8d 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -97,6 +97,7 @@ if(myseed.mutatelist.len > 0) myseed.instability = (myseed.instability/2) mutatespecie() + return BULLET_ACT_HIT else return ..() From d22856c6a5212ff8786e7461adc07ea5d46e1cb2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 28 Feb 2021 02:26:58 -0600 Subject: [PATCH 67/83] Automatic changelog generation for PR #14293 [ci skip] --- html/changelogs/AutoChangeLog-pr-14293.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14293.yml diff --git a/html/changelogs/AutoChangeLog-pr-14293.yml b/html/changelogs/AutoChangeLog-pr-14293.yml new file mode 100644 index 0000000000..046e486ac9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14293.yml @@ -0,0 +1,6 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Fixes decks breaking your screen" + - bugfix: "Fixes binders not saving cards" + - bugfix: "Fixes binders not saving multiple cards of the same type" From d8b1878feae3a4737e1271284a350c31f2268397 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 28 Feb 2021 03:23:03 -0600 Subject: [PATCH 68/83] Automatic changelog generation for PR #14340 [ci skip] --- html/changelogs/AutoChangeLog-pr-14340.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14340.yml diff --git a/html/changelogs/AutoChangeLog-pr-14340.yml b/html/changelogs/AutoChangeLog-pr-14340.yml new file mode 100644 index 0000000000..6d6e06d3ec --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14340.yml @@ -0,0 +1,4 @@ +author: "Vynzill" +delete-after: True +changes: + - bugfix: "cursed rice hat right in front of the jungle gateway's entrance is now removed from this dimensional plane" From 8700b98a718d529e243187dd5d03dbdb8b89dbbf Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 1 Mar 2021 00:15:08 +0000 Subject: [PATCH 69/83] Automatic changelog compile [ci skip] --- html/changelog.html | 12 ++++++++++++ html/changelogs/.all_changelog.yml | 8 ++++++++ html/changelogs/AutoChangeLog-pr-14293.yml | 6 ------ html/changelogs/AutoChangeLog-pr-14340.yml | 4 ---- 4 files changed, 20 insertions(+), 10 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14293.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14340.yml diff --git a/html/changelog.html b/html/changelog.html index 65e2d571a2..6e7ba6ea84 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,18 @@ -->
          +

          01 March 2021

          +

          SmArtKar updated:

          +
            +
          • Fixes decks breaking your screen
          • +
          • Fixes binders not saving cards
          • +
          • Fixes binders not saving multiple cards of the same type
          • +
          +

          Vynzill updated:

          +
            +
          • cursed rice hat right in front of the jungle gateway's entrance is now removed from this dimensional plane
          • +
          +

          28 February 2021

          Putnam3145 updated:

            diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 6ba2436d94..a6f4010d75 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -28628,3 +28628,11 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - tweak: Body rejuvenation surgery will loop until the patient is completely healed. dzahlus: - bugfix: fixes toxinlovers dying from heretic stuff that should heal them instead +2021-03-01: + SmArtKar: + - bugfix: Fixes decks breaking your screen + - bugfix: Fixes binders not saving cards + - bugfix: Fixes binders not saving multiple cards of the same type + Vynzill: + - bugfix: cursed rice hat right in front of the jungle gateway's entrance is now + removed from this dimensional plane diff --git a/html/changelogs/AutoChangeLog-pr-14293.yml b/html/changelogs/AutoChangeLog-pr-14293.yml deleted file mode 100644 index 046e486ac9..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14293.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "SmArtKar" -delete-after: True -changes: - - bugfix: "Fixes decks breaking your screen" - - bugfix: "Fixes binders not saving cards" - - bugfix: "Fixes binders not saving multiple cards of the same type" diff --git a/html/changelogs/AutoChangeLog-pr-14340.yml b/html/changelogs/AutoChangeLog-pr-14340.yml deleted file mode 100644 index 6d6e06d3ec..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14340.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Vynzill" -delete-after: True -changes: - - bugfix: "cursed rice hat right in front of the jungle gateway's entrance is now removed from this dimensional plane" From cc0f79f7722e249f850230dd9e5d1a6c6205b46d Mon Sep 17 00:00:00 2001 From: MarinaGryphon Date: Sun, 28 Feb 2021 19:05:10 -0600 Subject: [PATCH 70/83] Fixes #14341 --- code/modules/client/verbs/aooc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm index 1a019bba80..182975d192 100644 --- a/code/modules/client/verbs/aooc.dm +++ b/code/modules/client/verbs/aooc.dm @@ -13,7 +13,7 @@ GLOBAL_VAR_INIT(normal_aooc_colour, "#ce254f") if(!mob) return - if(!(prefs.toggles & CHAT_OOC)) + if(!(prefs.chat_toggles & CHAT_OOC)) to_chat(src, " You have OOC muted.") return if(jobban_isbanned(mob, "OOC")) From 7f72cb530a60c05f93fd487c4ef705e48aaf73a8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 28 Feb 2021 23:49:32 -0600 Subject: [PATCH 71/83] Automatic changelog generation for PR #14334 [ci skip] --- html/changelogs/AutoChangeLog-pr-14334.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14334.yml diff --git a/html/changelogs/AutoChangeLog-pr-14334.yml b/html/changelogs/AutoChangeLog-pr-14334.yml new file mode 100644 index 0000000000..b745873580 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14334.yml @@ -0,0 +1,4 @@ +author: "SandPoot" +delete-after: True +changes: + - bugfix: "Changelings will actually become the person they want to be when using \"human form\" ability(after having used last resort)." From 88dfc6cf036312d16300f7a2eb8e64ed2fc76183 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 28 Feb 2021 23:50:01 -0600 Subject: [PATCH 72/83] Automatic changelog generation for PR #14331 [ci skip] --- html/changelogs/AutoChangeLog-pr-14331.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14331.yml diff --git a/html/changelogs/AutoChangeLog-pr-14331.yml b/html/changelogs/AutoChangeLog-pr-14331.yml new file mode 100644 index 0000000000..9f972b2dbf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14331.yml @@ -0,0 +1,4 @@ +author: "LetterN" +delete-after: True +changes: + - bugfix: "colorpainter: let's not dispense null" From f20621360321c7bfdf53d16f3482ed493f752af7 Mon Sep 17 00:00:00 2001 From: dzahlus Date: Mon, 1 Mar 2021 22:16:23 +0100 Subject: [PATCH 73/83] 60 second cooldown instead of 3 minutes --- code/modules/spells/spell_types/shapeshift.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index c376845451..de305cf183 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -77,8 +77,8 @@ name = "Dragon Form" desc = "Take on the shape a lesser ash drake." invocation = "RAAAAAAAAWR!" - cooldown_min = 450 - charge_max = 1800 + cooldown_min = 150 + charge_max = 600 shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser/transformed From e9508df89de6109e2e6ab025b25dd1bbe9c813c4 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 2 Mar 2021 00:11:54 +0000 Subject: [PATCH 74/83] Automatic changelog compile [ci skip] --- html/changelog.html | 10 ++++++++++ html/changelogs/.all_changelog.yml | 6 ++++++ html/changelogs/AutoChangeLog-pr-14331.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14334.yml | 4 ---- 4 files changed, 16 insertions(+), 8 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14331.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14334.yml diff --git a/html/changelog.html b/html/changelog.html index 6e7ba6ea84..c387dc4058 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,16 @@ -->
            +

            02 March 2021

            +

            LetterN updated:

            +
              +
            • colorpainter: let's not dispense null
            • +
            +

            SandPoot updated:

            +
              +
            • Changelings will actually become the person they want to be when using "human form" ability(after having used last resort).
            • +
            +

            01 March 2021

            SmArtKar updated:

              diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index a6f4010d75..8232706b2f 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -28636,3 +28636,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Vynzill: - bugfix: cursed rice hat right in front of the jungle gateway's entrance is now removed from this dimensional plane +2021-03-02: + LetterN: + - bugfix: 'colorpainter: let''s not dispense null' + SandPoot: + - bugfix: Changelings will actually become the person they want to be when using + "human form" ability(after having used last resort). diff --git a/html/changelogs/AutoChangeLog-pr-14331.yml b/html/changelogs/AutoChangeLog-pr-14331.yml deleted file mode 100644 index 9f972b2dbf..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14331.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "LetterN" -delete-after: True -changes: - - bugfix: "colorpainter: let's not dispense null" diff --git a/html/changelogs/AutoChangeLog-pr-14334.yml b/html/changelogs/AutoChangeLog-pr-14334.yml deleted file mode 100644 index b745873580..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14334.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SandPoot" -delete-after: True -changes: - - bugfix: "Changelings will actually become the person they want to be when using \"human form\" ability(after having used last resort)." From 95b5044217ce9275b920a005afac820a2a251ea5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:26:18 -0600 Subject: [PATCH 75/83] Automatic changelog generation for PR #14327 [ci skip] --- html/changelogs/AutoChangeLog-pr-14327.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14327.yml diff --git a/html/changelogs/AutoChangeLog-pr-14327.yml b/html/changelogs/AutoChangeLog-pr-14327.yml new file mode 100644 index 0000000000..721ed320cb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14327.yml @@ -0,0 +1,5 @@ +author: "qweq12yt" +delete-after: True +changes: + - bugfix: "fixed infectious zombies not being able to attack if host was pacifist" + - rscadd: "adds a way for species to have blacklisted quirks, the removal, and restoration of said quirks upon species changes" From a25f9f068c31ee4c535e9c523a893ec8f44df341 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:27:00 -0600 Subject: [PATCH 76/83] Automatic changelog generation for PR #14322 [ci skip] --- html/changelogs/AutoChangeLog-pr-14322.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14322.yml diff --git a/html/changelogs/AutoChangeLog-pr-14322.yml b/html/changelogs/AutoChangeLog-pr-14322.yml new file mode 100644 index 0000000000..7bcae34f08 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14322.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - config: "pAIs now have a policy config" From 0cb75319d01581988e661efda3bb6abe398a33bd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:27:09 -0600 Subject: [PATCH 77/83] Automatic changelog generation for PR #14320 [ci skip] --- html/changelogs/AutoChangeLog-pr-14320.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14320.yml diff --git a/html/changelogs/AutoChangeLog-pr-14320.yml b/html/changelogs/AutoChangeLog-pr-14320.yml new file mode 100644 index 0000000000..00a7141a53 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14320.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscdel: "Valentine's day event no longer gives everyone a valentine's antag." From 4fa63bebe9390f0c898f2a0fd28806a4c49f0a2c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:27:54 -0600 Subject: [PATCH 78/83] Automatic changelog generation for PR #14307 [ci skip] --- html/changelogs/AutoChangeLog-pr-14307.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14307.yml diff --git a/html/changelogs/AutoChangeLog-pr-14307.yml b/html/changelogs/AutoChangeLog-pr-14307.yml new file mode 100644 index 0000000000..806393ed15 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14307.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "\"Supermatter surge\" event, which might cause problems if the supermatter is not sufficiently cooled (i.e. the setup is messed up in some way)" From 159dd3988cdc4785f1484b036d834d9464d05566 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:30:30 -0600 Subject: [PATCH 79/83] Automatic changelog generation for PR #14295 [ci skip] --- html/changelogs/AutoChangeLog-pr-14295.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14295.yml diff --git a/html/changelogs/AutoChangeLog-pr-14295.yml b/html/changelogs/AutoChangeLog-pr-14295.yml new file mode 100644 index 0000000000..ed15484d77 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14295.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscdel: "Fusion can no longer be done in open air." From 253c8c4fde0b6ce77f1013261537a10e8ecd94e8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:31:28 -0600 Subject: [PATCH 80/83] Automatic changelog generation for PR #14342 [ci skip] --- html/changelogs/AutoChangeLog-pr-14342.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14342.yml diff --git a/html/changelogs/AutoChangeLog-pr-14342.yml b/html/changelogs/AutoChangeLog-pr-14342.yml new file mode 100644 index 0000000000..f6f27a1a48 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14342.yml @@ -0,0 +1,5 @@ +author: "MarinaGryphon" +delete-after: True +changes: + - bugfix: "The AOOC mute pref is now properly respected." + - bugfix: "Muting adminhelp sounds no longer mutes AOOC." From 482e8c63e8a43ac0c19a4950fb1701e3578ba412 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:35:39 -0600 Subject: [PATCH 81/83] Automatic changelog generation for PR #14290 [ci skip] --- html/changelogs/AutoChangeLog-pr-14290.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14290.yml diff --git a/html/changelogs/AutoChangeLog-pr-14290.yml b/html/changelogs/AutoChangeLog-pr-14290.yml new file mode 100644 index 0000000000..ff0b1b2d5d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14290.yml @@ -0,0 +1,4 @@ +author: "SandPoot" +delete-after: True +changes: + - bugfix: "Legions should now pass their type to the person they infect (if valid)." From ca1fe9d6c0bdc9eb2d8207322b1b11559fbceab2 Mon Sep 17 00:00:00 2001 From: dzahlus Date: Tue, 2 Mar 2021 02:40:23 +0100 Subject: [PATCH 82/83] Update shapeshift.dm for keb --- code/modules/spells/spell_types/shapeshift.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index de305cf183..67c2e3e941 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -77,8 +77,6 @@ name = "Dragon Form" desc = "Take on the shape a lesser ash drake." invocation = "RAAAAAAAAWR!" - cooldown_min = 150 - charge_max = 600 shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser/transformed From 0d7b25dec6922aabd3ac964b6fef4232cf8d3766 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 1 Mar 2021 19:42:30 -0600 Subject: [PATCH 83/83] Automatic changelog generation for PR #14324 [ci skip] --- html/changelogs/AutoChangeLog-pr-14324.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14324.yml diff --git a/html/changelogs/AutoChangeLog-pr-14324.yml b/html/changelogs/AutoChangeLog-pr-14324.yml new file mode 100644 index 0000000000..63c4ceb04b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14324.yml @@ -0,0 +1,5 @@ +author: "dzahlus" +delete-after: True +changes: + - rscadd: "Added new subtype to lesser ash drake balanced around player control" + - balance: "rebalanced dragon transformation to a 1 minute cooldown as well as using the new subtype of megafauna"