simulationcraft / simc

Simulationcraft engine/GUI
GNU General Public License v3.0
1.32k stars 679 forks source link

Elemental Fire Ele Usage / ICD Tracking #1071

Closed navv1234 closed 8 years ago

navv1234 commented 8 years ago

Originally reported on Google Code with ID 1072

I was trying to improve the usage of Fire Elemental Totem, but was unable to achieve
what I wanted to do as I was not able to find a parameter to query time left on proc
ICDs.

actions+=/fire_elemental_totem,if=!ticking&time<25&(temporary_bonus.spell_power>=4760|(temporary_bonus.spell_power>=4260&(buff.power_torrent.cooldown>12|buff.lightweave.remains<2))|(temporary_bonus.spell_power>=4180&buff.lightweave.cooldown>15)|(temporary_bonus.spell_power>=3680&((buff.power_torrent.cooldown>12&buff.lightweave.cooldown>15)|buff.darkmoon_card_volcano.remains<2)))
actions+=/fire_elemental_totem,if=!ticking&time>25&(temporary_bonus.spell_power>=2980|target.time_to_die<180)

This was the code I ended up with, but was unable to figure out how to correctly check
proc ICDs. Assuming I'm not missing something here, proc ICDs should definitely be
query-able since you could track such thing with an addon in-game.

Anyways, the idea with the rotation change is to use your Fire Elemental on pull, trying
to line up as many procs as possible. I have the following temp int bonuses on my character:
88int * 10 stacks from Will of Unbinding
500int from Power Torrent
580int from Lightweave
1200sp from Volcanic Potion
1600int from DMC:V

So the idea with the above action prio line is to try to get a proc lineup with the
following priority:
Everything up (4760sp) > Everything but Power Torrent up > Everything but Lightweave
up > Everything but Power Torrent & Lightweave up

I also added time_to_die usage for the midfight usage line.

On a side note, I was unable to query the stack count of will_of_unbinding, which made
this a bit more difficult, and I opened a seperate ticket for that issue (1071).

Reported by jorgster247123 on 2012-01-03 09:19:36

navv1234 commented 8 years ago
The expression you're looking for is cooldown_remains, as in buff.lightweave_embroidery.cooldown_remains
or buff.power_torrent_mh.cooldown_remains.

This is also covered in the documentation.

Reported by jon@valvatne.com on 2012-01-03 10:08:03

navv1234 commented 8 years ago
It actually isn't covered in the documentation (if by documentation you mean wiki, unless
I'm being totally oblivious). A search of cooldown_remains only yields results   talking
about using rune.cooldown_remains (for DKs) and nothing about buffs or auras.

Anyways, fixing the actions so they actually work:

actions+=/fire_elemental_totem,if=!ticking&time<25&buff.will_of_unbinding.stack=10&(temporary_bonus.spell_power>=4760|(temporary_bonus.spell_power>=4260&(buff.power_torrent_mh.cooldown_remains>0|buff.lightweave_embroidery.remains<2))|(temporary_bonus.spell_power>=4180&buff.lightweave_embroidery.cooldown_remains>0)|(temporary_bonus.spell_power>=3680&((buff.power_torrent_mh.cooldown_remains>0&buff.lightweave_embroidery.cooldown_remains>0)|buff.darkmoon_card_volcano.remains<2)))
actions+=/fire_elemental_totem,if=!ticking&time>25&buff.will_of_unbinding.stack=10&(temporary_bonus.spell_power>=2980|target.time_to_die<180)

yielded a DPS gain within the margin of error (3 DPS). As far as I can think of, there's
no reason this wouldn't be a gain (even if the difference is negligible compared to
the current implementation), so it wouldn't hurt to implement it if you have some time
to waste ;D

Reported by jorgster247123 on 2012-01-03 10:27:43

navv1234 commented 8 years ago
Not sure why a search wouldn't find it, but it's very clearly covered here, which I'd
say is where I'd expect to find it:

http://code.google.com/p/simulationcraft/wiki/ActionLists#Buffs_and_debuffs

Reported by jon@valvatne.com on 2012-01-03 10:32:37

navv1234 commented 8 years ago
Ah, you are correct then. Guess the search function is somewhat buggy? Might want to
look into that.

Thanks for the quick responses.

Reported by jorgster247123 on 2012-01-03 10:52:29