
HealPoints - A WoW benchmark addon for healers, Version 2.5
===========================================================

1: About
2: Usage
3: Formulas used
4: HealPoint stats
5: Equipment supported
6: Talents supported
7: Buffs supported
8: Known bugs and limitations
9: Frequently asked questions (FAQ)
10: Version history

----------------------------------------------------------------
1: About
----------------------------------------------------------------

HealPoints was developed by Eridan, Argent Dawn EU. With assistance from Melthruil (coding and testing),
Elanae, Tas & Allendria (testing), Nihlo, Nyce & olixxl (German localization).

HealPoints uses a modified version of the BonusScanner library by CrowleyAJ.
http://ui.worldofwar.net/ui.php?id=1461

HealPoints was inspired by TankPoints by Whitetooth.
http://www.curse-gaming.com/mod.php?addid=1365

----------------------------------------------------------------
2: Usage
----------------------------------------------------------------

The addon is accessed from the Character Info sheet. Below the character, the computed HealPoints benchmark
value will be displayed (healing classes only). If you mouse-over the "HealPoints: xxxxx" line, additional
information (such as mana regen) will be displayed.

If you click on "HealPoints: xxxxx", the HealPoints Calculator will be displayed. The calculator is divided
into three parts. Several of the displayed stats have explanatory tooltips - just mouse-over.

The bottom part displays basic stats such as intelligence and spirit. These stats can be adjusted using
buttons or by entering a value directly. You can then observe how this will change other stats. (Useful to
choose between +24 healing or +4 mana/5s enchants for your new bracer, for example)

The middle part displays stats about the healing spells your character knows. You can select the different
spells using the drop down menus. The right drop down menu is used for heal-over-time (HoT) spells and is
only used for priests and druids. For each of the selected spells, HP/sec, HP/mana, Tot HP(-r) and Tot HP(+r)
are displayed. Tot HP(-r) is the amount of HP you can heal with the selected spell using a full mana bar
without manaregenration. Tot HP(+r) is the same, but with mana regeneration taken into consideration.

The top part explains how the HealPoints stat is computed. It consists of two parts: PowerPoints and
EndurancePoints. Both are explained by tooltip and in section 4 of this readme.

----------------------------------------------------------------
3: Formulas used
----------------------------------------------------------------

Effect of spirit:
-----------------
Spirit increases normal mana regeneration. The first 50 points of spirit gives
0.25 mana/sec per point. Spirit beyond 50 gives different amounts depending on class.
  Priests: 0.125 mana/sec per point.
  Druids: 0.1125 mana/sec per point.
  Paladins and shamans: 0.1 mana/sec per point.

Intellect and spell critical effect chance:
-------------------------------------------
HealPoints uses the relevant crit chance displayed in the character sheet
(holy for paladins and priests, nature for druids and shamans).

When evaluating intellect change (calculator or item tooltips), HealPoints
uses the following conversion:
  80 Intellect = 1% spell crit.

These are only accurate for level 70 characters.

A spell crit increases the healing effect by 50 %. Heal-over-time spells cannot crit.
(For regrowth the burst part can crit, the HoT part not.)

Spell critical strike rating:
-----------------------------
HealPoints converts spell critical strike ratings to spell critical chance
using the following formula:

crit% = critRating * 26 / (7 * characterLevel - 56), levels 10-60
crit% = critRating * (262 - 3 * characterLevel) / 1148, levels 60+

Formula from the Rating Buster addon by Whitetooth.

(The formula is only used for evaluating crit rating changes from the calculator
or item tooltips.)

+healing and spell casting time:
--------------------------------
The effect of +healing equipment varies with spell casting time. For burst spells, casting time of 3.5s or
longer gives full effect. Faster spells get x/3.5s of the +healing bonus (where x = casting time). Heal over
time (HoT) spells are treated similarly, but with 15s instead of 3.5s. For these spells, the +healing bonus
is divided between each HoT tick. If a spell has reduced casting time (from talents or equipment), the
original casting time is used to find the effect of +healing.

+healing and lower ranked spells:
---------------------------------
Lower ranked healing spells have reduced effect from +healing equipment depending on the level of
the character. HealPoints uses the following factor:
  effect = (slvl + 11) / clvl
where slvl is the level the spell is learned and clvl is the character level

