I was tinkering around in my head today about how I would factor in Spirit procs. into the current mana regeneration formula so that I could have a nice stable formula that would require me to just plug the initial numbers in and be able to see regen across a given fight by graphing the formula.
Currently, I am going with Derevka's regeneration formula from August 2012
Combat Regen = Total Mana *0.02 +(1.1287*SPI*50%)
For credit sake I found this formula on Derevka's blog Tales of a Priest:
While this works fine for stable mana pools, I was thinking of ways to change it to take into account spirit proc trinkets and abilities. I started with the following formula
Combat Regen = Total Mana *0.02 +(1.1287*(SPI+(X))*0.5)
After deciding that the best method would be to just plop a variable onto the static spirit pool, I proceeded to work on what needed to be substituted in for X to fulfill the outcome I wanted. This is where I ran into a little bit of a problem. I created a hypothetical trinket to give some nice numbers to plug into this formula to test. I utilized the following:
Theoretical Spirit Trinket
Spirit Buff: +2500 Duration of Buff: 15 Seconds Cooldown/Internal Cooldown: 45 Seconds Chance to Proc: 80% Fight Duration: 300 Seconds
Now my basic algebra skills tell me that the following would give me the theoretical Spirit that the above mentioned proc. would give over the course of 300 seconds.
Bascially I thought that by distributing the 2500 Spirit across the full 45 second cooldown I'd be given the Spirit/Second; then, by simply multiplying that by the duration of any given fight, I'd get the spirit provided by that trinket for the specified fight. However, after some thought, I felt this was incorrect logic and a very blunt approach to something that has more subtlety to its methodology.
My main sticking point was that for every 1 second that the proc. is not on cooldown there is an 80% chance that it will proc, and doing a simple 80% of the theoretical spirit over the course of a fight [.8(Fight_Duration(Spirit_Buff/Cooldown_ICD))] seemed even worse than the original calculation.