From e3922400a10874b1e12d7c4f8325671e29860e52 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 21 May 2020 19:09:54 +0200 Subject: [PATCH] swift item action skills fix. (#12324) * Update _skill_holder.dm * Update _skill_holder.dm * Update _skill_holder.dm --- code/datums/skills/_skill_holder.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index 554269091a..071db3306a 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -154,15 +154,17 @@ . = value var/sum = 0 var/divisor = 0 + var/one_trait = istext(traits) + var/one_bad_trait = istext(bad_traits) for(var/k in I.used_skills) var/datum/skill/S = GLOB.skill_datums[k] if(!S) continue var/our_traits = S.skill_traits - var/item_traits = I.used_skills[k] - if(item_traits) - our_traits |= item_traits - if((traits && !(our_traits[traits] || length(our_traits & traits))) || (bad_traits && (our_traits[bad_traits] || length(our_traits & bad_traits)))) + our_traits |= I.used_skills[k] + if(traits && !(one_trait ? (traits in our_traits) : length(our_traits & traits))) + continue + if(bad_traits && (one_bad_trait ? (bad_traits in our_traits) : length(our_traits & bad_traits))) continue var/mod = S.base_multiplier switch(S.progression_type)