In addition, spells learned before level 20 have this additional +healing effect reduction:
      effect = 1 - ((20 - slvl) * 0.0375)
where slvl is the level the spell is learned.

+healing and regrowth:
----------------------
For regrowth, the +healing bonus is split in two. Half is applied to the HoT-effect and 2.0/3.5 of the other
half is applied to the burst heal effect. As the HoT-effect lasts more than 15s, it gets more than
100% of the other half of the +healing bonus. 

Blessing of Light and lowlevel spells:
--------------------------------------
BoL also have reduced effect for spells learned before level 20. I've found these values:
Holy Light rank 1: 20 %; rank 2: 40 %; rank 3: 70 %

----------------------------------------------------------------
4: HealPoint stats
----------------------------------------------------------------

PowerPoints:
Hitpoints healed in 1 minute using your most powerful spell, starting with 100% mana.
Regeneration and 5 second rule are taken into account.

EndurancePoints:
Hitpoints healed in 5 minutes using your most efficient spell, starting with 0% mana.
Regeneration and 5 second rule are taken into account.

These are the default settings. You can change them by clicking  the "Configure"-button in the
calculator window.

----------------------------------------------------------------
5: Equipment supported
----------------------------------------------------------------

The BonusScanner library is used to detect 
* +healing 
* +mana/5s 

It has also been modified to support the following set/equip bonuses:
* Reduces the casting time of your Regrowth spell by 0.x sec.
* Reduces the casting time of your Holy Light spell by 0.x sec.
* Reduces the casting time of your Healing Touch spell by 0.x sec.
* -0.x sec to the casting time of your Flash Heal spell.
* -0.x sec to the casting time of your Chain Heal spell.
* Increases the duration of your Rejuvenation spell by x sec.
* Increases the duration of your Renew spell by x sec.
* Increases your normal health and mana regeneration by x.
* Increases the amount healed by Chain Heal to targets beyond the first by x%.
* Increases healing done by Rejuvenation by up to x.
* Increases healing done by Lesser Healing Wave by up to x.
* Increases healing done by Flash of Light by up to x.
* After casting your Healing Wave or Lesser Healing Wave spell, gives you a 25% chance to gain Mana equal
  to x% of the base cost of the spell.
* Your Healing Wave will now jump to additional nearby targets. Each jump reduces the effectiveness of the
  heal by x%, and the spell will jump to up to two additional targets.
* Reduces the mana cost of your Healing Touch, Regrowth, Rejuvenation and Tranquility spells by x%.
* On Healing Touch critical hits, you regain x% of the mana cost of the spell.
* Reduces the mana cost of your Renew spell by x%
* Your Greater Heals now have a heal over time component equivalent to a rank x Renew.
* Increases your spell critical strike rating by x.
* Gain up to x mana each time you cast Healing Touch.

