@PSA | A Clarification of the Damage Algorithm
I have seen many players mistake the damage step as being rendered under two categories: damage reduction and damage applied. Yes these two categories exist as main nodes of datasets however, the mentality players have about which branches of data lie under these nodes is completely incorrect.
Actual Damage Reduction
For example,
and
are both types of damage reduction items. Although they do not passively reduce damage, the statistics they grant do. Armor reduces attack damage by a percentage and magic resist reduces ability power by a percentage. However, let's look at two items that help CIRCUMVENT damage but do not both reduce damage.
Damage Reduction vs Sustained Damage
For example, let's say we have a
and a
. Phantom Dancer is actually an offensive damage reduction item due to its passive. It explicitly states that the most recent champion attack does 12% less damage to you. This clearly is a damage reduction item although it does reduce all damage. It only reduces the damage of a single, targeted entity. This is not to be mistaken with armor or magic resist which is calculated at all damage steps during combat involved with multiple entities. Phantom Dancer differs from Death Dance as Death Dance is not a damage reduction item. Death Dance circumvents damage to a different application of the damage step which lies under the "damage applied" category. It turns damage into a bleed which is under the node/dataset category of "DoT" AKA Damage over Time. This allows squishy champions or those with lifesteal to turn some damage into sustained damage. Sustained damage is basically damage constantly applied over regular intervals such as a DoT or a repeatedly cast ability or repeated auto-attacks. Lifesteal is the counter to sustained damage and allows squishies to mitigate it. Of course lifesteal's counter is burst where a sudden load of damage instantly kills the champion/entity and thus lifesteal cannot be applied in time to keep the entity alive as the damage absorbed by the victim is too much. Burst is not sustained damage — it is instantaneous damage. The instant of impact during that damage step is the instant of damage.
In this case, Death Dance's bleed is meant to help champions with lifesteal circumvent damage into sustained damage. This allows for more survivability which was the goal of the mid-season update — more survivability. It is not damage reduction as the damage will not be reduced but instead applied at a later time.
Combat Event
If you still feel Death Dance reduces damage, let's take this into a developer's perspective. And by developer, I mean an actual game developer's perspective or a programmer's perspective. As a programmer myself, I shall tell you about the inner workings of League's game in basic concepts. Of course, since I do not have access to their packages, libraries, modules, functions, code, APIs, etc. I cannot give a concrete description of their game interaction. However, I can give some insight.
The Attack Step The attacker will turn their character towards the enemy, the client will confirm the target, and the targeting animation will occur. During these three events, the server will confirm that the target can be attacked and allow the full attack animation to continue. If not, you will notice your attack "cancelled" where the target verification process failed. If it succeeds, a projectile will fire and if melee, damage will simply be applied no matter what since the "attack" already occurred.
Damage Calculation Step The receiver/victim will be taking damage soon. However, how much will be calculated. Whether this is done on the server or client, I do not know. This is because many developers have different methods of calculating damage in games. Sometimes it's easier to calculate this on the client as it reduces the strain/lag the server has and the game can simply rely on the client's connection and power. However, in order to prevent exploits/glitches[not hacking which many presume occurs when a "scripter" or a programmer manages to manipulate game code], a developer may take this process on the server. Another method is simply taking the calculation to be done on the client and then confirmed by the server to have no flaws.
Anyways, the damage will be calculated in one of these fashions. PLEASE DO NOTE I DO NOT KNOW THE EXACT ORDER OF THE DAMAGE APPLICATIONS OR ORDER OF OCCURRENCE. I ALSO DO NOT KNOW IF LEAGUE USES A PRIORITY QUEUE FOR DAMAGE CALCULATION. ESSENTIALLY, THERE ARE A LOT OF ABSTRACTIONS AND EVENTS THAT MAY OCCUR THAT ARE DIFFICULT TO TAKE INTO ACCOUNT FOR THIS POST.
For simplicity sakes, let's make the formula simple and make a simple tree of nodes. It doesn't matter about special cases or orders of applied buffs and damage. In League's game, it's very possible a priority queue is used to see which type of damage is to be applied in which order and which damage calculation event should occur. Ignoring this complexity, let's simply say League uses a regular queue which they also most likely use in order to get the order of damage. In this case, the first instance of damage will be applied and calculated. A queue for defensive applications will also be analyzed by the game. Here would lie armor statistics and item effects.
[In a more complex scale, prior to damage being applied from the attacker, the initial damage from say an item like PD would be reduced prior to even reaching the enemy prior to the damage calculation step due to it being a debuff applied to the attacker but this is for those who like more information].
The damage would then be reduced or increased based on the data received from the queues and applied.
An effect like a bleed, Teemo's poison, DoTs essentially would be applied to a different queue using the concept of concurrency. Basically, as other damage steps occur simultaneously, this queue will constantly be giving data out to deal constant damage to the player. I do not know if every tick is calculated itself or the tick damage amount is preset once the effect lands[ignoring new items taken or buffs given other than shields/barriers]. These effects are also known as sustained damage and are still damage applied. They are not a form of damage reduction and within the algorithm are simply circumvented to be applied at a later point. However, at that later point, you may be able to gain enough health to survive the damage constantly applied in the time interval so you'll live.
Conclusion
This is damage circumvention — not damage reduction.
Now that you are a professional in damage theory, FIGHT ON SUMMONER!