Damage manipulation



Damage manipulation is a mechanic that alters damage values, either increasing or reducing it. Damage can be manipulated on both ends, from the dealing unit (outgoing damage) and the receiving unit (incoming damage). Armor and magic resistance are the most common damage manipulators, affecting incoming physical and magical damage respectively. Besides armor and magic resistance, a general damage manipulator exists, which is used by almost all other sources of damage manipulation. This manipulator is more flexible, and can amplify or reduce any kind of damage and may affect attack damage, spell damage, or both at the same time.

Generic Damage Manipulator
The generic damage manipulator is divided into incoming and outgoing damage manipulation, which results in them stacking multiplicatively. Most abilities that affect damage use the generic damage manipulator.

Incoming Damage
Incoming damage manipulation causes the afflicted unit to take increased or reduced damage. All sources within these lists stack additively with each other.

Armor and magic resistance work with incoming damage as well, but are handled separately and not by the generic damage manipulator. This results in them stacking multiplicatively with the general damage manipulator.

Outgoing Damage
Outgoing damage manipulation causes the afflicted unit to deal increased or reduced damage. All sources within these lists stack additively with each other.

There currently are no abilities that reduce outgoing damage using the generic damage manipulator.

Spell damage amplification is handled by the general damage manipulator, and not separately. This means all sources of outgoing damage manipulation stack additively with spell damage amplification as well. Outgoing damage manipulators do not apply to damage that is Unaffected by Amplification.

Unique Damage Manipulators
There are several damage manipulating abilities that do not use the generic damage manipulator. This results in them all stacking multiplicatively with each other and with abilities that do use the generic damage manipulator.

For these abilities, this means if their value is 100%, they are absolute and cannot be altered in any way.

Stacking
Armor and magic resistance work separately from other damage manipulators. This means they always stack multiplicatively with any other listed ability.

The effects of incoming and outgoing generic damage manipulators stack additively with themselves. Unique damage manipulators stack multiplicatively with themselves. The three sources of damage manipulation stack multiplicatively with each other after they have been combined with all of their own type.

Many source of damage manipulations have conditions on them like where it has damage manipulation only on damage that hits his back or sides, so each damage instance calculates damage manipulation separately. Additionally, outgoing generic damage manipulators do not apply to damage that is Unaffected by Amplification.

The total damage manipulation  is defined as



With  being any Incoming Generic Manipulation,   being any Outgoing Generic Manipulation, and   being any Unique Damage Manipulation. As there cannot be a negative value for damage manipulation, use 0 as a value in those cases.

Stacking outgoing damage manipulation stacks in the same way as incoming damage manipulation, i.e. additively. However, since incoming and outgoing manipulations happen at different times with outgoing manipulation calculation happening first, they stack multiplicatively with each other.

Example 1: Spell Damage Manipulation

 * has level 4 and is affected by level  ,  and 's rum buff. An enemy casted level 4  on himself and has . What would the damage manipulation for Spectre be in this scenario?


 * Incoming Generic Manipulation sources: : -, : -, :.
 * Outgoing Generic Manipulation sources: :, :
 * Unique Generic Manipulation sources: : -


 * Spell Damage $$D_M$$:



Note that, and 's amplification only apply to spell damage, therefore another calculation will be needed for non-spell damage $$D_M$$.


 * Non-Spell Damage $$D_M$$:


 * In this example, would take % spell damage and % damage from non-spell damage from the enemy in this scenario.

Example 2: Additive Stacking
All values in this section consider the highest possible level of an ability but exclude talents and aghanim's upgrades. Examples ignore armor and magic resistance.

is and is affected by.



with and is affected by.



A hero affected by and  at the same time.

Example 3: Other Multiplicative Stacking
All values in this section consider the highest possible level of an ability but exclude talents and aghanims upgrades. Examples ignore armor and magic resistance.

activated and is affected by.



activated, is affected by rum buff and is affected by.



A illusion (taking  damage) affected by  and



Damage Negation
Damage negation causes entire instances of damage to deal no damage to its target, however, the instance is still registered. This means, if something reacts on damage without having a minimum damage threshold, it still reacts on the negated damage.

It is unknown whether these abilities use a separate mechanic to completely negate damage, or if they use the same unique damage manipulators as and  do, but with their values set to 100%.

Preventing on-damage effects
Many abilities react on damage a unit receives. In some cases, fully negating the damage causes them to not proc. However, some on-damage effects also react on 0 damage so they still may proc even when the proccing damage got negated.

The following abilities and effects do not react on damage when it gets fully negated (reduced to 0):

1 These work when the damage gets negated by.

2 These abilities have damage counters, which do not work when the damage gets negated.

The following abilities still do react on fully negated damage:

1 The damage of and the damage spread of  are fully unaffected by any form of reduction, except for magic resistance and armor.

Min Health
Minimum Health, just like regular damage negation, prevents a unit from dying. However, the way in which that is achieved is completely different. Instead of directly reducing or negating damage, this mechanic rather manipulates the health of the unit. The  property prevents a unit's health from dropping below the value it is set to. It does not affect the damage itself, meaning on-damage effects react on the full damage, and not how much damage was dealt with effectively, so they can be triggered normally.

Min health does not prevent instant kill in anyway.

Манипуляция уроном 伤害调整