Please note that equipment with activated abilities are (typically) not supported.
(Ex: Scroll of Blinding Light, Neltharion's Tear, Gri'lek's Charm of Valor, ...)

----------------------------------------------------------------
6: Talents supported
----------------------------------------------------------------

Paladin:
--------
Divine Intellect, Healing Light, Illumination, Sanctified Light, Holy Power, Holy Guidance, Holy Shock
Blessing of Light (all ranks) is also supported.

Priest:
-------
Meditation, Mental Agility, Mental Strength, Enlightenment,
Improved Renew, Holy Specialization, Divine Fury, Improved Healing, Spirit of Redemption, Spiritual Guidance,
Spiritual Healing, Holy Concentration, Empowered Healing

Druid:
------
Lunar Guidance, Moonglow, Dreamstate,
Nurturing Instinct, Heart of the Wild, Survival of the Fittest,
Naturalist, Intensity, Tranquil Spirit, Improved Rejuvenation, Gift of Nature, Empowered Touch,
Improved Regrowth, Living Spirit, Natural Perfection, Empowered Rejuvenation, Tree of Life

Shaman:
-------
Unrelenting Storm,
Ancestral Knowledge,
Improved Healing Wave, Tidal Focus, Tidal Mastery, Purification, Nature's Blessing, Improved Chain Heal

----------------------------------------------------------------
7: Buffs supported
----------------------------------------------------------------

All buffs that increase intelligence, spirit, spell crit and mana pool are supported.
(Ex: Arcane Intellect, Divine Spirit, Blessing of Kings, Moonkin Aura).

In addition, the following buff bonuses are supported:
	+8 mana/5s from Nightfin soup
	+12 mana/5s from Mageblood potion

Please note that Blessing of Wisdom is not supported as I've been unable to find a way to detect BoW rank
and detect if the caster had the Improved BoW talent.

----------------------------------------------------------------
8: Known bugs and limitations
----------------------------------------------------------------

Overhealing isn't considered.

For Heal-over-time spells, HealPoints assumes that the effect isn't overwritten.
For Regrowth and Greater Heal with the Transcendence 8/8 bonus, HealPoints assumes that the HoT
effect isn't overwritten by anyone else (HealPoints calculates overwrites done by yourself).

Known bugs/limitations with item tooltips:
- Changes in set bonuses are not detected
- Does not currently work correctly for relics
- Will not appear for items which already have very large tooltips

----------------------------------------------------------------
9: Frequently asked questions (FAQ)
----------------------------------------------------------------

Q: Why is (name of slow, powerful spell) selected as my most efficient spell and used to compute
EndurancePoints when (name of fast, less powerful spell) has much higher HP/mana?

A: The advantage with slow, powerful spells is that you don't need to cast so many of them to heal a lot.
And fewer casts means more time with normal mana regeneration. Fast spells may be cheap, but they don't heal
a lot so you need to cast more of them - meaning little or no time with normal mana regeneration.

If there is a large difference between your casting regen and normal regen, a slow and powerful spell will
probably heal more in x mins than a fast, less powerful. Actually, EndurancePoints are computed for all
spells you know with the spell giving the highest value selected as the most efficient.

Q: Will you make a similar addon for damage spells and/or physical attack abilities?

A: No :-)

----------------------------------------------------------------
10: Version history
----------------------------------------------------------------

*** 1.0 ***

Initial release.

*** 1.1 ***

Added support for items with "+x damage and healing spells".

Added "Tot HP (+r)" stat which shows hitpoints healed with selected spell using the whole mana bar when
casting regeneration is taken into account.

Fixed bug regarding the Tidal Mastery shaman talent.

Minor optimizations.

*** 1.2 ***

Added HP/cast as a calculated stat.

Updated to BonusScanner 0.95 beta (including mana and wizard oil support).

Now hopefully supports German clients (but addon UI is still English).

*** 1.2a ***

New attempt at supporting German clients.

Fixed bug regarding the druid talent Improved Regrowth.

*** 1.2b ***

More fixes for German clients.

Fixed bug where the character info sheet would show wrong stats if equipment was switched while the info
sheet was open.

Bugfix for "HealPointsCalculator.lua:418: attempt to compare number with string".

*** 1.3 ***

Update spell crit formula based on information from www.wowwiki.com and the US and EU WoW forums.
Shaman: 20 int = 1 % crit. Paladin/Druid: 30 int = 1 % crit. Priest: 50 int = 1 % crit.

Changed PowerPoints from 30 sec healing to 60 sec healing.
Changed EndurancePoints from 3 min healing to 5 min healing.
Changed RegenPoints from  1 min regen to 3 min regen.
The most important consequence is that int is valued higher.
NB! The HealPoints value is therefore not comparable with earlier versions.

Now detects the +5% spell crit bonus from the "Songflower Serenade" buff.
Now detects the +10% spell crit bonus from the "Rallying Cry of the Dragonslayer" buff.

Added console command "/healpoints" which opens the calculator.

Added time needed to spend the whole mana bar chaincasting a given spell to the tooltip for "Tot HP (+r)".

Fixed a bug where the "Tot HP (+r)" would turn negative for infinite values.
(This would typically happen if you regen more mana during a HoT that the mana cost of the spell).

Fixed a display bug there the healing spell stats would sometimes not properly be updated on equipment changes.

*** 1.4 ***

Based on new testing, the crit formula have been updated yet again.
Druids and Shamans are now both at 40 int = 1 % crit.

Added support for French clients (untested).

*** 1.5 ***

Added support for 'Chain Heal' (shamans)

Added support for the following set bonuses:
'Increases the duration of your Renew spell by 3 sec.'
'-0.4 seconds on the casting time of your Chain Heal spell.'
'Increases the amount healed by Chain Heal to targets beyond the first by 30%.' 

