private void DecreaseDamageValuePenalty(FightValues p_fightValues, EEquipSlots p_slot, SkillEffectStaticData p_effect, Skill p_skill)
 {
     if (p_slot == EEquipSlots.OFF_HAND)
     {
         p_fightValues.DualWieldDamageBonus = ResolveValue(p_fightValues.DualWieldDamageBonus, p_effect, p_skill);
     }
 }
 private void IncreaseArmorValue(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     if (p_effect.Condition == ESkillEffectCondition.IS_EQUIPED)
     {
         p_fightValues.ArmorValue = (Int32)ResolveValue(p_fightValues.ArmorValue, p_effect, p_skill);
     }
 }
        private void AddFightValues(FightValues p_fightValues, BaseItem p_equipment, EEquipSlots p_slot)
        {
            if (p_equipment is MagicFocus && p_slot == EEquipSlots.OFF_HAND && m_character.Equipment.GetItemAt(EEquipSlots.MAIN_HAND) is MagicFocus)
            {
                return;
            }
            Skill requiredSkill = GetRequiredSkill(p_equipment);

            if (requiredSkill != null && p_equipment is Equipment)
            {
                AddSkillEffects(p_fightValues, (Equipment)p_equipment, p_slot, requiredSkill);
            }
            MeleeWeapon meleeWeapon  = p_equipment as MeleeWeapon;
            MeleeWeapon meleeWeapon2 = m_character.Equipment.GetItemAt(EEquipSlots.MAIN_HAND) as MeleeWeapon;

            if (meleeWeapon2 != null && meleeWeapon != null && p_slot == EEquipSlots.OFF_HAND)
            {
                Skill skill = FindSkill(10);
                if (skill != null)
                {
                    AddSkillEffects(p_fightValues, meleeWeapon, p_slot, skill);
                }
            }
            if (meleeWeapon != null && meleeWeapon.GetSubType() == EEquipmentType.TWOHANDED)
            {
                Skill skill2 = FindSkill(8);
                if (skill2 != null)
                {
                    AddSkillEffects(p_fightValues, meleeWeapon, p_slot, skill2);
                }
            }
        }
        public void AddFightValues(FightValues p_fightValues)
        {
            AddEquipmentDependentFightValues(p_fightValues);
            foreach (Skill skill in m_availableSkills)
            {
                foreach (SkillEffectStaticData skillEffectStaticData in skill.CurrentlyAvailableEffects)
                {
                    ESkillEffectType type = skillEffectStaticData.Type;
                    switch (type)
                    {
                    case ESkillEffectType.INCREASE_MAGIC_RESISTANCE:
                        IncreaseMagicResistance(p_fightValues, skillEffectStaticData, skill);
                        break;

                    default:
                        if (type == ESkillEffectType.INCREASE_MAGIC_FACTOR_SKILL_BONUS)
                        {
                            IncreaseMagicSkillBonus(p_fightValues, skillEffectStaticData, skill);
                        }
                        break;

                    case ESkillEffectType.INCREASE_EVADE_VALUE:
                        p_fightValues.EvadeValue = (Int32)Math.Round(ResolveValue(p_fightValues.EvadeValue, skillEffectStaticData, skill), MidpointRounding.AwayFromZero);
                        break;
                    }
                }
            }
        }
