NPC Combat MechanicsEdit
Global Damage FormulaEdit
The damage formula has four factors:
- Base Damage * Hero Factor * Damage Modifier * # of Attacking Units
Base DamageEdit
- Represents the role that Unit Stats play in the formula and its value is equal to:
- UATK * (UATK / (UATK + UDEF) )
- UATK = attacking unit attack
- UDEF = defending unit defense
- Example : Ghost Dragon vs. Common Ghost
- UATK = Ghost Dragon ATK
- UDEF = Common Ghost DEF
- UATK * (UATK/(UATK + UDEF)) = 165 * (165/(165+5)) = 160.15
Hero FactorEdit
Represents the way that hero's stats affects the formula and its value is:
(HATK + 100) / (HDEF + 100)
But when fighting NPC, HDEF = 0, then final Hero Factor for NPC mechanics would be: (HATK+100) / 100
This means when using 200 attack versus an NPC, the total damage will be 3 times the damage done with 0 attack.
A unit will never deal less than 30% of the base damage (base damage is the damage without modifiers).
Damage ModifierEdit
There are several buffs that modify damage as part of this multiplier:
Increases damage caused by melee (ranged) units: X
Decreases damage received by melee (ranged) units: X
Just add together all the damage increased buffs and subtract the damage decreased and HP buffs and you have the damage modifier.
Example: I have 3 buffs of "Increases damage caused by melee units:4" and my opponent has two buffs of "Decreases damage received by melee (ranged) units: 5". The damage modifier will be 1 + 12/100 - 10/100 = 1.02
(note: you can only consider the enemies "Decreases damage received by melee (ranged) units" when it is another player, and are able to search their hero to determin their bonuses.)
General Damage FormulaEdit
( UATK * UATK / (UATK + UDEF) ) * ( (HATK + 100) / (HDEF + 100) ) * (Damage Modifier) * (# of attacking units)
Spells that modify ATK or DEF modify base UATK or UDEF.
Spells that modify damage dealt add to the damage modifier.
ALL modifiers of the same type are added/subtracted together before being applied.
In-game results comparisonEdit
Stack of 500 Priests against NPC Colossus
Priest base UATK = 72
Colossus base UDEF = 109
Player Hero HATK = 168
NPC Hero HDEF = 0
Level 10 Rain of Arrows: Priest UATK +15% = 82.8
In-game result: 47897 damage
Formula result: 47897.95 damage
Note that all attack buffs modify UATK before any calculation, same happens with UDEF.
PvP Combat MechanicsEdit
This formula offers a good estimation of damage that a certain stack of units would do to another one just knowing a few variables, however, game options offers a lot of ways of modifying this stats and an 100% accurate formula for PvP Combat Mechanics is still under development and needs lots of research. This research is mostly stymied by the very large number of bugs associated with buffs on items. Some buffs (such as "Increases melee unit DEF: X" don't work at all), whereas others (such as "Lich King's ATK Increases : X") only work on some items but not on others. The only way to know whether a given buff works is to test it out
More formulaeEdit
Holding place for information pending article. Watch this space!
Formula that seems to work:
Eds note: have confirmed that some of the equation that follows below is absolutely wrong. Use at your own risk.
Uatk = attacking unit's base ATK
Udef = defending unit's base DEF
Hdef = defending hero's DEF
Hatk = attacking hero's ATK
Iatk = Items that adds ATK to specific units, ex: +2 atk to melee (it does stack!!! 2 + 2 = 4 etc.)
Idmg = Items that adds damage to melee/ranged units, ex: increase damage caused by melee units: 2 (doesn't stack, take highest #)
Idef = Items that adds DEF to specific units (It DOES stack)
Ired = Items that reduce damage taken from defending side, such as reduced damage received by ranged units: 3
Iatk% = Items that adds specific unit's attack by percentage, ex: add 2% ATK to ranged units
Satk = skills that adds attack percentage, ex: rain of arrows adds 1.5% attack per level to ranged units when activated in combat
Sdef = skill that adds defending units' Def by percentage, ex: fortifying defence adds 5% def per level for units waiting for their turn to attack
units = number of attacking units
Final damage calculation vs npc w/o hero will be as follows: [IT'S WRONG FORMULA. Putin.--> Vive moi :)]
[ Uatk * (1+ Iatk / 100) ]^2 / [ Uatk * (1+ Iatk / 100) + Iatk + Udef ] * (1 + Hatk/100 + Iatk% / 100) * (1 + Idmg / 100) * (1 + Satk / 100) * units
PvE Formula (+ some def bonuses):
damage = integer { (1 - hp/100) * integer [ mUatk^2 / (mUatk + mUdef) * (1 + Hatk / 100) * (1 + (Idmg - rdam) / 100) * units] }
Where
mUatk = Uatk * [1 + (Satk + Iatk + Iatk%) / 100] + batk
mUdef = Udef * [1 + (ldef%) / 100]
Uatk= attacking unit's base ATK
batk = item that adds a specific unit's ATK bonus
Udef = defending unit's base DEF
Hatk = attacking hero's ATK
Hdef = defending hero's DEF
Idmg = Items that adds damage to melee/ranged units, ex: Increase damage caused by melee units: 2 (stackable, adds up)
rdam = total damage reduction for ranged units, ex: reduces damage recieved by ranged units by: 3
Iatk = Items that adds ATK to melee or ranged, ex: Increases melee unit ATK: 3 (I have yet to find 2 items with this bonus to prove it is stackable)
Iatk% = Items that adds specific unit's attack by percentage, ex: Fairy Dragon's ATK increases %: 6 (stackable)
ldef% = Items that adds specific unit's defense percentage
Satk = skills that adds attack percentage, ex: rain of arrows adds 1.5% attack per level to ranged units when activated in combat
hp = sum of all hp bonus items for the defending units, (if it is Ghost Dragons, both melee and "Ghost Dragon hp" will apply, and there's no distinction between the absolute and the percentage)
NOTE: This currently only works against enemies without heroes. Check the discussion if you want to help calculate the almighty formula for PVP.
CASIMODO 12:55, May 3, 2010 (UTC)
Increase Atk or Def
Frequently, a player may either increase the attack or defense the units. A good calculation to do is whether or not the increase in attack and the increase in your opponent's defense will result in more damage or less damage than the original.
If A is the attack modifier, and B is the defense modifier, then
More damage will be done if and only if ATK>((B-A²)/(A²-A))*DEF
Proof
(ATK*A)²/(ATK*A+DEF*B) > (ATK²)/(ATK+DEF)
ATK²*A²/(ATK*A+DEF*B) > ATK²/(ATK+DEF)
A²/(ATK*A+DEF*B) > 1/(ATK+DEF)
A²(ATK+DEF) > ATK*A+DEF*B
A²*ATK+A²*DEF > ATK*A+DEF*B
A²*ATK-A*ATK > DEF*B-A²*DEF
(A²-A)*ATK > (B-A²)*DEF
ATK > ((B-A²)/(A²-A))*DEF
Therefore (ATK*A)²/(ATK*A+DEF*B)>(ATK²)/(ATK+DEF) is logically equivalent to ATK>((B-A²)/(A²-A))*DEF.
A corollary to this is that if B<A², then the scenario with both the attack modifier and the defense modifier will always do more damage regardless of AATK and DEF.
Proof
If B<A², then
B-A²<0
Since A²-A>0, then (B-A²)/(A²-A)<0.
Since DEF is greater than 0, then (B-A²)/(A²-A)*DEF<0
Since ATK>0, and 0>(B-A²)/(A²-A)*DEF,
then ATK>((B-A²)/(A²-A))*DEF.
From above, we know that if that is true, then (ATK*A)²/(ATK*A+DEF*B)>(ATK²)/(ATK+DEF) is true.