Now detects the +3% spell crit bonus from the Moonkin aura.

Added '/healpoints bscan' for debugging special set/equip-bonuses.

Localization fixes for French clients.

Fixed a minor calculator tooltip bug.

*** 1.6 ***

Updated with the 1.10 priest talent changes, including support for the new 'Spiritual Guidance' talent.

Updated with the 1.10 revised healing spells stats for priests, druids and shamans.

Revised formula for +healing effect for low level spells. (from www.wowwiki.com)

Misc. 1.10 fixes.

*** 1.7 ***

Added support for the paladin spell 'Holy Shock' (only the healing part of the spell)

Added support for:
- Idol of Health
- Idol of Rejuvenation
- Totem of Life

*** 1.8 ***

Added support for the following set bonuses:
'After casting your Healing Wave or Lesser Healing Wave spell, gives you a 25% chance to gain Mana equal to
35% of the base cost of the spell.'
'Your Healing Wave will now jump to additional nearby targets. Each jump reduces the effectiveness of the
heal by 80%, and the spell will jump to up to two additional targets.'

*** 1.9 ***

Added option to configure how the HealPoints-statistic is calculated:
- PowerPoints: Select duration + option to force spell/rank to be used.
- EndurancePoints: Select duration + option to force spell/rank to be used.
- RegenPoints: Select duration

Revised spell crit formulas based on new posts by Tseric:
- Priests 0.8% base crit + 1% crit per 59.5 int
- Druids 1.8% base crit + 1% crit per 60.0 int
- Shamans 2.3% base crit + 1% crit per 59.2 int 

Added support for +3 % spell crit from the Slip'kik's Savvy buff (DM North tribute)
Added support for +12 mana/5s from Mageblood potion
Added support for +8 mana/5s from Nightfin soup

A few German localization fixes.

Improved the way PowerPoints are computed.

*** 1.10 ***

Updated for patch 1.11.

Added a line to item tooltips showing how your HealPoints stat will change if you equip the item.
Known bugs/limitations:
- Changes in set bonuses are not detected
- Does not currently work correctly for relics
- Will not appear for items which already have very large tooltips

Added support for the following items: 
- Libram of Divinity 
- Libram of Light
- Totem of Sustaining

Added support for the following set bonuses:
- Reduces the mana cost of your Healing Touch, Regrowth, Rejuvenation and Tranquility spells by 3%.
- On Healing Touch critical hits, you regain 30% of the mana cost of the spell.
- Reduces the mana cost of your Renew spell by 12%

Removed support for the 'Songflower serenade' buff due to conflict with sanctity aura.

Updated to BonusScanner 1.1 (performance improvements).

Increased accuracy of max mana calculations.

Fixed bug where hp/cast for spells affected by more than one talent (e.g. Gift of Nature and Improved
Rejuvenation) was slightly too high.

*** 1.11 ***

Heal-over-time spells (including Regrowth) are now considered for Power- and EndurancePoints calculations.
Healing is calculated by assuming that you try to keep the HoT effect running continously on 3 targets.
(This can be adjusted in the config window from 1-12 targets.)

Added support for the transcendence 8/8 set bonus.
"Your Greater Heals now have a heal over time component equivalent to a rank 5 Renew."
Same as for HoTs, it is assumed that you cast GH on 3 different targets (configurable).
HealPoints tracks HoT ticks and overwrites in order to compute healing done.

The spell power weapon enchant now also adds +healing (was changed in the 1.12 patch)

Added '/healpoints tooltips off' and '/healpoints tooltips on'.

The HealPoints tooltip line will now also appear on loot roll windows.

Fixed minor config window GUI bug.

Readme updated.

*** 1.12 ***

HealPoints is now an Ace2 addon.

If you inspect a non-enchanted item and the item you're currently wearing in the same slot is enchanted,
the HealPoints change in the tooltip assumes that the new item will be enchanted with the same enchant.
Example: You have Jin'do's Hexxer with +55 healing and Grand Widow Faerlina drops The Widow's Embrace.
The tooltip will now show change in HealPoints assuming that you enchant the new mace with +55 healing.

Config: Duration for Power- and EndurancePoints can now be specified in 30 second increments.

Config: Starting mana (in %) for both Power- and EndurancePoints can now be configured.
Default 100% and 0% respectively (equals pre 1.12 hardcoded values).

