Damage Calculation
Line 1: | Line 1: | ||
− | + | Damage is calculated as: | |
TargetDR = Armor + Perks | TargetDR = Armor + Perks | ||
− | TargetDR = (TargetDR* (100 - (10 * HitTheGap) + 30*attacker.Param[TRAIT_FINESSE])) / 100 | + | TargetDR = (TargetDR* (100 - (10 * HitTheGap) + 30*attacker.Param[TRAIT_FINESSE])) / 100 |
− | TargetDT = Armor + Perks | + | TargetDT = Armor + Perks<br /> |
− | TargetDT = (TargetDT * (100 - (10 * HitTheGap) + changeDT)) / 100 | + | TargetDT = (TargetDT * (100 - (10 * HitTheGap) + changeDT)) / 100 |
− | PartialBypass % = 60 * Decreaed DR WeaponTrait | + | PartialBypass % = 60 * Decreaed DR WeaponTrait |
− | PartialBypass += 30 + (30 * (55 - ((21 - L) * L) / 2)) / 45 | + | PartialBypass += 30 + (30 * (55 - ((21 - L) * L) / 2)) / 45 |
− | PartialBypass -= target.Perk[PE_ARMOR_EFFICIENCY] * 15 | + | PartialBypass -= target.Perk[PE_ARMOR_EFFICIENCY] * 15 |
− | PartialBypass += 15 * (weaponPerkEff(attack.WeaponPerks, attack.Skill, WP_PIERCING_STRIKE)) | + | PartialBypass += 15 * (weaponPerkEff(attack.WeaponPerks, attack.Skill, WP_PIERCING_STRIKE)) |
− | PartialBypass += 15 * weaponLegendaryEff(realWeapon,WP_PIERCING_STRIKE) | + | PartialBypass += 15 * weaponLegendaryEff(realWeapon,WP_PIERCING_STRIKE) |
− | PartialBypass += GetLeadershipBoost(attacker,FTLB_MORE_ARMOR_BYPASS) | + | PartialBypass += GetLeadershipBoost(attacker,FTLB_MORE_ARMOR_BYPASS) |
− | PartialBypass -= GetLeadershipBoost(target,FTLB_LESS_ARMOR_BYPASS) | + | PartialBypass -= GetLeadershipBoost(target,FTLB_LESS_ARMOR_BYPASS) |
− | PartialBypass = CLAMP(partialBypass, 0, 100) | + | PartialBypass = CLAMP(partialBypass, 0, 100) |
if (PartialBypass > 0 ) | if (PartialBypass > 0 ) | ||
Line 39: | Line 39: | ||
rawMax *= rounds | rawMax *= rounds | ||
− | rawDmg = Random(rawMin, rawMax) | + | rawDmg = Random(rawMin, rawMax) |
Revision as of 23:14, 6 April 2016
Damage is calculated as:
TargetDR = Armor + Perks TargetDR = (TargetDR* (100 - (10 * HitTheGap) + 30*attacker.Param[TRAIT_FINESSE])) / 100
TargetDT = Armor + Perks
TargetDT = (TargetDT * (100 - (10 * HitTheGap) + changeDT)) / 100
PartialBypass % = 60 * Decreaed DR WeaponTrait PartialBypass += 30 + (30 * (55 - ((21 - L) * L) / 2)) / 45 PartialBypass -= target.Perk[PE_ARMOR_EFFICIENCY] * 15 PartialBypass += 15 * (weaponPerkEff(attack.WeaponPerks, attack.Skill, WP_PIERCING_STRIKE)) PartialBypass += 15 * weaponLegendaryEff(realWeapon,WP_PIERCING_STRIKE) PartialBypass += GetLeadershipBoost(attacker,FTLB_MORE_ARMOR_BYPASS) PartialBypass -= GetLeadershipBoost(target,FTLB_LESS_ARMOR_BYPASS) PartialBypass = CLAMP(partialBypass, 0, 100)
if (PartialBypass > 0 ) { TargetDR = (TargetDR * (100 - PartialBypass )) / 100; }
TargetDR += Ammo.DRMod TargetDR = CLAMP(TargetDR , 0, 100)
TargetDT = (TargetDT * (100 + Ammo.DTMod)) / 100 TargetDT = CLAMP(TargetDT , 0, 9999)
DmgMul = DmgMul * Ammo.DmgMul / 100 DmgMul = (DmgMul * bonusDamage) / 100
rawMin += BRD - targetDT rawMin -= rawMin * targetDR / 100 rawMin *= dmgMul / 100 rawMin *= rounds rawMax += BRD - targetDT rawMax -= rawMax * targetDR / 100 rawMax *= dmgMul / 100 rawMax *= rounds
rawDmg = Random(rawMin, rawMax)