Stat Weights Classic

Stat Weights Classic

228k Downloads

Era/SoD Paladin - Blessing of Light Miscalculated

ritewhose opened this issue ยท 3 comments

commented

Hi,

Using Blessing of Light throws off the calculation Holy Light spells. Here is what I've tried so far to figure out what's really happening.

Test Results

Here are my results for doing 10 casts per rank. I then compared these results to what is estimated by using power-as-spell-power (proposed) and power-as-flat-addition (currently used in the source code).

HL_Rank BoL_Rank Measured *P(sp) P(flat)
1 0 173-182 173-183 173-183
2 0 308-315 300-317 300-317
3 0 532-555 529-561 529-561
4 0 801-850 801-853 801-853
6 0 1253-1324 1243-1336 1243-1336
8 0 1872-2023 1865-2025 1865-2025
1 1 216-225 217-227 383-393
2 1 384-397 371-388 510-527
3 1 683-707 645-677 739-771
4 1 1012-1061 951-1003 1011-1063
6 1 1455-1541 1393-1486 1453-1546
1 2 234-243 235-245 473-483
2 2 420-432 402-419 600-617
3 2 740-769 695-727 829-861
4 2 1102-1144 1015-1068 1101-1153
6 2 1544-1635 1458-1550 1543-1636
1 3 253-263 256-266 573-583
2 3 461-475 436-453 700-717
3 3 809-837 750-782 929-961
4 3 1202-1240 1087-1139 1201-1253
6 3 1663-1735 1529-1622 1643-1736
8 3 2319-2395 2151-2311 2265-2425

For context, I have 617 healing power from gear.

Analysis

The divergence is most dramatically seen in Holy Light(Rank 1) with Blessing of Light(Rank 3)(bolded). If the current calculations were correct I'd be healing close to 600 per normal cast, and this would be the most mana-efficient heal for Paladins in the game. Unfortunately it's not nearly that powerful: My normal casts are around 260. This is in line with what would be expected from calculating Blessing of Light's effect based on spell power alone.

On the other hand, using spell power does not completely solve the problem. For HL2 and HL3, the results are somewhere in the middle of sp and flat_add ; for HL4-HL8, it's clear that the flat_add is quite accurate while sp is not.

Lower Rank Holy Light Scaling

So, Rank 2 and Rank 3 are still unsolved. I found the range of the original unbuffed spells, and then started casting until I had achieved the same range with a Blessing of Light. I then took the buffed lower upper bounds and subtracted them from their respective unbuffed bound to compute the diff column. Here are my results from this (T = tooltip info):

Holy Light(Rank 2)

HL_Rank BoL_Rank Measured Range Diff Coeff
2 T 91-107 15 - -
2 0 300-315 15 - -
2 1 384-399 15 84/84 84/210 =0.4
2 2 420-435 15 120/120 120/300=0.4
2 3 460-475 15 160/160 160/400=0.4

Holy Light(Rank 3)

HL_Rank BoL_Rank Measured Range Diff Coeff
2 T 187-219 31 - -
3 0 529-560 31 - -
3 1 676-707 31 147/147 147/210=0.7
3 2 739-770 31 210/210 210/300=0.7
3 3 809-840 31 280/280 280/400=0.7

This shows that Blessing of Light applies different heal power coefficients based on the rank of the spell. Rank 2 is modified by a 0.4 coefficient, and Rank 3 is modified by a 0.7 coefficient. Presumably, higher-ranked spells all use a 1.0 coefficient.

Lastly, I decided to revisit rank 1 with the same methodology:

Holy Light(Rank 1)

HL_Rank BoL_Rank Measured Range Diff Coeff
1 T 47-57 9 - -
1 0 173-182 9 - -
1 1 216-225 9 43/43 43/210=0.205
1 2 234-243 9 61/61 61/300=0.203
1 3 253-263 10 80/81 80/400=0.2, 81/400=0.2025

So, it seems Holy Light(Rank 1) might have a coefficient of 0.2, and this just happens to be very close to its normal spell power coefficient of 0.205, but if that were the case it seems 210*.2, for instance, would equal 42, not 43, and 300*.2 would equal 60, not 61. It seems it would be slightly more accurate to scale it based on spell power.

Implementation

I was hoping this would be pretty straightforward to implement, but it doesn't seem that easy. The calculator is not really built to apply a buff differently to different ranks of the same spell. I did come up with a way to do it, which I'll try to get around to sharing tomorrow.

Holy Light's Effect Ranges Off

This got me most of the way there, but my ranges were still off ever so slightly, being a little higher than expected. While looking into this I noticed Holy Light's effect range changes as you level, but not necessarily in a linear way. For example, here is what the tooltip says for Holy Light(Rank 1) based on several of my characters:

  • lvl1: 39 to 47
  • lvl5: 42 to 51
  • lvl21: 42 to 51
  • lvl50: 47 to 57
  • lvl60: 47 to 57

The addon currently assumes a base of 39-47, growing by 0.8 from levels 1-5. This accounts for the scaling at lvl5. However, there is evidently a period of no change for this effect range between at least level 5 and 21, then somewhere between levels 21 and 50 some additional effect range changes. I can say, at least, that this is not affected by gear or buffs as the range persists after removing all gear, and I've cross-checked this behavior with Classic Era (non-SoD) servers.

Given that in my implementation the spell effect ranges are very close but only slightly off in inconsistent ways, it seems like the calculator is taking most of this into account already somehow, either intentionally or accidentally.

Greater Blessing of Light

Currently, Greater Blessing of Light (spid:25890) is not recognized as a Blessing of Light, but should carry the same effects as Blessing of Light(Rank 3).

Additional Spell Notes

Holy Light

Note: my testing indicates that the spell range is lowerbound <= x < upperbound. For example, HL3 indicates the spell may land for anywhere in the range of 91-107, but I was only able to achieve 91-106 after spamming it for quite a while.

Rank Tooltip Coeff
1 47-57 0.205
2 91-107 0.339
3 187-219 0.554
4 360-413 0.714
6 803-895 0.714
8 1424-1584 0.714

Blessing of Light

Rank FoL_P HL_P
1 60 210
2 85 300
3 115 400
commented

Hey, nice findings.

  1. Since the Blessing of Light effect appears to depend on Holy Light rank it would be easiest to account for in calc.lua instead of buffs.lua. The codebase may be messy so if you don't find a quick way to do it, don't worry about it and I can work it in next when I can get to it.
  2. I suspect you have taken Healing Light talent for higher level characters. The addon currently assumes it is applied to the base of the spell and not spell power. If the in-game blizzard tooltip is showing 42-51 rank 1 Holy Light with the talent at higher levels then the addon is wrong and the talent % healing should applied to both base and sp (but not visible from blizz tooltip).
  3. I wouldn't worry too much about +/- 1 errors for integers in tooltips as they are just rounded for readability. The calculation is done in floating point numbers. A better test is probably seeing if the healing expectation number matches but this requires many samples :)
commented

Cool, thanks! I'll check it out sometime this week.

commented

I believe the issues with Blessing of Light are fixed now in the new update but I don't have a way to verify it.