Config: Number of targets for HoTs can now be set to 0, effectively disabling HoTs for Power- and
EndurancePoints calculations.

RegenPoints has been removed. HealPoints is now just PowerPoints + EndurancePoints.

Performance improvements.

BugFix: Regrowth and the Transcendence 8/8 bonus now works properly for Power- and EndurancePoints.

BugFix: Dreamwalker 4 piece bonus should now be detected properly.

French localization fix.

Updated code to Lua 5.1 (preparing for The Burning Crusade).

Console commands updated. Use '/healpoints' to view all available commands.

*** 1.12.1 ***

BugFix: Fixed error when learning new spells.

BugFix: HoTs occasionally gave far too many Powerpoints.

BugFix: Several Regrowth and Transendence 8/8 bonus related bugs fixed.

Performance improvements.

Updated Ace2 Libraries.

*** 2.0 ***

Updated to WoW 2.0. Most important changes:
- Added support for new talents / talent changes (all 4 healing classes)
- Added support for spell critical strike rating
- Added support for +healing changes
- Updated formulas for spirit regen (druids) and spell crit from int (all)
- Uses Blizzard API functions for spell crit% and +healing

Added support for Idol of Longevity.

Slightly redesigned UI.

Performance improvements.

Updated Ace2 libraries.

*** 2.1 ***

Added preliminary support for socketed gems and active socket bonuses (TBC).

Added tooltips for unsocketed gems.
The calculations assume that you have an available socket of the correct type.
Any new socket bonuses that the gem would add, are not included.

Added new command: '/healpoints debug'.

Added workaround for the display bug in WoW 2.0.1 affecting enchants and green items
with random suffix (of the Bear etc.)

BugFix: Spell crit(%) was displayed for heal-over-time spells even if they can't crit.
(Display bug only)

BugFix: Talents such as Divine Intellect and Living Spirit would sometimes not be taken
into account in the calculator or on tooltips.

BugFix: Sligtly more accurate values on tooltips (removed rounding error).

BugFix: '/healpoints standby' should now work correctly.

*** 2.2 ***

Updated Regrowth with reduced mana cost from 2.0.3 patch.

Updated support for Idol of Health (English clients only at the moment).

Added support for the revised Nurturing Instinct talent.

Updated mana regen from spirit formulas.

BugFix: Fixed localization bug for German and French clients.

*** 2.3 ***

New spells supported:
- Lifebloom
- Blessing of Light, rank 4.

Improved bonus detection (English clients only):
- All(?) relevant gems
- Some additional socket bonuses
- Some additional set bonuses
- Some new enchants
- Idol of the Emerald Queen

Bugs fixed:
- +healing factor for Regrowth was inaccurate.
- Fixed detection of the Nature's Blessing talent.

*** 2.4 ***

Improved bonus detection (English clients):
- Tier 4 & Tier 5 healing set bonuses
    - Nordrassil Raiment 2pc & 4pc
    - Crystalforge Raiment 4pc
    - Cataclysm Raiment 2pc & 4pc
- All relevant relics
- All greater inscriptions
- All spellthreads
- Gylph of Renewal, Gylph of Power
- Power of the Scourge, Resilience of the Scourge
- Vitality enchant for boots

Improved localization:
- German support for Tier 4/5 and relics (see above)
- German support for almost all relevant gems
- Several French & German localization bugs fixed

Bugs fixed:
- Spell crit % from Intellect formulas updated for level 70 characters (80 int = 1%).
- Dreamwalker Raiment 4pc bonus was by mistake applied to Lifebloom.
- Setting duration of Power- or EndurancePoints to 0 mins no longer causes an error.
- Corrected spell crit ratings => spell crit % for character levels 1-9.

*** 2.4.1 ***

Lots of German & French localization fixes and updates.

*** 2.5 ***

Improved talent support:
- Spirit bonus from Spirit of Redemption now included in tooltip calculations.
- Added support for Holy Concentration.

Improved bonus detection (English clients):
- Idol of the Crescent Goddess
- Libram of Absolute Truth
- Superior Mana Oil
- Whitemend Wisdom 2 piece set bonus
- Wrath of Spellfire 3 piece set bonus
- Paladin Arena set glove equip bonus

Improved localization:
- Basic support for Spanish clients.
- Improved bonus detection for German and French clients.
