Jump to content

  • Curse Sites
Help

Diablo3 Effective Health Pool Calculator

EHP Calculator All Classes

  • Please log in to reply
186 replies to this topic

#1 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 23 May 2012 - 02:07 PM

I've created a tool to calculate your effective health pool based on your stats.
And compare items.

The tool is now build so that it can support all classes:
- Barbarian
- Wizzard
- Monk
- Witch Doctor
- Demon Hunter

Features:
- with / without dodge
- with melee / ranged / magic specific reduction
- with all skills that increase you EHP in some way
- easily toggling skills on and off to compare them
- statweights, EHP gain for +1 vit, +1 resist, +10 armor, +1 str
- Item Compare
- VIT Equivelant instead of EHP

So here you can find the working version:
http://rubensayshi.g...ehp-calculator/

A nice movie giving you a practical approach to EHP and featuring the calculator by Zravex:

It's completely clientside javascript, so changing stuff will make it calculate everything on your machine, hence you might find a small spike/freeze when you do,
this is mostly because I haven't bothered a lot with optimizing it (atm the onchange events trigger itself, thankfully backbone handles that fairly well).

You can input your base armor, resistance, VIT and life %, it will generate your final life, armor, resistance (which should match your character screen).

Behind all the checkboxes it displays the EHP if you would change it (checked<->uncked)  and how much %% change that would be.
That's what you can use to see which ones increase your EHP the most.
For example you can easily see that War Cry with +resist rune is far better then the other two options.

Known issues / bugs:
- For skills with multiple interesting runes you could check them all, should change this to be a radio button or selectbox at some point

Upcoming changes priority list:
- Think of a way to include block
- Handle skillbuilds with different runes nicely (maybe seperate the skillbuild more)
- Add option to copy a link to your curently input/selection (like talent calculators do)
- Recieve buffs from other classes
- Pull in stats from blizzard API (kdmcclel is already working on some code eventhough the API ain't up yet)

Please let me know what you think of it :D
Please bump the thread a bit once in a while (preferably with constructive comments or positive feedback) so that it stays visible on page 1 :D :D

Contibuting
It's on github (the page you're opening is project page of it), code is here in case you're interested:
https://github.com/r...ehp-calculator/

If you wanna join in and help out, you're very welcome! I already got some awesome pull requests on github from kdmcclel and MrMarvin and merged those almost instantly!
the project is all javascript, nothing serversided, I could easily host some serversided code too if needed but if we can stick to javascript only then that's preferred!

*** Authors / Contributors ***
Drakie (rubensayshi)
kdmcclel
Marv Cool (MrMarvin)

*** Changelog ***
Check out the github page for all the changes and open issues / feature requests, it has become to much to keep track of it here ;)

Edited by SaikoDrakie, 28 June 2012 - 10:26 AM.


#2 Anduryondon

Anduryondon

    Advanced Member

  • Members
  • PipPipPip
  • 42 posts

Posted 23 May 2012 - 02:50 PM

Very nice tool, thanks for sharing it. Interesting that my barb has already 1mio ehp wtf.
Could you add blocking to the calculation? Because block gets added after all damage reduction, so it could be interesting to see how much it is worth.
€: Oh, and melee/ranged damage reduction stats would be nice too!
I am also at 1408 vitality with 25% life and the tool shows me I should have 61600 life, but ingame I have 61945

Edited by Anduryondon, 23 May 2012 - 03:04 PM.


#3 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 23 May 2012 - 03:08 PM

I already included the 30% dmg reduction you get from being monk/barb fyi

I should probally split up the EHP at the bottom between physical melee / phyical ranged / magic, that way it won't be up to the user to properly keep in mind that superstition is ranged/magic only and that you can't get threatening shout on ranged mobs cuz they are to far away from you and I can include the specific melee/ranged reductions.


For now I've updated the style so I won't hurt your eyes as bad anymore xD


I will be including a shield and dodge, but acording to most theorycrafting ppl it shouldn't be in EHP calculations since it's random.
But that's mostly because for most games (WoW, other MMOs) EHP is used to see how reliable a tank is, I think for diablo3 we just want to know how beefy we are :-)
Another problem with block is that it will be relative to how big a hits you're taking, I'll dig into that stuff later ...


oh and nice stats xD, I really need to pump up my own all resist :(

Edited by SaikoDrakie, 23 May 2012 - 03:09 PM.


#4 Barrier

Barrier

    Sexton

  • Members
  • 260 posts
  • Location:Czech republic
  • B-Net Username:Barrier#2880

Posted 23 May 2012 - 03:23 PM

a little out of topic i guess but does Threatening Shout reduce dmg of stuff like mortar, molten, arcane lazers etc. ?

Edited by Barrier, 23 May 2012 - 03:24 PM.


#5 Anduryondon

Anduryondon

    Advanced Member

  • Members
  • PipPipPip
  • 42 posts

Posted 23 May 2012 - 03:36 PM

View PostSaikoDrakie, on 23 May 2012 - 03:08 PM, said:

I already included the 30% dmg reduction you get from being monk/barb fyi
Oh, I did not mean the 30% baseline reduction, but the reduction from stats like "reduces damage from melee attacks by x%".

Edited by Anduryondon, 23 May 2012 - 03:37 PM.


#6 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 24 May 2012 - 08:23 AM

Update 1 [2012/05/24 10:20]
Thanks to pull request from 'kdmcclel' we now have multi-class support and he already implemented wizzard!
Surely more classes will follow :)

Update 2 [2012/05/24 10:22]
Since it's no longer barb only I renamed the project, URLs are changed, old URL stopped working ;)

#7 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 24 May 2012 - 09:17 AM

Update 3 [2012/05/24 10:46]
The stats you input are (locally) stored so you don't have to keep putting them in each visit, choices aren't stored yet though!

#8 Legaia

Legaia

    Zealot

  • Members
  • 76 posts

Posted 24 May 2012 - 01:35 PM

View PostAnduryondon, on 23 May 2012 - 02:50 PM, said:

I am also at 1408 vitality with 25% life and the tool shows me I should have 61600 life, but ingame I have 61945

Base health maybe?

#9 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 24 May 2012 - 02:28 PM

View PostLegaia, on 24 May 2012 - 01:35 PM, said:

View PostAnduryondon, on 23 May 2012 - 02:50 PM, said:

I am also at 1408 vitality with 25% life and the tool shows me I should have 61600 life, but ingame I have 61945

Base health maybe?

Base HP is 110 I think (36 + (4 x level=1) + (10 x vit=7)

The formula for HP is taken from online source, multiple report the same, odd since it really never matches exactly :P

I've noticed a small difference for myself too, though atm @work I wouldn't know the exact different, I'll check it out tonight and see if I can see a relation to your difference :)

#10 parmattlab

parmattlab

    Zakarumite

  • Members
  • 2 posts

Posted 24 May 2012 - 07:47 PM

NICE WORK, now i can stop building my spreadsheet!

You should be aware that Nerves of Steel benefit to armor is calculated BEFORE any other +armor% abilities like war cry and tough as nails, but the benefits from these other buffs are calculated on their own from that new BASE armor (after nerves of steel), then added to your total. they do not compound on one another.

In other words if your armor after nerves is 1000 and you add 20% and 25%, the result should be 1000+45% = 1450 armor, not 1500 armor as the app currently calculates.

I believe your math is compounding them sequentially and adding too much armor , something like this:
(armor x 1.25) x 1.2

^ This is not how armor is calculated. Your app needs to keep track of base armor after nerves, and have war cry and tough as nails use that value instead of over-writing armor for every buff. I see the place in the code that needs changing.

The correct math for the other buffs is:
armor + (armor x .2) + (armor x .25)
=
armor + (armor x (.2 + .25))
=
armor + (armor x .45)
=
armor x 1.45

for coding, something like this would work
armor = armor_base //with no passives
if (nerves_of_steel){ armor += vitality }
armor_total = armor
if (tough_as_nails) {armor_total += .25 x armor}
if (war_cry) {armor_total += .2 x armor}
if (hardened_wrath) {armor_total += .2 x armor}

I love what you've done!

If you like, can contribute my coding skill to the project (programers unite!)

P.S. here's my spreadsheet

Edited by parmattlab, 24 May 2012 - 10:28 PM.


#11 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 25 May 2012 - 07:18 AM

thanks for the feedback, I'm updating it now to add the armor modifiers (and resist) together before multiplying the base, was already doing that properly for life ;)

any idea how + and - work together?
for a wizard they have energy_armor giving +65% armor and glass_canon giving -10%, that becomes +55% right?

the code is on github, you can fork it and submit pull requests and I'll merge them asap :D




Update 4 [2012/05/25 09:23]
Fixed armor formula

Edited by SaikoDrakie, 25 May 2012 - 07:23 AM.


#12 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 25 May 2012 - 12:09 PM

Next up will be monk implementation, since everything is ready for it now :-)

Update 5 [2012/05/25 13:03]
Cleaned up code, made it possible to seperate classes from each other (classperclass xD).
Added dodge calculations, seperated it from the pure EHP though since dodge ain't part of traditional EHP calculations, but specially since it's also working on magic it's very much relevant ;)



Just a few hours later:


Update 6 [2012/05/25 15:01]
Added first implementation of Monk class, needs some work though on the active skills which apply short duration buffs/debuffs and I need to double check if I haven't forgotten any skills.

Edited by SaikoDrakie, 25 May 2012 - 01:01 PM.


#13 parmattlab

parmattlab

    Zakarumite

  • Members
  • 2 posts

Posted 25 May 2012 - 02:55 PM

View PostSaikoDrakie, on 25 May 2012 - 07:18 AM, said:

any idea how + and - work together?
for a wizard they have energy_armor giving +65% armor and glass_canon giving -10%, that becomes +55% right?

That makes sense, but to be sure you'd have to experiment the way I did with my barbarian.
Then again, after i concluded my experiment I later found a post in the barb forums that confirmed my findings. Perhaps the wizard forums have figured that out. good luck.

edit: we get the same numbers now, lets hope we're both right. I like yours better so now i'm using yours exclusively. i especially like how it calculates percentage changes before you click them, AWESOME feature.
I would re-arrange the passives first starting with nerves, then group all the war crys together after that. also would be good to have some javascript assist in un-checking impossible combinations of war cry runes to only allow one rune at a time.  I very much look forward to see where this goes and cant wait for features like pre-calculating additional armor/vit/res the way you do for passives! keep up the awesome work.

Edited by parmattlab, 25 May 2012 - 05:25 PM.


#14 Haakkon

Haakkon

    Zakarumite

  • Curse Premium
  • 2 posts

Posted 25 May 2012 - 04:56 PM

Nice work, it agrees with my spreadsheet I made for my Monk. Extra confimation is always nice.

One thing looks to be a little off though: HP.  The formula is 36+4*lvl + X*vit. Where X is lvl-25 capping at 10 at the lowest.

[Edit:]

Just looked at the code, you have the 36+4*lvl factor in the <35 section of your IF but forgot the term in the ELSE.

[Edit:]

Also Mantra of Evasion isn't adding dodge. Though the Hard Target rune is properly adding armor.

Looking at the code, the extra dodge from MoE or Guardians Path isn't added to your current dodge chance, they stack multiplicitivly. So if you have 20% chance to dodge and put on MoE you don't get 35% dodge you get 1-((1-.20) * (1-.15)) = 32% chance to dodge total.

#15 Drakie

Drakie

    Zakarumite

  • Members
  • 7 posts

Posted 26 May 2012 - 05:59 AM

View PostHaakkon, on 25 May 2012 - 04:56 PM, said:

One thing looks to be a little off though: HP.  The formula is 36+4*lvl + X*vit. Where X is lvl-25 capping at 10 at the lowest.

Acording to 2 websites the HP above lvl35 is calculated different then below 35, but since it's off by a bit maybe it got changed in beta and your formula might be right, I'll try it out

View PostHaakkon, on 25 May 2012 - 04:56 PM, said:

Also Mantra of Evasion isn't adding dodge. Though the Hard Target rune is properly adding armor.

Looking at the code, the extra dodge from MoE or Guardians Path isn't added to your current dodge chance, they stack multiplicitivly. So if you have 20% chance to dodge and put on MoE you don't get 35% dodge you get 1-((1-.20) * (1-.15)) = 32% chance to dodge total.

Hmm I didn't even bother checking on that since I thought it would be logical that having multiple sources of dodge would stack sequentially since it's +some-stat, but I guess since it's a % based stat to begin with it isn't that simple.



PS. there's actually a fair amount of visits to the website, which is really cool and motivates me to keep on working on this project more and more :D

I'm moving into my new apartment this weekend so I'm not sure if I'll have any updates before monday, but maybe I can squeeze in some coding 2night before I go to sleep to at least process some feedback.
kdmcclel is already actively helping me and parmattlab has the intention to dive into the project to so maybe we'll see some nice updates this weekend nonetheless ^_^

#16 chaoslux

chaoslux

    Sexton

  • Curse Premium
  • 231 posts

Posted 27 May 2012 - 02:58 AM

Few things i would like to see:

Wizard: Archon adds 40% Armor and Resistances, which stacks with Force armor. Could it be possible to add it to the equation? It may only be a 15 second effect on a 2 minute cooldown, so instead of trying to "even it out", it would be preferable to see my archon EHP, and if i uncheck it, see my EHP without.

Also, overall request, it may sound silly and adds another layer of numbers, but i would like to see my actual total damage reduction. as nice as it is to know i have 200k EHP, i also like to know stuff like "Im reducing all damage by 83%, awesome"

#17 Opiall

Opiall

    Zakarumite

  • Members
  • 3 posts
  • Location:CT
  • BattleTag:Shimoto#1279

Posted 27 May 2012 - 03:46 AM

I might be doing something wrong here, and if so sorry. But there seems to be something up with the monk's mantra of evasion.  Using the following inputs (Monk/60/63/751/1101/17%/4000/171/0/0/18% Y-Resolve) my
EHP is: 1435999 DodgeEHP(DEHP) is: 175121
If I switch on Mantra of evasion I get: EHP=1435999 DEHP=214328
If I turn off Mantra of evasion and turn on Mantra of evasion with Hard Target my numbers are EHP=159666 DEHP=194715.721

Now my issue is, I don't get why an increase in armor results in a descrease of DEHP since the only difference between Mantra of Evasion and Mantra of Evasion Hard Target is Hard Target get 20% armor.

Now as I'm writing this I'm beginning to think that I actually need to choose both of them, but it might be nice to have a tooltip that says that for new people to the sheet. Please let me know if that is correct.

Edit: Also wanted to say thanks for putting this together, can't wait to get home and see it with my actual numbers

Edited by Opiall, 27 May 2012 - 03:47 AM.


#18 Drakie

Drakie

    Zakarumite

  • Members
  • 7 posts

Posted 28 May 2012 - 03:14 PM

there's a bug in the monk dodge calculation, I'll fix it in the next few hours, I should have some time :-)

#19 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 28 May 2012 - 05:39 PM

your monk stats with dodge should display properly now, fixed it :-)

gonna see if I can do a major overhaul tomorrow so that I can display +1 str, vit, dex, int, resist, armor.



Update 7 [2012/05/28 19:38]
Fixed how dodge is calculated (like a modifier instead of a static stat). Added warcry dodge rune.

#20 SaikoDrakie

SaikoDrakie

    Zealot

  • Members
  • 96 posts

Posted 28 May 2012 - 05:50 PM

View PostHaakkon, on 25 May 2012 - 04:56 PM, said:

Nice work, it agrees with my spreadsheet I made for my Monk. Extra confimation is always nice.

One thing looks to be a little off though: HP.  The formula is 36+4*lvl + X*vit. Where X is lvl-25 capping at 10 at the lowest.

[Edit:]

Just looked at the code, you have the 36+4*lvl factor in the <35 section of your IF but forgot the term in the ELSE.

[Edit:]

Also Mantra of Evasion isn't adding dodge. Though the Hard Target rune is properly adding armor.

Looking at the code, the extra dodge from MoE or Guardians Path isn't added to your current dodge chance, they stack multiplicitivly. So if you have 20% chance to dodge and put on MoE you don't get 35% dodge you get 1-((1-.20) * (1-.15)) = 32% chance to dodge total.

I fixed the HP thing you mentioned too, it's 100% acurate for my own char now :-)





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users