How the weights were generated:
By taking in four known values, and making specific assumptions, we can constrain the problem greatly and make simplifications in how we calculate the relative efficiency of each stat.
Known Values: [how i will reference these values below...]
% of healing done as atonement, before mastery [refered to a %a below]
# of targets [targets]
# duration of atonement [duration]
bool , swich between plea+pwr or only pwr [style, slow or burst]
Assumptions:
We are maximizing for healing (not damage or damage+healing)
When we take in %a as a known value, we can for the most part take rotation out of the equation. There is a nuance that crit will be so very slightly overrepresented in this model due to crit not scaling smite shield.
Based on the number of targets, similarly with duration, we will value or devalue haste.
For the most part, weights are generated with burst healing, which devalues haste.
Code:
Pieces of the effort function:
Your haste
Your crit
Your vers
Your mastery
%a
pltab {
cast time of plea
cast time of pwr
haste
targets
style
} (A function to determine the % time lost to atonement building. pltab tells you how long you're going to spend building atones, therefore not healing.)
With these pieces known, we can do simple math:
a = haste x crit x vers x mastery x %a
b = haste x crit x vers x 1-%a
e = pltab x (a+b)
Thats the effort function. Thats it. The problem goes from incredibly difficult, to incredibly simple. This is allowed to be so simple compared to other healers/dps because we have no complex interactions. There are no "on crit, do a thing" effects for disc priests.
Once we have the above conditions met and understood, we can assign a pool of secondary stats to allocate, and run our effort function over every permutation of those values. The result is a large system of equations which you can then solve to determine your weights. Everyone who said healers are difficult to sim is right. Thats why I used the method above. Letting WCL tell me the difficult things, like how you healed, let me make massive cuts in difficulty to the equation to make this simple. Were we to take out any of the variables or assumptions we make, the problem would have to resort back to sims and other methods to determine, which would involve static health and damage values, rotations, and other things.