If you are a reader of the Moonkin Repository you may remember a post that RandomSmo made a month and a half ago regarding when is the best time to cast Moonfire and Insect Swarm. The question he asked was: Is it better to cast the DoTs outside of Eclipse or is it better to only cast Moonfire at the beginning of Lunar Eclipse and only cast Insect Swarm at the beginning of Solar Eclipse?
The theory behind the question is that moonkin DPS is driven by Eclipse uptime. Therefore you want to do everything possible to maximize the uptime of Eclipse. Casting a DoT while Eclipse is down just delays procing the next Eclipse, and therefore reduces the uptime of Eclipse.
I agree that the theory is very counterintuitive. If moonkin DPS is so driven by Eclipse then why cast something that is not affected by Eclipse?
There are a couple of possible reasons. First, in the case of Moonfire casting a DoT doesn't necessarily prevent a Starfire cast from getting Eclipse. If you have 1.5 seconds left on Eclipse there is no way that Starfire will benefit from that remaining buff. It would have been better to have Moonfire ticking the entire duration and gotten the same number of Eclipsed Starfires. Second, in the case of Insect Swarm there were synergies to consider. Wrath does 3% more damage when Insect Swarm is on the mob. So, it is possible that if you combine the 3% buff with the added uptime of Insect Swarm that you would make up for the lost Eclipsed Wrath.
Admittedly there were some problems with the simulations RandomSmo ran. However, when I ran some quick tests in July correcting for his mistakes I got smaller, but similar results. I then accepted the results, but as I said before was recently challenged regarding some of the strategies I was using. With that I desided I would redo the tests to see if the results had changed.
What SimulationCraft Says:
All simulations were run using Graylo with full raid buffs, as a 5 minute fight, and with 10,000 iterations.
A quick look at Starfall and the default set up: I ran 17 different rotations through SimulationCraft. In those tests I was primarily changing when and how DoTs were applied, but I do want to make a quick comment about the default set up for SimulationCraft.
If you import your toon right into SimulationCraft the default rotation assumes that you don't cast Starfall during Eclipse. When I ran Graylo using the default rotation I had a DPS value of 12,304. When I had it cast Starfall when ever it was off cooldown I had a DPS value of 12,351. This indicates that it is better not to delay casting Starfall to cast it out side of Eclipse. However, I would like to present a couple of reminders first.
First, the SimulationCraft tests I ran assumed a Patchwerk style fight, and 7 out of 12 ICC bosses have specific add phases where it is better to use Starfall. Second, big delays over long fights will add up quickly. If you delay Starfall 3 or 4 times for 10 seconds or more over a long fight you've probably lost a Starfall cast in that fight. Shorter delays and delays on shorter fights will have less of an impact.
Here is the general rule I would use. On a Patchwerk style fight try not to delay Starfall too much, but feel free to delay it a few seconds if it becomes available at the end of an Eclipse buff.
When is the best time to cast DoTs?
In all of the simulations below I assume that Starfall is cast when it is available.
These are some of the measures I used when I asked some similar questions last December.
|Skip on Opposite||12,419|
With "Never Skip" the tests refreshed the DoTs when ever they were down. Even if Eclipse is up with only a few seconds left. With "Skip on Opposite" DoTs were only refreshed during Eclipse if they take advantage of Improved Insect Swarm. Therefore, if Lunar Eclipse is up you would refresh Moonfire but not Insect Swarm. With "Skip Always" the tests skip both DoTs if either Eclipse buff is up.
If you remember that post you can see that the results are a bit different this time around. In December there was an obvious advantage to trying to keep a 100% uptime on DoTs. Now our DoTs are relatively week and it is better in some cases skip them in favor of Eclipse buffed nukes.
Smo's Theory: So how does RandomSmo's theory stack up against these baseline values?
|Only at Start of Same Eclipse||12,320|
When tested against my toon, Smo's theory comes about 106 DPS behind the Skip Always strategy above. That means the Skip All Strategy provides about 0.86% more damage. That isn't a huge difference but it is clear to me that it is an inferior strategy.
Can we improve on the Skip Always Strategy? Now that it is clear that Smo's theory is an inferior strategy, the question is: Can the Skip Always strategy be improved upon? As I said before I ran about 17 different rotations through the simulator. Here are the most telling results.
|Cast Either DoT if Eclipse is Down or has more then 4 sec remaining.||12,338|
|Cast MF for 100% Uptime, Cast IS only when Eclipse is down.||12,392|
|Cast IS for 100% Uptime, Cast MF only when Eclipse is down.||12,335|
|Cast DoT if Own Eclipse has more then 4 sec remaining or if Eclipse is down||12,443|
|Cast MF if Lunar Eclipse has more then 4 sec remaining or if Eclipse is down, Cast IS if Eclipse is down||12,438|
|Cast IS if Solar Eclipse has more then 4 sec remaining or if Eclipse is down, Cast MF if Eclipse is down||12,427|
Judging from these results there doesn't appear to be a way to significantly improve on the Skip Always Strategy. There do appear to be some slight improvements when casting Moonfire at the beginning of Lunar Eclipse, but these differences probably fall within the margin of error and are very slight even if they don't.
In my most recent testing Smo's theory of casting DoTs only at the beginning of Eclipse does not appear to be beneficial. I was able to get noticeably better results from SimulationCraft using a strategy where you always skip DoTs during Eclipse. SimulationCraft did show slightly improved results using a strategy that would cast Moonfire at the start of Lunar Eclipse, but the results probably fall within the margin of error.
For Starfall, SimulationCraft defaults it to only be cast when Eclipse is down. However, I got better results from SimulatonCraft if Starfall was cast when it was off cooldown. However, I would be careful when applying these results. It is probably advantageous to make small delays in casting Starfall during shorter fights because you are unlikely to reduce the number of Starfalls you will get in the encounter. Making longer delays, or delays during longer fights is more risky because you risk losing a Starfall cast during an attempt.
Do It Yourself: If you would like to run this analysis for yourself. Here is how you do it.
Go download SimulationCraft from here. The Import tab will allow you to download your toon from the Armory, Rawr, or WoWhead if you have a profile set up there.
The Default Setting for Moonkin in SimulationCraft does not cast Insect Swarm unless you are moving. So for the first simulation you run you will want to add a line for Insect Swarm below the line for Moonfire. For every test after that just replace the Moonfire and Insect Swarm lines with the lines I provide below.
For 100% DoT uptime (Never Skip Strat), replace the lines with:
actions+=/moonfire,if=!tickingFor the Skip Always Strat, replace the lines with:
actions+=/moonfire,if=!ticking&!eclipseFor the Skip on Opposite Strat, replace the lines with:
actions+=/moonfire,if=!ticking&(buff.solar_eclipse.down)To run Smo's Theory, replace the lines with:
actions+=/moonfire,if=!ticking&(buff.lunar_eclipse.react)&buff.lunar_eclipse.remains>10For the Cast DoT if Own Eclipse has more then 4 sec remaining or if Eclipse is down Strat:
actions+=/moonfire,if=!ticking&(buff.lunar_eclipse.down|buff.lunar_eclipse.remains>4)&(buff.solar_eclipse.down)From here you can mix and match the different bits of code to get the other results I had. One thing to remember is that this is a simulator so you may not get the same results each time you run it.