Girls Frontline Damage Determination Theorycrafting

0
Girls Frontline Damage Determination Theorycrafting

Damage determination procedure:

1. Determine if the attack hits,if it doesn’t then evade.

2. Settle shield break’s effect.

3. Determine if force shield is broken,if it isn’t then deflect.

4. Undergo damage floating range adjustment

5. Settle armor’s effect

6. Determine if the shot crit,if it does then calculate crit’s effect.

7. Settle fixed damage.

8. Settle damage increase/reduction effect.

9. Settle shield’s effect

(9.5 Shows damage animation above doll)

10. Settle AOE effect and dummy-link protection.

11. Settle final damage and heavy damage protection.

From the damage determination procedure, we can conclude that:

  • Successful evasion won’t take damage,also will not lose force shield point.
  • shield break does not have floating range.
  • shield break is settled first before being determined,if shield break is enough to break force shield, the damage will not be deflected.
  • Successful deflection won’t take damage.
  • Crit is calculated after armor,damage reduced by armor cannot crit.
  • Same goes for “damage increase” effect,damage reduced armor cannot be “increased”, but crit damage and fixed damage can still but increased/reduced.
  • AOE is settled after damage floating range is settled,so every dummy link of the same doll will take equal damage(unless protection mechanic is triggered)
  • AOE is settled after shield,damage absorbed by shield won’t increase based on dummy-link count.
  • Dummy link protection  and heavy damage protection is triggered after damage animation is shown,hence the number appears on doll is before protection, not necessarily actual damage received.

Additional explanation on “single damage instance” concept,which is what is calculated in this passage:1 attack of a single dummy link is 1 damage instance, one 5x dummy-linked doll shooting at once will result in 5 “single damage instances”, the above procedure will be processed 5 times, all 5 damage instances can deal different damage due to floating range. This is different for single shot nade, single shot nade is shot by a single dummy link, which has AOE effect,only undergo the procedure above once,hence damage is the same(unless protection mechanic is triggered). Hopefully the readers can understand the difference.

About Stats:

“Stat” can be referred as damage, evasion, accuracy…. or just any related stat. What you normally see is “panel stats”,while stats calculated with actual formula is the actual stats(cannot be seen directly, have to be calculated),hence it will be explained below,

Panel Stat

Panel Stat:The green or white coloured number shown on doll in the “formation” interface,including the effect of affection, fairy and equipments, this is the easiest stat to check.

Panel Stat = ceiling{(1+fairy correction) * (base stat + equipment stat + sign(affection correction) * ceiling{base stat * abs(affection correction)})}

In the formula above, sign() means to take ± symbol,abs() means to take absolute value.

When affection correction is not a negative value(which is most of the time),the formula can be simplified to:

Panel Stat(non negative affection correction) = ceiling{(1+fairy correction) * (equipment stat + ceiling{base stat* (1+affection correction)})}

Base stat:The value when stat is not increased by any factor, you can check this value in “enhancement” tab and also index.

Affection Correction:

Affection[0, 10):-5%

Affection[10, 90):0%

Affection[90, 140):5%

Affection[140, 190):10%

Affection[190, 200]:15%

Enemy affection is fixed at 50, hence correction=0

Fairy Correction:
It can means either fairy buff or debuff.

When equipped with equipment, panel stats will be shown as X+Y, when it is shown that way:

Panel Stat = X + Y

Y = Equipment stat

X = panel stat – Y = ceiling{(1+fairy correction) * (equipment stat + ceiling{base stat * (1+affection correction)})} – equipment stat

Actual Stat

Actual Stat:Actual value of doll’s stat during battle, which is the result you get after including Panel stat,formation correction, and all buff/debuff.

Stat before rounding = max(minimum stat, panel stat *(1+formation correction)*(1+skill correction 1)*(1+skill correction 2)*…)

Damage, Crit :Actual stat=stat before rounding

Shield break:Actual stat=ceiling{stat before rounding}

Day accuracy, evasion, movement speed, RoF, shield break, armor:Actual stat=floor[stat before rounding]

