SUPPORT ACCOUNT CLANS
Welcome, Unregistered.
 

Thread: Damage Block Order/Priority and EHP

Page 1 of 2 12 LastLast
Results 1 to 20 of 30
  1. #1

    Damage Block Order/Priority and EHP

    I'm currently trying to write a guide about Damage Reduction and EHP for a website I am on staff at and I need a little help regarding how block effects it. I have a lot figured out about it already but would like to know if there is a mathamatical equation to see how blocking affects your EHP.

    What I have right now about Blocking is the Damage Reduction Calculation Order goes:

    1. Evasion
    2. Static Damage Buffer Sources (ie, Arcane Hide and Barrier Idol)
    3. Damage Block/"Deflection" (ie, the static damage reduction from Iron Shield, Iron Buckler and Helm of the Black Legion)
    4. Armor Type (Combat Type)
    5. Armor Value (Damage reduction from armor)
    6. Other Stuff (passive hero abilities like Armordillo, Electric Shield, Dissipation, Focus Buffer)

    Because Damage Block is calculated before Armor Value, the chance to block becomes less effective as Armor Value increases. The resulting affect to the damage done can be calculated as:

    Effective Block = DmgBlock*(1-.06*Armor/(1+.06*Armor))

    In this way a Hero with Helm of the Black Legion and 10 armor would only block 25 damage 70% of the time.

    Maybe there is no way of converting that into EHP, I certainly can't think of one, but since there are several people here who seem to know much more than I do when it comes to these things, I thought I would ask.
    Last edited by ElementUser; 04-18-2010 at 09:58 AM.

  2. #2
    Offline
    S2 Staff Member S2 Games Staff
    Join Date
    Jul 2009
    Posts
    34,048
    You can always ask Malle, he wrote the EHP guide on the DotA-Allstars forum.

    The general equation for EHP is:

    EHP = Max HP + (0.06*Armor*Max HP)

    S2 Games: Dedicated employees serving dedicated gamers. Continuous development. Never-ending improvement.
    -----------------------------


    Tech Support and Customer Support: https://www.heroesofnewerth.com/support/


    Look for my highlighted text (important information) and grey text (interesting but not required information).

  3. #3
    There isn't a constant EHP in regards to Damage Block, as EHP would go up or down depending on the damage range of the attacker/s. Using the Formulas from the above posts you could calculate it using averages.

    EffectiveBlock = DmgBlock*(1-.06*Armor/(1+.06*Armor))

    The NoAttacks formula works out how many attacks is needed to kill a player. The AvgDamageTaken is exactly as it says, the average damage taken from all sources per hit. You would round up the NoAttacks as well.

    NoAttacks = (MaxHP + (0.06*Armor*MaxHP)) / (AvgDamageTaken - EffectiveBlock)

    The last formula Totals the MaxHP, Armoured HP and Amount Blocked(On Average) to get the EHP.

    EHP = MaxHP + (0.06*Armor*MaxHP) + EffectiveBlock * NoAttacks
    Last edited by Neber; 10-16-2009 at 10:38 PM.

  4. #4
    Cool. Maybe I'll be able to use that to make some sort of graph or chart to show how block affects your EHP less as you get more armor, and enemies get higher damage.

  5. #5
    Effective Armor = (Damage Block/0.06) / (Incoming Damage - Damage Block)

    HotBL = 28 average block
    Single Shield = 12 average block

  6. #6
    Quote Originally Posted by edxs View Post
    Effective Armor = (Damage Block/0.06) / (Incoming Damage - Damage Block)

    HotBL = 28 average block
    Single Shield = 12 average block
    I don't get your formula?

  7. #7
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Sweden
    Posts
    208
    U - unreduced damage
    At - armor type damage factor
    B - actual blocked damage (as in 0 if there is no block, or Bd if there is)
    Av - armor value damage factor
    D - damage actually dealt
    Bc - chance to block
    Bd - damage blocked if Bc triggers
    Db - damage dealt when a block triggers
    Dn - damage dealt when no block triggers
    Da - average damage dealt
    Bf - block damage factor

    Testing indicates that the game in general does the following calculation (assuming B ≤ U*At):

    D = (U*At - B)*Av = U*At*Av - B*Av


    Using a single source of blocking this can be put as two equations (or, in general, as n+1 equations for n different possible amounts of blocking)

    With Bc probability:
    Db = U*At*Av - Bd*Av
    With 1-Bc probability:
    Dn = U*At*Av


    Averaging this we have:
    Da = Bc*(U*At*Av - Bd*Av) + (1 - Bc)*U*At*Av = U*At*Av - Bc*Bd*Av


    We manipulate this:
    Da = U*At*Av - Bc*Bd*Av = U*At*Av - Bc*Bd*At*Av/At = At*Av*(U - Bc*Bd/At)


    We then compare the average damage dealt with block to the average damage dealt without block to see the damage taken factor from the block:
    Bf = Da / Dn = (At*Av*(U - Bc*Bd/At)) / (U*At*Av) = (U - Bc*Bd/At) / U = 1 - (Bc*Bd)/(U*At)


    We do the same calculations but assuming B > U*At:

    P: Bc : Db = 0
    P: 1-Bc : Dn = U*At*Av
    Da = Bc*(0) + (1 - Bc)*U*At*Av = (1 - Bc)*U*At*Av

    Bf = Da / Dn = (1 - Bc)*U*At*Av / U*At*Av = (1 - Bc)

    The true general formula for EHP would be
    EHP = HP / DamageFactor

    So, with Blocking, Armor and Evasion we have:
    EHP = HP / ( (1 - (0.06*a)/(1+0.06*a)) * (1-Ev) * (1 - (Bc*Bd)/(U*At)) ) = HP * (1 + 0.06*a) / ( (1 - Ev) * (1 - (Bc*Bd)/(U*At)) )
    where the armor a ≥ 0, the evasion probability Ev is such that 0 ≤ Ev < 1 and the block value B, unreduced damage U and armor type damage factor At are such that B ≤ U*At. (I think this should be the most common scenario in hero versus hero fights)


    EDIT:
    Since the armor factor is on the form (1 - (0.06*a)/(1+0.06*a) and the block factor is on the form (1 - (Bc*Bd)/(U*At)) or (1-Bc) we can relate it to armor:

    1 - (0.06*a) / (1 + 0.06*a) = 1 - (Bc*Bd)/(U*At)

    (0.06*a) / (1 + 0.06*a) = (Bc*Bd) / (U*At)
    ⇔ {solve for a}
    (0.06*a)(U*At) = (Bc*Bd)(1 + 0.06*a)

    0.06*a*U*At = Bc*Bd + 0.06*a*Bc*Bd

    0.06*a*U*At - 0.06*a*Bc*Bd = Bc*Bd

    a * 0.06 * (U*At - Bc*Bd) = Bc*Bd

    a = Bc*Bd / (0.06 * (U*At - Bc*Bd))


    1 - (0.06*a) / (1 + 0.06*a) = 1 - Bc

    (0.06*a) / (1 + 0.06*a) = Bc
    ⇔ {solve for a}
    0.06*a = Bc*(1 + 0.06*a)

    0.06*a = Bc + 0.06*Bc*a

    0.06*a - 0.06*Bc*a = Bc

    a*0.06*(1 - Bc) = Bc

    a = Bc / (0.06*(1 - Bc))

    This produces the following graphs for current existing values:


    Last edited by Malle; 10-17-2009 at 05:23 AM.
    13^3

    In my posts, cursive grey text indicates very detailed or less relevant information, while blue text highlights important points or conclusions.

  8. #8
    Wow. More than I was even hoping for.

    If only it wasn't 2am here. I'll have to really look at all of that tomorrow. Nice Graphs too, that's pretty much what I wanted to make myself, just couldn't figure out how to relate the block to armor.

  9. #9
    Ah too many variables to remember, i had to go up, down constantly to work out the formulas. I was mainly curious about the Blocking values, as your formula is basically the same as mine, just added in (1-Evasion) to fix it up to account for that. However i was wondering with the Blocked Damage, since mine has the same problem. Does your formula account for the times when Average Damage Taken <= Average Block Value, however the player will take damage when the block doesn't occur, but using averages, the formula would be calculating as if no damage is done.

    Also With averages, if the Hi-range of the Incoming damage is greater than block value, and the average incoming damage <= Block value, then again the same problem occurs where averages removes damage that should have happened, but doesn't.

    Hopefully you can answer those questions, if your formula takes that into account because i gave it a little thought, but my brain is on sleep mode now.

  10. #10
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Sweden
    Posts
    208
    I was a bit unclear, perhaps. Those is calculations for a single incoming damage value, not a damage range. Depending on which of the two EHP functions I listed (see below for easier to read version), it either applies when the damage is not less than what can be blocked or when it is.

    Also, the graphs I posted are the equivalent of the armor increase at 0 armor. It should be possible to make it a function of armor as well, but I am not going to do that right now.

    Here is an easier to read form of the EHP function:

    Relevant variables are:
    a - armor
    Ev - evasion probability
    Bc - chance to block
    Bd - damage blocked when it triggers
    U - incoming unreduced damage
    At - armor type damage factor

    The lower one is when the damage block blocks all damage when it triggers.
    13^3

    In my posts, cursive grey text indicates very detailed or less relevant information, while blue text highlights important points or conclusions.

  11. #11
    Okay that's much much easier to read, can just glance at it now and it makes sense.

    You wouldn't be able to add the possibility for damage range would you, i'd be interested in the maths for it.

  12. #12
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Sweden
    Posts
    208
    I think I could, but I don't think it would be pretty and I can't do it right now.

    Essentially you would have to divide the damage range so that you have two separate parts: one which falls in the range B < U*At and one range with B ≥ U*At, sum over all U and divide by the spread of the damage range.

    If the whole damage range fulfills B ≥ U*At, then the EHP would be as given by the lower part in the image above.

    If the whole range falls into B < U*At and U is large and/or the damage spread is low, then we can approximate U to the average of the incoming damage, but it will be just that: an approximation.

    EDIT: Just a quick update so I don't forget it when I have time for this: damage uses real values, not integers, so you'd need to integrate.
    Last edited by Malle; 10-19-2009 at 05:37 AM.
    13^3

    In my posts, cursive grey text indicates very detailed or less relevant information, while blue text highlights important points or conclusions.

  13. #13
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    Sweden
    Posts
    208
    image files because I don't feel like typing this out in text right now >_> Warning for large sized images.




    The following graphs are all with hero versus hero in mind.

    Easier to read with logarithmic y-axis:





    And linear y-axis


    13^3

    In my posts, cursive grey text indicates very detailed or less relevant information, while blue text highlights important points or conclusions.

  14. #14
    Wow, I really appreciate the incredibly detailed responses Malle. You basically did all the math I was trying to figure out for me. I had a stack of papers with scribbled fail formulas on them until you cleared this up for me. Got me past what I was stuck on and then way past that.

  15. #15
    Offline
    Account Icon
    Join Date
    Oct 2009
    Location
    Germany
    Posts
    28
    Here are two more graphs showing the differences between vs hero and vs creep (melee and neutrals). No label on the y-axis because i can't get it vertically. Also my program doesn't do the gridlines as good.




  16. #16
    Offline
    Account Icon
    Join Date
    Jul 2009
    Location
    a quiet place
    Posts
    1,121
    Moved to Guides and Lists for future reference.
    Former Master of the Night
    E.S. Posthumus__________________________________________________ __________________________________________________ ___________Nihilsomno, glory forever

  17. #17
    Offline
    Account Icon
    Join Date
    Sep 2009
    Posts
    72
    what does all this mean in plain english summary? I dont understand the graphs.

    Basically are you trying to say that as you gain more armor the hotbl blocks less damage? because that doesnt seem to be true.

  18. #18
    Offline
    Account Icon
    Join Date
    Jul 2009
    Posts
    210
    "Blocking Damage becomes less valuable as your opponent's physical damage increases"

  19. #19
    Offline
    Account Icon
    Join Date
    Sep 2009
    Posts
    72
    Ok, but what is the deal comparing hotbl to armor and stuff?

    And I wouldnt say its less valuable, i mean it will shave off 40 damage off the top when it blocks, of course if your hit does like 300 physical it does 300-40 but thats to be expected its still going to do its job by blocking 40.

  20. #20
    The point of comparing hotbl to armor and stuff, is to compare the damage reduction values between block and armor, letting you get the EHP (effective hp).
    With this we can see what is more effective to purchase, armor or block value.
    Graphs show that, at a certain point, block becomes less valuable then a given amount of armor.

    Also, out of the graphs, I'd say that HotBL is a viable purchase against heavy physical damage teams. It is more effective then 10 armor (Platemail) before ~130 damage from heroes, in addition it gives 300 hp and 8hp/sec regen. Proves that HotBL is not a "noob" purchase at all, if you need the HP and Regen aswell.


    After reading this, I will consider simply purchasing a Iron Buckler on Armadon.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •