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
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
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
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!
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
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
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!
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
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
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!)
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
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.
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.
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.
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
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
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
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"
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
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 :-)
It seems to be broken now.. yesterday it was working fine. The problem seems to be the HP and dodge calculations. I'm calculating for the monk btw.
At lvl 60 it says I have 11k hp with 1031 vit and +4% life. If I change my lvl to 1 I suddenly have 63k Hp.
At 32% dodge it says I have 95k EHP and 3.5K EHP with dodge. If I change my dodge to 1% then EHP with dodge is the same as EHP without it, 95k. If I change it to 0% then I get 630k EHP with dodge as opposed to the initial 3.5k.
EDIT: Regarding crippling wave and deadly reach, just make it 100% uptime. The real uptime changes with weapon speed and other factors such as the target being far away or not (you can't reduce it's damage if you can't hit them. Same thing happens with resolve). If you calculate it with 100% uptime then we can easily tick and untick the box to see how much damage we take with and without the buff being active.
EDIT2: You should also add Fists of Thunder - Lightning flash as it adds 16% dodge chance for 2 seconds.
And GJ with the calculator, it's a lot more easy to use than making a spreadsheet in excel = )
I fixed both issues, was me doing stuff while being tired ... should have known better xD
Regarding the skills, I hope I get a chance to redo some of the interface soon so I can make it more clear that they're situational stuff, I doubt think that Fist of Thunder, 2 sec buff is main
Regarding Fists of Thunder, you didn't finish your sentence, but 2 seconds is long enough to keep it active at all times. With a 1.4 weapon speed those 3 attacks take 1.4 seconds, so it's easy to keep that buff up as long as the enemy isn't too far away.
that's asuming you have some source of IAS, but I guess any decent monk would have some IAS or be dual wielding xD?
it uses localstorage, an HTML5 feature, to save your characters stats.
Could you tell me what browser (and preferably what version of it) you're using? I'll test it myself and try to find a fix
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
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.github.com/d3-ehp-calculator/
A nice movie giving you a practical approach to EHP and featuring the calculator by Zravex: http://www.youtube.com/watch?v=9vBWweBQSBY
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
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
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
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
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
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!
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
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
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:
^ 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:
for coding, something like this would work
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
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
Update 4 [2012/05/25 09:23]
Fixed armor formula
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.
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.
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.
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
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
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
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"
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
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.
I fixed the HP thing you mentioned too, it's 100% acurate for my own char now :-)
I fixed both issues, was me doing stuff while being tired ... should have known better xD
Regarding the skills, I hope I get a chance to redo some of the interface soon so I can make it more clear that they're situational stuff, I doubt think that Fist of Thunder, 2 sec buff is main
that's asuming you have some source of IAS, but I guess any decent monk would have some IAS or be dual wielding xD?
Update 9 [2012/05/29 15:53]
Finaly fixed the dodge chance madness properly!
Could you tell me what browser (and preferably what version of it) you're using? I'll test it myself and try to find a fix