Giter Club home page Giter Club logo

d3-ehp-calculator's Introduction

Diablo3 Effective Health Pool Calculator

completely client side (javascript) calculator for your EHP.
checkout the working version (project page on github): http://rubensayshi.github.com/d3-ehp-calculator/

Contributors (Code or Major Feedback)

Ruben de Vries (https://github.com/rubensayshi)
Kevin McClellan (https://github.com/kdmcclel)
Marv Cool (https://github.com/MrMarvin)
Scott Smerchek (https://github.com/smerchek)
Entropy42 (http://www.diablofans.com/user/73934-entropy42)
jjwa (http://www.diablofans.com/user/64432-jjwa)

Copyright and License

Copyright (c) 2012, Ruben de Vries
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project.

Copyright and License - Apendix

The above BSD license will allow you to use this open source project for anything you like.
However, I would very much appreciate it when you decide to use the code if you could contribute your improvements back to this project and / or contact me so that I'm aware (and proud) of my project being used by other people too :-)

d3-ehp-calculator's People

Contributors

abl avatar pieht avatar rubensayshi avatar smerchek avatar unintended avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

d3-ehp-calculator's Issues

Items associated with newly created character

I had one character (Barbarian) populated with several of their items. I then added a new character (Witch Doctor).

When I go to the items tab on the Witch Doctor, all of their items are set to the ones from the existing Barbarian. The existing Barbarian has all of his items reset back to "My Item" with no stats.

Browser: Firefox 15.0

Itemcompare doesnt update

when you go back to character and change some stuff there and then back to itemcompare it won't update until you change something again

Feature request: Add optional party member buffs

As a wizard, it would be nice to be able to see how my EHP goes up with various party buffs so I can see if they become worth it.

For example, the resist buff from both a warrior and a monk may make it so that Prismatic Energy Armor becomes worth it

Heavenly Body rune inaccurate

Hey, I noticed a small inaccuracy in the way the Monk rune "Heavenly Body" (to the skill Mantra of Healing) is applied.

I THINK the calculator treats it as +% Life but it is actually +% VITALITY. This means it stacks multiplicatively with +% Life.

Example: My monk has unbuffed vitality of 652, +25% life and is level 60. Calculator accurately predicts 28870 Life, unbuffed. BUT after the Mantra, it predicts only a 10% increase to 31179.6 where it should predict an increase of 65.2 VITALITY (bringing my vit to 717.2). This bonus vitality awards 2854.5 life (2282 for 35 per vit, which is modified by my +25% life), which brings me, in game, to 31722.

So, its a small inaccuracy, but i guess it could be larger if someone had more +% life and that could make it better than another option.

[Feature request] Efficient health per second

Hi,

First of all, i'd like to thank you for your work. I really enjoy what you're doing and i'm using your calculator every day :)

Let's come down to my request: I saw that you're considering including TTL paired with a database of damage monster. It would be great if you're able to do so but meanwhile, I was thinking of something simpler regarding Life Leach, Potion and all different kind of healing in D3.

Typically, we have some passive that gave us fixed amount of heal per second, or even the life on hit. Thus I was wondering if you could include those capacity to get a new stat : Efficient health per second. It could include the heal per second, the life on hit considering your attack speed and the spell you are using (may have multiple spell at the same time like for the wizard with hydra + blizzard + arcane missile), and also the life leach which will depend on our actual dps.

I imagine something like that: The calculator bases its calcul on a fight with only one monster (if you can do calculus for multiple target, it's even better :D). The user can choose different spell that are assumed to be effective at the same time (like the hydra/blizzard/arcane missile mentioned earlier) and based the calcul of the DPS and so the life leach and life per hit based on the spell active at the same time.

It would not be completely accurate since we still need to launch our spell but it would give a good approximation.

Finally, i think it would not be a waste of time since lot of those calcul would be reused in the calcul of the TTL if you manage to get a hand on a data base of monster's damage.

Thanks for reading this post and thanks again for your work.

Gimlinus

P.S. : I hope my english is not too crapy

Web Page Errors

Failed to load resource http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js
Failed to load resource http://ajax.cdnjs.com/ajax/libs/underscore.js/1.3.3/underscore-min.js
Uncaught TypeError: Cannot set property 'LocalStorage' of undefined backbone.localStorage-min.js:4
Uncaught ReferenceError: Backbone is not defined Character.js:1
Uncaught ReferenceError: _ is not defined Barbarian.js:2
Uncaught ReferenceError: _ is not defined DemonHunter.js:2
Uncaught ReferenceError: _ is not defined Monk.js:2
Uncaught ReferenceError: _ is not defined WitchDoctor.js:2
Uncaught ReferenceError: _ is not defined Wizard.js:2
Uncaught ReferenceError: Backbone is not defined Characters.js:1
Uncaught ReferenceError: Backbone is not defined MainView.js:1
Uncaught ReferenceError: Backbone is not defined IntroView.js:1
Uncaught ReferenceError: Backbone is not defined SimulationView.js:1
Uncaught TypeError: Cannot call method 'extend' of undefined InputView.js:1
Uncaught TypeError: undefined is not a function main.js:50
Failed to load resource http://ajax.cdnjs.com/ajax/libs/backbone.js/0.9.2/backbone-min.js

Mismatching EHP/Statpoint from buffed to unbuffed

Hey guys,
think i found an issue here.
So, my wizard has unbuffed armor of 3741 and resistance of 450. In the alternative column is see, that for me at the moment its better to stack armor instead of resistance(+210 vs +151).
The problem here is with buffs i get armor of 5773 and resistance of 405 cause of Force Armor and Glass Cannon.
But looking at these buffed stats, i see that resistance is much lower than the 1:10 ratio and i think i must stack more resistance to effective increase my EHP, correct?
Your calculator tells me to stack armor but what i really need is resistance.
regards
jume

[Feature Request] Monk: Option Sorting/Restrictions

[I know you already have the restrictions on your radar, but wanted to add this to it]

It would be nice if everything were sorted, with restrictions made for one Mantra and one spirit generator.

The spreadsheet I was working on has:

Mantra [Only 1]

  • Healing+Resist
  • Healing+Life
  • Conviction+Redux
  • Evasion
  • Evasion+Armor
  • N/A

Attacks [Only 1; 2/4secs is too short to stack the EHP buffs]

  • Deadly+Armor
  • Crippling+Redux
  • Fist+Dodge
  • N/A

Passives [three slots]

  • Resolve
  • Seize the Initiative
  • Guardian's Path
  • Sixth Sense [needs to support crit chance]
  • One with Everything
  • N/A

Checkboxes

  • Enchantress
  • Earth Ally

Items from initial character transfer to new character.

Create initial character and add item information. Then, leave site and come back later. Then, create a new character and items from the initial character are filled in for the new character. Furthermore, the item information is now blank for the initial character.

A TTL calculator you could use

Here is a working TTL calculator.

http://diablo3mechanics.wikispaces.com/Monk+Survivability+Model

Not sure if you guys could work together but right now I'm finding his more useful.

why?

Well, for example in your calculator I gain 0.14% EHP/vit and 0.1% EHP/AllResist. So I'd assume resist was wroth more. However, resist is damage reduction so I think in my head, well, maybe they are even, but I DON"T KNOW.

His calculator is nice: Vitality:TTL = 0.7174, Resistance:TTL = 0.9859. You can see, per point of vitality I only gain 0.7 hundreths of a second to live, where as resistance gives me almost 30% more.

I hope this helps.

Cheers,
Ucross

Feature Request: Simple Calculations

It would be really nice to be able to do simple calculations (+,-,*)in the character stat fields.

For example..

Vitality: 1125
Resists: 128

Let's say I want compare what reducing my vitality by X and increasing my resists by Y..

Vitality: 1125-100
Resists: 128+50

.. or I want to double my armor:
Armor: 2024*2

Doing this would allow me to tweak the fields so I can find what would be more effective, without having to reset them to my base stats each time.

Feature Request: Block+Dodge EHP

Hi,

how about adding block to the EHP? How can it be done? Here is the math.

Let d be the dodge chance, and b be the block chance and r be the real block chance.

The chance to really block is

r = b - d*b

if you dodge the damage anyways, then you do not need to block anymore, even if you do, but it is useless (that it is why -d*b).

How much damage can be avoided by that, in average (block min + block max)/2, so you get:
dodge + block ehp = (r * (block min + block max) / (2* total life) + 1) * dodge ehp

Armor/resistance miscalculation?

Hey there,

while entering my stats, i noticed that the armor and resistance dmg reduction didn´t fit with these ingame. I tried it with some more values and it allways seems to be ~1% of. I doublechecked my entrys and made sure that i dont have buffs nor a companion with me. I made a screen of both(tool vs. ingame) to compare.

http://www.imgload.info/files/arx1344402722r.png

Im sorry that the tooltips are in german but im sure you´ll see what i mean.

Armor Calculations

They are way way off. It's telling me that my buffed armor is almost 6k more than I have which is way over inflating my ehp. Pretty much rendering this entire tool useless to me. Barbarian by the way.

Check armor calculation

"It calculates my buffed armor wrong, it says 10335.6 but I have 7458 (Barbarian)
Also pls change the sequence of input from VIT, DEX, INT, STR to STR, DEX, INT, VIT because that's the way they're shown ingame."

http://i.imgur.com/MMW6t.jpg

Incorrect label in Stat Weight

The "Stat Weight" tab lists an entry "+1 Average Block Amount", but I believe this should actually be "+500 Average Block Amount".

first time bug

if you create a new character and the first time you click a checkbox it will hang and not check that checkbox

Add calculation for 'effective healing power'

Background

I used to have about 750 res with 50k hp. After comparing and swapping several items I ended up with a larger overall EHP ~ 600 res with 85k hp.

However the effect of healing:

  • Life leach
  • Potions
  • Templar follower healing.
  • Life per second.
  • Life per spirit spent.

are reduced since I have a bigger health pool with lower resistances. I was tying to think of a way to quantify this effect, I guess there a re a few ways to do it. This is my Idea.

Effective Healing Power

The number of effective hit points healed per point of healing received.

(This needs a better name since EHP = Effective healing power = Effective hit points)

So for example if your health pool is 50k and your effective hit points is 500k. Your effective healing power is 10. I.e. you get 10 effective hit points per point of healing you receive.

This number will be useful to classes who rely heavily on fixed healing bonuses in battles (melee classes).

Looks like wrong armor calculation

after i created this post . i found the thing that i am doing wrong . so armor calculation works perfectly . sorry about this junk post =)

damage reduction elite/magic

shouldnt there be a section for champion affixes since they are elite mobs and most are magic damage at least the most dangerous types of damage in the game are from stuff arcane/molten/mortar and the such.

or does that not count like that in the game. same with champions who melee attack or ranged attack wouldnt you get more bonus from having each?

Buffed armour - Force armor (wizard)

When entering my base armor of 3038 into the calculator, it shows in buffed armour as 4708, calculated from 60% increase.

Force armor is 65%, so my buffed armor should be 5232, based off 65% increase.

I downloaded the code to see if it was incorrect value being applied, but found the multiplier to be correct at 0.65 in model/wizard.js

Why does it calculate the armor buff incorrectly at 60%

?

+1018 EHP for 10 Armor when I have (to say) 100.000 Armor?

Am I missing something? How is it possible that the tooltip beside armor says that, with already 100.000 armor (or 1.000.000, or more...) that if I get +10 Armor I always get +1018 EHP? Since the formula which gives amount of damage reduced for given armor and mlvl, fixing the mlvl, is an hyperbole:

A/(A+50*ml)

I would expect that with great amount of armor the contribution given adding even more armor in terms of EHP goes to 0. Am I missing something?

p.s. same thing applies for All Res, and probably for other sources of damage reduction, instead, dexterity reduces EHP added as intended...

All resistance

people want to input all of their seperate resistances

Intellect and Strength

"Intellect" converts directly to "Resist All" at a rate of 10:1.
"Strength" converts directly to "Armor" at a rate of 1:1.

Effective Healing Multiplier

orignal quoted from Lupyn - http://eu.battle.net/wow/en/character/kragjin/Lupyn/

Also i have a suggestion on something you should add: Effective Healing Multiplier
EHP is only one end of the formula that makes up your survivability, the other is your ability to heal yourself against incoming damage. The actual selfheal of a character depends on a LOT of variables (how many enemies you hit whith wich skill for LOH, how much damage you do with Lifesteal, the AS/DPS ratio of enemies for Block etc.) and thus it wouldn't be very productive to make a calculator for actual selfheal because the circumstances of the fight are always different. But damage mitgation still affects your effective healing while your HP does not which is why your EHP is not a suffecient indicator on how effective your healing is supported by certain stats/buffs, here an example:

Player A has 100 Hit points and 0% damage mitgation, thus his EHP is 100 and his healing multipler is 1 (all healing is multiplied by 1 and the result is his effective healing).

Player B has 50 Hit points and 50% damage mitgation and thus his EHP is also 100 BUT his healing multiplier is 2 which means that all his healing skills/LOH etc. are 2 times as effective as those from Player A (all his healing is multiplied by 2 and the result is his effective healing)

Here is a simple formula i use in my spreadsheet to calculate the effective healing multiplier:
EHM = 1/((1-DMS1)(1-DMS2)(1-DMS3)(1-DMS4)(1-DMSn))

EHM: Effective Healing Multiplier
DMS: Damage Mitgation Source (i.e. DMS1=70% armor, DMS2=40% resists, DMS3=30% Dodge, DMS4=25% from resolve etc.)

Block %

Are you working on adding Block % into the calc?

ehp gear upgrades

be nice if you could put stats for a current gear piece and a possible upgrade and see if it increases or reduces your ehp since if you lose alot of vit but may gain alot of resists losing the vit will change how much ehp each point of resists is worth

UI | 2 step interface

Step 1) Choose character or input new
Step 2) Enjoy
** Step 3) Compare items **

Inputing a new char you should be able to put in the stats + what skills are already included

+x% Chance to Block

This is a very important value I guess, and it is not mentioned. But as far as I know it works the same way as dodge (exept the fact that it doesn't trigger an revenge for barbs.)

Time to live (TTL)

As EHP do not take into account healing, a more helpful statistic would be time to live.

What?

What it does is (assuming no dodges/blocks) asking:
How long will I be able to survive against a certain unmitigated incoming DPS
given my current mitigation and life + regen?

Why?

Let's assume these two scenarios:

  1. We have 10,000 Health and 90% mitigation. EHP = (10,000 * (1 - 0.9)) = 100,000
  2. We have 20,000 Health and 80% mitigation. EHP = (20,000 * (1 - 0.8)) = 100,000

Now let's assume we have incoming damage of 10,000 / s. Without heals our TTL is now:

  1. 10,000 / (10,000 * (1 - 0.9) per second) = 10 s
  2. 20,000 / (10,000 * (1 - 0.8) per second) = 10 s

Still the same, but if we include heals (potions, skills) of 600 / s:

  1. 10,000 / (10,000 * (1 - 0.9) / s - 600 / s) = 25 s
  2. 20,000 / (10,000 * (1 - 0.8) / s - 600 / s) = 14 s

So we can see, that if we want to get a true picture of our survivability, we need to
look at TTL instead of EHP.

Calculation is taken from http://www.reddit.com/r/Diablo3Strategy/comments/u86gt/monk_effective_health_is_not_the_beallendall_for/

Monk | Mantra of Evasion activation

ooh, and wouldn't it just be possible to make another check box that says "Mantra of Evasion Activation bonus" and just make that add another 15%. Would be a neat way to test out how much it affects your Dodge ehp =)

Monster Damage

Seek out a compiled list of monster damage per act and give an estimate of progression based on current EHP

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.