Have you guys asked the simc guys to add dot.*.ticksLeft or something similar? All of these "<3 >2 <6 >5" comparisons gets confusing, and they're all effectively translate into a integer number of remaining ticks.

This is effectively "maximum rip time remaining"? Why 8? Shouldn't that be 6? Since there are only 3 extends?

Edit:

Okay, I think I see how this is working. - tick_multiplier is just a generic dmg modifier thing, possibly the product of TF/NV/SR/DoC?- dot.rip.multiplier and dot.rake.multiplier are just the snapshotted value

I can directly query the exact tick damage in my simulator, so I need to do some kind of replacement such that the Rake tick_multiplier is different from the Rip tick_multiplier.

Okay, I think I see how this is working. - tick_multiplier is just a generic dmg modifier thing, possibly the product of TF/NV/SR/DoC?- dot.rip.multiplier and dot.rake.multiplier are just the snapshotted value

I can directly query the exact tick damage in my simulator, so I need to do some kind of replacement such that the Rake tick_multiplier is different from the Rip tick_multiplier.

Yes, in the Ovale script it calculates exact tick damage and compares them but in SimC we just compare the amount of flat dmg buffs we had since that functionality is not available.

It's 8 seconds instead of 6 because SimC models it as 1-1-2 ticks added for each extend respectively (it's a bug thing).

I moved the working copy of the simc script to the first post of this thread and locked the experimental thread so we can keep the conversation in one place. I also made this thread sticky and included the AoE script in that post.

SimC does Bloodlust (as well as 2 stormlashes) as a raid event, they are essentially handled like a raid buff as far as enabling/disabling go and then they are autofired by the sim. By default Bloodlust is used at 25% HP or 60s TTD, whichever comes first, and the stormlashes are used in sequence on CD.

Banner is currently not a raid event but it probably will be in the near future at which point it'll be handled just like stormlash.

raffy wrote:Fixed a bug with OoC and another with Stormlash, bringing your script w/my simulator (without latency emulation) up above my rotation, so I'll be using this in the future:

Good to see that it is getting into the same range. I am not surprised that the dps in the current script is higher given the number of hours that many people have put into refining the simulations. That said, occasionally someone comes up with something that ultimately (after being refined) moves the dps quite a bit, like the energy pooling for FBs has for the DoC rotation.

There are some changes I have been wanting to make to the rotation that I cannot test in SimulationCraft due to the limitation that attack power is not included in the tick comparisons. I believe that several conditionals can be generalized. A good example is the conditional that extends Rip at 6 seconds if DoC is up and the new Rip ticks will be at least equal in damage. This can be generalized to a damage ratio increase compared to some baseline damage level. I think this will take into account the lookahead code you played with for trinket procs. I don't think it is necessary to look at how long the buffs have left to run (specifically trinkets) given how long Rip lasts, as checking to see if we are in a "high-damage" situation to clip Rip early should do what we want.

I'm not sure if you're understanding what my intent was with those conditionals. The point was to make sure that it didn't pool for so long that berserk ended while it was in the middle of pooling, so when Berserk falls below 1 second it does the FB regardless of energy levels. In theory it's probably better to do the FB slightly before that if you're running SotF as you would probably want to use the energy return under berserk as well but I tried that and it was negligible so I threw it out.

if ComboPoints()>5 and TargetDebuffPresent(RIP) and BITWRange() and TalentPoints(dream_of_cenarius_talent) { if {BuffRemains(BERSERK)>1.0 and Energy()>25} or {BuffPresent(BERSERK) and BuffRemains(BERSERK) <=1} or {BuffExpires(BERSERK) and Energy()>50} Spell(FEROCIOUSBITE)}unless ComboPoints()>5 and TargetDebuffPresent(RIP) and BITWRange() and TalentPoints(dream_of_cenarius_talent) { # the rest of the rotation follows}

The main thing in Ovale is separating the conditionals for when to pool from the energy pool logic so that I can tell Ovale what spell I am trying to cast and get it to display with a countdown.

The challenge - build a very simple script for our rotation. The goal - dps is 95% of the current script (a stretch goal). Some rules:

It will only cover a single talent build - DoC + SotF + NS.Glyph of Savagery.It should be executable without any addons.

Thoughts on where to start:Build a rotation with no damage ratios.Minimize clipping.Start by casting TF+Berserk on cooldown regardless of energy.Use energy pooling only on FB and not for fillers.Clip Rip at <2 seconds and Rake at <3 seconds without any other conditionals.Cast HT with PS at 4 combo points or if running out.Save NS for BitW phase to get a strong Rip up (we ignore it the rest of the fight).BitW first Rip logic is something like: if in BitW and 5 seconds before TF, use Vermin's Bite. Save combo points for TF. Cast NS+HT, TF, Rip, Rake, etc.Only have two SR conditionals - when it is down, and one conditional to use up 5 combo points.Only have three FBs - one for BitW emergency, one for 5 combo point BitW, and one after the SR conditional for aggressive 5 combo point usage.Two conditionals for Thrash - one for OOC and one at 5 combo points, both clipping at 3 seconds.

Caltiom wrote:I was able to incorporate your complex, extended action list shown in the original posting, into SimC.

So far that was only a 1.2% dps increase compared to the action list we had. But it would be great to have a simpler default action list for it, even it that widens the dps margin further.

The 1,2% dps increase you saw is very recent and is mostly due to adding energy pooling for Ferocious Bite during DoC. Most of the changes in the script posted here apply to the Nature's Vigil and Heart of the Wild rotations. While DoC has the highest potential DPS, the other specs are being used regularly. In particular, Heart of the Wild gets a lot of use due to the raid utility for high AoE fights and fights where you want the feral to use a very powerful Tranquility as a raid cooldown.

We will look into creating two scripts, a basic one for people to sim their toons with and an advanced one that has the highest possible dps we can find for a BiS build. In particular, this script is the one we can use for move suggester addons such as Ovale. My preference is to have both scripts available in simc. Is there a naming convention we should use?

Also, should we limit the simple script to a single talent build? That will simplify it a lot.

Leafkiller wrote:We will look into creating two scripts, a basic one for people to sim their toons with and an advanced one that has the highest possible dps we can find for a BiS build. In particular, this script is the one we can use for move suggester addons such as Ovale. My preference is to have both scripts available in simc. Is there a naming convention we should use?

Also, should we limit the simple script to a single talent build? That will simplify it a lot.

I'd rather have the simple script give "good" DPS for various talent/glyph combination ( there is also a lot of pre-conditioning you can do in the SimC code where the action list is stored ), and only have the complex one, which really is there to get the absolute best dps for a already BiS talent/gear setup only displayed if the player has those talents as well. Or is your complex one so complex that it already covers all possible situations?

The BiS script covers all the talent combinations right now, although it has an issue with the tier 4 talent Incarnation. If I can just get Blizzard to buff the passive bonus of Heart of the Wild, just enough to bring it closer to DoC in dps, then I can give you a much simpler rotation for general use.