데미지 계산 (롱 워 리밸런스)

From UFOpaedia
Jump to navigation Jump to search

메인 페이지로

Terms

Weapon Damage: This is each weapon damage stat configurable in DefaultGameCore.ini file.


Barrel Modifiers: These are effects that modifies damage as it leaves the barrel of the weapon.

Target Modifiers: These are effects that modify the damage when it hits the target.

Crit Dmg (or Critical Damage): This is how much the damage is increased during a critical hit. The base value is 1.5, and a non-crit is 1.0.

DR (or Damage Resistance): This is how much of the damage received is resisted. It involves Flat Damage Resistance, Percent Damage Resistance, and Penetration.


Barrel Damage: This is the Weapon Damage modified by Barrel Modifiers.

Travel Damage: This is the Barrel Damage modified by Crit Dmg and then Randomized.

Damage Dealt: This is the damage that a target receives from a damage dealer. It is Barrel Damage modified by Target Modifiers.

Damage Taken: This is how much damage the unit actually takes. It is the Damage Dealt minus the Damage Resistance.

Damage Calculation


The complete damage formula is:

Damage Taken = (([(((Weapon Damage + Barrel Modifiers) * Crit Dmg) * Randomization ) + Target Modifiers] - Flat DR) * (1 - Percent DR) + Penetration)

Barrel Damage

Damage from the barrel is: Weapon Damage + Barrel Modifiers (e.g. ranger, alloy-jacketed rounds, holo, etc.). It is truncated after calculation.

Barrel Damage = ((Weapon Damage + Barrel Modifiers)

Travel Damage

After it leaves the barrel and is travelling towards the target, Crit Dmg of anywhere from 1.0x to 2.0x damage is applied (there is a minimum boost that affects low damage crits) and then the damage is Randomized.

For all damage 1-9, the damage is randomized from -1 to +1, with an even chance of being -1, 0, or +1.

For all damage 10-19, the damage is randomized from -2 to +2, with an even chance of being -2, -1, 0, +1, or +2.

The same occurs for damage of 20-29, 30-39, etc.

The minimum damage is always at least 1.

The actual formula is: Randomized Damage = Max(1, Damage + Rand[1 + (2 * (1 + Damage / 10))] - (1 + Damage / 10))

The randomization works in integer values so all values are constantly truncated (e.g. If x is 6 then x/10 = 0).

Travel Damage = (Barrel Damage * Crit Dmg) <-- Randomization

Damage Dealt

Once it reaches the targets, Target Modifiers are applied (In this order: Shredder-> VPT -> CST -> Fragmentation -> Distortion). It is truncated after each calculation.

Damage Dealt = Travel Damage + Target Modifiers

Damage Taken

Then Damage Resistance (DR) is calculated.

Flat DR is applied first, then Percent DR, then Penetration. It is truncated only after all DR has been removed from the Damage Dealt.

Damage Taken = (Damage Dealt - Flat DR) * (1 - Percent DR) + Penetration

Exceptions

Low Damage Crits

A special exception for critical hits, is that a crit with low Barrel Damage (1, 2, or 3 damage) will crit for at least 3, 4, or 5 damage, respectively. This is an artificial boost to ensure that even if a player rolls on the randomization, the crit is always at least as much as the max roll on a non-crit.

Mins and Maxes

The Damage Taken cannot be reduced below 1 by Damage Resistance (DR).


The Damage Taken can never go higher than the Damage Dealt.

For example, someone with a high amount of penetration could calculate final Damage Taken numbers higher than Damage Dealt, but this would be capped at the initial Damage Dealt.

Randomization will always set the damage to a minimum of 1.

Truncation

All damage is stored in an integer form, thus it is always being truncated during each step. This means 5.6 becomes 5, 9.1 becomes 9, and 9.9 becomes 9.

The exception to this is that Damage Resistance is not truncated and is removed from damage after both Flat DR and Percent DR is calculated.

So Damage Dealt is truncated only after all DR is removed.

Having DR not truncated means that you can have non-integer forms of DR be effective.

Example: a 10 damage shot against a unit with 0.1 Flat DR will have a Damage Taken of 9. Having both Flat DR and Percent DR calculated as total DR before truncation means that minor amounts of both DR will not end up reducing DR by 2. Example: a 10 damage shot against a unit with 0.1 Flat DR and 1 Percent DR will have a Damage Taken of 9 (it would be 8 if the damage was truncated individually between Flat DR and Percent DR).

Explosive Damage

Each unit damaged by explosive damage has the Travel Damage reduced based on distance from the center. Damage falls as half the square of the radius plus 0.5, down to 50% plus 0.5 at the periphery.

Note: The 0.5 damage is added on explosive fall-off to accommodate for truncation.

Explosive Travel Damage = 0.50 + Travel Damage * (1.0 - FMin[0.50, 0.50 * Square(Distance/Radius)])

Example Calculations

Mental In-Game Calculation

A soldier with a 3 damage assault carbine and ranger (+1 damage) fires at a drone who has 1 flat DR and 30% DR.

You'd expect it to do 4 damage (range 3-5), minus 1 flat DR down to 3 damage, minus 30% DR down to 2 damage.

Detailed Calculation

A soldier with an Assault Carbine and the Ranger perk fires at a Drone

The Assault Carbine has 4 Weapon Damage, receives +1 damage as a Barrel Modifier from Ranger, and has no innate Penetration.

The Drone has 1 Flat DR and is Hardened (30 Percent DR).

The Drone is not Shredded and does not have Distortion. The soldier does not have VPT or CST, and Fragmentation does not apply to rifles, so there are no Target Modifiers to the damage.

The shot does not 'Crit' so Crit Dmg is 1.0 and the Randomization does not change the value.

Damage Dealt = (([(((Weapon Damage + Barrel Modifiers) * Crit Dmg) <-- Randomization ) + Target Modifiers] - Flat DR) * (1 - Percent DR) + Penetration)

Damage Dealt = ((((((4 + 1) * 1.0) <-- No Randomization Change) + 0 - 1) * (1 - 0.3) + 0) = 2.8 = 2 Damage Taken