Esempio n. 5
0
 public void ModifyFightValues(FightValues p_fightValues)
 {
     for (Int32 i = m_buffs.Count - 1; i >= 0; i--)
     {
         m_buffs[i].ModifyFightValues(p_fightValues);
     }
 }
 private void IncreaseCriticalMagicDamageFactor(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     if (p_effect.Condition == ESkillEffectCondition.IS_EQUIPED)
     {
         p_fightValues.MagicalCriticalDamageMod = ResolveValue(p_fightValues.MagicalCriticalDamageMod, p_effect, p_skill);
     }
 }
        private void IncreaseMagicResistance(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
        {
            ResistanceCollection resistance = p_fightValues.Resistance;

            resistance.Set(new Resistance(EDamageType.AIR, (Int32)ResolveValue(resistance[EDamageType.AIR].Value, p_effect, p_skill)));
            resistance.Set(new Resistance(EDamageType.EARTH, (Int32)ResolveValue(resistance[EDamageType.EARTH].Value, p_effect, p_skill)));
            resistance.Set(new Resistance(EDamageType.FIRE, (Int32)ResolveValue(resistance[EDamageType.FIRE].Value, p_effect, p_skill)));
            resistance.Set(new Resistance(EDamageType.WATER, (Int32)ResolveValue(resistance[EDamageType.WATER].Value, p_effect, p_skill)));
            resistance.Set(new Resistance(EDamageType.DARK, (Int32)ResolveValue(resistance[EDamageType.DARK].Value, p_effect, p_skill)));
            resistance.Set(new Resistance(EDamageType.LIGHT, (Int32)ResolveValue(resistance[EDamageType.LIGHT].Value, p_effect, p_skill)));
            resistance.Set(new Resistance(EDamageType.PRIMORDIAL, (Int32)ResolveValue(resistance[EDamageType.PRIMORDIAL].Value, p_effect, p_skill)));
        }
 private void IncreaseDamageFactor(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill, EEquipSlots p_slot)
 {
     if (p_effect.Condition == ESkillEffectCondition.IS_EQUIPED)
     {
         if (p_slot == EEquipSlots.MAIN_HAND)
         {
             p_fightValues.MainHandDamageFactor = ResolveValue(p_fightValues.MainHandDamageFactor, p_effect, p_skill);
         }
         else if (p_slot == EEquipSlots.OFF_HAND)
         {
             p_fightValues.OffHandDamageFactor = ResolveValue(p_fightValues.OffHandDamageFactor, p_effect, p_skill);
         }
     }
 }
 private void IncreaseAttackValue(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill, EEquipSlots p_slot)
 {
     if (p_slot == EEquipSlots.MAIN_HAND)
     {
         p_fightValues.MainHandAttackValue = ResolveValue(p_fightValues.MainHandAttackValue, p_effect, p_skill);
     }
     else if (p_slot == EEquipSlots.OFF_HAND)
     {
         p_fightValues.OffHandAttackValue = ResolveValue(p_fightValues.OffHandAttackValue, p_effect, p_skill);
     }
     else if (p_slot == EEquipSlots.RANGE_WEAPON)
     {
         p_fightValues.RangedAttackValue = ResolveValue(p_fightValues.RangedAttackValue, p_effect, p_skill);
     }
 }
        private void AddEquipmentDependentFightValues(FightValues p_fightValues)
        {
            BaseItem itemAt  = m_character.Equipment.GetItemAt(EEquipSlots.MAIN_HAND);
            BaseItem itemAt2 = m_character.Equipment.GetItemAt(EEquipSlots.OFF_HAND);
            BaseItem itemAt3 = m_character.Equipment.GetItemAt(EEquipSlots.RANGE_WEAPON);
            BaseItem itemAt4 = m_character.Equipment.GetItemAt(EEquipSlots.BODY);

            AddFightValues(p_fightValues, itemAt, EEquipSlots.MAIN_HAND);
            if (itemAt != itemAt2)
            {
                AddFightValues(p_fightValues, itemAt2, EEquipSlots.OFF_HAND);
            }
            AddFightValues(p_fightValues, itemAt3, EEquipSlots.RANGE_WEAPON);
            AddFightValues(p_fightValues, itemAt4, EEquipSlots.BODY);
        }
Esempio n. 11
0
        public override void FillFightValues(Boolean p_offHand, FightValues p_fightValue)
        {
            DamageData baseDamage = GetBaseDamage();

            if (p_offHand)
            {
                p_fightValue.OffHandDamage.Add(baseDamage);
                p_fightValue.OffHandCriticalDamageMod = 0f;
            }
            else
            {
                p_fightValue.MainHandDamage.Add(baseDamage);
                p_fightValue.MainHandCriticalDamageMod = 0f;
            }
            p_fightValue.MagicalCriticalDamageMod += m_staticData.AddCritDamage;
        }
 private void IncreaseDamageSkillBonus(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill, EEquipSlots p_slot)
 {
     if (p_effect.Condition == ESkillEffectCondition.IS_EQUIPED)
     {
         if (p_slot == EEquipSlots.MAIN_HAND)
         {
             p_fightValues.MainHandSkillLevelBonus = ResolveValue(p_fightValues.MainHandSkillLevelBonus, p_effect, p_skill);
         }
         else if (p_slot == EEquipSlots.OFF_HAND)
         {
             p_fightValues.OffHandSkillLevelBonus = ResolveValue(p_fightValues.OffHandSkillLevelBonus, p_effect, p_skill);
         }
         else if (p_slot == EEquipSlots.RANGE_WEAPON)
         {
             p_fightValues.RangedSkillLevelBonus = ResolveValue(p_fightValues.RangedSkillLevelBonus, p_effect, p_skill);
         }
     }
 }
        private void IncreaseCriticalHitDestinyMultiplier(FightValues p_fightValues, EEquipSlots p_slot, SkillEffectStaticData p_effect, Skill p_skill)
        {
            Int32  destiny = m_character.CurrentAttributes.Destiny;
            Single num     = p_effect.Value * destiny;

            if (p_slot == EEquipSlots.OFF_HAND)
            {
                p_fightValues.OffHandCriticalHitDestinyMultiplier += num;
            }
            else if (p_slot == EEquipSlots.MAIN_HAND)
            {
                p_fightValues.MainHandCriticalHitDestinyMultiplier += num;
            }
            else if (p_slot == EEquipSlots.RANGE_WEAPON)
            {
                p_fightValues.RangedCriticalHitDestinyMultiplier += num;
            }
        }
 private void IncreaseCriticalHitChances(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill, EEquipSlots p_slot)
 {
     if (p_effect.Condition == ESkillEffectCondition.FOR_EACH_EQUIPMENT)
     {
         p_fightValues.CriticalMainHandHitChance = ResolveValue(p_fightValues.CriticalMainHandHitChance, p_effect, p_skill);
         p_fightValues.CriticalOffHandHitChance  = ResolveValue(p_fightValues.CriticalOffHandHitChance, p_effect, p_skill);
     }
     else if (p_slot == EEquipSlots.RANGE_WEAPON)
     {
         p_fightValues.CriticalRangeHitChance = ResolveValue(p_fightValues.CriticalRangeHitChance, p_effect, p_skill);
     }
     else if (p_slot == EEquipSlots.MAIN_HAND)
     {
         p_fightValues.CriticalMainHandHitChance = ResolveValue(p_fightValues.CriticalMainHandHitChance, p_effect, p_skill);
     }
     else if (p_slot == EEquipSlots.OFF_HAND)
     {
         p_fightValues.CriticalOffHandHitChance = ResolveValue(p_fightValues.CriticalOffHandHitChance, p_effect, p_skill);
     }
 }
Esempio n. 15
0
        public override void FillFightValues(Boolean p_offHand, FightValues p_fightValue)
        {
            Int32  minDamage = MinDamage;
            Int32  maxDamage = MaxDamage;
            String value     = (minDamage != maxDamage) ? (minDamage.ToString() + "-" + maxDamage.ToString()) : maxDamage.ToString();

            m_properties["MELEE_EFFECT_DAMAGE"] = value;
            DamageData p_data = new DamageData(EDamageType.PHYSICAL, minDamage, maxDamage);

            if (p_offHand)
            {
                p_fightValue.OffHandDamage.Add(p_data);
                p_fightValue.OffHandCriticalDamageMod = m_staticData.CritDamageFactor;
            }
            else
            {
                p_fightValue.MainHandDamage.Add(p_data);
                p_fightValue.MainHandCriticalDamageMod = m_staticData.CritDamageFactor;
            }
        }
Esempio n. 16
0
 public override void FillFightValues(Boolean p_offHand, FightValues p_fightValues)
 {
     p_fightValues.ArmorValue        += ArmorValue;
     m_properties["SHIELD_EFFECT_AC"] = ArmorValue.ToString();
 }
Esempio n. 17
0
 public override void FillFightValues(Boolean p_offHand, FightValues p_fightValues)
 {
 }
Esempio n. 18
0
 public override void FillFightValues(Boolean p_offHand, FightValues p_fightValues)
 {
     p_fightValues.ArmorValue += ArmorValue;
     ModifyProperties();
 }
Esempio n. 19
0
 public override void FillFightValues(Boolean p_offHand, FightValues p_fightValue)
 {
     p_fightValue.RangeDamage.Add(new DamageData(EDamageType.PHYSICAL, m_staticData.MinDamage, m_staticData.MaxDamage));
     p_fightValue.RangeCriticalDamageMod += m_staticData.CritDamageFactor;
 }
 private void IncreaseMeleeBlockAttempts(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     p_fightValues.MeleeBlockAttempts += (Int32)p_effect.Value;
 }
 private void DecreaseAttackValuePenalty(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     p_fightValues.AttackValuePenaltyReduction = (Int32)ResolveValue(p_fightValues.AttackValuePenaltyReduction, p_effect, p_skill);
 }
 private void IncreaseBlockChance(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     p_fightValues.GeneralBlockChance = ResolveValue(p_fightValues.GeneralBlockChance, p_effect, p_skill);
 }
        private void AddSkillEffects(FightValues p_fightValues, Equipment p_equipment, EEquipSlots p_slot, Skill p_skill)
        {
            List <SkillEffectStaticData> currentlyAvailableEffects = p_skill.CurrentlyAvailableEffects;

            foreach (SkillEffectStaticData skillEffectStaticData in currentlyAvailableEffects)
            {
                ESkillEffectType type = skillEffectStaticData.Type;
                switch (type)
                {
                case ESkillEffectType.INCREASE_ATTACK_VALUE:
                    IncreaseAttackValue(p_fightValues, skillEffectStaticData, p_skill, p_slot);
                    break;

                case ESkillEffectType.INCREASE_DAMAGE_FACTOR:
                    IncreaseDamageFactor(p_fightValues, skillEffectStaticData, p_skill, p_slot);
                    break;

                case ESkillEffectType.INCREASE_DAMAGE_SKILL_BONUS:
                    IncreaseDamageSkillBonus(p_fightValues, skillEffectStaticData, p_skill, p_slot);
                    break;

                default:
                    if (type == ESkillEffectType.INCREASE_ARMOR_VALUE)
                    {
                        IncreaseArmorValue(p_fightValues, skillEffectStaticData, p_skill);
                    }
                    break;

                case ESkillEffectType.INCREASE_CRITICAL_HIT_CHANCE:
                    IncreaseCriticalHitChances(p_fightValues, skillEffectStaticData, p_skill, p_slot);
                    break;

                case ESkillEffectType.INCREASE_CRITICAL_DAMAGE:
                    IncreaseCriticalDamageFactor(p_fightValues, skillEffectStaticData, p_skill, p_slot);
                    break;

                case ESkillEffectType.INCREASE_CRITICAL_MAGIC_DAMAGE:
                    IncreaseCriticalMagicDamageFactor(p_fightValues, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.INCREASE_CRITICAL_MAGIC_HIT_CHANCE:
                    IncreaseMagicalCriticalHitChances(p_fightValues, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.ADDITIONAL_BLOCK_ATTEMPT:
                    IncreaseBlockAttempts(p_fightValues, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.ADDITIONAL_MELEE_BLOCK_ATTEMPT:
                    IncreaseMeleeBlockAttempts(p_fightValues, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.INCREASE_CRITICAL_HIT_DESTINY_MULTIPLIER:
                    IncreaseCriticalHitDestinyMultiplier(p_fightValues, p_slot, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.DECREASE_DAMAGE_PENALTY:
                    DecreaseDamageValuePenalty(p_fightValues, p_slot, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.DECREASE_ATTACK_VALUE_PENALTY:
                    DecreaseAttackValuePenalty(p_fightValues, skillEffectStaticData, p_skill);
                    break;

                case ESkillEffectType.INCREASE_BLOCK_CHANCE:
                    IncreaseBlockChance(p_fightValues, skillEffectStaticData, p_skill);
                    break;
                }
            }
        }
 private void IncreaseMagicalCriticalHitChances(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     p_fightValues.CriticalMagicHitChance = ResolveValue(p_fightValues.CriticalMagicHitChance, p_effect, p_skill);
 }
 private void IncreaseMagicSkillBonus(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill)
 {
     p_fightValues.MagicFactorSkillBonus[(ESkillID)p_skill.StaticID] = ResolveValue(p_fightValues.MagicFactorSkillBonus[(ESkillID)p_skill.StaticID], p_effect, p_skill);
 }
Esempio n. 26
0
        public void ResolveFightValueEffects(EEquipSlots p_equipSlot, Equipment p_equip, FightValues p_fightValues)
        {
            m_fightValues = p_fightValues;
            Int32 prefixLevel = p_equip.PrefixLevel;
            List <PrefixStaticData> prefixes = p_equip.Prefixes;

            foreach (PrefixStaticData prefixStaticData in prefixes)
            {
                if (prefixStaticData.Effect == EPrefixEffect.INCREASE_ELEMENTAL_PROTECTION)
                {
                    IncreaseElementalProtection(prefixStaticData, prefixLevel);
                }
                else if (prefixStaticData.Effect == EPrefixEffect.ADD_ELEMENTAL_DAMAGE)
                {
                    AddElementalDamage(prefixStaticData, prefixLevel, p_equipSlot);
                }
            }
            Int32 suffixLevel = p_equip.SuffixLevel;
            List <SuffixStaticData> suffixes = p_equip.Suffixes;

            foreach (SuffixStaticData suffixStaticData in suffixes)
            {
                ESuffixEffect effect = suffixStaticData.Effect;
                switch (effect)
                {
                case ESuffixEffect.INCREASE_MELEE_ATTACK_VALUE:
                    if (p_equipSlot == EEquipSlots.OFF_HAND)
                    {
                        m_fightValues.OffHandAttackValue += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    }
                    else
                    {
                        m_fightValues.MainHandAttackValue += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    }
                    break;

                case ESuffixEffect.INCREASE_RANGE_ATTACK_VALUE:
                    m_fightValues.RangedAttackValue += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    break;

                default:
                    switch (effect)
                    {
                    case ESuffixEffect.PROTECTION_AGAINST_PARALYZED:
                        m_fightValues.ConditionProtectionParalysis += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;

                    case ESuffixEffect.PROTECTION_AGAINST_SLEEPING:
                        m_fightValues.ConditionProtectionSleep += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;

                    case ESuffixEffect.PROTECTION_AGAINST_POISONED:
                        m_fightValues.ConditionProtectionPoison += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;

                    case ESuffixEffect.PROTECTION_AGAINST_CONFUSED:
                        m_fightValues.ConditionProtectionConfusion += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;

                    case ESuffixEffect.PROTECTION_AGAINST_WEAK:
                        m_fightValues.ConditionProtectionWeakness += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;

                    case ESuffixEffect.PROTECTION_AGAINST_CURSED:
                        m_fightValues.ConditionProtectionCurses += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;

                    case ESuffixEffect.PROTECTION_AGAINST_KNOCKOUT:
                        m_fightValues.ConditionProtectionKnockOut += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                        break;
                    }
                    break;

                case ESuffixEffect.INCREASE_CRITICAL_HIT_CHANCE:
                    if (p_equipSlot == EEquipSlots.OFF_HAND)
                    {
                        m_fightValues.CriticalOffHandHitChance += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND) / 100f;
                    }
                    else if (p_equipSlot == EEquipSlots.RANGE_WEAPON)
                    {
                        m_fightValues.CriticalRangeHitChance += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND) / 100f;
                    }
                    else
                    {
                        m_fightValues.CriticalMainHandHitChance += suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND) / 100f;
                    }
                    break;

                case ESuffixEffect.INCREASE_CRITICAL_DAMAGE:
                    if (p_equipSlot == EEquipSlots.OFF_HAND)
                    {
                        m_fightValues.OffHandCriticalDamageMod += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND) / 100f;
                    }
                    else if (p_equipSlot == EEquipSlots.RANGE_WEAPON)
                    {
                        m_fightValues.RangeCriticalDamageMod += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND) / 100f;
                    }
                    else
                    {
                        m_fightValues.MainHandCriticalDamageMod += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND) / 100f;
                    }
                    break;

                case ESuffixEffect.INCREASE_EVADE_VALUE:
                    m_fightValues.EvadeValue += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    break;

                case ESuffixEffect.INCREASE_ARMOR_VALUE:
                    m_fightValues.ArmorValue += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    break;

                case ESuffixEffect.INCREASE_MELEE_BLOCK_ATTEMPTS:
                    m_fightValues.MeleeBlockAttempts += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    break;

                case ESuffixEffect.INCREASE_GENERAL_BLOCK_ATTEMPTS:
                    m_fightValues.GeneralBlockAttempts += (Int32)suffixStaticData.GetValueForLevel(suffixLevel, p_equip.ItemSlot == EItemSlot.ITEM_SLOT_2_HAND);
                    break;
                }
            }
        }