[TC] SimC Fire Mage APL

Guides and discussions of all things specific to the Pyromaniacs of Azeroth.
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

[TC] SimC Fire Mage APL

Unread postby Frosted Sat May 31, 2014 11:43 pm

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.
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Sat May 31, 2014 11:46 pm

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.
User avatar
Dutchmagoz
Administrator
Posts: 603
Joined: Tue May 27, 2014 11:53 am

Re: [TC] SimC Fire Mage APL

Unread postby Dutchmagoz Sun Jun 01, 2014 12:49 am

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:

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
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.

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
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.
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!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Sun Jun 01, 2014 5:12 am

<snip>
Dutch's findings reflect what Frosted, him and I spent a whole afternoon in IRC figuring out. To summarize...

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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Sun Jun 01, 2014 5:49 am

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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Sun Jun 01, 2014 6:10 am

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 :D
User avatar
Dutchmagoz
Administrator
Posts: 603
Joined: Tue May 27, 2014 11:53 am

Re: [TC] SimC Fire Mage APL

Unread postby Dutchmagoz Sun Jun 01, 2014 9:19 am

@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.
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!
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Sun Jun 01, 2014 4:11 pm

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.
User avatar
Dutchmagoz
Administrator
Posts: 603
Joined: Tue May 27, 2014 11:53 am

Re: [TC] SimC Fire Mage APL

Unread postby Dutchmagoz Sun Jun 01, 2014 4:15 pm

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.
It's exactly what i'm currently logged out in.

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!
User avatar
Dutchmagoz
Administrator
Posts: 603
Joined: Tue May 27, 2014 11:53 am

Re: [TC] SimC Fire Mage APL

Unread postby Dutchmagoz Sun Jun 01, 2014 11:23 pm

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:
So, tricky under-the-hood things follow. Again, you do not need to know or understand this to use Inferno Blast effectively, or play Fire; it should “just work." But, for those interested in the gory details, here they are:
Fireball, Pyroblast, and Frostfire Bolt (which was bugged until recently) have a cap on their effective travel time.
Their effects will take place after a maximum of 0.75 sec.
The fireball visual will still travel at the same speed, but you’ll see the damage number pop up and get the Heating Up proc after 0.75 sec, even though the fireball visual is still traveling through the air.
We normally prefer the game to feel more visceral, by tightly syncing visuals to effects, but this change felt worth the gameplay benefit to us. In a future patch, we may be able to hasten the visual to match.
If you have Heating Up, and get a non-crit, then Heating Up gets removed, as expected.
However, if the non-crit came from a spell with a travel time, or from Scorch (which is supposed to be able to replace Fireball rotationally while moving), then we delay the removal of Heating Up by 0.25 sec.
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!
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Sun Jun 01, 2014 11:43 pm

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.
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Mon Jun 02, 2014 12:50 am

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:
So, tricky under-the-hood things follow. Again, you do not need to know or understand this to use Inferno Blast effectively, or play Fire; it should “just work." But, for those interested in the gory details, here they are:
Fireball, Pyroblast, and Frostfire Bolt (which was bugged until recently) have a cap on their effective travel time.
Their effects will take place after a maximum of 0.75 sec.
The fireball visual will still travel at the same speed, but you’ll see the damage number pop up and get the Heating Up proc after 0.75 sec, even though the fireball visual is still traveling through the air.
We normally prefer the game to feel more visceral, by tightly syncing visuals to effects, but this change felt worth the gameplay benefit to us. In a future patch, we may be able to hasten the visual to match.
If you have Heating Up, and get a non-crit, then Heating Up gets removed, as expected.
However, if the non-crit came from a spell with a travel time, or from Scorch (which is supposed to be able to replace Fireball rotationally while moving), then we delay the removal of Heating Up by 0.25 sec.
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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Mon Jun 02, 2014 1:22 am

Because the default profile uses pryoblast.react, instead of .up.
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Mon Jun 02, 2014 3:06 am

This is where I currently am for re-doing the Fire APL
Spoiler:

Code: Select all

# Executed every time the actor is available. # Timewarp at the start actions+=/time_warp,if=target.health.pct<25|time=0 # Keeping RoP up actions+=/rune_of_power,if=buff.rune_of_power.remains<cast_time # IB as highest priority keeps it on CD, which generates most # of pyros and results in highest DPS actions+=/inferno_blast,if=buff.heating_up.up&&buff.pyroblast.down # Begins Alter Time actions+=/jade_serpent_potion,sync=alter_time_activate,if=buff.alter_time.down actions+=/presence_of_mind,sync=alter_time_activate,if=buff.alter_time.down actions+=/alter_time,if=(trinket.stat.intellect.remains>2|trinket.stacking_stat.intellect.stack>1)&buff.pyroblast.up&buff.heating_up.up&buff.fiery_adept.up&buff.bloodlust.up&buff.alter_time.down actions+=/pyroblast,if=(buff.alter_time.up&buff.presence_of_mind.up)|(buff.alter_time.up&buff.pyroblast.up) actions+=/alter_time,if=buff.alter_time.up&buff.presence_of_mind.down&buff.pyroblast.down #Alter Time End # Living Bomb here keeps it's uptime as high as possible, but doesnt interfere with pyro spam during combustion building actions+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3&cooldown.combustion.remains>0 # Standard pyro spam actions+=/pyroblast,if=buff.pyroblast.up # Using combustion only if there are no more pyros to be used, and alter time has been used, but no PoM pyro Needs work. actions+=/combustion,if=(buff.alter_time.down&cooldown.alter_time.remains>0&buff.pyroblast.down&buff.heating_up.down)|(cooldown.alter_time.remains<150&cooldown.presence_of_mind.remains>0) actions+=/pyroblast,if=buff.presence_of_mind.up actions+=/living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3 actions+=/fireball


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.
User avatar
Frosted
Posts: 1024
Joined: Thu May 29, 2014 5:09 pm

Re: [TC] SimC Fire Mage APL

Unread postby Frosted Thu Jun 05, 2014 9:20 pm

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.
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Mon Jun 09, 2014 9:59 pm

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.

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
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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Thu Jun 12, 2014 8:56 am

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.

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
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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Sat Jun 14, 2014 5:48 am

Small error in BBoY mini pyro chain line; should be:

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
New profile is

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
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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Sat Jun 14, 2014 11:28 am

After working with Dutchmagoz's feedback, improved APL to ~496K DPS (vs 490K DPS on current release):

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
#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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!
User avatar
Komma
Administrator
Posts: 1486
Joined: Wed May 28, 2014 7:37 pm

Re: [TC] SimC Fire Mage APL

Unread postby Komma Sat Jun 14, 2014 11:37 am

Right as I decided to call it a night (or morning, cause the Sun came up already), I realized the final touch:

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
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.
Admin of Altered Time.

Have an issue with the website or moderation? Send me a PM!

Return to “Fire”

Who is online

Users browsing this forum: No registered users and 8 guests