Damage Calculator Itself

Calculation Order

Tests if target can take damage (like hatapon immunity test)

Details

Base Damage Calculation

Critical Calculation

  1. Checks if attacker has crit, and check defender's critical immunity.
  2. Gets Critical % - Critical Resistance %. We'll call this "Actual Crit".
  3. Set the Actual Crit to 5%, if the Actual Crit is less than 5%.
  4. Critical Chance = Actual Crit - (0%-100% RNG)
  5. If Critical Chance is more than zero, critical is landed!
  6. Final damage from critical is Damage*((Critical Chance) *2+1.5)

Defensive and Attack Against bonus

They are just simple multipliers. That's why having more types is not good for VS - People bring good defensive enchants, so defensive bonus is usually less than 100% in VS.

For example, if enemy has Stab and Fire, and all your multipliers are x0.85, You got x0.85 from stab and x0.85 from fire = You take only 72.25% of damage.

This one is applied to attack type bonus (The Demon, Undead, Giant etc one) too.

Also, this calculation makes Peerless Turtle worse. Since Peerless Turtle multiplies all defensive bonus to 2x, taken damage with two attack elements becomes 4x, with three elements 8x and so on.

Defence

Yes, it just subtracts from damage as raw, also works only with physical attacks.

Also, just like shield evasion, defence doesn't check if the attack is melee or range

Which means if you take 10000 damage, and your defence is 100, you take 9900 damage.

So defence is useless when damage is magical, or damage amount is too big. It works best for small, frequent physical attack.

Shield Evasion

Crush type ignores shield evasion. Otherwise, having any of Stab/Slash/Strike will trigger shield evasion.

For example, Incensar (Pure fire) or Raijinpon's Bow (Pure lightning) are counted as pure magic attack, so they ignore Shield Evasion and Defence.

Level bonus

When attacker level value is greater than zero:

  1. Calculates Attacker level - Defender level, we'll call this as “Diff” value.
  2. Skips if attacker level is same as defender level
  3. Clamp the Diff value to -3 ~ 3
  4. If Diff is less than 0, subtract one from Diff. If Diff is greater than 0, add one to Diff.
  5. Damage = Damage + Damage*Diff*0.1

This is damage dealt by Attacker-Defender level difference:

-3 or less -2 -1 0 1 2 3 or more
-40% -30% -20% 0% +20% +30% +40%

Fish in Pond, Big Fish in Pond, Windmill Power, Flash Shower boosts level value (boost amounts on skill detail list).

If level gap is too big, they do nothing with damage (especially when your level is higher).

Status effect

Curiously, there are two functions for each fire and stagger. My assumption is, one of the two are used for indirect damage, like grassfire or thunder. But they work basically the same as others. The preparation of calculations is very similar to critical calculation.

  1. Checks if attacker has status effect, and check defender's status effect resistance
  2. Gets Status % - Status Resistance %. Let's call this is “value”.
  3. If the “value” above is less than 1%, set it to 1%.
  4. The status chance = “value” - (0-100% RNG)

Durations

Those values are seconds (likely)

Knockback

Knockback doesn't have duration, but they have "knockback angle" (as degree) and "knockback power".

Final knockback power is maximum value from followings: Knockback power + (Knockback power) * (Final kb chance) - Weight or Knockback power

Tumble

Tumbling is a very special case. Tumble immunity exists, but there's no stat implementation for tumble % or tumble resist %.