Night accuracy:Actual stat=floor[stat before rounding*(1-90%*(1-PEQ correction))]

Crit damage:Actual stat=floor[stat before rounding*100]/100

  Skill correction:including fairy talent, fairy skill, doll skill, enemy boss’ skill etc.

Minimum stat:

Damage, evasion, ms, crit rate, crit damage, AP, armor, shield break: 0

Accuracy, RoF*:1

*Attention:RoF stat in attack and reload formula has more strict limit, for more detail please read “About RoF” section, although in this part, 1 is the absolute minimum for RoF.

All stats in the passage after this are all actual stat unless otherwise stated.

HOC

Firepower=HOC’s damage

Accuracy=HOC’s precision

Evasion=0

MS=0

ROF=ceiling{(75+HOC reload speed)/18}

Crit Rate=10%

Crit Damage=150%

Armor penetration=HOC AP(BGM-71=400,AGS-30=80,2B14=40)

Armor=0

Shield Break=HOC’s shield break

Night Vision=100% (No night battle penalty)

All parameter above are base stat,applicable for panel stat and actual stat.

Also, due to all 3 HOC being unable to crit with normal attack and skill, the crit rate value is actually useless.

About Evasion:

Evasion:also called dodge, is the main means of defense for most dolls. Whenever a doll is attacked, it has a certain probability to evade, if successfully it evaded, the doll won’t take damage. Please note that not all kind of damage can be evaded.

Accuracy:the mean to counter evasion, the higher the accuracy, the lower the chance for the shot to be dodged.

Hit Rate

Hit Rate = attacker’s accuracy / (attacker’s accuracy + target’s evasion) 

HOC’s hit rate = max(30%, precision / (precision + target’s evasion * 10))

Determine if the shot hit,

1. If the damage cannot miss, then it succeed

2. If random number[0,1)<=Hit Rate,then succeed,otherwise failed.

Example of damage that cannot miss

Nades

Molotovs

Snipe(nuke/bamboo) (except Thunder)

Airstrike fairy

M4 skill 2’s non aoe part(AOE can be dodged)

   etc.


About Force Shield:

Force shield value:Thompson,M870’s skill and special defensive mean of some of the enemies.  Please differentiate force shield and shield properly,(shield break refers to force shield). When force shield point is higher than 0, damage received by the doll has a chance to be deflected by force shield, if successfully deflected than the damage is avoided. Please note that not all kind of damage can be deflected.

Shield Break:the mean to counter force shield,can decrease force shield point,ultimately destroy force shield.

Maximum force shield point:maximum value of force shield point. Affects deflection chance Please note that maximum force shield point is not necessarily initial force shield point, many enemy’s initial force shield point is lower than maximum force shield point. Against these enemies, even without armor break can also hit them.

Enemy initial force shield point = Maximum force shield point * initial force shield%

Settle shield break effect

Force shield point after shield break = force shield point before shield break – attacker’s shield break

Deflection rate

Deflection rate = Defender’s current force shield point / Defender’s maximum force shield point

Determine if the attack goes through force shield

1. If the damage cannot be deflected(guarantee shield break), then succeed.

2. If random number[0,1)<=1 – deflection rate,then succeed,otherwise failed.

Example of damage that cannot be deflected

M4A1’s skill 2
Uhlan’s skill

About Armor:

Armor:SG’s main mean of defensive, alot of enemy bosses also use this as one of their mean of defense. Armor can reduced a part of damage the doll received but the damage cannot be reduced to 0. Minimum damage taken = 1.

Armor Penetration:the mean to counter armor, can offset part of or all effect of armor. When AP>Armor, final damage can be increased by a maximum of 2, any excess after 2 is technically useless. Remember to account the fact that all our dolls have base 10 AP when doing calculation.

Damage:Base damage value,armor、crit rate etc. are based on panel stat. After all the correction it will become “final damage”. When final damage is dealt, target’s hp will be decreased.

Please note that damage floating is calculated before armor

