Register

Simulationcraft - Feral rotation discussion and script

Face-rippin fun.
Revered
User avatar
Posts: 352
Joined: Wed Jun 29, 2011 4:49 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Stenhaldi » Sun Jul 07, 2013 4:32 am

raffy wrote:On live (Feral Treant's on PTR cast Wrath) their damage is something like: (3926.57 + 0.192144 * AP) as Physical.

The figure I had was (roughly) 3503.5+0.1714*AP. Am I missing something? With 53525 AP, the tooltip says 12679 damage (and they correspondingly hit an armor-debuffed boss dummy for 8610). With 551 AP, the tooltip says 3598 damage (and they corresponding hit an armor-debuffed boss dummy for 2443).

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Sun Jul 07, 2013 4:54 am

Your equation predicts +3 correctly. I used a +0 dummy and assumed my DR% formula was correct. I must be using the wrong damage reduction calculation.
Image

Revered
User avatar
Posts: 352
Joined: Wed Jun 29, 2011 4:49 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Stenhaldi » Sun Jul 07, 2013 5:12 am

Ah, I'm using

damage reduction = armor / (armor + 4037.5*<attacker level> - 317117.5)

with armor = 24835*0.88 for a level 93 target with 12% armor debuff. Don't remember where I got those figures but I've been using them for a long time...

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sun Jul 07, 2013 5:38 am

raffy wrote:I talked to some simc guys, and apparently, off-gcd spells cause the action list to restart:

Yes, they do. Whether an ability can be trigger in the action list during the GCD is controlled by a flag in the class module. While Tiger's Fury can be used off and does not inflict a GCD in-game, it is only used while there is no GCD in progress.
Image

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Sun Jul 07, 2013 6:49 pm

Apparently the armor levels on L90 and other non-boss dummies is completely wacko.
Image

Revered
Posts: 274
Joined: Tue Feb 08, 2011 5:51 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby ShmooDude » Sun Jul 07, 2013 7:23 pm

raffy wrote:Apparently the armor levels on L90 and other non-boss dummies is completely wacko.


Is there any good info out there for non-boss armor levels? The boss armor level was easy to find, but I couldn't really find any info on the rest.

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Mon Jul 08, 2013 2:13 am

Each expansion seems to have different armor scaling:
viewtopic.php?f=3&t=857&p=16802&hilit=+24835#p16833

Confirmed L90 dummies are using Cata armor instead of MoP armor. My data when fit to the Cata DR% (85+5 would be 12568 armor) match Stenhaldi's equation.

I added action list "restart" on off-gcd spell execution, which now burns FoN x3 when it's actionable. I'm using the following action:
Code: Select all
force_of_nature,if=force_of_nature.stack=3|proc.effective_ap>4000
This can probably be improved.

It still appears to be slightly ahead (~1K DPS) of SotF on single target. Since guardian stats are lagged, it doesn't require you to instantly respond to a proc (like the sim can) to capture it's benefit. I worry that because they don't respond to Mastery, they don't scale well enough.

They suck in AoE situations because they try to assist you rather than sticking on their casted target.

FoN is definitely interesting considering our energy capping issues during Heroism and Berserk, especially with the ability lag that exists in many encounters.

SotF definitely helps smooth our rotation, especially for capturing high energy FB's during execute. It generates more energy than TF. It synergizes well with T15/2p and T16/4p. It works with DoC and NV.

FoN only works with HotW and gets no set bonus benefit.

It would probably help to get some FoN feedback on the PTR forum. My recommendations would be things like:
- stay on target until dead/unavailable, then goes into assist mode
- somehow scales with mastery
- treant generates a combo point
- benefit from DoC (consume charge for 25% damage) and NV (+10%)

My expectation (fingers crossed) is that Treants will end up winning single target by the time 5.4 is released.

(this is probably the wrong thread for this)
Image

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Fri Jul 12, 2013 5:59 am

No worries, it's somewhat on topic. I think a more effective "one size fits all" condition would be something like:
Code: Select all
force_of_nature,if=force_of_nature.stack=3|trinket.proc.agility.react

although obviously there would tend to be a higher DPS conditional fit to your specific trinket. That would work great for a profile with Rune + Juju, but a profile with Renataki's would probably see more DPS from replacing the latter conditional with "buff.renatakis_soul_charm.stack=10". A profile with only ICD based agility-proc trinkets could be gamed a ton by an intelligent player, although that would likely be a bit much for SimC (maybe not for Catus or Ovale?).

Another thought is if they make next tier's reverse stacking trinket not so terrible for us (as in make it not decrement on autoattacks or have each hit be a non-hasted RPPM based chance to decrement) then that trinket could actually be pretty crazy for Treants, especially if it's ICD-based. Wait for proc, mash the shit out of your Treant key when it procs, and if it's ICD based you could then calculate exactly how many charges you need to expend before it comes off ICD again which could also be gamed accordingly.
Image

Revered
User avatar
Posts: 352
Joined: Wed Jun 29, 2011 4:49 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Stenhaldi » Fri Jul 12, 2013 7:10 am

Currently the reverse-stacking trinket (Agi DPS 4) is RPPM (with the same proc rate and ICD as Renataki's), while the other trinkets (Agi DPS 1 and Agi DPS 5) use the ICD model with 105-second ICDs.

Revered
Posts: 274
Joined: Tue Feb 08, 2011 5:51 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby ShmooDude » Fri Jul 12, 2013 10:51 am

aggixx wrote:No major changes since the last one I posted I think. There are some differences but I think they're mainly just simplifying things a little, not so much DPS gains.

I have tried a couple things with the 4pT15 bonus but haven't got anything meaningful out of it (like switching to shred when the buff is up or tweaking TF/FB usage to line them up with each other a little better). In the end it seems unlikely anything is worth changing since the only noticeable microing you can do is getting the buff onto your FBs, and FB's damage still pales in comparison to the importance of our other finishers.

Here's the current profile I have:
Spoiler: show
Code: Select all
#!./simc

druid="Druid_Feral_T15H"
level=90
race=troll
spec=feral
role=attack
position=back
professions=engineering=600/inscription=600
talents=010102
glyphs=savagery

$(rip_remains)=(dot.rip.remains+(8-(dot.rip.ticks_added*2)))
$(rip_ratio)=action.rip.tick_damage%dot.rip.tick_dmg
$(rake_ratio)=action.rake.tick_damage%dot.rake.tick_dmg
$(time_til_bitw)=(target.time_to_die*(target.health.pct-25)%target.health.pct)

actions.precombat=flask,type=spring_blossoms
actions.precombat+=/food,type=sea_mist_rice_noodles
actions.precombat+=/mark_of_the_wild,if=!aura.str_agi_int.up
actions.precombat+=/healing_touch,if=!buff.dream_of_cenarius_damage.up&talent.dream_of_cenarius.enabled
actions.precombat+=/cat_form
actions.precombat+=/treants,if=talent.force_of_nature.enabled
actions.precombat+=/savage_roar
actions.precombat+=/snapshot_stats
actions.precombat+=/virmens_bite_potion

actions=/swap_action_list,name=aoe,if=active_enemies>=5
actions+=/swap_action_list,name=doc,if=talent.dream_of_cenarius.enabled
actions+=/swap_action_list,name=nondoc,if=!talent.dream_of_cenarius.enabled

actions.doc=auto_attack
actions.doc+=/swap_action_list,name=aoe,if=active_enemies>=5
actions.doc+=/skull_bash_cat
actions.doc+=/berserking
actions.doc+=/healing_touch,if=buff.predatory_swiftness.up&buff.predatory_swiftness.remains<=1.5&buff.dream_of_cenarius_damage.down
actions.doc+=/savage_roar,if=buff.savage_roar.down
actions.doc+=/faerie_fire,if=debuff.weakened_armor.stack<3
actions.doc+=/healing_touch,if=buff.predatory_swiftness.up&combo_points>=4&buff.dream_of_cenarius_damage.down
actions.doc+=/healing_touch,if=buff.natures_swiftness.up
actions.doc+=/incarnation,if=enabled&energy<=35&!buff.omen_of_clarity.react&cooldown.tigers_fury.remains=0&cooldown.berserk.remains=0
actions.doc+=/use_item,name=grips_of_the_haunted_forest,sync=tigers_fury
actions.doc+=/tigers_fury,if=(energy<=35&!buff.omen_of_clarity.react)|buff.king_of_the_jungle.up
actions.doc+=/berserk,if=buff.tigers_fury.up|(target.time_to_die<18&cooldown.tigers_fury.remains>6)
actions.doc+=/ferocious_bite,if=combo_points>=1&dot.rip.ticking&dot.rip.remains<=3&target.health.pct<=25
actions.doc+=/thrash_cat,if=target.time_to_die>=6&buff.omen_of_clarity.react&dot.thrash_cat.remains<3
actions.doc+=/ferocious_bite,if=(target.time_to_die<=4&combo_points>=5)|(target.time_to_die<=1&combo_points>=3)
actions.doc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&target.health.pct<25
actions.doc+=/virmens_bite_potion,if=(combo_points>=5&$(time_til_bitw)<15&buff.rune_of_reorigination.up&buff.dream_of_cenarius_damage.up)|target.time_to_die<=40
actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius_damage.down&buff.predatory_swiftness.down&combo_points>=5&$(rip_ratio)>=0.92&target.time_to_die>30
actions.doc+=/rip,if=combo_points>=5&$(rip_ratio)>=1.15&target.time_to_die>30
actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius_damage.down&buff.predatory_swiftness.down&combo_points>=5&target.health.pct<=25
actions.doc+=/pool_resource,wait=0.1,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25&((energy<50&buff.berserk.down)|(energy<25&buff.berserk.remains>1))
actions.doc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25
actions.doc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<2.0&buff.dream_of_cenarius_damage.up
actions.doc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<6.0&buff.dream_of_cenarius_damage.up&$(rip_ratio)>=1
actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius_damage.down&buff.predatory_swiftness.down&combo_points>=5&dot.rip.remains<3&(buff.berserk.up|dot.rip.remains+1.9<=cooldown.tigers_fury.remains)&target.health.pct>25
actions.doc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<2.0&(buff.berserk.up|dot.rip.remains+1.9<=cooldown.tigers_fury.remains)
actions.doc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&buff.savage_roar.remains+2>dot.rip.remains
actions.doc+=/savage_roar,if=buff.savage_roar.remains<=6&combo_points>=5&buff.savage_roar.remains+2<=$(rip_remains)&dot.rip.ticking
actions.doc+=/pool_resource,wait=0.1,if=combo_points>=5&((energy<50&buff.berserk.down)|(energy<25&buff.berserk.remains>1))&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))
actions.doc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))
actions.doc+=/rake,if=action.rake.tick_damage>action.mangle_cat.hit_damage&action.rake.tick_damage>=dot.rake.tick_dmg
actions.doc+=/rake,if=buff.rune_of_reorigination.up&dot.rake.remains<9&(buff.rune_of_reorigination.remains<=1.5)
actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<6&buff.dream_of_cenarius_damage.up&$(rake_ratio)>=1
actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&$(rake_ratio)>1.12
actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<3
actions.doc+=/pool_resource,wait=0.1,for_next=1
actions.doc+=/thrash_cat,if=target.time_to_die>=6&dot.thrash_cat.remains<3&($(rip_remains)>=4|buff.berserk.up)&dot.rip.ticking
actions.doc+=/run_action_list,name=filler,if=buff.omen_of_clarity.react
actions.doc+=/run_action_list,name=filler,if=((combo_points<5&dot.rip.remains<3.0)|(combo_points=0&buff.savage_roar.remains<2))
actions.doc+=/run_action_list,name=filler,if=buff.predatory_swiftness.remains>1
actions.doc+=/run_action_list,name=filler,if=target.time_to_die<=8.5
actions.doc+=/run_action_list,name=filler,if=(buff.tigers_fury.up|buff.berserk.up|buff.natures_vigil.up)
actions.doc+=/run_action_list,name=filler,if=cooldown.tigers_fury.remains<=3.0
actions.doc+=/run_action_list,name=filler,if=energy.time_to_max<=1.0
actions.doc+=/treants,if=talent.force_of_nature.enabled

actions.nondoc=auto_attack
#actions.nondoc+=/swap_action_list,name=aoe,if=active_enemies>=5
actions.nondoc+=/skull_bash_cat
actions.nondoc+=/berserking
#actions.nondoc+=/use_item,name=darkwood_spiritstaff,if=buff.heart_of_the_wild.up
#actions.nondoc+=/use_item,name=grips_of_the_haunted_forest,if=buff.heart_of_the_wild.up
#actions.nondoc+=/heart_of_the_wild,if=enabled&time<10
#actions.nondoc+=/virmens_bite_potion,if=buff.heart_of_the_wild.up|target.time_to_die<=40
#actions.nondoc+=/wrath,if=cast_time<buff.heart_of_the_wild.remains
#actions.nondoc+=/cat_form,if=buff.cat_form.down
actions.nondoc+=/savage_roar,if=buff.savage_roar.down
actions.nondoc+=/faerie_fire,cycle_targets=1,if=debuff.weakened_armor.stack<3
actions.nondoc+=/incarnation,if=enabled&energy<=35&!buff.omen_of_clarity.react&cooldown.tigers_fury.remains=0&cooldown.berserk.remains=0
actions.nondoc+=/use_item,name=grips_of_the_haunted_forest,sync=tigers_fury
actions.nondoc+=/tigers_fury,if=(energy<=35&!buff.omen_of_clarity.react)|buff.king_of_the_jungle.up
actions.nondoc+=/berserk,if=buff.tigers_fury.up|(target.time_to_die<18&cooldown.tigers_fury.remains>6)
actions.nondoc+=/natures_vigil,if=enabled&(buff.tigers_fury.up|(target.time_to_die<35&cooldown.tigers_fury.remains>6))
actions.nondoc+=/run_action_list,name=aoe,if=active_enemies>=5
actions.nondoc+=/ferocious_bite,if=combo_points>=1&dot.rip.ticking&dot.rip.remains<=2&target.health.pct<=25
actions.nondoc+=/thrash_cat,if=target.time_to_die>=6&buff.omen_of_clarity.react&dot.thrash_cat.remains<3
actions.nondoc+=/ferocious_bite,if=(target.time_to_die<=4&combo_points>=5)|(target.time_to_die<=1&combo_points>=3)
actions.nondoc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&target.health.pct<25
actions.nondoc+=/virmens_bite_potion,if=(combo_points>=5&$(time_til_bitw)<15&buff.rune_of_reorigination.up)|target.time_to_die<=40
actions.nondoc+=/rip,if=combo_points>=5&$(rip_ratio)>=1.15&target.time_to_die>30
actions.nondoc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25
actions.nondoc+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<2.0&(buff.berserk.up|dot.rip.remains+1.9<=cooldown.tigers_fury.remains)
actions.nondoc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&buff.savage_roar.remains+2>$(rip_remains)
actions.nondoc+=/savage_roar,if=buff.savage_roar.remains<=6&combo_points>=5&buff.savage_roar.remains+2<=$(rip_remains)
actions.nondoc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))
actions.nondoc+=/rake,if=(tick_damage-tick_dmg)*5+tick_damage>action.mangle_cat.hit_damage|dot.rake.remains<3
actions.nondoc+=/pool_resource,wait=0.1,for_next=1
actions.nondoc+=/thrash_cat,if=dot.thrash_cat.remains<3&target.time_to_die>=6&($(rip_remains)>=4|buff.berserk.up)
actions.nondoc+=/run_action_list,name=filler,if=buff.omen_of_clarity.react
actions.nondoc+=/run_action_list,name=filler,if=((combo_points<5&dot.rip.remains<3.0)|(combo_points=0&buff.savage_roar.remains<2))
actions.nondoc+=/run_action_list,name=filler,if=target.time_to_die<=8.5
actions.nondoc+=/run_action_list,name=filler,if=(buff.tigers_fury.up|buff.berserk.up|buff.natures_vigil.up)
actions.nondoc+=/run_action_list,name=filler,if=cooldown.tigers_fury.remains<=3.0
actions.nondoc+=/run_action_list,name=filler,if=energy.time_to_max<=1.0
actions.nondoc+=/run_action_list,name=filler,if=talent.soul_of_the_forest.enabled&combo_points<5
actions.nondoc+=/treants,if=talent.force_of_nature.enabled
actions.nondoc+=/natures_swiftness,if=enabled&buff.natures_vigil.up&!buff.predatory_swiftness.up
actions.nondoc+=/healing_touch,if=buff.natures_vigil.up&(buff.predatory_swiftness.up|buff.natures_swiftness.up)&!buff.berserk.up

actions.filler=/thrash_cat,if=dot.thrash_cat.remains<3&target.time_to_die>=6&combo_points>=5
actions.filler+=/ravage
actions.filler+=/shred,if=(buff.omen_of_clarity.react|buff.berserk.up|energy.regen>=15)&buff.king_of_the_jungle.down
actions.filler+=/mangle_cat,if=buff.king_of_the_jungle.down

actions.aoe+=/swap_action_list,name=doc,if=talent.dream_of_cenarius.enabled&active_enemies<5
actions.aoe+=/swap_action_list,name=nondoc,if=!talent.dream_of_cenarius.enabled&active_enemies<5
actions.aoe+=/auto_attack
actions.aoe+=/healing_touch,if=buff.predatory_swiftness.up&buff.predatory_swiftness.remains<=1.5&buff.dream_of_cenarius_damage.down
actions.aoe+=/healing_touch,if=buff.natures_swiftness.up
actions.aoe+=/faerie_fire,cycle_targets=1,if=debuff.weakened_armor.stack<3
actions.aoe+=/savage_roar,if=buff.savage_roar.down|(buff.savage_roar.remains<3&combo_points>0)
actions.aoe+=/use_item,name=grips_of_the_haunted_forest,sync=tigers_fury
actions.aoe+=/tigers_fury,if=energy<=35&!buff.omen_of_clarity.react
actions.aoe+=/berserk,if=buff.tigers_fury.up
actions.aoe+=/healing_touch,if=buff.rune_of_reorigination.remains<3&buff.predatory_swiftness.up
actions.aoe+=/natures_swiftness,if=buff.rune_of_reorigination.remains<3&buff.predatory_swiftness.down&buff.dream_of_cenarius_damage.down
actions.aoe+=/pool_resource,wait=0.1,for_next=1
actions.aoe+=/thrash_cat,if=buff.rune_of_reorigination.up&(dot.thrash_cat.multiplier<=tick_multiplier|buff.predatory_swiftness.up|cooldown.natures_swiftness.remains=0)
actions.aoe+=/healing_touch,if=buff.predatory_swiftness.up&(dot.thrash_cat.remains<5|(buff.tigers_fury.remains>1&dot.thrash_cat.remains<9&energy>=40))
actions.aoe+=/natures_swiftness,if=buff.predatory_swiftness.down&buff.dream_of_cenarius_damage.down&(dot.thrash_cat.remains<5|(buff.tigers_fury.remains>1&dot.thrash_cat.remains<9&energy>=40))
actions.aoe+=/thrash_cat,if=buff.tigers_fury.up&dot.thrash_cat.remains<9
actions.aoe+=/pool_resource,wait=0.1,for_next=1
actions.aoe+=/thrash_cat,if=dot.thrash_cat.remains<3
actions.aoe+=/savage_roar,if=buff.savage_roar.remains<9&combo_points>=5
#actions.aoe+=/rip,if=combo_points>=5
actions.aoe+=/rake,cycle_targets=1,if=(active_enemies<8|buff.rune_of_reorigination.up)&dot.rake.remains<3&target.time_to_die>=15
actions.aoe+=/swipe_cat,if=buff.savage_roar.remains<=5
actions.aoe+=/swipe_cat,if=(buff.tigers_fury.up|buff.berserk.up)
actions.aoe+=/swipe_cat,if=cooldown.tigers_fury.remains<3
actions.aoe+=/swipe_cat,if=buff.omen_of_clarity.react
actions.aoe+=/swipe_cat,if=energy.time_to_max<=1

head=headpiece_of_the_haunted_forest,id=96581,gems=capacitive_primal_80agi_160mastery_180agi,reforge=hit_mastery
neck=necklace_of_the_terracotta_archer,id=96702,gems=160agi_60exp,reforge=haste_mastery
shoulders=spaulders_of_the_haunted_forest,id=96583,gems=160agi_80agi_160mastery_120mastery,enchant=520agi_100crit,reforge=hit_exp
back=grey_wind_mistcloak,id=95015,gems=80agi_160mastery_60haste,enchant=180crit,reforge=haste_mastery
chest=chestguard_of_coruscating_blades,id=95033,gems=160agi_160agi_160agi_180agi,enchant=80all,reforge=crit_mastery
wrists=bracers_of_the_midnight_comet,id=96540,suffix=-339,gems=80agi_160mastery_60agi,enchant=180agi,reforge=mastery_haste
hands=grips_of_the_haunted_forest,id=96580,gems=160agi_60agi,enchant=170mastery,addon=synapse_springs_mark_ii,reforge=exp_haste
waist=strap_of_murderous_strikes,id=94998,gems=80agi_160hit_80agi_160hit_160agi_120agi,reforge=mastery_haste
legs=legguards_of_the_haunted_forest,id=96582,gems=80agi_160mastery_80agi_160hit_120agi,enchant=285agi_165crit,reforge=mastery_crit
feet=twisttoe_tabi,id=95007,gems=80agi_160mastery_80agi_160hit_120agi,enchant=140agi,reforge=exp_mastery
finger1=radens_swift_seal,id=95021,gems=80agi_160hit_60agi,reforge=haste_exp
finger2=goresoaked_gear,id=96513,gems=80agi_160mastery_60crit,reforge=haste_mastery
trinket1=rune_of_reorigination,id=96546
trinket2=renatakis_soul_charm,id=96369,reforge=exp_mastery
main_hand=darkwood_spiritstaff,id=96606,gems=80agi_160mastery_160agi_60agi,enchant=dancing_steel,reforge=crit_haste

# Gear Summary
# gear_strength=80
# gear_agility=21966
# gear_stamina=26225
# gear_intellect=80
# gear_spirit=80
# gear_expertise_rating=2471
# gear_hit_rating=1648
# gear_crit_rating=7480
# gear_haste_rating=3483
# gear_mastery_rating=9402
# gear_armor=20184
# meta_gem=agile_primal
# tier15_2pc_melee=1
# tier15_4pc_melee=1
# trinket1=rune_of_reorigination,heroic=1
# main_hand=darkwood_spiritstaff,heroic=1,weapon=staff_3.30speed_16964min_25448max,enchant=dancing_steel


This doesn't seem work straight into simcraft, I have to remove the treants line and change dream_of_cenarius_damage to dream_of_cenarius (which I'm not even 100% sure that's the right functionality, but it seems to be). Is this maybe because of a version change?

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Fri Jul 12, 2013 11:08 am

Yes, I renamed treants to force_of_nature and buff.dream_of_cenarius_damage to buff.dream_of_cenarius.
Image

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Fri Jul 12, 2013 5:16 pm

On FoN, after reworking the action lists (again) I messed around with it and even when the usage is fairly intelligent I can only get them to do 4% of the profile's damage. The SotF profile still wins by 1% (~2600 DPS).
Image

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Fri Jul 12, 2013 5:25 pm

Can you link a simc report? I'd like to compare damage done and percentages and stuff.

Is "trinket.proc.agility.react" true with Dancing Steel?

Edit: oh I see, "trinket" :p
Image

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sat Jul 13, 2013 3:30 am

Spoiler: show
#!./simc

druid="Druid_Feral_T15H"
level=90
race=troll
role=attack
position=back
professions=engineering=600/inscription=600
talents=000301
glyphs=savagery
spec=feral

# 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=spring_blossoms
actions.precombat+=/food,type=sea_mist_rice_noodles
actions.precombat+=/mark_of_the_wild,if=!aura.str_agi_int.up
actions.precombat+=/healing_touch,if=!buff.dream_of_cenarius.up&talent.dream_of_cenarius.enabled
actions.precombat+=/cat_form
actions.precombat+=/savage_roar
actions.precombat+=/snapshot_stats
actions.precombat+=/virmens_bite_potion

# Executed every time the actor is available.

# By default the simulation will use the "Basic" action list, if you would like to instead use the "Advanced" action list do so here.
actions=swap_action_list,name=advanced

actions.basic=auto_attack
actions.basic+=/skull_bash_cat
# Keep Rip from falling off during execute range.
actions.basic+=/ferocious_bite,if=dot.rip.ticking&dot.rip.remains<=3&target.health.pct<=25
actions.basic+=/faerie_fire,if=debuff.weakened_armor.stack<3
actions.basic+=/savage_roar,if=buff.savage_roar.remains<3
actions.basic+=/virmens_bite_potion,if=(target.health.pct<30&buff.berserk.up)|target.time_to_die<=40
actions.basic+=/tigers_fury,if=energy<=35&!buff.omen_of_clarity.react
actions.basic+=/berserk,if=buff.tigers_fury.up
actions.basic+=/use_item,slot=hands,if=buff.tigers_fury.up
actions.basic+=/berserking,if=buff.tigers_fury.up
# Overwrite Rip during execute range if it's at least 15% stronger than the current.
actions.basic+=/rip,if=combo_points>=5&target.health.pct<=25&action.rip.tick_damage%dot.rip.tick_dmg>=1.15
actions.basic+=/ferocious_bite,if=combo_points>=5&target.health.pct<=25&dot.rip.ticking
actions.basic+=/rip,if=combo_points>=5&dot.rip.remains<2
# Ferocious Bite if we will energy cap before being able to spend our CP on Rip or Savage Roar.
actions.basic+=/ferocious_bite,if=combo_points>=5&energy.time_to_max<dot.rip.remains-2&energy.time_to_max<buff.savage_roar.remains-3
actions.basic+=/thrash_cat,if=buff.omen_of_clarity.react&dot.thrash_cat.remains<3
# Rake if it hits harder than Mangle and we won't apply a weaker bleed to the target.
actions.basic+=/rake,if=action.rake.tick_damage>action.mangle_cat.hit_damage&action.rake.tick_damage>=dot.rake.tick_dmg
# Rake if it's about to fall off or we can apply a stronger Rake.
actions.basic+=/rake,if=dot.rake.remains<3|action.rake.tick_damage>dot.rake.tick_dmg
actions.basic+=/pool_resource,for_next=1
actions.basic+=/thrash_cat,if=dot.thrash_cat.remains<3&(dot.rip.remains>6|combo_points>=5)
# Conditions under which we should execute a CP generator.
actions.basic+=/run_action_list,name=filler,if=buff.omen_of_clarity.react
actions.basic+=/run_action_list,name=filler,if=(combo_points<5&dot.rip.remains<3.0)|(combo_points=0&buff.savage_roar.remains<2)
actions.basic+=/run_action_list,name=filler,if=target.time_to_die<=8.5
actions.basic+=/run_action_list,name=filler,if=buff.tigers_fury.up|buff.berserk.up|buff.natures_vigil.up
actions.basic+=/run_action_list,name=filler,if=cooldown.tigers_fury.remains<=3
actions.basic+=/run_action_list,name=filler,if=energy.time_to_max<=1.0

actions.advanced=auto_attack
actions.advanced+=/skull_bash_cat
actions.advanced+=/force_of_nature,if=charges=3|trinket.proc.agility.react|target.time_to_die<20
actions.advanced+=/berserking
# Keep Rip from falling off during execute range.
actions.advanced+=/ferocious_bite,if=dot.rip.ticking&dot.rip.remains<=3&target.health.pct<=25
actions.advanced+=/faerie_fire,if=debuff.weakened_armor.stack<3
actions.advanced+=/savage_roar,if=buff.savage_roar.down
actions.advanced+=/tigers_fury,if=energy<=35&!buff.omen_of_clarity.react
actions.advanced+=/berserk,if=buff.tigers_fury.up|(target.time_to_die<18&cooldown.tigers_fury.remains>6)
actions.advanced+=/use_item,slot=hands,if=buff.tigers_fury.up
actions.advanced+=/thrash_cat,if=buff.omen_of_clarity.react&dot.thrash_cat.remains<3&target.time_to_die>=6
actions.advanced+=/ferocious_bite,if=target.time_to_die<=1&combo_points>=3
actions.advanced+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&target.health.pct<25
# Potion near or during execute range when Rune is up and we have 5 CP.
actions.advanced+=/virmens_bite_potion,if=(combo_points>=5&(target.time_to_die*(target.health.pct-25)%target.health.pct)<15&buff.rune_of_reorigination.up)|target.time_to_die<=40
# Overwrite Rip if it's at least 15% stronger than the current.
actions.advanced+=/rip,if=combo_points>=5&action.rip.tick_damage%dot.rip.tick_dmg>=1.15&target.time_to_die>30
# Pool 50 energy for Ferocious Bite.
actions.advanced+=/pool_resource,if=combo_points>=5&target.health.pct<=25&dot.rip.ticking&!(energy>=50|(buff.berserk.up&energy>=25))
actions.advanced+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25
actions.advanced+=/rip,if=combo_points>=5&target.time_to_die>=6&dot.rip.remains<2&(buff.berserk.up|dot.rip.remains+1.9<=cooldown.tigers_fury.remains)
actions.advanced+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&buff.savage_roar.remains+2>dot.rip.remains
actions.advanced+=/savage_roar,if=buff.savage_roar.remains<=6&combo_points>=5&buff.savage_roar.remains+2<=dot.rip.remains&dot.rip.ticking
# Pool to 50 energy for Ferocious Bite.
actions.advanced+=/pool_resource,if=combo_points>=5&!(energy>=50|(buff.berserk.up&energy>=25))&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)
# Ferocious Bite if we will energy cap before being able to spend our CP on Rip or Savage Roar.
actions.advanced+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)
# Rake if it hits harder than Mangle and we won't apply a weaker bleed to the target.
actions.advanced+=/rake,if=action.rake.tick_damage>action.mangle_cat.hit_damage&action.rake.tick_damage>=dot.rake.tick_dmg
# Refresh Rake as Re-Origination is about to end if Rake has <9 seconds left.
actions.advanced+=/rake,if=buff.rune_of_reorigination.up&dot.rake.remains<9&buff.rune_of_reorigination.remains<=1.5
# Rake if it's about to fall off or we can apply a stronger Rake.
actions.advanced+=/rake,if=target.time_to_die-dot.rake.remains>3&(action.rake.tick_damage>dot.rake.tick_dmg|dot.rake.remains<3)
actions.advanced+=/pool_resource,for_next=1
actions.advanced+=/thrash_cat,if=target.time_to_die>=6&dot.thrash_cat.remains<3&(dot.rip.remains>=4|buff.berserk.up)&dot.rip.ticking
actions.advanced+=/run_action_list,name=filler,if=buff.omen_of_clarity.react
# Conditions under which we should execute a CP generator.
actions.advanced+=/run_action_list,name=filler,if=(combo_points<5&dot.rip.remains<3.0)|(combo_points=0&buff.savage_roar.remains<2)
actions.advanced+=/run_action_list,name=filler,if=target.time_to_die<=8.5
actions.advanced+=/run_action_list,name=filler,if=buff.tigers_fury.up|buff.berserk.up|buff.natures_vigil.up
actions.advanced+=/run_action_list,name=filler,if=cooldown.tigers_fury.remains<=3
actions.advanced+=/run_action_list,name=filler,if=energy.time_to_max<=1.0

actions.filler=ravage
actions.filler+=/shred,if=(buff.omen_of_clarity.react|buff.berserk.up|energy.regen>=15)&buff.king_of_the_jungle.down
actions.filler+=/mangle_cat,if=buff.king_of_the_jungle.down

actions.aoe=swap_action_list,name=default,if=active_enemies<5
actions.aoe+=/auto_attack
actions.aoe+=/faerie_fire,cycle_targets=1,if=debuff.weakened_armor.stack<3
actions.aoe+=/savage_roar,if=buff.savage_roar.down|(buff.savage_roar.remains<3&combo_points>0)
actions.aoe+=/use_item,slot=hands,if=buff.tigers_fury.up
actions.aoe+=/berserking,if=buff.tigers_fury.up
actions.aoe+=/tigers_fury,if=energy<=35&!buff.omen_of_clarity.react
actions.aoe+=/berserk,if=buff.tigers_fury.up
actions.aoe+=/pool_resource,for_next=1
actions.aoe+=/thrash_cat,if=buff.rune_of_reorigination.up
actions.aoe+=/pool_resource,wait=0.1,for_next=1
actions.aoe+=/thrash_cat,if=dot.thrash_cat.remains<3|(buff.tigers_fury.up&dot.thrash_cat.remains<9)
actions.aoe+=/savage_roar,if=buff.savage_roar.remains<9&combo_points>=5
actions.aoe+=/rip,if=combo_points>=5
actions.aoe+=/rake,cycle_targets=1,if=(active_enemies<8|buff.rune_of_reorigination.up)&dot.rake.remains<3&target.time_to_die>=15
actions.aoe+=/swipe_cat,if=buff.savage_roar.remains<=5
actions.aoe+=/swipe_cat,if=buff.tigers_fury.up|buff.berserk.up
actions.aoe+=/swipe_cat,if=cooldown.tigers_fury.remains<3
actions.aoe+=/swipe_cat,if=buff.omen_of_clarity.react
actions.aoe+=/swipe_cat,if=energy.time_to_max<=1

head=lightningeye_hood,id=96742,upgrade=2,gems=capacitive_primal_80agi_160haste_180agi
neck=quadrahead_brooch,id=96815,upgrade=2,gems=80agi_160crit_60crit,reforge=hit_haste
shoulders=spaulders_of_the_haunted_forest,id=96583,upgrade=2,gems=160agi_80agi_160mastery_120mastery,enchant=200agi_100crit
back=tigerfang_wrap,id=98148,upgrade=2,gems=160agi_60agi,enchant=180crit
chest=raiment_of_the_haunted_forest,id=96579,upgrade=2,gems=160agi_80agi_160crit_80agi_160hit_180agi,enchant=80all,reforge=mastery_haste
wrists=bindings_of_multiplicative_strikes,id=96764,upgrade=2,enchant=180agi
hands=grips_of_the_haunted_forest,id=96580,upgrade=2,gems=160agi_60agi,enchant=170mastery,addon=synapse_springs_mark_ii,reforge=exp_haste
waist=strap_of_murderous_strikes,id=94998,upgrade=2,gems=80agi_160hit_80agi_160hit_160agi_120agi,reforge=mastery_exp
legs=legguards_of_the_haunted_forest,id=96582,upgrade=2,gems=80agi_160mastery_80agi_160hit_120agi,enchant=285agi_165crit
feet=twisttoe_tabi,id=95007,upgrade=2,gems=80agi_160crit_80agi_160hit_120agi,enchant=140agi,reforge=exp_mastery
finger1=goresoaked_gear,id=96885,upgrade=2,gems=80agi_160crit_60crit,reforge=haste_mastery
finger2=radens_swift_seal,id=95021,gems=80agi_160hit_60agi,reforge=hit_crit
trinket1=bad_muju,stats=1887mastery,reforge=mastery_haste,equip=OnDirectDamage_9430Agi_0.55RPPM_20Dur
trinket2=rune_of_reorigination,id=96918,upgrade=2
main_hand=darkwood_spiritstaff,id=96978,upgrade=2,gems=80agi_160crit_160agi_60agi,enchant=dancing_steel,reforge=mastery_haste

# Gear Summary
# gear_strength=80
# gear_agility=24124
# gear_stamina=29950
# gear_intellect=80
# gear_spirit=80
# gear_expertise_rating=2553
# gear_hit_rating=2573
# gear_crit_rating=8426
# gear_haste_rating=8426
# gear_mastery_rating=8429
# gear_armor=20937
# meta_gem=capacitive_primal
# tier15_2pc_melee=1
# tier15_4pc_melee=1
# hands=grips_of_the_haunted_forest,heroic=1,addon=synapse_springs_mark_ii
# trinket1=bad_juju,heroic=1,thunderforged=1
# trinket2=rune_of_reorigination,heroic=1,thunderforged=1
# main_hand=darkwood_spiritstaff,heroic=1,thunderforged=1,weapon=staff_3.30speed_17940min_26910max,enchant=dancing_steel


As a side note I realize I could make the usage even smarter by doing:
Code: Select all
/force_of_nature,if=charges=3|(trinket.proc.agility.react&buff.dancing_steel.react)|trinket.proc.agility.remains<3|target.time_to_die<20
Image

Revered
User avatar
Posts: 352
Joined: Wed Jun 29, 2011 4:49 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Stenhaldi » Sat Jul 13, 2013 5:15 am

Waiting for the end of a trinket proc probably doesn't make sense for treants since they update dynamically with your stats (albeit with a ~4 second delay).

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Sat Jul 13, 2013 5:51 am

Found my issue, I was using 15sec recharge instead of 20sec.

"target.time_to_die<20" is a good idea, I always forget about that.

I asked about Dancing Steel because I was trying to avoid using it on solo buffs of the weak things: DancingSteel/Springs/Swordguard.

I hope FoN damage gets buffed because it's definitely more difficult to use than SotF. I think I'll start experimenting with it raids so I can get the hang of it.
Image

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sat Jul 13, 2013 5:58 am

Stenhaldi wrote:Waiting for the end of a trinket proc probably doesn't make sense for treants since they update dynamically with your stats (albeit with a ~4 second delay).

Wasn't aware of that.
Image

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Sat Jul 13, 2013 6:06 am

I think, if there is a free GCD, you could go Bear, and pop 3 Treants over ~1sec with +50% Crit/Haste, Maul, and go back to Cat for a few extra seconds of stats. But in practice, this is probably too difficult/silly to do.
Image

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sat Jul 13, 2013 7:36 am

I don't think the talent works that way... unless you've actually tested that in-game.
Image

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Sat Jul 13, 2013 10:10 pm

Guardians reflect your stats, so yeah, going Bear, your Tree's (for the first few seconds) benefit from like +10% Haste, +7% Crit (for my gear). I've confirmed this.

However, they don't seem to benefit from Skull Banner.
Image

Revered
User avatar
Posts: 352
Joined: Wed Jun 29, 2011 4:49 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Stenhaldi » Sun Jul 14, 2013 2:06 am

Wouldn't be worth it unless you used dash to shift back to cat form before an autoattack went off. Spending 1.5 seconds in bear form (due to shifting GCD) means you're going to execute a bear form swing -- which does about as much damage as a cat form swing, but takes 2.5 times as long. So you're basically giving up 1.5 of your own swings to gain some fraction of a treant swing, when treant swings do about half as much damage as your own. Even in the unlikely scenario that the ~4 seconds of extra haste gave the treant an extra swing over its duration, it still wouldn't be worth it.

Edit: I guess if you had 3 treants that were all getting an extra swing, it might be worth it -- barely.

Edit: I also didn't account for maul, which is basically an extra swing's worth of damage, except you only have a ~60% chance to have the rage to cast it (the swing has to crit or proc a clearcast). Then we also have to account for the ~0.15 lost clearcasts (since the maul consumed them). I don't think it's worth going to this level of rigor; suffice it to say that the lost swings eat heavily into any gain you might expect from this tactic.

Now if you were also casting thrash-bear then this might be worth it, since I determined last tier that thrash-bear was probably worth doing on its own. But new to this tier is the risk of proccing a crit/haste re-origination while in bear form -- I haven't used much thrash-bear this tier, and it's mainly for that reason.

Exalted
User avatar
Posts: 1067
Joined: Fri Nov 25, 2011 7:49 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby aggixx » Sun Jul 14, 2013 1:31 pm

Oh, I misinterpreted what you meant. I thought you were trying to say you could shift into Bear to use the "Guardian" portion of the talent :lol:.

Stenhaldi wrote:Now if you were also casting thrash-bear then this might be worth it, since I determined last tier that thrash-bear was probably worth doing on its own. But new to this tier is the risk of proccing a crit/haste re-origination while in bear form -- I haven't used much thrash-bear this tier, and it's mainly for that reason.

Likely only worth it while it's on ICD, so realistically it's probably not worth bothering at all.
Image

Revered
Posts: 274
Joined: Tue Feb 08, 2011 5:51 pm

Re: Simulationcraft - Feral rotation discussion and script

Postby ShmooDude » Sat Jul 20, 2013 11:57 pm

Simcraft script matching up with my version of the ovale script:

Spoiler: show
Code: Select all
     #!./simc

    druid="Druid_Feral_T15H"
    level=90
    race=troll
    spec=feral
    role=attack
    position=back
    professions=engineering=600/inscription=600
    talents=010102
    glyphs=savagery

    $(rip_remains)=(dot.rip.remains+(8-(dot.rip.ticks_added*2)))
    $(rip_ratio)=action.rip.tick_damage%dot.rip.tick_dmg
    $(rake_ratio)=action.rake.tick_damage%dot.rake.tick_dmg
    $(time_til_bitw)=(target.time_to_die*(target.health.pct-25)%target.health.pct)

    actions.precombat=flask,type=spring_blossoms
    actions.precombat+=/food,type=sea_mist_rice_noodles
    actions.precombat+=/mark_of_the_wild,if=!aura.str_agi_int.up
    actions.precombat+=/healing_touch,if=!buff.dream_of_cenarius.up&talent.dream_of_cenarius.enabled
    actions.precombat+=/cat_form
    actions.precombat+=/force_of_nature,if=talent.force_of_nature.enabled
    actions.precombat+=/savage_roar
    actions.precombat+=/snapshot_stats
    actions.precombat+=/virmens_bite_potion

    actions=/swap_action_list,name=aoe,if=active_enemies>=5
    actions+=/swap_action_list,name=doc,if=talent.dream_of_cenarius.enabled
    actions+=/swap_action_list,name=nondoc,if=!talent.dream_of_cenarius.enabled



    actions.doc=auto_attack
    actions.doc+=/swap_action_list,name=aoe,if=active_enemies>=5
    actions.doc+=/skull_bash_cat
    actions.doc+=/berserking

    actions.doc+=/healing_touch,if=buff.predatory_swiftness.up&buff.predatory_swiftness.remains<=1.5&buff.dream_of_cenarius.down
    actions.doc+=/savage_roar,if=buff.savage_roar.down
    actions.doc+=/faerie_fire,if=debuff.weakened_armor.stack<3
    actions.doc+=/healing_touch,if=buff.predatory_swiftness.up&combo_points>=4&buff.dream_of_cenarius.down
    actions.doc+=/healing_touch,if=buff.natures_swiftness.up

    actions.doc+=/incarnation,if=enabled&energy<=35&!buff.omen_of_clarity.react&cooldown.tigers_fury.remains=0&cooldown.berserk.remains=0
    actions.doc+=/use_item,name=grips_of_the_haunted_forest,sync=tigers_fury
    actions.doc+=/tigers_fury,if=(energy<=35&!buff.omen_of_clarity.react)|buff.king_of_the_jungle.up
    actions.doc+=/berserk,if=buff.tigers_fury.up|(target.time_to_die<18&cooldown.tigers_fury.remains>6)

    actions.doc+=/ferocious_bite,if=combo_points>=1&dot.rip.ticking&dot.rip.remains<=3&target.health.pct<=25
    actions.doc+=/thrash_cat,if=target.time_to_die>=6&buff.omen_of_clarity.react&dot.thrash_cat.remains<3
    actions.doc+=/ferocious_bite,if=(target.time_to_die<=4&combo_points>=5)|(target.time_to_die<=1&combo_points>=3)
    actions.doc+=/virmens_bite_potion,if=(combo_points>=5&$(time_til_bitw)<15&buff.rune_of_reorigination.up&buff.dream_of_cenarius.up)|target.time_to_die<=40
    actions.doc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&target.health.pct<25
    actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius.down&buff.predatory_swiftness.down&combo_points>=5&target.health.pct<=25
    actions.doc+=/rip,if=combo_points>=5&(tick_damage*(1+crit_pct_current)-tick_dmg*(1+crit_pct))*target.time_to_die%2>=action.ferocious_bite.hit_damage*(1+action.ferocious_bite.crit_pct_current)&target.health.pct<=25
    actions.doc+=/pool_resource,wait=0.1,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25&((energy<50&buff.berserk.down)|(energy<25&buff.berserk.remains>1))
    actions.doc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25

    actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius.down&buff.predatory_swiftness.down&combo_points>=5&$(rip_ratio)>=0.92&target.health.pct>25
    actions.doc+=/rip,if=combo_points>=5&$(rip_ratio)>=1.15&target.health.pct>25
    actions.doc+=/rip,if=combo_points>=56&dot.rip.remains<2.0&buff.dream_of_cenarius.up&target.health.pct>25
    actions.doc+=/rip,if=combo_points>=5&dot.rip.remains<6.0&buff.dream_of_cenarius.up&$(rip_ratio)>=1&target.health.pct>25
    actions.doc+=/natures_swiftness,if=enabled&buff.dream_of_cenarius.down&buff.predatory_swiftness.down&combo_points>=5&dot.rip.remains<3&target.health.pct>25
    actions.doc+=/rip,if=combo_points>=5&dot.rip.remains<2.0&target.health.pct>25

    actions.doc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&buff.savage_roar.remains+2>dot.rip.remains
    actions.doc+=/savage_roar,if=buff.savage_roar.remains<=6&combo_points>=5&buff.savage_roar.remains+2<=dot.rip.remains

    actions.doc+=/pool_resource,wait=0.1,if=combo_points>=5&((energy<50&buff.berserk.down)|(energy<25&buff.berserk.remains>1))&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))
    actions.doc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))

    actions.doc+=/rake,if=action.rake.tick_damage>action.mangle_cat.hit_damage&$(rake_ratio)>=0.99&buff.king_of_the_jungle.down
    actions.doc+=/rake,if=action.rake.tick_damage*(1+action.rake.crit_pct_current)>action.ravage.hit_damage*(1+action.ravage.crit_pct_current)&$(rake_ratio)>=0.99&buff.king_of_the_jungle.up
    actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<6&buff.dream_of_cenarius.up&$(rake_ratio)>=0.99
    actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&$(rake_ratio)>1.12
    actions.doc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<3
    actions.doc+=/rake,if=buff.rune_of_reorigination.up&dot.rake.remains<9&(buff.rune_of_reorigination.remains<=1.5)

    actions.doc+=/pool_resource,wait=0.1,for_next=1
    actions.doc+=/thrash_cat,if=target.time_to_die>=6&dot.thrash_cat.remains<3&($(rip_remains)>=4|buff.berserk.up)&dot.rip.ticking

    actions.doc+=/run_action_list,name=filler,if=buff.omen_of_clarity.react
    actions.doc+=/run_action_list,name=filler,if=((combo_points<5&dot.rip.remains<3.0)|(combo_points=0&buff.savage_roar.remains<2))
    actions.doc+=/run_action_list,name=filler,if=target.time_to_die<=8.5
    actions.doc+=/run_action_list,name=filler,if=(buff.tigers_fury.up|buff.berserk.up|buff.natures_vigil.up)
    actions.doc+=/run_action_list,name=filler,if=cooldown.tigers_fury.remains<=3.0
    actions.doc+=/run_action_list,name=filler,if=energy.time_to_max<=1.0
    actions.doc+=/run_action_list,name=filler,if=buff.predatory_swiftness.remains>1

    actions.doc+=/force_of_nature,if=talent.force_of_nature.enabled



    actions.nondoc=auto_attack
    #actions.nondoc+=/swap_action_list,name=aoe,if=active_enemies>=5
    actions.nondoc+=/skull_bash_cat
    actions.nondoc+=/berserking

    #actions.nondoc+=/use_item,name=darkwood_spiritstaff,if=buff.heart_of_the_wild.up
    #actions.nondoc+=/use_item,name=grips_of_the_haunted_forest,if=buff.heart_of_the_wild.up
    #actions.nondoc+=/heart_of_the_wild,if=enabled&time<10
    #actions.nondoc+=/virmens_bite_potion,if=buff.heart_of_the_wild.up|target.time_to_die<=40
    #actions.nondoc+=/wrath,if=cast_time<buff.heart_of_the_wild.remains
    #actions.nondoc+=/cat_form,if=buff.cat_form.down

    actions.nondoc+=/savage_roar,if=buff.savage_roar.down
    actions.nondoc+=/faerie_fire,if=debuff.weakened_armor.stack<3

    actions.nondoc+=/incarnation,if=enabled&energy<=35&!buff.omen_of_clarity.react&cooldown.tigers_fury.remains=0&cooldown.berserk.remains=0
    actions.nondoc+=/use_item,name=grips_of_the_haunted_forest,sync=tigers_fury
    actions.nondoc+=/tigers_fury,if=(energy<=35&!buff.omen_of_clarity.react)|buff.king_of_the_jungle.up
    actions.nondoc+=/berserk,if=buff.tigers_fury.up|(target.time_to_die<18&cooldown.tigers_fury.remains>6)

    actions.nondoc+=/ferocious_bite,if=combo_points>=1&dot.rip.ticking&dot.rip.remains<=3&target.health.pct<=25
    actions.nondoc+=/thrash_cat,if=target.time_to_die>=6&buff.omen_of_clarity.react&dot.thrash_cat.remains<3
    actions.nondoc+=/ferocious_bite,if=(target.time_to_die<=4&combo_points>=5)|(target.time_to_die<=1&combo_points>=3)
    actions.nondoc+=/virmens_bite_potion,if=(combo_points>=5&$(time_til_bitw)<15&buff.rune_of_reorigination.up)|target.time_to_die<=40
    actions.nondoc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&target.health.pct<25
    actions.nondoc+=/rip,if=combo_points>=5&(tick_damage*(1+crit_pct_current)-tick_dmg*(1+crit_pct))*target.time_to_die%2>=action.ferocious_bite.hit_damage*(1+action.ferocious_bite.crit_pct_current)*2&target.health.pct<=25
    actions.nondoc+=/pool_resource,wait=0.1,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25&((energy<50&buff.berserk.down)|(energy<25&buff.berserk.remains>1))
    actions.nondoc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&target.health.pct<=25

    actions.nondoc+=/rip,if=combo_points>=5&$(rip_ratio)>=1.15&target.health.pct>25
    actions.nondoc+=/rip,if=combo_points>=5&dot.rip.remains<2.0&target.health.pct>25

    actions.nondoc+=/savage_roar,if=buff.savage_roar.remains<=3&combo_points>0&buff.savage_roar.remains+2>dot.rip.remains
    actions.nondoc+=/savage_roar,if=buff.savage_roar.remains<=6&combo_points>=5&buff.savage_roar.remains+2<=dot.rip.remains

    actions.nondoc+=/pool_resource,wait=0.1,if=combo_points>=5&((energy<50&buff.berserk.down)|(energy<25&buff.berserk.remains>1))&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))
    actions.nondoc+=/ferocious_bite,if=combo_points>=5&dot.rip.ticking&!(dot.rip.remains-2<=energy.time_to_max-1)&!(buff.savage_roar.remains-3<=energy.time_to_max-1)&!((buff.savage_roar.remains-6<=energy.time_to_max-1)&buff.savage_roar.remains+2<=$(rip_remains))

    actions.nondoc+=/rake,if=action.rake.tick_damage>action.mangle_cat.hit_damage&$(rake_ratio)>=0.99&buff.king_of_the_jungle.down
    actions.nondoc+=/rake,if=action.rake.tick_damage*(1+action.rake.crit_pct_current)>action.ravage.hit_damage*(1+action.ravage.crit_pct_current)&$(rake_ratio)>=0.99&buff.king_of_the_jungle.up
    actions.nondoc+=/rake,if=target.time_to_die-dot.rake.remains>3&$(rake_ratio)>1.12
    actions.nondoc+=/rake,if=target.time_to_die-dot.rake.remains>3&dot.rake.remains<3
    actions.nondoc+=/rake,if=buff.rune_of_reorigination.up&dot.rake.remains<9&(buff.rune_of_reorigination.remains<=1.5)
    actions.nondoc+=/pool_resource,wait=0.1,for_next=1
    actions.nondoc+=/thrash_cat,if=target.time_to_die>=6&dot.thrash_cat.remains<3&($(rip_remains)>=4|buff.berserk.up)&dot.rip.ticking

    actions.nondoc+=/run_action_list,name=filler,if=buff.omen_of_clarity.react
    actions.nondoc+=/run_action_list,name=filler,if=((combo_points<5&dot.rip.remains<3.0)|(combo_points=0&buff.savage_roar.remains<2))
    actions.nondoc+=/run_action_list,name=filler,if=target.time_to_die<=8.5
    actions.nondoc+=/run_action_list,name=filler,if=(buff.tigers_fury.up|buff.berserk.up|buff.natures_vigil.up)
    actions.nondoc+=/run_action_list,name=filler,if=cooldown.tigers_fury.remains<=3.0
    actions.nondoc+=/run_action_list,name=filler,if=energy.time_to_max<=1.0

    actions.nondoc+=/force_of_nature,if=talent.force_of_nature.enabled




    actions.filler=/thrash_cat,if=dot.thrash_cat.remains<3&target.time_to_die>=6&combo_points>=5
    actions.filler+=/ravage
    actions.filler+=/shred,if=(buff.omen_of_clarity.react|buff.berserk.up|energy.regen>=15)&buff.king_of_the_jungle.down
    actions.filler+=/mangle_cat,if=buff.king_of_the_jungle.down

    actions.aoe+=/swap_action_list,name=doc,if=talent.dream_of_cenarius.enabled&active_enemies<5
    actions.aoe+=/swap_action_list,name=nondoc,if=!talent.dream_of_cenarius.enabled&active_enemies<5
    actions.aoe+=/auto_attack
    actions.aoe+=/healing_touch,if=buff.predatory_swiftness.up&buff.predatory_swiftness.remains<=1.5&buff.dream_of_cenarius.down
    actions.aoe+=/healing_touch,if=buff.natures_swiftness.up
    actions.aoe+=/faerie_fire,cycle_targets=1,if=debuff.weakened_armor.stack<3
    actions.aoe+=/savage_roar,if=buff.savage_roar.down|(buff.savage_roar.remains<3&combo_points>0)
    actions.aoe+=/use_item,name=grips_of_the_haunted_forest,sync=tigers_fury
    actions.aoe+=/tigers_fury,if=energy<=35&!buff.omen_of_clarity.react
    actions.aoe+=/berserk,if=buff.tigers_fury.up
    actions.aoe+=/healing_touch,if=buff.rune_of_reorigination.remains<3&buff.predatory_swiftness.up
    actions.aoe+=/natures_swiftness,if=buff.rune_of_reorigination.remains<3&buff.predatory_swiftness.down&buff.dream_of_cenarius.down
    actions.aoe+=/pool_resource,wait=0.1,for_next=1
    actions.aoe+=/thrash_cat,if=buff.rune_of_reorigination.up&(dot.thrash_cat.multiplier<=tick_multiplier|buff.predatory_swiftness.up|cooldown.natures_swiftness.remains=0)
    actions.aoe+=/healing_touch,if=buff.predatory_swiftness.up&(dot.thrash_cat.remains<5|(buff.tigers_fury.remains>1&dot.thrash_cat.remains<9&energy>=40))
    actions.aoe+=/natures_swiftness,if=buff.predatory_swiftness.down&buff.dream_of_cenarius.down&(dot.thrash_cat.remains<5|(buff.tigers_fury.remains>1&dot.thrash_cat.remains<9&energy>=40))
    actions.aoe+=/thrash_cat,if=buff.tigers_fury.up&dot.thrash_cat.remains<9
    actions.aoe+=/pool_resource,wait=0.1,for_next=1
    actions.aoe+=/thrash_cat,if=dot.thrash_cat.remains<3
    actions.aoe+=/savage_roar,if=buff.savage_roar.remains<9&combo_points>=5
    #actions.aoe+=/rip,if=combo_points>=5
    actions.aoe+=/rake,cycle_targets=1,if=(active_enemies<8|buff.rune_of_reorigination.up)&dot.rake.remains<3&target.time_to_die>=15
    actions.aoe+=/swipe_cat,if=buff.savage_roar.remains<=5
    actions.aoe+=/swipe_cat,if=(buff.tigers_fury.up|buff.berserk.up)
    actions.aoe+=/swipe_cat,if=cooldown.tigers_fury.remains<3
    actions.aoe+=/swipe_cat,if=buff.omen_of_clarity.react
    actions.aoe+=/swipe_cat,if=energy.time_to_max<=1

    head=headpiece_of_the_haunted_forest,id=96581,gems=capacitive_primal_80agi_160mastery_180agi,reforge=hit_mastery
    neck=necklace_of_the_terracotta_archer,id=96702,gems=160agi_60exp,reforge=haste_mastery
    shoulders=spaulders_of_the_haunted_forest,id=96583,gems=160agi_80agi_160mastery_120mastery,enchant=520agi_100crit,reforge=hit_exp
    back=grey_wind_mistcloak,id=95015,gems=80agi_160mastery_60haste,enchant=180crit,reforge=haste_mastery
    chest=chestguard_of_coruscating_blades,id=95033,gems=160agi_160agi_160agi_180agi,enchant=80all,reforge=crit_mastery
    wrists=bracers_of_the_midnight_comet,id=96540,suffix=-339,gems=80agi_160mastery_60agi,enchant=180agi,reforge=mastery_haste
    hands=grips_of_the_haunted_forest,id=96580,gems=160agi_60agi,enchant=170mastery,addon=synapse_springs_mark_ii,reforge=exp_haste
    waist=strap_of_murderous_strikes,id=94998,gems=80agi_160hit_80agi_160hit_160agi_120agi,reforge=mastery_haste
    legs=legguards_of_the_haunted_forest,id=96582,gems=80agi_160mastery_80agi_160hit_120agi,enchant=285agi_165crit,reforge=mastery_crit
    feet=twisttoe_tabi,id=95007,gems=80agi_160mastery_80agi_160hit_120agi,enchant=140agi,reforge=exp_mastery
    finger1=radens_swift_seal,id=95021,gems=80agi_160hit_60agi,reforge=haste_exp
    finger2=goresoaked_gear,id=96513,gems=80agi_160mastery_60crit,reforge=haste_mastery
    trinket1=rune_of_reorigination,id=96546
    trinket2=renatakis_soul_charm,id=96369,reforge=exp_mastery
    main_hand=darkwood_spiritstaff,id=96606,gems=80agi_160mastery_160agi_60agi,enchant=dancing_steel,reforge=crit_haste

    # Gear Summary
    # gear_strength=80
    # gear_agility=21966
    # gear_stamina=26225
    # gear_intellect=80
    # gear_spirit=80
    # gear_expertise_rating=2471
    # gear_hit_rating=1648
    # gear_crit_rating=7480
    # gear_haste_rating=3483
    # gear_mastery_rating=9402
    # gear_armor=20184
    # meta_gem=agile_primal
    # tier15_2pc_melee=1
    # tier15_4pc_melee=1
    # trinket1=rune_of_reorigination,heroic=1
    # main_hand=darkwood_spiritstaff,heroic=1,weapon=staff_3.30speed_16964min_25448max,enchant=dancing_steel


Most of the changes were fairly DPS neutral in DoC but in HotW gained ~4k dps vs This and ~2k This lowering the theoretical gap to ~4.5% vs ~6.1% or ~5.3% respectively (or even as low as ~3.1% if you take out NS which might happen next patch). I'm guessing this is because HotW is far more sensitive to good rake/rip code since the DoC buff largely controls when bleeds get overwritten for that talent.

Broken up to match the groupings I used internally for the ovale script, makes it a bit easier to read.

What''s the deal with crit damage in simcraft? The documentation said that tick_dmg takes crit into account but when I was making the ravage code I had to add crits to all 3 (current tick, new potential tick and ravage use) for it to work well (since ravage has an increased crit chance at high health). I did a few tests this morning. After turning off skull banner, action.mangle.hit_damage == action.mangle.crit_damage meaning that it is not factoring in crit. Applying 1+crit chance only to mangle is a massive dps loss as well as applying it to mangle + either of the bleeds (in case one of them was inaccurate) or both/one bleed(s) and not mangle (which should be all possible combinations besides none which is what it was before) I'm thinking that none of these factor in crit %. However, adding the supposedly snapshotted crit chance to the bleeds actually makes dps go down ever so slightly vs just applying the current crit chance to both? Something seems fishy here, anyone more familiar with simcraft wanna tell me what's going on?

I'm not really that great at working with simcraft to try and work out better ways of doing things so looking forward to what you all come up with for the next patch (cd reduction trinket is probably gonna be fun to sim...).

EDIT: A couple more thoughts on crit in simcraft
Last edited by ShmooDude on Mon Jul 22, 2013 12:00 pm, edited 2 times in total.

Revered
User avatar
Posts: 309
Joined: Tue Oct 23, 2012 4:19 am

Re: Simulationcraft - Feral rotation discussion and script

Postby Alpheus » Sun Jul 21, 2013 6:52 pm

raffy wrote:I think, if there is a free GCD, you could go Bear, and pop 3 Treants over ~1sec with +50% Crit/Haste, Maul, and go back to Cat for a few extra seconds of stats. But in practice, this is probably too difficult/silly to do.


raffy wrote:Guardians reflect your stats, so yeah, going Bear, your Tree's (for the first few seconds) benefit from like +10% Haste, +7% Crit (for my gear). I've confirmed this.

However, they don't seem to benefit from Skull Banner.


Keep in mind that if rune stays BiS for next tier (or at least for some reasonable amount of time like TF upgrade from last boss or HC gear) then bear-shifting for treant/thrash/maul should be avoided because of the risk of procing non-mastery runes.
Image

Exalted
Posts: 769
Joined: Tue Oct 23, 2012 7:15 am

Re: Simulationcraft - Feral rotation discussion and script

Postby raffy » Mon Jul 22, 2013 6:15 am

@Alpheus
Yea, it was purely speculative analysis. Current raid ability lag makes quick Bear swaps impractical in practice.

It will be pretty difficult to drop Rune and I don't foresee any upcoming nerfs. The main abuser was WW and Blizzard correctly fixed the core problem (WW mastery) rather than bandaiding it by nerfing the Rune.

While many people seem to claim the "Rune is OP", it is significantly different for Feral than it is/was for WW. Clicking a single off-gcd, 0-resource ability (TeB) once during a 10sec proc is completely different trying to get multiple, powerful bleeds snapshot during the proc.

@ShmooDude
I'll try to test some of these changes in Catus soon.
Image

PreviousNext

Return to Kitty DPS

Who is online

Users browsing this forum: Bing [Bot] and 2 guests