.

Damage Calculation

Line 17: Line 17:
  
 
if (PartialBypass > 0 )
 
if (PartialBypass > 0 )
 
 
{
 
{
 
 
TargetDR = (TargetDR * (100 - PartialBypass )) / 100;
 
TargetDR = (TargetDR * (100 - PartialBypass )) / 100;
 
 
}
 
}
  

Revision as of 22:12, 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);

(Difference between revisions)
Jump to: navigation, search