User:Antohha
| Line 1: | Line 1: | ||
| + | At first target's resistances and thresholds are calculated. | ||
| + | |||
| + | =Damage resistance= | ||
| + | TargetDR = Armor + Perks<br /> | ||
| + | TargetDR = (TargetDR* (100 - (10 * HitTheGap) + 30*attacker.Param[TRAIT_FINESSE])) / 100<br /> | ||
| + | if (PartialBypass > 0 ) | ||
| + | { | ||
| + | TargetDR = (TargetDR * (100 - PartialBypass )) / 100; | ||
| + | } | ||
| + | TargetDR += Ammo.DRMod<br /> | ||
| + | TargetDR = CLAMP(TargetDR , 0, 100)<br /> | ||
| + | |||
| + | =Bypass= | ||
| + | PartialBypass % = 60 * Decreaed DR WeaponTrait<br /> | ||
| + | PartialBypass += 30 + (30 * (55 - ((21 - L) * L) / 2)) / 45<br /> | ||
| + | PartialBypass -= target.Perk[PE_ARMOR_EFFICIENCY] * 15<br /> | ||
| + | PartialBypass += 15 * (weaponPerkEff(attack.WeaponPerks, attack.Skill, WP_PIERCING_STRIKE))<br /> | ||
| + | PartialBypass += 15 * weaponLegendaryEff(realWeapon,WP_PIERCING_STRIKE)<br /> | ||
| + | PartialBypass += GetLeadershipBoost(attacker,FTLB_MORE_ARMOR_BYPASS)<br /> | ||
| + | PartialBypass -= GetLeadershipBoost(target,FTLB_LESS_ARMOR_BYPASS)<br /> | ||
| + | PartialBypass = CLAMP(partialBypass, 0, 100)<br /> | ||
| + | |||
| + | =Damage threshold= | ||
| + | TargetDT = Armor + Perks<br /> | ||
| + | TargetDT = (TargetDT * (100 - (10 * HitTheGap) + changeDT)) / 100<br /> | ||
| + | TargetDT = (TargetDT * (100 + Ammo.DTMod)) / 100<br /> | ||
| + | TargetDT = CLAMP(TargetDT , 0, 9999)<br /> | ||
| + | |||
| + | =Damage calculation= | ||
| + | DmgMul = DmgMul * Ammo.DmgMul / 100<br /> | ||
| + | DmgMul = (DmgMul * bonusDamage) / 100<br /> | ||
| + | |||
| + | rawMin += BRD - targetDT<br /> | ||
| + | rawMin -= rawMin * targetDR / 100<br /> | ||
| + | rawMin *= dmgMul / 100<br /> | ||
| + | rawMin *= rounds<br /> | ||
| + | rawMax += BRD - targetDT<br /> | ||
| + | rawMax -= rawMax * targetDR / 100<br /> | ||
| + | rawMax *= dmgMul / 100<br /> | ||
| + | rawMax *= rounds<br /> | ||
| + | |||
| + | rawDmg = Random(rawMin, rawMax)<br /> | ||
| + | |||
| + | =Bleed calculation= | ||
| + | if ( rawDmg > 0 ) | ||
| + | { | ||
| + | BleedCoEff += attack.BleedStr + 20 * weaponPerkEff(attack.WeaponPerks, attack.Skill, WP_BETTER_BLEED); | ||
| + | BleedCoEff += 20*weaponLegendaryEff(realWeapon,WP_BETTER_BLEED); | ||
| + | |||
| + | if (BleedCoEff > 0) | ||
| + | { | ||
| + | BleedCoEff -= GetLeadershipBoost(target,FTLB_LESS_BLEED); | ||
| + | if (valid(attacker)) | ||
| + | BleedCoEff += GetLeadershipBoost(target,FTLB_MORE_BLEED); | ||
| + | |||
| + | BleedDmg = rawDmg * BleedCoEff / 100; | ||
| + | } | ||
| + | |||
| + | int toBleed = target.Param[ST_DAMAGE_TO_BLEED_DR] + 10 * target.Perk[PE_PMS]; | ||
| + | int mitbd = rawDmg * toBleed / 100 + target.Param[ST_DAMAGE_TO_BLEED_DT]; | ||
| + | if (mitbd > rawDmg ) | ||
| + | mitbd = rawDmg ; | ||
| + | |||
| + | rawDmg -= mitbd ; | ||
| + | BleedDmg += mitbd; | ||
| + | |||
| + | if (bd > 0) | ||
| + | { | ||
| + | AffectBleed(target, BleedDmg ); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
{| class="wikitable" width="90%" | {| class="wikitable" width="90%" | ||
|- | |- | ||
Revision as of 11:57, 7 April 2016
At first target's resistances and thresholds are calculated.
Contents |
Damage resistance
TargetDR = Armor + Perks
TargetDR = (TargetDR* (100 - (10 * HitTheGap) + 30*attacker.Param[TRAIT_FINESSE])) / 100
if (PartialBypass > 0 )
{
TargetDR = (TargetDR * (100 - PartialBypass )) / 100;
}
TargetDR += Ammo.DRMod
TargetDR = CLAMP(TargetDR , 0, 100)
Bypass
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)
Damage threshold
TargetDT = Armor + Perks
TargetDT = (TargetDT * (100 - (10 * HitTheGap) + changeDT)) / 100
TargetDT = (TargetDT * (100 + Ammo.DTMod)) / 100
TargetDT = CLAMP(TargetDT , 0, 9999)
Damage calculation
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)
Bleed calculation
if ( rawDmg > 0 ) { BleedCoEff += attack.BleedStr + 20 * weaponPerkEff(attack.WeaponPerks, attack.Skill, WP_BETTER_BLEED); BleedCoEff += 20*weaponLegendaryEff(realWeapon,WP_BETTER_BLEED);
if (BleedCoEff > 0) { BleedCoEff -= GetLeadershipBoost(target,FTLB_LESS_BLEED); if (valid(attacker)) BleedCoEff += GetLeadershipBoost(target,FTLB_MORE_BLEED);
BleedDmg = rawDmg * BleedCoEff / 100; }
int toBleed = target.Param[ST_DAMAGE_TO_BLEED_DR] + 10 * target.Perk[PE_PMS]; int mitbd = rawDmg * toBleed / 100 + target.Param[ST_DAMAGE_TO_BLEED_DT]; if (mitbd > rawDmg ) mitbd = rawDmg ;
rawDmg -= mitbd ; BleedDmg += mitbd;
if (bd > 0) { AffectBleed(target, BleedDmg ); } }
| | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Name | Damage | range | ap cost | speed | accuracy | dmgtype | skill | burstcount | 1hex | spread |
| Name | Damage | range | ap cost | speed | accuracy | dmgtype | skill | burstcount | 1hex | spread |
| | |||||
|---|---|---|---|---|---|
| Brahmin Boys | Family | Vault Tec | Lawyers | ||
|
![]() |
|
|
||









