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 String GetTierBoni(List <SkillEffectStaticData> p_skillEffects, Boolean p_tierAvailable) { String text = String.Empty; for (Int32 i = 0; i < p_skillEffects.Count; i++) { SkillEffectStaticData skillEffectStaticData = p_skillEffects[i]; if (skillEffectStaticData.ShowInTooltip) { String text2 = (!p_tierAvailable) ? m_unlearnedEffectColorHex : m_effectColorHex; String str = String.Empty; if (skillEffectStaticData.Mode == ESkillEffectMode.NONE) { str = LocaManager.GetText(skillEffectStaticData.GeneralDescription, text2, "[-]"); } else { Single num = skillEffectStaticData.Value; if (skillEffectStaticData.ContainsPercent) { num *= 100f; } String arg = text2 + num.ToString() + "[-]"; str = LocaManager.GetText(skillEffectStaticData.GeneralDescription, text2, "[-]", arg); } text += str; if (i < p_skillEffects.Count - 1 && p_skillEffects[i + 1].ShowInTooltip) { text += "\n\n"; } } } return(text); }
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 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 Single ResolveValue(Single p_baseValue, SkillEffectStaticData p_effect, Skill p_skill) { switch (p_effect.Mode) { case ESkillEffectMode.FIXED: return(p_baseValue + p_effect.Value); case ESkillEffectMode.PER_SKILL_LEVEL: return(p_baseValue + p_effect.Value * (p_skill.Level + p_skill.VirtualSkillLevel)); case ESkillEffectMode.PERCENT: return(p_baseValue * (1f + p_effect.Value)); case ESkillEffectMode.PER_DESTINY: return(p_baseValue + p_effect.Value * m_character.CurrentAttributes.Destiny); default: return(p_baseValue); } }
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); } }
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 DecreaseAttackValuePenalty(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill) { p_fightValues.AttackValuePenaltyReduction = (Int32)ResolveValue(p_fightValues.AttackValuePenaltyReduction, p_effect, p_skill); }
private void IncreaseMeleeBlockAttempts(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill) { p_fightValues.MeleeBlockAttempts += (Int32)p_effect.Value; }
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 IncreaseMagicalCriticalHitChances(FightValues p_fightValues, SkillEffectStaticData p_effect, Skill p_skill) { p_fightValues.CriticalMagicHitChance = ResolveValue(p_fightValues.CriticalMagicHitChance, 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 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); }
public SkillEffectEventArgs(SkillEffectStaticData p_skillEffectData) { EffectData = p_skillEffectData; }