[TC] SimC Fire Mage APL
[TC] SimC Fire Mage APL
SimC Fire mage Action priority Lists need significant improvement. In an effort to document the process and have a place for people to contribute as we make new APLs going into WoD, this thread is made.
Re: [TC] SimC Fire Mage APL
First order of business is figuring out if SimC is currently allowing for proper HU/HS camping.
EDIT: Works fine. In an isolated environment of only non-camp vs. camp APL, camping produces expects results of increased DPS. But decreased DPS in the full APL environment.
EDIT: Works fine. In an isolated environment of only non-camp vs. camp APL, camping produces expects results of increased DPS. But decreased DPS in the full APL environment.
- Dutchmagoz
- Administrator
- Posts: 603
- Joined: Tue May 27, 2014 11:53 am
Re: [TC] SimC Fire Mage APL
This was all done for my personal armory, 585 ilvl fire mage, with KTT and hc wf PBOI. Results may vary very differently to higher/lower levels of crit and haste, and/or different trinkets.
(http://eu.battle.net/wow/en/character/s ... z/advanced" target="_blank)
Isolated APL that was used:
EDIT: Completely isolated scenario, HU camping wins from not camping. However, the moment inferno blast is added, not camping seems to win against camping.
Using the above scenario, but removing the "&&buff.heating_up.up&&cooldown.inferno_blast.remains<6.5" part from pyro, wins over camping.
Not camping pyro seems to actually be a dps increase over camping it.. In a completely isolated simc scenario.
01:09 <@Dutchmagoz> camping without 4pc: Dutchmagoz : 228666 dps
01:09 <@Dutchmagoz> not camping without 4pc: Dutchmagoz : 237858 dps
01:10 <@Dutchmagoz> camping with 4pc: Dutchmagoz : 336648 dps
01:10 <@Dutchmagoz> not camping with 4pc: Dutchmagoz : 344814 dps
Not camping:
01:32 <@Dutchmagoz> # count action,conditions
01:32 <@Dutchmagoz> 8 4.18 evocation,if=(buff.invokers_energy.down|mana.pct<20)
01:32 <@Dutchmagoz> 9 83.93 pyroblast,if=buff.pyroblast.up
01:32 <@Dutchmagoz> A 28.83 inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
01:32 <@Dutchmagoz> B 117.94 fireball
---
Camping:
01:32 <@Dutchmagoz> # count action,conditions
01:32 <@Dutchmagoz> 8 4.19 evocation,if=(buff.invokers_energy.down|mana.pct<20)
01:32 <@Dutchmagoz> 9 76.87
01:32 <@Dutchmagoz> A 10.39 inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
01:32 <@Dutchmagoz> B 135.83 fireball
Logs of NOT camping: http://pastebin.com/cQQdpT9d" target="_blank
Logs of camping: http://pastebin.com/5shG9QqN" target="_blank
EDIT2: Using "&&action.fireball.in_flight" for camping yields exact same results.
EDIT3: Tried camping pyro when inferno blast is not available, else don't camp.
Half camping half not camping: Dutchmagoz : 344083 dps (800 less than full not camping, 250k iterations)
# count action,conditions
8 4.17 evocation,if=(buff.invokers_energy.down|mana.pct<20)
9 26.36 inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
A 44.19 pyroblast,if=buff.pyroblast.up&&cooldown.inferno_blast.remains<1
B 41.59 pyroblast,if=buff.pyroblast.up&&buff.heating_up.up&&action.fireball.in_flight
C 116.99 fireball
EDIT4: Removing 4pc and 2pc T16 bonuses makes HU camping better than not camping. At extremely high crit levels (589 ilvl with 22k crit rating) HU camping gets closer to not camping as well, still doesn't beat it though.
Conclusion: Everything every top fire mage was doing is a lie?!?! (in an isolated scenario..)
EDIT5: Last finding for today: Combustion is not critting enough on simcraft (only ~58%, though real crit % should be 65%+ in my gear, only 58% even on only the initial combustion, where crit % is nearly 85%), seems to be a bug with how it calculates crit.
(http://eu.battle.net/wow/en/character/s ... z/advanced" target="_blank)
Isolated APL that was used:
Code: Select all
actions+=/inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
actions+=/pyroblast,if=buff.pyroblast.up&&buff.heating_up.up&&cooldown.inferno_blast.remains<6.5
actions+=/fireball
Using the above scenario, but removing the "&&buff.heating_up.up&&cooldown.inferno_blast.remains<6.5" part from pyro, wins over camping.
Not camping pyro seems to actually be a dps increase over camping it.. In a completely isolated simc scenario.
01:09 <@Dutchmagoz> camping without 4pc: Dutchmagoz : 228666 dps
01:09 <@Dutchmagoz> not camping without 4pc: Dutchmagoz : 237858 dps
01:10 <@Dutchmagoz> camping with 4pc: Dutchmagoz : 336648 dps
01:10 <@Dutchmagoz> not camping with 4pc: Dutchmagoz : 344814 dps
Not camping:
01:32 <@Dutchmagoz> # count action,conditions
01:32 <@Dutchmagoz> 8 4.18 evocation,if=(buff.invokers_energy.down|mana.pct<20)
01:32 <@Dutchmagoz> 9 83.93 pyroblast,if=buff.pyroblast.up
01:32 <@Dutchmagoz> A 28.83 inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
01:32 <@Dutchmagoz> B 117.94 fireball
---
Camping:
01:32 <@Dutchmagoz> # count action,conditions
01:32 <@Dutchmagoz> 8 4.19 evocation,if=(buff.invokers_energy.down|mana.pct<20)
01:32 <@Dutchmagoz> 9 76.87
01:32 <@Dutchmagoz> A 10.39 inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
01:32 <@Dutchmagoz> B 135.83 fireball
Logs of NOT camping: http://pastebin.com/cQQdpT9d" target="_blank
Logs of camping: http://pastebin.com/5shG9QqN" target="_blank
EDIT2: Using "&&action.fireball.in_flight" for camping yields exact same results.
EDIT3: Tried camping pyro when inferno blast is not available, else don't camp.
Code: Select all
actions+=/inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
actions+=/pyroblast,if=buff.pyroblast.up&&cooldown.inferno_blast.remains<1
actions+=/pyroblast,if=buff.pyroblast.up&&buff.heating_up.up&&action.fireball.in_flight
actions+=/fireball
# count action,conditions
8 4.17 evocation,if=(buff.invokers_energy.down|mana.pct<20)
9 26.36 inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down
A 44.19 pyroblast,if=buff.pyroblast.up&&cooldown.inferno_blast.remains<1
B 41.59 pyroblast,if=buff.pyroblast.up&&buff.heating_up.up&&action.fireball.in_flight
C 116.99 fireball
EDIT4: Removing 4pc and 2pc T16 bonuses makes HU camping better than not camping. At extremely high crit levels (589 ilvl with 22k crit rating) HU camping gets closer to not camping as well, still doesn't beat it though.
Conclusion: Everything every top fire mage was doing is a lie?!?! (in an isolated scenario..)
EDIT5: Last finding for today: Combustion is not critting enough on simcraft (only ~58%, though real crit % should be 65%+ in my gear, only 58% even on only the initial combustion, where crit % is nearly 85%), seems to be a bug with how it calculates crit.
Owner of Altered Time.
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Re: [TC] SimC Fire Mage APL
Dutch's findings reflect what Frosted, him and I spent a whole afternoon in IRC figuring out. To summarize...<snip>
1. We reviewed the mechanism for HS and HU proc generation within simc source code, and could not find any obvious errors for it, even when confronted with the more complicated fireball + pyro "noncrit/crit" combinations.
2. We then worked out a very simplified APL that does the "Pyro camping" behavior with Fireball, Pyro, IB. We verified that "Pyro camping" was happening correctly, by looking at sample output logs.
3. When we tried to compare this to the default "use Pyro procs ASAP" policy, we found that the default one gives better numbers. Pyro camping did a lot less IBs, more fireballs, and consequently sacrificed a lot of Pyro casts and damage.
3. We guessed that this might have something to do with T16 set bonuses. I ran simc with these two APLs on several different gear setups, and found the following:
ilvl 588 4T16 NOT Pyro camp BEATS ilvl 588 4T16 Pyro camp by ~1.16% magrin
ilvl 588 2T16 NOT Pyro camp LOSES TO ilvl 588 2T16 Pyro camp by ~1.68% margin
ilvl 589 1T16 NOT Pyro camp LOSES TO ilvl 589 1T16 Pyro camp by ~1.6% margin
Notes: simc 548-3, 100K iterations
4. Going by the assumption that these simulations are correct, it suggests that the 4T16 bonus swings the balance in favor of not pyro camping, due to additional crit Pyros being triggered by extra IB casts.
5. This evidence isn't conclusive by any means. A convincing comparison needs to include mage bombs, trinket pyro-chain gaming, and 2T16 buff stack manipulation. However, it does show that if there's room to improve fire in simc, "Pyro camping" likely isn't the main culprit.
Re: [TC] SimC Fire Mage APL
User "Collision" from the #simulationcraft IRC channel kindly reminded us that by including "distance=10" or some other shorter base distance can help avoid some of the pyro munching observed when using ".react" type conditionals with procs.
Re: [TC] SimC Fire Mage APL
Apparently the default Fire Mage profile was using un-upgraded gear for multiple slots in comparison to arcane/frost which had 2/2 (and now 4/4) in every slot (for the default profile, which is how it ranks the specs on the front page that everyone views.
This problem has been fixed, and Fire doesn't look quite as terrible!
I expect with improved APL for dealing with alter time and combustion the discrepancy between real logs and SimC will be closed
This problem has been fixed, and Fire doesn't look quite as terrible!
I expect with improved APL for dealing with alter time and combustion the discrepancy between real logs and SimC will be closed

- Dutchmagoz
- Administrator
- Posts: 603
- Joined: Tue May 27, 2014 11:53 am
Re: [TC] SimC Fire Mage APL
@Komma, it seems like either the inflated crit or haste from the list you used is causing camping to be ahead. When we didn't use 4pc for my profile, not camping still won.
This will need a lot more testing and adding more variables to figure out when exactly camping takes over, though it seems the case that with 4pc NOT camping wins in every single gear scenario.
This will need a lot more testing and adding more variables to figure out when exactly camping takes over, though it seems the case that with 4pc NOT camping wins in every single gear scenario.
Owner of Altered Time.
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Re: [TC] SimC Fire Mage APL
Dutch, can you update your post with the stats your character had at the time? I'm seeing:
Intellect: 29324
Crit: 19322
Hit: 3505
Haste: 14365
Mastery: 21.92% (3967)
Since camping and IB on CD (with HU) usage are both supposed to be going for the same goal - pyro generation/2pc uptime, it's possible that once you reach a certain haste or crit level you are rolling enough fireballs out and enough inflating crit with FB/pyro hits to overcome the use of IB on CD. Not sure though, like you said, will need to do more testing.
We can probably use my character as a lower ilvl fire template to see what's going on. I have a bunch of fire gear, but it's all not nearly as good as yours. May be able to see how lower haste and crit effect camping vs. non camping in notier/2pc/4pc scenarios.
Intellect: 29324
Crit: 19322
Hit: 3505
Haste: 14365
Mastery: 21.92% (3967)
Since camping and IB on CD (with HU) usage are both supposed to be going for the same goal - pyro generation/2pc uptime, it's possible that once you reach a certain haste or crit level you are rolling enough fireballs out and enough inflating crit with FB/pyro hits to overcome the use of IB on CD. Not sure though, like you said, will need to do more testing.
We can probably use my character as a lower ilvl fire template to see what's going on. I have a bunch of fire gear, but it's all not nearly as good as yours. May be able to see how lower haste and crit effect camping vs. non camping in notier/2pc/4pc scenarios.
- Dutchmagoz
- Administrator
- Posts: 603
- Joined: Tue May 27, 2014 11:53 am
Re: [TC] SimC Fire Mage APL
It's exactly what i'm currently logged out in.Dutch, can you update your post with the stats your character had at the time? I'm seeing:
Intellect: 29324
Crit: 19322
Hit: 3505
Haste: 14365
Mastery: 21.92% (3967)
Since camping and IB on CD (with HU) usage are both supposed to be going for the same goal - pyro generation/2pc uptime, it's possible that once you reach a certain haste or crit level you are rolling enough fireballs out and enough inflating crit with FB/pyro hits to overcome the use of IB on CD. Not sure though, like you said, will need to do more testing.
We can probably use my character as a lower ilvl fire template to see what's going on. I have a bunch of fire gear, but it's all not nearly as good as yours. May be able to see how lower haste and crit effect camping vs. non camping in notier/2pc/4pc scenarios.
Keep in mind, WITH 4pc, even in 590 ilvl, not camping was still better than camping. The only scenario where it seems to not be the case is in 588+ ilvl without 4pc.
Owner of Altered Time.
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
- Dutchmagoz
- Administrator
- Posts: 603
- Joined: Tue May 27, 2014 11:53 am
Re: [TC] SimC Fire Mage APL
Quick thing for documentation: Spells have a hardcoded travel time of 0.75secs in simc, because it's the maximum travel time a spell in WoW can have. Even if it looks to be travelling for much longer, and the spell hasn't even hit the target yet visually, the damage is already applied. Other interesting info as well. Source: Ghostcrawler post.
Spoiler:
Owner of Altered Time.
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Twitch - Twitter - Arcane Guide (AT) - Arcane Guide (IV) - Fire Guide
For any issues with a moderator or the website, send me a PM!
Re: [TC] SimC Fire Mage APL
Just a quick clarification - it's only Fireball, Pyroblast, and Frostfire Bolt that this effects.
Also, the delay to HU removal is also specified in this post to only be for non-crits from Scorch, or something with a travel time.
Also, the delay to HU removal is also specified in this post to only be for non-crits from Scorch, or something with a travel time.
Re: [TC] SimC Fire Mage APL
Just wanted to clarify: the travel time isn't "hardcoded". It's a hard cap, ie. any spell that you cast from max range will take at most 0.75 seconds to deal damage. In SimC, the mage by default is positioned at 40 yards away. You can improve this by setting "distance=10" in the input simc file. For the default profile, this gives 3-4K extra DPS due to reduced pyro munching.Quick thing for documentation: Spells have a hardcoded travel time of 0.75secs in simc, because it's the maximum travel time a spell in WoW can have. Even if it looks to be travelling for much longer, and the spell hasn't even hit the target yet visually, the damage is already applied. Other interesting info as well. Source: Ghostcrawler post.Spoiler:
Re: [TC] SimC Fire Mage APL
Because the default profile uses pryoblast.react, instead of .up.
Re: [TC] SimC Fire Mage APL
This is where I currently am for re-doing the Fire APL
I have commented each section to explain the intended purpose.
The opener seems to work OK, but following combustions and PoM usage do not. The opener is also really weak compared to live model.
need to refine AT usage, and think up a clever way to do non-AT combustion building.
Spoiler:
I have commented each section to explain the intended purpose.
The opener seems to work OK, but following combustions and PoM usage do not. The opener is also really weak compared to live model.
need to refine AT usage, and think up a clever way to do non-AT combustion building.
Re: [TC] SimC Fire Mage APL
Slightly modified the Alter Time use. No longer has buff.bloodlust.up so AT is used multiple times, and combustion therefore is used multiple times.
A problem that I noticed exists with a non-camping profile is that sometimes the opener is just not executed for a long time, due to using pyro! immediately. will work on it more over the weekend. This seems to have been introduced when I removed that clause. May need to just make two priorites.
A problem that I noticed exists with a non-camping profile is that sometimes the opener is just not executed for a long time, due to using pyro! immediately. will work on it more over the weekend. This seems to have been introduced when I removed that clause. May need to just make two priorites.
Re: [TC] SimC Fire Mage APL
I've taken on rewriting the fire APL, with a new sub-action-list structure that separates what to do during:
1. Alter time combustion sequences (with trinkets)
2. Regular POM combustion sequences (with trinkets)
3. AOE
4. Single target
Since I'm doing something a bit different, I'm starting from scratch. I'd like to share some of the madness that goes into this APL: a snippet from pyro spamming. Keep in mind this in work in progress and not complete.
Essentially, all 3 lines are saying "when to spam pyroblast until combustion". All 3 lines check for HS or POM buffs, but the remaining logic is slightly different:
1. First line says "if this pyro will reach target before the next ignite tick, fire it"
2. Second and third line say "if ignite will tick before this pyro reaches it, then calculate how much ignite is given by this pyro, and fire it only if it gives more than the ignite tick"
3. The second and third line differ because of crit rate and Critical Mass. Don't ask for details - simc internals are FUBAR. The second line handles when the pyro is a guaranteed crit (because of high int or 4T16), while the third line handles when it's not a guaranteed crit. When it's not a guaranteed crit, we need to calculate the average damage of a pyro (crit_damage * crit_rate + hit_damage * non_crit_rate), taking Critical Mass into account.
4. The final line just says that if you're done spamming pyros, combust.
This is work in progress, and it's not complete. I still need to take into the account where "even if ignite ticks first, what if I can fit 2 pyros in before the next ignite tick? And how much ignite would I add in that case? If it's a gain, I should still pyro."
TL;DR? Fire APL is a monster.
1. Alter time combustion sequences (with trinkets)
2. Regular POM combustion sequences (with trinkets)
3. AOE
4. Single target
Since I'm doing something a bit different, I'm starting from scratch. I'd like to share some of the madness that goes into this APL: a snippet from pyro spamming. Keep in mind this in work in progress and not complete.
Code: Select all
actions.regular_combust=/pyroblast,if=(buff.pyroblast.up|buff.presence_of_mind.up)&(action.pyroblast.travel_time<dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)
actions.regular_combust=/pyroblast,if=(buff.pyroblast.up|buff.presence_of_mind.up)&(action.pyroblast.travel_time>=dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)&action.pyroblast.crit_pct_current*1.3>=100&action.pyroblast.crit_damage*mastery_value>=dot.ignite.tick_dmg)
actions.regular_combust=/pyroblast,if=(buff.pyroblast.up|buff.presence_of_mind.up)&(action.pyroblast.travel_time>=dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)&(action.pyroblast.crit_damage*action.pyroblast.crit_pct_current*0.013+action.pyroblast.hit_damage*(1-action.pyroblast.crit_pct_current*0.013)>=dot.ignite.tick_dmg)
actions.regular_combust=/combustion
1. First line says "if this pyro will reach target before the next ignite tick, fire it"
2. Second and third line say "if ignite will tick before this pyro reaches it, then calculate how much ignite is given by this pyro, and fire it only if it gives more than the ignite tick"
3. The second and third line differ because of crit rate and Critical Mass. Don't ask for details - simc internals are FUBAR. The second line handles when the pyro is a guaranteed crit (because of high int or 4T16), while the third line handles when it's not a guaranteed crit. When it's not a guaranteed crit, we need to calculate the average damage of a pyro (crit_damage * crit_rate + hit_damage * non_crit_rate), taking Critical Mass into account.
4. The final line just says that if you're done spamming pyros, combust.
This is work in progress, and it's not complete. I still need to take into the account where "even if ignite ticks first, what if I can fit 2 pyros in before the next ignite tick? And how much ignite would I add in that case? If it's a gain, I should still pyro."
TL;DR? Fire APL is a monster.
Re: [TC] SimC Fire Mage APL
Hello friends. I bring good news to all fire mages.
As described in the last post, I have begun rewriting the APL for fire mages, almost from scratch. While it is still very much a work in progress, I would like to share some results.
This APL is edited from the existing T16H Fire Mage BiS profile, and requires using the latest version of simc (548-4). The current action list length for single target includes 57 items, making it one of the longest among all class. Features of note include the following:
1. Functional POM AT Pyro chain combustions
2. Functional POM Non-AT Pyro chain combustions
3. Reactive to PBoI procs, syncing Combustions with it
4. Intentional upkeep of 4+ stack 2T16
5. Pyro camping before combustions to avoid wasting trinket time on "proc building"
6. Mini Pyro chains at the end of BBoY stacks
Let me reiterate that this APL is not ready. It involves crazy hacks that will be removed, requires heavy tuning, and additional features still need to be implemented. No thought has been put into implementing it as part of the mage module yet. That being said, I am happy to say that despite needing more work, it is equalling the current release APL in terms of output, at ~490K.
The code is long and it is getting late here, so I will leave any explaining for later. Feel free to offer feedback or ask questions about it.
As described in the last post, I have begun rewriting the APL for fire mages, almost from scratch. While it is still very much a work in progress, I would like to share some results.
This APL is edited from the existing T16H Fire Mage BiS profile, and requires using the latest version of simc (548-4). The current action list length for single target includes 57 items, making it one of the longest among all class. Features of note include the following:
1. Functional POM AT Pyro chain combustions
2. Functional POM Non-AT Pyro chain combustions
3. Reactive to PBoI procs, syncing Combustions with it
4. Intentional upkeep of 4+ stack 2T16
5. Pyro camping before combustions to avoid wasting trinket time on "proc building"
6. Mini Pyro chains at the end of BBoY stacks
Let me reiterate that this APL is not ready. It involves crazy hacks that will be removed, requires heavy tuning, and additional features still need to be implemented. No thought has been put into implementing it as part of the mage module yet. That being said, I am happy to say that despite needing more work, it is equalling the current release APL in terms of output, at ~490K.
Code: Select all
mage="Mage_Fire_T16H"
level=90
race=troll
role=spell
position=back
professions=tailoring=600/engineering=600
talents=http://us.battle.net/wow/en/tool/talent-calculator#eZ!0...11
glyphs=combustion/counterspell
spec=fire
# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=warm_sun
actions.precombat+=/food,type=mogu_fish_stew
actions.precombat+=/arcane_brilliance
actions.precombat+=/molten_armor
actions.precombat+=/snapshot_stats
actions.precombat+=/rune_of_power,if=talent.rune_of_power.enabled
actions.precombat+=/jade_serpent_potion
actions.precombat+=/mirror_image
# Executed every time the actor is available.
actions=/cancel_buff,name=alter_time,moving=1
actions+=/cold_snap,if=talent.cold_snap.enabled&health.pct<30
actions+=/conjure_mana_gem,if=mana_gem_charges<3&target.debuff.invulnerable.react
actions+=/time_warp
actions+=/rune_of_power,if=buff.rune_of_power.remains<cast_time&buff.alter_time.down
actions+=/rune_of_power,if=cooldown.alter_time_activate.remains=0&buff.rune_of_power.remains<6
actions+=/berserking,if=buff.alter_time.down&target.time_to_die<18
actions+=/arcane_torrent,if=buff.alter_time.down&target.time_to_die<18
actions+=/jade_serpent_potion,if=buff.alter_time.down&target.time_to_die<45
actions+=/mirror_image
actions+=/run_action_list,name=combust_sequence,if=cooldown.combustion.up&(buff.alter_time.up|cooldown.counterspell.remains>0)
# AT Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_alter_combust,if=cooldown.alter_time_activate.up&cooldown.combustion.up&trinket.stat.intellect.cooldown_remains>85
# Regular Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_pom_combust,if=cooldown.alter_time_activate.remains>45&cooldown.combustion.up&cooldown.presence_of_mind.up&trinket.stat.intellect.cooldown_remains>95
actions+=/run_action_list,name=aoe,if=active_enemies>=5
# Proc camp in preparation for trinket + combustion combo
actions+=/run_action_list,name=proc_builder,if=trinket.stat.intellect.cooldown_remains=0
actions+=/run_action_list,name=single_target
# Pyro-chain combustion sequence
actions.combust_sequence=/presence_of_mind,if=buff.alter_time.down
# CS hack: Use as a flag to trigger pyro dumping
actions.combust_sequence+=/Counterspell,if=buff.alter_time.up
# Unload all pyros during AT
actions.combust_sequence+=/pyroblast,if=execute_time=gcd&buff.alter_time.up
# Use all HS Pyros
actions.combust_sequence+=/pyroblast,if=buff.pyroblast.up
# Hesitate on PoM; If cannot land before ignite tick, compare POM pyro avg ignite contribution against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd
# TODO: Calculate chance of 2 remaining instant pyros, expected contribution to ignite, and compare against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(travel_time<dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(traveL_time+gcd<dot.ignite.remains-(dot.ignite.ticks_remain-2)*2)&((crit_damage*crit_pct_current+hit_damage*(1-crit_pct_current))>=dot.ignite.tick_dmg)
actions.combust_sequence+=/pyroblast,if=buff.presence_of_mind.up&buff.pyroblast.down&(travel_time<=dot.ignite.remains-2*(dot.ignite.ticks_remain-1)|((crit_damage*crit_pct_current+hit_damage*(100-crit_pct_current))*0.01*mastery_value>=dot.ignite.tick_dmg))
actions.combust_sequence+=/alter_time,if=buff.alter_time.up&action.pyroblast.execute_time>gcd
actions.combust_sequence+=/combustion
# Initiate AT POM Pyro-chain
actions.init_alter_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
actions.init_alter_combust+=/berserking
actions.init_alter_combust+=/jade_serpent_potion
actions.init_alter_combust+=/use_item,slot=hands
actions.init_alter_combust+=/presence_of_mind
actions.init_alter_combust+=/alter_time
# Initiate regular POM Pyro-chain
actions.init_pom_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
# CS hack
actions.init_pom_combust+=/Counterspell
# Proc building sequence - building HU+HS for Pyro-chain
actions.proc_builder+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Pyro camping; don't fire pyro unless fireball in flight, HS, HU
actions.proc_builder+=/pyroblast,if=buff.pyroblast.up&buff.heating_up.up&action.fireball.in_flight
actions.proc_builder+=/inferno_blast,if=buff.pyroblast.down&buff.heating_up.up
actions.proc_builder+=/fireball
# Standard AOE sequence
actions.aoe=/inferno_blast,if=dot.combustion.ticking
actions.aoe+=/flamestrike
actions.aoe+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
actions.aoe+=/arcane_explosion
# Stand single target sequence
actions.single_target=/use_item,slot=hands,if=trinket.stat.intellect.cooldown_remains>50|target.time_to_die<12
actions.single_target+=/inferno_blast,if=dot.combustion.ticking&active_enemies>1
# Intentionall sustain 2T16 4 stack or more
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.potent_flames.stack>=4&buff.potent_flames.remains<action.fireball.execute_time
# Use HS procs before they run out
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.pyroblast.remains<action.fireball.execute_time
actions.single_target+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Mini-pyro chain on 7+ stack BBoY
actions.single_target+=/pyroblast,if=cooldown.alter_time_activate.remains>0&trinket.stacking_proc.intellect.stack>7&execute_time=gcd
# Regular sequence; Don't pyro camp
actions.single_target+=/inferno_blast,if=(buff.pyroblast.down&buff.heating_up.up)|(buff.pyroblast.up&buff.heating_up.down&!action.fireball.in_flight)
actions.single_target+=/pyroblast,if=execute_time=gcd
actions.single_target+=/fireball
actions.single_target+=/scorch,moving=1
head=chronomancer_hood,id=99398,upgrade=4,gems=sinister_primal_160crit_160exp_180int,reforge=haste_mastery
neck=ashflare_pendant,id=105539,upgrade=4,reforge=hit_crit
shoulders=chronomancer_mantle,id=99401,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=200int_100crit
back=xingho_breath_of_yulon,id=102246,upgrade=4,gems=160crit_160exp_60int,enchant=lightweave_embroidery_3
chest=mantid_viziers_robes,id=105592,upgrade=4,gems=160crit_160exp_160crit_160exp_320crit_180int,enchant=80all
wrists=bracers_of_sonic_projection,id=105626,upgrade=4,enchant=180int
hands=chronomancer_gloves,id=99397,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=170haste,addon=synapse_springs_mark_ii,reforge=haste_mastery
waist=miasmic_skullbelt,id=105569,upgrade=4,gems=160crit_160exp_320crit__320crit_120int,reforge=hit_haste
legs=chronomancer_leggings,id=99399,upgrade=4,gems=320crit_320crit_120int,enchant=285int_165crit
feet=toxic_tornado_treads,id=105537,upgrade=4,gems=160crit_160hit_60hit,enchant=140mastery
finger1=petrified_pennyroyal_ring,id=105443,upgrade=4
finger2=signet_of_the_dinomancers,id=105606,upgrade=4,gems=160crit_160exp_60haste,reforge=mastery_crit
trinket1=purified_bindings_of_immerseus,id=105422,upgrade=4
trinket2=black_blood_of_yshaarj,id=105648,upgrade=4,reforge=haste_crit
main_hand=arcweaver_spell_sword,id=105550,upgrade=4,gems=160crit_160exp_60int,enchant=jade_spirit
off_hand=juggernauts_power_core,id=105521,upgrade=4,gems=320crit_60int,enchant=165int,reforge=haste_hit
# Gear Summary
# gear_strength=80
# gear_agility=80
# gear_stamina=42105
# gear_intellect=28426
# gear_spirit=80
# gear_spell_power=16509
# gear_expertise_rating=1760
# gear_hit_rating=3342
# gear_crit_rating=20833
# gear_haste_rating=12856
# gear_mastery_rating=6131
# gear_armor=18480
# meta_gem=sinister_primal
# tier16_2pc_caster=1
# tier16_4pc_caster=1
# back=xingho_breath_of_yulon,enchant=lightweave_embroidery_3
# hands=chronomancer_gloves,heroic=1,addon=synapse_springs_mark_ii
# main_hand=arcweaver_spell_sword,heroic=1,elite=1,weapon=sword_2.20speed_5180min_9622max,enchant=jade_spirit
Re: [TC] SimC Fire Mage APL
Small error in BBoY mini pyro chain line; should be:
New profile is
There might be the problem of sub GCD fireballs having trouble pyro camping and triggering the opener right now. I'll double check and see if this is happening.
Code: Select all
actions.single_target+=/pyroblast,if=(cooldown.alter_time_activate.remains>0|trinket.stat.intellect.cooldown_remains>0)&trinket.stacking_proc.intellect.stack>7&execute_time=gcd
Code: Select all
mage="Mage_Fire_T16H"
level=90
race=troll
role=spell
position=back
professions=tailoring=600/engineering=600
talents=http://us.battle.net/wow/en/tool/talent-calculator#eZ!0...11
glyphs=combustion/counterspell
spec=fire
# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=warm_sun
actions.precombat+=/food,type=mogu_fish_stew
actions.precombat+=/arcane_brilliance
actions.precombat+=/molten_armor
actions.precombat+=/snapshot_stats
actions.precombat+=/rune_of_power,if=talent.rune_of_power.enabled
actions.precombat+=/jade_serpent_potion
actions.precombat+=/mirror_image
# Executed every time the actor is available.
actions=/cancel_buff,name=alter_time,moving=1
actions+=/cold_snap,if=talent.cold_snap.enabled&health.pct<30
actions+=/conjure_mana_gem,if=mana_gem_charges<3&target.debuff.invulnerable.react
actions+=/time_warp
actions+=/rune_of_power,if=buff.rune_of_power.remains<cast_time&buff.alter_time.down
actions+=/rune_of_power,if=cooldown.alter_time_activate.remains=0&buff.rune_of_power.remains<6
actions+=/berserking,if=buff.alter_time.down&target.time_to_die<18
actions+=/arcane_torrent,if=buff.alter_time.down&target.time_to_die<18
actions+=/jade_serpent_potion,if=buff.alter_time.down&target.time_to_die<45
actions+=/mirror_image
actions+=/run_action_list,name=combust_sequence,if=cooldown.combustion.up&(buff.alter_time.up|cooldown.counterspell.remains>0)
# AT Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_alter_combust,if=cooldown.alter_time_activate.up&cooldown.combustion.up&trinket.stat.intellect.cooldown_remains>85
# Regular Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_pom_combust,if=cooldown.alter_time_activate.remains>45&cooldown.combustion.up&cooldown.presence_of_mind.up&trinket.stat.intellect.cooldown_remains>95
actions+=/run_action_list,name=aoe,if=active_enemies>=5
# Proc camp in preparation for trinket + combustion combo
actions+=/run_action_list,name=proc_builder,if=trinket.stat.intellect.cooldown_remains=0
actions+=/run_action_list,name=single_target
# Pyro-chain combustion sequence
actions.combust_sequence=/presence_of_mind,if=buff.alter_time.down
# CS hack: Use as a flag to trigger pyro dumping
actions.combust_sequence+=/Counterspell,if=buff.alter_time.up
# Unload all pyros during AT
actions.combust_sequence+=/pyroblast,if=execute_time=gcd&buff.alter_time.up
# Use all HS Pyros
actions.combust_sequence+=/pyroblast,if=buff.pyroblast.up
# Hesitate on PoM; If cannot land before ignite tick, compare POM pyro avg ignite contribution against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd
# TODO: Calculate chance of 2 remaining instant pyros, expected contribution to ignite, and compare against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(travel_time<dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(traveL_time+gcd<dot.ignite.remains-(dot.ignite.ticks_remain-2)*2)&((crit_damage*crit_pct_current+hit_damage*(1-crit_pct_current))>=dot.ignite.tick_dmg)
actions.combust_sequence+=/pyroblast,if=buff.presence_of_mind.up&buff.pyroblast.down&(travel_time<=dot.ignite.remains-2*(dot.ignite.ticks_remain-1)|((crit_damage*crit_pct_current+hit_damage*(100-crit_pct_current))*0.01*mastery_value>=dot.ignite.tick_dmg))
actions.combust_sequence+=/alter_time,if=buff.alter_time.up&action.pyroblast.execute_time>gcd
actions.combust_sequence+=/combustion
# Initiate AT POM Pyro-chain
actions.init_alter_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
actions.init_alter_combust+=/berserking
actions.init_alter_combust+=/jade_serpent_potion
actions.init_alter_combust+=/use_item,slot=hands
actions.init_alter_combust+=/presence_of_mind
actions.init_alter_combust+=/alter_time
# Initiate regular POM Pyro-chain
actions.init_pom_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
# CS hack
actions.init_pom_combust+=/Counterspell
# Proc building sequence - building HU+HS for Pyro-chain
actions.proc_builder+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Pyro camping; don't fire pyro unless fireball in flight, HS, HU
actions.proc_builder+=/pyroblast,if=buff.pyroblast.up&buff.heating_up.up&action.fireball.in_flight
actions.proc_builder+=/inferno_blast,if=buff.pyroblast.down&buff.heating_up.up
actions.proc_builder+=/fireball
# Standard AOE sequence
actions.aoe=/inferno_blast,if=dot.combustion.ticking
actions.aoe+=/flamestrike
actions.aoe+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
actions.aoe+=/arcane_explosion
# Stand single target sequence
actions.single_target=/use_item,slot=hands,if=trinket.stat.intellect.cooldown_remains>50|target.time_to_die<12
actions.single_target+=/inferno_blast,if=dot.combustion.ticking&active_enemies>1
# Intentionall sustain 2T16 4 stack or more
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.potent_flames.stack>=4&buff.potent_flames.remains<action.fireball.execute_time
# Use HS procs before they run out
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.pyroblast.remains<action.fireball.execute_time
actions.single_target+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Mini-pyro chain on 7+ stack BBoY
actions.single_target+=/pyroblast,if=(cooldown.alter_time_activate.remains>0|trinket.stat.intellect.cooldown_remains>0)&trinket.stacking_proc.intellect.stack>7&execute_time=gcd
# Regular sequence; Don't pyro camp
actions.single_target+=/inferno_blast,if=(buff.pyroblast.down&buff.heating_up.up)|(buff.pyroblast.up&buff.heating_up.down&!action.fireball.in_flight)
actions.single_target+=/pyroblast,if=execute_time=gcd
actions.single_target+=/fireball
actions.single_target+=/scorch,moving=1
head=chronomancer_hood,id=99398,upgrade=4,gems=sinister_primal_160crit_160exp_180int,reforge=haste_mastery
neck=ashflare_pendant,id=105539,upgrade=4,reforge=hit_crit
shoulders=chronomancer_mantle,id=99401,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=200int_100crit
back=xingho_breath_of_yulon,id=102246,upgrade=4,gems=160crit_160exp_60int,enchant=lightweave_embroidery_3
chest=mantid_viziers_robes,id=105592,upgrade=4,gems=160crit_160exp_160crit_160exp_320crit_180int,enchant=80all
wrists=bracers_of_sonic_projection,id=105626,upgrade=4,enchant=180int
hands=chronomancer_gloves,id=99397,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=170haste,addon=synapse_springs_mark_ii,reforge=haste_mastery
waist=miasmic_skullbelt,id=105569,upgrade=4,gems=160crit_160exp_320crit__320crit_120int,reforge=hit_haste
legs=chronomancer_leggings,id=99399,upgrade=4,gems=320crit_320crit_120int,enchant=285int_165crit
feet=toxic_tornado_treads,id=105537,upgrade=4,gems=160crit_160hit_60hit,enchant=140mastery
finger1=petrified_pennyroyal_ring,id=105443,upgrade=4
finger2=signet_of_the_dinomancers,id=105606,upgrade=4,gems=160crit_160exp_60haste,reforge=mastery_crit
trinket1=purified_bindings_of_immerseus,id=105422,upgrade=4
trinket2=black_blood_of_yshaarj,id=105648,upgrade=4,reforge=haste_crit
main_hand=arcweaver_spell_sword,id=105550,upgrade=4,gems=160crit_160exp_60int,enchant=jade_spirit
off_hand=juggernauts_power_core,id=105521,upgrade=4,gems=320crit_60int,enchant=165int,reforge=haste_hit
# Gear Summary
# gear_strength=80
# gear_agility=80
# gear_stamina=42105
# gear_intellect=28426
# gear_spirit=80
# gear_spell_power=16509
# gear_expertise_rating=1760
# gear_hit_rating=3342
# gear_crit_rating=20833
# gear_haste_rating=12856
# gear_mastery_rating=6131
# gear_armor=18480
# meta_gem=sinister_primal
# tier16_2pc_caster=1
# tier16_4pc_caster=1
# back=xingho_breath_of_yulon,enchant=lightweave_embroidery_3
# hands=chronomancer_gloves,heroic=1,addon=synapse_springs_mark_ii
# main_hand=arcweaver_spell_sword,heroic=1,elite=1,weapon=sword_2.20speed_5180min_9622max,enchant=jade_spirit
Re: [TC] SimC Fire Mage APL
After working with Dutchmagoz's feedback, improved APL to ~496K DPS (vs 490K DPS on current release):
#1 priority right now is locating the source of 8.1 "Pyroblast!" buff refreshes, which implies 8.1 unspent pyro procs. Might require digging through debug logs for details. Ignite also looks unexpectedly weak on opener (Avg peak 407K ticks), despite what looks like a very good pyro chain setup.
Code: Select all
mage="Mage_Fire_T16H"
level=90
race=troll
role=spell
position=back
professions=tailoring=600/engineering=600
talents=http://us.battle.net/wow/en/tool/talent-calculator#eZ!0...11
glyphs=combustion/counterspell
spec=fire
distance=20
# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=warm_sun
actions.precombat+=/food,type=mogu_fish_stew
actions.precombat+=/arcane_brilliance
actions.precombat+=/molten_armor
actions.precombat+=/snapshot_stats
actions.precombat+=/rune_of_power,if=talent.rune_of_power.enabled
actions.precombat+=/jade_serpent_potion
actions.precombat+=/mirror_image
# Executed every time the actor is available.
actions=/cancel_buff,name=alter_time,moving=1
actions+=/cold_snap,if=talent.cold_snap.enabled&health.pct<30
actions+=/conjure_mana_gem,if=mana_gem_charges<3&target.debuff.invulnerable.react
actions+=/time_warp,if=buff.alter_time.down
actions+=/rune_of_power,if=buff.rune_of_power.remains<cast_time
# cancelaura AT when PBoI gives you the finger
actions+=/cancel_buff,name=alter_time,if=buff.alter_time.up&(trinket.stat.intellect.cooldown_remains-buff.alter_time.remains>109)
actions+=/run_action_list,name=combust_sequence,if=cooldown.combustion.up&(buff.alter_time.up|cooldown.counterspell.remains>0)
# AT Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_alter_combust,if=cooldown.alter_time_activate.up&cooldown.combustion.up&(trinket.stat.intellect.cooldown_remains>95|trinket.stat.intellect.cooldown_remains+20>time_to_die)
# Regular Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_pom_combust,if=cooldown.alter_time_activate.remains>45&cooldown.combustion.up&cooldown.presence_of_mind.up&(trinket.stat.intellect.cooldown_remains>95|trinket.stat.intellect.cooldown_remains+20>time_to_die)
# Don't cast RoP or MI with HU and a fireball mid flight - causes pyro munching
actions+=/rune_of_power,if=buff.alter_time.down&buff.rune_of_power.remains<4*action.fireball.execute_time&(buff.heating_up.down|buff.pyroblast.down|!action.fireball.in_flight)
actions+=/mirror_image,if=buff.alter_time.down&(buff.heating_up.down|buff.pyroblast.down|!action.fireball.in_flight)
# Use racials and item buffs if boss is about to die
actions+=/berserking,if=buff.alter_time.down&target.time_to_die<18
actions+=/arcane_torrent,if=buff.alter_time.down&target.time_to_die<18
actions+=/jade_serpent_potion,if=buff.alter_time.down&target.time_to_die<45
actions+=/use_item,slot=hands,if=buff.alter_time.down&(trinket.stat.intellect.cooldown_remains>50|target.time_to_die<12)
actions+=/run_action_list,name=aoe,if=active_enemies>=5
# Proc camp in preparation for trinket + combustion combo
actions+=/run_action_list,name=proc_builder,if=trinket.stat.intellect.cooldown_remains=0
actions+=/run_action_list,name=single_target
# Pyro-chain combustion sequence
actions.combust_sequence=/presence_of_mind,if=buff.alter_time.down
# CS hack: Use as a flag to trigger pyro dumping
actions.combust_sequence+=/Counterspell,if=buff.alter_time.up
# Unload all pyros during AT
actions.combust_sequence+=/pyroblast,if=execute_time=gcd&buff.alter_time.up
# Use all HS Pyros
actions.combust_sequence+=/pyroblast,if=buff.pyroblast.up
# Hesitate on PoM; If cannot land before ignite tick, compare POM pyro avg ignite contribution against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd
# TODO: Calculate chance of 2 remaining instant pyros, expected contribution to ignite, and compare against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(travel_time<dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(traveL_time+gcd<dot.ignite.remains-(dot.ignite.ticks_remain-2)*2)&((crit_damage*crit_pct_current+hit_damage*(1-crit_pct_current))>=dot.ignite.tick_dmg)
actions.combust_sequence+=/pyroblast,if=buff.presence_of_mind.up&buff.pyroblast.down&(travel_time<=dot.ignite.remains-2*(dot.ignite.ticks_remain-1)|((crit_damage*crit_pct_current+hit_damage*(100-crit_pct_current))*0.01*mastery_value>=dot.ignite.tick_dmg))
actions.combust_sequence+=/alter_time,if=buff.alter_time.up&action.pyroblast.execute_time>gcd
actions.combust_sequence+=/combustion
# Initiate AT POM Pyro-chain
actions.init_alter_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
actions.init_alter_combust+=/berserking
actions.init_alter_combust+=/jade_serpent_potion
actions.init_alter_combust+=/use_item,slot=hands
actions.init_alter_combust+=/presence_of_mind
actions.init_alter_combust+=/alter_time
# Initiate regular POM Pyro-chain
actions.init_pom_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
# CS hack
actions.init_pom_combust+=/Counterspell
# Proc building sequence - building HU+HS for Pyro-chain
actions.proc_builder=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Pyro camping; don't fire pyro unless fireball in flight, HS, HU
actions.proc_builder+=/pyroblast,if=buff.pyroblast.up&buff.heating_up.up&action.fireball.in_flight
actions.proc_builder+=/inferno_blast,if=(buff.pyroblast.down&buff.heating_up.up)|(buff.pyroblast.up&buff.heating_up.down&!action.fireball.in_flight&!action.pyroblast.in_flight)
actions.proc_builder+=/fireball
actions.proc_builder+=/scorch,moving=1
# Standard AOE sequence
actions.aoe=/inferno_blast,if=dot.combustion.ticking
actions.aoe+=/flamestrike
actions.aoe+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
actions.aoe+=/arcane_explosion
# Stand single target sequence
actions.single_target=/inferno_blast,if=dot.combustion.ticking&active_enemies>1
# Intentionally sustain 2T16 4 stack or more
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.potent_flames.stack>=4&buff.potent_flames.remains<action.fireball.execute_time
# Use HS procs before they run out
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.pyroblast.remains<action.fireball.execute_time
actions.single_target+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Mini-pyro chain on 7+ stack BBoY
actions.single_target+=/pyroblast,if=(cooldown.alter_time_activate.remains>0|trinket.stat.intellect.cooldown_remains>0)&trinket.stacking_proc.intellect.stack>7&execute_time=gcd
# Regular sequence; Pyro camp unless IB is up
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.heating_up.up&action.fireball.in_flight
actions.single_target+=/inferno_blast,if=(buff.pyroblast.down&buff.heating_up.up)|(buff.pyroblast.up&buff.heating_up.down&!action.fireball.in_flight&!action.pyroblast.in_flight)
actions.single_target+=/pyroblast,if=execute_time=gcd&cooldown.inferno_blast.remains<gcd
actions.single_target+=/fireball
actions.single_target+=/scorch,moving=1
head=chronomancer_hood,id=99398,upgrade=4,gems=sinister_primal_160crit_160exp_180int,reforge=haste_mastery
neck=ashflare_pendant,id=105539,upgrade=4,reforge=hit_crit
shoulders=chronomancer_mantle,id=99401,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=200int_100crit
back=xingho_breath_of_yulon,id=102246,upgrade=4,gems=160crit_160exp_60int,enchant=lightweave_embroidery_3
chest=mantid_viziers_robes,id=105592,upgrade=4,gems=160crit_160exp_160crit_160exp_320crit_180int,enchant=80all
wrists=bracers_of_sonic_projection,id=105626,upgrade=4,enchant=180int
hands=chronomancer_gloves,id=99397,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=170haste,addon=synapse_springs_mark_ii,reforge=haste_mastery
waist=miasmic_skullbelt,id=105569,upgrade=4,gems=160crit_160exp_320crit__320crit_120int,reforge=hit_haste
legs=chronomancer_leggings,id=99399,upgrade=4,gems=320crit_320crit_120int,enchant=285int_165crit
feet=toxic_tornado_treads,id=105537,upgrade=4,gems=160crit_160hit_60hit,enchant=140mastery
finger1=petrified_pennyroyal_ring,id=105443,upgrade=4
finger2=signet_of_the_dinomancers,id=105606,upgrade=4,gems=160crit_160exp_60haste,reforge=mastery_crit
trinket1=purified_bindings_of_immerseus,id=105422,upgrade=4
trinket2=black_blood_of_yshaarj,id=105648,upgrade=4,reforge=haste_crit
main_hand=arcweaver_spell_sword,id=105550,upgrade=4,gems=160crit_160exp_60int,enchant=jade_spirit
off_hand=juggernauts_power_core,id=105521,upgrade=4,gems=320crit_60int,enchant=165int,reforge=haste_hit
# Gear Summary
# gear_strength=80
# gear_agility=80
# gear_stamina=42105
# gear_intellect=28426
# gear_spirit=80
# gear_spell_power=16509
# gear_expertise_rating=1760
# gear_hit_rating=3342
# gear_crit_rating=20833
# gear_haste_rating=12856
# gear_mastery_rating=6131
# gear_armor=18480
# meta_gem=sinister_primal
# tier16_2pc_caster=1
# tier16_4pc_caster=1
# back=xingho_breath_of_yulon,enchant=lightweave_embroidery_3
# hands=chronomancer_gloves,heroic=1,addon=synapse_springs_mark_ii
# main_hand=arcweaver_spell_sword,heroic=1,elite=1,weapon=sword_2.20speed_5180min_9622max,enchant=jade_spirit
Re: [TC] SimC Fire Mage APL
Right as I decided to call it a night (or morning, cause the Sun came up already), I realized the final touch:
Key change: Living bomb should not be casted if a pyro will be munched. Add conditional: "&(buff.heating_up.down|buff.pyroblast.down|!action.fireball.in_flight)".
Final result: 501254+-189.0 DPS. This puts it in 5th place on current simc charts, right behind Enhancement shaman, and ahead of Frost. This agrees with our spec observations, where Fire > Frost for single target DPS.
I think it is ok to say that once these changes are implemented, we've fixed fire.
Code: Select all
mage="Mage_Fire_T16H"
level=90
race=troll
role=spell
position=back
professions=tailoring=600/engineering=600
talents=http://us.battle.net/wow/en/tool/talent-calculator#eZ!0...11
glyphs=combustion/counterspell
spec=fire
distance=20
# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.
# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=warm_sun
actions.precombat+=/food,type=mogu_fish_stew
actions.precombat+=/arcane_brilliance
actions.precombat+=/molten_armor
actions.precombat+=/snapshot_stats
actions.precombat+=/rune_of_power,if=talent.rune_of_power.enabled
actions.precombat+=/jade_serpent_potion
actions.precombat+=/mirror_image
# Executed every time the actor is available.
actions=/cancel_buff,name=alter_time,moving=1
actions+=/cold_snap,if=talent.cold_snap.enabled&health.pct<30
actions+=/conjure_mana_gem,if=mana_gem_charges<3&target.debuff.invulnerable.react
actions+=/time_warp,if=buff.alter_time.down
actions+=/rune_of_power,if=buff.rune_of_power.remains<cast_time
# cancelaura AT when PBoI gives you the finger
actions+=/cancel_buff,name=alter_time,if=buff.alter_time.up&(trinket.stat.intellect.cooldown_remains-buff.alter_time.remains>109)
actions+=/run_action_list,name=combust_sequence,if=cooldown.combustion.up&(buff.alter_time.up|cooldown.counterspell.remains>0)
# AT Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_alter_combust,if=cooldown.alter_time_activate.up&cooldown.combustion.up&(trinket.stat.intellect.cooldown_remains>95|trinket.stat.intellect.cooldown_remains+20>time_to_die)
# Regular Combustion requirement: PBoI proc
actions+=/run_action_list,name=init_pom_combust,if=cooldown.alter_time_activate.remains>45&cooldown.combustion.up&cooldown.presence_of_mind.up&(trinket.stat.intellect.cooldown_remains>95|trinket.stat.intellect.cooldown_remains+20>time_to_die)
# Don't cast RoP or MI with HU and a fireball mid flight - causes pyro munching
actions+=/rune_of_power,if=buff.alter_time.down&buff.rune_of_power.remains<4*action.fireball.execute_time&(buff.heating_up.down|buff.pyroblast.down|!action.fireball.in_flight)
actions+=/mirror_image,if=buff.alter_time.down&(buff.heating_up.down|buff.pyroblast.down|!action.fireball.in_flight)
# Use racials and item buffs if boss is about to die
actions+=/berserking,if=buff.alter_time.down&target.time_to_die<18
actions+=/arcane_torrent,if=buff.alter_time.down&target.time_to_die<18
actions+=/jade_serpent_potion,if=buff.alter_time.down&target.time_to_die<45
actions+=/use_item,slot=hands,if=buff.alter_time.down&(trinket.stat.intellect.cooldown_remains>50|target.time_to_die<12)
actions+=/run_action_list,name=aoe,if=active_enemies>=5
# Proc camp in preparation for trinket + combustion combo
actions+=/run_action_list,name=proc_builder,if=trinket.stat.intellect.cooldown_remains=0
actions+=/run_action_list,name=single_target
# Pyro-chain combustion sequence
actions.combust_sequence=/presence_of_mind,if=buff.alter_time.down
# CS hack: Use as a flag to trigger pyro dumping
actions.combust_sequence+=/Counterspell,if=buff.alter_time.up
# Unload all pyros during AT
actions.combust_sequence+=/pyroblast,if=execute_time=gcd&buff.alter_time.up
# Use all HS Pyros
actions.combust_sequence+=/pyroblast,if=buff.pyroblast.up
# Hesitate on PoM; If cannot land before ignite tick, compare POM pyro avg ignite contribution against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd
# TODO: Calculate chance of 2 remaining instant pyros, expected contribution to ignite, and compare against ignite tick size
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(travel_time<dot.ignite.remains-(dot.ignite.ticks_remain-1)*2)
# actions.combust_sequence+=/pyroblast,if=execute_time=gcd&(traveL_time+gcd<dot.ignite.remains-(dot.ignite.ticks_remain-2)*2)&((crit_damage*crit_pct_current+hit_damage*(1-crit_pct_current))>=dot.ignite.tick_dmg)
actions.combust_sequence+=/pyroblast,if=buff.presence_of_mind.up&buff.pyroblast.down&(travel_time<=dot.ignite.remains-2*(dot.ignite.ticks_remain-1)|((crit_damage*crit_pct_current+hit_damage*(100-crit_pct_current))*0.01*mastery_value>=dot.ignite.tick_dmg))
actions.combust_sequence+=/alter_time,if=buff.alter_time.up&action.pyroblast.execute_time>gcd
actions.combust_sequence+=/combustion
# Initiate AT POM Pyro-chain
actions.init_alter_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
actions.init_alter_combust+=/berserking
actions.init_alter_combust+=/jade_serpent_potion
actions.init_alter_combust+=/use_item,slot=hands
actions.init_alter_combust+=/presence_of_mind
actions.init_alter_combust+=/alter_time
# Initiate regular POM Pyro-chain
actions.init_pom_combust=/run_action_list,name=proc_builder,if=buff.pyroblast.down|buff.heating_up.down|!action.fireball.in_flight
# CS hack
actions.init_pom_combust+=/Counterspell
# Proc building sequence - building HU+HS for Pyro-chain
actions.proc_builder=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
# Pyro camping; don't fire pyro unless fireball in flight, HS, HU
actions.proc_builder+=/pyroblast,if=buff.pyroblast.up&buff.heating_up.up&action.fireball.in_flight
actions.proc_builder+=/inferno_blast,if=(buff.pyroblast.down&buff.heating_up.up)|(buff.pyroblast.up&buff.heating_up.down&!action.fireball.in_flight&!action.pyroblast.in_flight)
actions.proc_builder+=/fireball
actions.proc_builder+=/scorch,moving=1
# Standard AOE sequence
actions.aoe=/inferno_blast,if=dot.combustion.ticking
actions.aoe+=/flamestrike
actions.aoe+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
actions.aoe+=/arcane_explosion
# Stand single target sequence
actions.single_target=/inferno_blast,if=dot.combustion.ticking&active_enemies>1
# Intentionally sustain 2T16 4 stack or more
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.potent_flames.stack>=4&buff.potent_flames.remains<action.fireball.execute_time
# Use HS procs before they run out
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.pyroblast.remains<action.fireball.execute_time
actions.single_target+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3&(buff.heating_up.down|buff.pyroblast.down|!action.fireball.in_flight)
# Mini-pyro chain on 7+ stack BBoY
actions.single_target+=/pyroblast,if=(cooldown.alter_time_activate.remains>0|trinket.stat.intellect.cooldown_remains>0)&trinket.stacking_proc.intellect.stack>7&execute_time=gcd
# Regular sequence; Pyro camp unless IB is up
actions.single_target+=/pyroblast,if=buff.pyroblast.up&buff.heating_up.up&action.fireball.in_flight
actions.single_target+=/inferno_blast,if=(buff.pyroblast.down&buff.heating_up.up)|(buff.pyroblast.up&buff.heating_up.down&!action.fireball.in_flight&!action.pyroblast.in_flight)
actions.single_target+=/pyroblast,if=execute_time=gcd&cooldown.inferno_blast.remains<gcd
actions.single_target+=/fireball
actions.single_target+=/scorch,moving=1
head=chronomancer_hood,id=99398,upgrade=4,gems=sinister_primal_160crit_160exp_180int,reforge=haste_mastery
neck=ashflare_pendant,id=105539,upgrade=4,reforge=hit_crit
shoulders=chronomancer_mantle,id=99401,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=200int_100crit
back=xingho_breath_of_yulon,id=102246,upgrade=4,gems=160crit_160exp_60int,enchant=lightweave_embroidery_3
chest=mantid_viziers_robes,id=105592,upgrade=4,gems=160crit_160exp_160crit_160exp_320crit_180int,enchant=80all
wrists=bracers_of_sonic_projection,id=105626,upgrade=4,enchant=180int
hands=chronomancer_gloves,id=99397,upgrade=4,gems=160crit_160exp_160crit_160exp_120int,enchant=170haste,addon=synapse_springs_mark_ii,reforge=haste_mastery
waist=miasmic_skullbelt,id=105569,upgrade=4,gems=160crit_160exp_320crit__320crit_120int,reforge=hit_haste
legs=chronomancer_leggings,id=99399,upgrade=4,gems=320crit_320crit_120int,enchant=285int_165crit
feet=toxic_tornado_treads,id=105537,upgrade=4,gems=160crit_160hit_60hit,enchant=140mastery
finger1=petrified_pennyroyal_ring,id=105443,upgrade=4
finger2=signet_of_the_dinomancers,id=105606,upgrade=4,gems=160crit_160exp_60haste,reforge=mastery_crit
trinket1=purified_bindings_of_immerseus,id=105422,upgrade=4
trinket2=black_blood_of_yshaarj,id=105648,upgrade=4,reforge=haste_crit
main_hand=arcweaver_spell_sword,id=105550,upgrade=4,gems=160crit_160exp_60int,enchant=jade_spirit
off_hand=juggernauts_power_core,id=105521,upgrade=4,gems=320crit_60int,enchant=165int,reforge=haste_hit
# Gear Summary
# gear_strength=80
# gear_agility=80
# gear_stamina=42105
# gear_intellect=28426
# gear_spirit=80
# gear_spell_power=16509
# gear_expertise_rating=1760
# gear_hit_rating=3342
# gear_crit_rating=20833
# gear_haste_rating=12856
# gear_mastery_rating=6131
# gear_armor=18480
# meta_gem=sinister_primal
# tier16_2pc_caster=1
# tier16_4pc_caster=1
# back=xingho_breath_of_yulon,enchant=lightweave_embroidery_3
# hands=chronomancer_gloves,heroic=1,addon=synapse_springs_mark_ii
# main_hand=arcweaver_spell_sword,heroic=1,elite=1,weapon=sword_2.20speed_5180min_9622max,enchant=jade_spirit
Final result: 501254+-189.0 DPS. This puts it in 5th place on current simc charts, right behind Enhancement shaman, and ahead of Frost. This agrees with our spec observations, where Fire > Frost for single target DPS.
I think it is ok to say that once these changes are implemented, we've fixed fire.
Who is online
Users browsing this forum: No registered users and 4 guests