Need help with some mana regen theorycrafting

100 Pandaren Monk
3025
Hello there fellow math connoisseurs of the Healing community!

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:
http://talesofapriest.com/2012/06/09/mists-of-pandarias-spirit-regen-and-mana-models/

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.

    Fight_Duration/(Spirit_Buff/Cooldown_ICD)


    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.

    <CONTINUED BELOW>
    Reply Quote
    100 Pandaren Monk
    3025
    TL;DR: I was wanting to get some input and assistance in how you would setup a formula that would take into account spirit proc. trinkets that would include their percentage proc. rate (80% proc every 1 second while not on cooldown, for example) and how could this additional Spirit formula be plugged into the existing mana regeneration formula to show the linear Spirit regen along with the volatile procs of a trinket such as Relic of Chi-Ji.

    I'll keep tinkering with this idea, any help and/or clarification on my mathematics that could be provided would be GREATLY appreciated!
    Edited by Breunor on 2/13/2013 10:54 AM PST
    Reply Quote
    100 Blood Elf Priest
    15230
    The proc nature of it gives it an error margin - you're never going to see the exact same uptime for every fight.

    Look at a few logs, take the average time between procs, use that to come up with an average value for the proc. It'll be accurate to within the practical error margin.
    Reply Quote
    100 Human Paladin
    14065
    Don't forget that trinkets like that have a very naughty habit of proccing right at the start of the fight, when you're sitting at full mana and nobody's yet taken damage but the tank, thereby wasting the proc.
    Reply Quote
    90 Blood Elf Priest
    13110
    02/13/2013 11:20 AMPosted by Dekkar
    Don't forget that trinkets like that have a very naughty habit of proccing right at the start of the fight, when you're sitting at full mana and nobody's yet taken damage but the tank, thereby wasting the proc.


    Happily, they're fixing that in 5.2! :D
    Reply Quote
    100 Human Paladin
    14065
    02/13/2013 11:23 AMPosted by Tiriél
    Don't forget that trinkets like that have a very naughty habit of proccing right at the start of the fight, when you're sitting at full mana and nobody's yet taken damage but the tank, thereby wasting the proc.


    Happily, they're fixing that in 5.2! :D


    They are? OMG FINALLY. My offspec is holy so I don't use it often, but that annoyed me to no end. I'm so glad they are fixing it.
    Reply Quote
    100 Blood Elf Priest
    15230
    02/13/2013 11:23 AMPosted by Tiriél
    Happily, they're fixing that in 5.2! :D


    They're doing what? o.O
    Reply Quote
    90 Draenei Shaman
    16765
    02/13/2013 10:50 AMPosted by Breunor
    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.


    (Duration of the proc) * (Proc amount) / (Internal Cooldown)

    Using your arbitrary example, 15*2500/45 = 833.33 Spirit. This is an average stat bonus skewed towards the minimum.

    To get a precise result:

    (Total uptime) * (Proc amount) / (Duration of encounter)

    Using your arbitrary example, you will get 7 procs thus:

    (7*15)*2500/300 = 875 Spirit.

    Notice that, despite the proc nature of the trinket, the amount of procs you can generate per fight is nominal, thus the uptime error is generally academic. This mostly becomes an issue only when a proc becomes clipped by the encounter length.
    Reply Quote
    90 Troll Shaman
    17270
    That's sounds way worse than just using WoL's:
    Go to a log of a fight (or multiple boss fights you were in and didn't die early). Go to buffs gained. Find the trinkets buff. There is a %uptime. Multiple that % by the size of the proc... that's the average proc value. Done.

    If nothing else, this should be the gold standard that you compare whatever mathmatical model you create.

    I would think of it like this:
    You have a proc
    You have a CD-downtime
    You have a waiting for proc downtime

    The proc duration is set, the duration it is on CD because it is on ICD is set, the waiting for proc downtime is variable.

    The value of the proc is:
    [Proc Duration]/[time between procs]
    where
    [time between procs] = [ICD]+[average based on proc chance divided by opportunites per unit time time]

    [average based on proc chance divided by opportunities/time] = well average number of times you have to do something before you get the desired result based on probability p is 1/p.
    So: Average time = 1/(p*[events/sec])

    Questions?
    Reply Quote
    100 Pandaren Monk
    3025
    Thanks for the response you guys! It's helped clarify some of the issues I've ran into.

    Also, I guess I should clarify, while I understand it isn't the 'best' method, I just wanted to see if it was possible to set up a nice little formula --just for my own enjoyment of working on figuring it out. I just wanted to challenge myself!

    Applying my math skills to something that I enjoy helps keep me in practice, interested in the numbers, and better able to understand the numbers as they change. So, I thought what better way than with WoW.

    back to tinkering with this, I'd like to be able to make a visual graph to demonstrate how the trinket affects the base spirit regen, or at least that's what I'm aiming for.
    Reply Quote

    Please report any Code of Conduct violations, including:

    Threats of violence. We take these seriously and will alert the proper authorities.

    Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

    Harassing or discriminatory language. This will not be tolerated.

    Forums Code of Conduct

    Report Post # written by

    Reason
    Explain (256 characters max)

    Reported!

    [Close]