Undergo damage floating range adjustment

1. If the damage does not have a floating range, floating damage = attacker’s damage

2. Floating damage = attacker’s damage * random number[0.85, 1.15)

Settle armor’s effect

Damage after armor penetration = max(1, floating damage + min(2, attacker’s AP – defender’s armor))

Example of damage without floating range

Some of the skills of Scarecrow, Executioner, Gager and Judge.

About Damage:

Crit:Short for crit rate. Everytime doll executes an attack that can crit will have certain chance to deal extra damage. This is the rate to trigger the “extra damage”. Please note not all damage type can crit.

Crit Damage:Extra damage dealt when the attack crit.

Fixed Damage:Airstrike、M1887 etc. skill’s damage. Directly deal fixed amount of damage to target. This damage is not affected by floating range, crit and armor.

Damage increase effect:Contender, Kiana, Himeko etc.’s skill. It increase the damage received by the target.

Damage reduction effect:Defense Fairy、FP-6 etc.’s skill. Can decrease the damage received by the target. It is the exact opposite of damage increase effect.

Shield:Shield Fairy、S.A.T.8 and some bosses’ skill. When doll received damage, the damage will be absorbed by the shield first, then if the damage exceed damage absorbable by the shield, it will be directed to the doll’s HP.Please note that Force Shield and Shield are different, Shield “absorbs” damage while Force Shield “deflects” damage.




Determine if the attack crit.

1. If the attack cannot crit, then it fails.

2. If random number[0,1)<=Attacker’s Crit Rate,then succeed,otherwise failed.

Settle crit’s effect

If succesfully crit:Damage after crit= damage after ap* attacker’s crit damage

If failed to crit:Damage after crit = damage after ap

Example of damage that cannot crit

Grenades

Molotovs

Snipe(Nuke/Bamboo) (Besides TAC50)

M4A1’s skill 2 

Big 4’s passive besides PKP

Settle fixed damage

Damage before damage increase effect = max(0, ceiling{Damage after crit + fixed damage})

Settle damage increase/reduction effect

If damage is not equal to 0:Damage after damage increase effect = max(1, floor[damage before damage increase effect * damage increase/reduction effect]), otherwise 0

Damage increase/reduction effect = (1+damage increase effect 1)*(1-damage reduction effect 1)*(1+damage reduction effect 2)*(1-damage reduction effect 2)*…

Settle shield’s effect

Damage after shield = max(0, damage after damage increase effect – defender’s shield point before the effect is settled)

Shield after settling the effect = max(0, defender’s shield point before the effect is settled – damage after damage increase)

Shield Point = Remaining damage the shield can absorb

Showing damage animation

Damage after shield’s effect is settled is actually already Final single dummy damage,which is the number appears above the doll. The 9 steps are already pretty complicated, so it can be concluded as below

Final single dummy damage=max(0, -current shield point + max(1, floor[damage increase/reduction effect * max(0, ceiling{fixed damage + (Crit?Crit Damage:1) * max(1, damage * floating range + min(2, AP – Armor))})]))

  • Stats are all actual stats, shield, armor and damage increase/reduction effect are all from defender, the rest are from attacker.
  • This is the formula for normal situation,as if damage before shield’s effect is settled>0 and the damage has a floating range.
  • (Crit?Crit Damage:1) means if crit then use crit damage,otherwise the value is 0.

About HP:

HP:short for Health Point, is the final mean of defense for dolls. When the doll reaches 0 HP, it loses its capability to fight.

Dummy Link:The dummy count of the doll, ranging from 1~5.

Dummy link protection:One bullet can only kill 1 link, the excess damage will be wasted and won’t affect other dummy. AOE attack can deal damage to every dummy but the excess damage after killing the one dummy link still won’t affect other dummy link.

Lowest remaining dummy HP :It means the lowest remaining HP of all dummy links of the same doll. Damage in this damage can only be received by 1 dummy at a time. For instance, dummy 2 won’t take damage until dummy 1 is dead.

Lowest remaining dummy HP = Current total HP – (Current dummy link count – 1) * maximum HP of a single link

Settle AOE effect and Dummy-link Protection

If the damage is single target damage:

Final damage = min(defender’s lowest remaining dummy HP, final single damage)

If the damage is AOE:

Final damage = min((defender’s lowest remaining dummy HP, final single dummy damage) + min(defender’s lowest remaining dummy HP, final single dummy damage) * (defender’s current dummy link count – 1)

Settle final damage and heavy protection

Heavy damaged:When the doll reaches lower than 30% of its maximum total HP, it will enter heavy damaged mode, which will increase repair cost and time.

Heavy damage protection:If the doll received damage, damage will drop from 30%(including) to below 30%(not including), and its HP will stay at 30% while being invincible for a period of time(1.5s).Only works for our dolls, not applicable for enemy dolls.

Total HP after damage = Total HP before damage – final damage

If its allied non-heavy damaged doll, after damage total HP<30%*Maximum Total HP,then HP after damage=floor[30%*Maximum Total HP]-1

About RoF:

RoF:Short for Rate of Fire. MGs’ RoF don’t affect their attack speed but their reload speed.

Limited RoF = max(gun type minimum ROF, min(gun type maximum RoF, actual RoF))


[Minimum, Maximum RoF]:

HG, SMG, AR, RF:[15, 120]

SG:[15, 60]

HOC:[5, 50]

MG:[1, 1000]

Frame between each attack

Frame rate:All times in game is calculated using frame,1s = 30 frames. Time spent for dummy’s movement,skill,attack etc. is always a whole number frame rate(which is 0.033333…’s whole number multiples),hence frame will be used as the unit for time for calculation below.

Frame between each MG’s normal attack = Fixed

Frame between other guns’ normal attack = floor[1500 / Limited RoF]

Frame between each shot of MG:

Big 4 : 11 frames
Other MGs : 10 frames

Frame needed for reload

Clip size:Special stat of SGs and MGs. These 2 types of doll have to reloading after performing number of shot equals to their clip size

Frame needed for MGs to reload = floor[(4 + 200 / Limited RoF) * 30]

Frame needed for SGs to reload = floor[65 + 15 * Clip Size]



Extended Explanation of Dummy Link Protection by example

If the maximum total HP of a 5 dummy-link doll is 500 HP, then the maximum hp of a single link is 100 HP, every dummy link will have 100 HP at the start

  • If the doll took 20 damage, all those damage will be taken by dummy 1, which means dummy 1 will have 80 HP left, dummy 2~5 will have 100 HP left. At this time, “Total HP” = 480, “Dummy Link”=5, “Lowest Remaining Dummy HP” = 80.
  • If it accumulate 100 damage received, then dummy 1 will die,dummy 2~5 still have 100 HP each. At this time “Total HP”=400、“Dummy Link”=4、“Lowest Remaining Dummy HP”=100。
  • If it accumulate 150 damage received, then dummy 2’s HP will become 50.At this time “Total HP”=350、“Dummy Link”=4、“Lowest Remaining Dummy HP”=50。

About Dummy Link Protection:

Take the doll above that still have 350 HP. The current dummy that is taking damage is dummy 2, which has 50 HP left.

  • If at this time the doll receive a single target 80 damage shot. Due to 80> Dummy 2’s 50 HP, so this attack can only kill dummy 2. The excess 30 damage is wasted.At this time “Total HP”=300、“Dummy Link”=3、“Lowest Remaining Dummy HP”=100.

  • If the doll receive an AOE attack that deals 80 damage。Due to 80> Dummy 2’s 50 HP, so this attack can only kill dummy 2, but it still deals 80 damage to the other 3 dummy link, total up to 240 damage, which will kill dummy 3 and dummy 4, ultimately leaving dummy 5 with 60 HP left.“Final Damage”=50+80*3=290. After calculation dummy 2,3,4 are all dead “Total HP”=350-290=60、“Dummy Link Count”=1、“Lowest Remaining Dummy HP”=60