You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1509 lines
98 KiB
1509 lines
98 KiB
|
|
HekiliDB = {
|
|
["namespaces"] = {
|
|
["LibDualSpec-1.0"] = {
|
|
},
|
|
},
|
|
["profileKeys"] = {
|
|
["Nighquill - Doomhammer"] = "Default",
|
|
["Nighquill - Deathwing"] = "Default",
|
|
},
|
|
["profiles"] = {
|
|
["Default"] = {
|
|
["runOnce"] = {
|
|
["forceReloadAllDefaultPriorities_20220228"] = true,
|
|
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
|
|
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
|
|
["forceReloadClassDefaultOptions_20220306_71"] = true,
|
|
["forceReloadClassDefaultOptions_20220306_72"] = true,
|
|
["resetAberrantPackageDates_20190728_1"] = true,
|
|
["forceReloadClassDefaultOptions_20220306_73"] = true,
|
|
["forceSpellFlashBrightness_20221030"] = true,
|
|
},
|
|
["specs"] = {
|
|
[73] = {
|
|
["settings"] = {
|
|
["shield_wall_amount"] = 50,
|
|
["rallying_cry_amount"] = 50,
|
|
["reserve_rage"] = 35,
|
|
["rallying_cry_health"] = 50,
|
|
["shockwave_interrupt"] = true,
|
|
["shield_wall_health"] = 50,
|
|
["last_stand_health"] = 50,
|
|
["last_stand_offensively"] = false,
|
|
["stack_shield_block"] = false,
|
|
["stance_weaving"] = false,
|
|
["shield_wall_condition"] = false,
|
|
["last_stand_amount"] = 50,
|
|
["rallying_cry_condition"] = false,
|
|
["last_stand_condition"] = false,
|
|
["overlap_ignore_pain"] = false,
|
|
},
|
|
},
|
|
[71] = {
|
|
["settings"] = {
|
|
["heroic_charge"] = false,
|
|
["shockwave_interrupt"] = true,
|
|
},
|
|
},
|
|
[72] = {
|
|
["settings"] = {
|
|
["check_ww_range"] = false,
|
|
["shockwave_interrupt"] = true,
|
|
["t30_bloodthirst_crit"] = 95,
|
|
["heroic_charge"] = false,
|
|
},
|
|
},
|
|
},
|
|
["packs"] = {
|
|
["Fury"] = {
|
|
["source"] = "https://github.com/simulationcraft/simc/",
|
|
["builtIn"] = true,
|
|
["date"] = 20240508,
|
|
["author"] = "SimC",
|
|
["desc"] = "2024-05-08: SimC update.\n\n2024-03-17: Tweak Thunderous Roar usage.\n\n2024-02-03: Minor SimC update.\n\n2024-01-14: Ensure Avatar is up before Thunderous Roar.\n\n2023-11-27: Big axe.\n\n2023-11-22: Update to SimC.\n\n2023-11-15: Allow Avatar with Titan's Torment but without Odyn's Fury.\n\n2023-11-08: Minor sim updates.\n\n2023-11-05: Patch 10.2.\n\n2023-07-11: Update trinkets for 10.1.5.\n\n2023-05-20: Trinket/CD update.\n\n2023-05-14: Add slider for Tier 30 crit % setting.\n\n2023-05-04: Updates related to Tier 30.\n\n2023-05-02: Update for 10.1.\n\n2023-03-26: Include Spell Reflection; remove Heroic Leap.",
|
|
["profile"] = "actions.precombat+=/berserker_stance\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/avatar,if=!talent.titans_torment\nactions.precombat+=/recklessness,if=!talent.reckless_abandon\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\n# Evaluates a trinkets cooldown, divided by avatar or odyns fur. If it's value has no remainder return 1, else return 0.5.\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(trinket.1.cooldown.duration%%cooldown.avatar.duration=0||trinket.1.cooldown.duration%%cooldown.odyns_fury.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(trinket.2.cooldown.duration%%cooldown.avatar.duration=0||trinket.2.cooldown.duration%%cooldown.odyns_fury.duration=0)\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_buff.strength||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit&!variable.trinket_1_exclude)\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_buff.strength||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit&!variable.trinket_2_exclude)\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box\n\nactions+=/charge,if=time<=0.5||movement.distance>5\n## actions+=/heroic_leap,if=(raid_event.movement.distance>25&raid_event.movement.in>45)\nactions+=/pummel\nactions+=/spell_reflection\nactions+=/potion\nactions+=/call_action_list,name=trinkets\nactions+=/ravager,if=cooldown.recklessness.remains<3||buff.recklessness.up\nactions+=/lights_judgment,if=buff.recklessness.down\nactions+=/berserking,if=buff.recklessness.up\nactions+=/blood_fury\nactions+=/fireblood\nactions+=/ancestral_call\n## actions+=/invoke_external_buff,name=power_infusion,if=buff.avatar.remains>15&fight_remains>=135||(target.health.pct<35&talent.massacre||target.health.pct<20)&buff.avatar.up||fight_remains<=25\nactions+=/avatar,if=talent.titans_torment&buff.enrage.up&raid_event.adds.in>15&!buff.avatar.up&(!talent.odyns_fury||cooldown.odyns_fury.remains)||talent.berserkers_torment&buff.enrage.up&!buff.avatar.up&raid_event.adds.in>15||!talent.titans_torment&!talent.berserkers_torment&(buff.recklessness.up||target.time_to_die<20)\nactions+=/recklessness,if=!raid_event.adds.exists&(talent.annihilator&cooldown.champions_spear.remains<1||cooldown.avatar.remains>40||!talent.avatar||target.time_to_die<12)\nactions+=/recklessness,if=!raid_event.adds.exists&!talent.annihilator||target.time_to_die<12\nactions+=/champions_spear,if=buff.enrage.up&((buff.furious_bloodthirst.up&talent.titans_torment)||!talent.titans_torment||target.time_to_die<20||active_enemies>1||!set_bonus.tier31_2pc)&raid_event.adds.in>15\nactions+=/run_action_list,name=multi_target,strict=1,if=active_enemies>=2\nactions+=/run_action_list,name=single_target,strict=1,if=active_enemies=1\n\nactions.multi_target+=/recklessness,if=raid_event.adds.in>15||active_enemies>1||target.time_to_die<12\nactions.multi_target+=/odyns_fury,if=active_enemies>1&talent.titanic_rage&(!buff.meat_cleaver.up||buff.avatar.up||buff.recklessness.up)\nactions.multi_target+=/whirlwind,if=spell_targets.whirlwind>1&talent.improved_whirlwind&!buff.meat_cleaver.up||raid_event.adds.in<2&talent.improved_whirlwind&!buff.meat_cleaver.up\nactions.multi_target+=/execute,if=buff.ashen_juggernaut.up&buff.ashen_juggernaut.remains<gcd\nactions.multi_target+=/rampage,if=talent.anger_management&(buff.recklessness.up||buff.enrage.remains<gcd||rage.pct>85)\nactions.multi_target+=/thunderous_roar,if=buff.enrage.up&(buff.avatar.up||(!talent.avatar||cooldown.avatar.remains>6)&(!talent.titans_torment||cooldown.odyns_fury.remains>6))&(spell_targets.whirlwind>1||raid_event.adds.in>15)\nactions.multi_target+=/odyns_fury,if=active_enemies>1&buff.enrage.up&raid_event.adds.in>15\nactions.multi_target+=/whirlwind,if=buff.meat_cleaver.stack=1&buff.hurricane.up&rage<80&rage>60\nactions.multi_target+=/bloodbath,if=set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=95||set_bonus.tier31_4pc\nactions.multi_target+=/bloodthirst,if=(set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=95)||(!talent.reckless_abandon&buff.furious_bloodthirst.up&buff.enrage.up)\nactions.multi_target+=/crushing_blow,if=talent.wrath_and_fury&buff.enrage.up\nactions.multi_target+=/odyns_fury,if=buff.enrage.up&raid_event.adds.in>15\nactions.multi_target+=/rampage,if=buff.recklessness.up||buff.enrage.remains<gcd||(rage>110&talent.overwhelming_rage)||(rage>80&!talent.overwhelming_rage)\nactions.multi_target+=/bloodbath,if=buff.enrage.up&talent.reckless_abandon&!talent.wrath_and_fury\nactions.multi_target+=/execute,if=buff.enrage.up&talent.ashen_juggernaut\nactions.multi_target+=/bloodthirst,if=buff.enrage.down||(talent.annihilator&!buff.recklessness.up)\nactions.multi_target+=/onslaught,if=!talent.annihilator&buff.enrage.up||talent.tenderize\nactions.multi_target+=/execute,if=buff.enrage.up\nactions.multi_target+=/raging_blow,if=charges>1&talent.wrath_and_fury\nactions.multi_target+=/crushing_blow,if=charges>1&talent.wrath_and_fury\nactions.multi_target+=/bloodbath,if=buff.enrage.down||!talent.wrath_and_fury\nactions.multi_target+=/crushing_blow,if=buff.enrage.up&talent.reckless_abandon\nactions.multi_target+=/bloodthirst,if=!talent.wrath_and_fury\nactions.multi_target+=/raging_blow,if=charges>=1\nactions.multi_target+=/rampage\nactions.multi_target+=/slam,if=talent.annihilator\nactions.multi_target+=/bloodbath\nactions.multi_target+=/raging_blow\nactions.multi_target+=/crushing_blow\nactions.multi_target+=/bloodthirst\nactions.multi_target+=/whirlwind\n\nactions.single_target+=/whirlwind,if=spell_targets.whirlwind>1&talent.improved_whirlwind&!buff.meat_cleaver.up||raid_event.adds.in<2&talent.improved_whirlwind&!buff.meat_cleaver.up\nactions.single_target+=/execute,if=buff.ashen_juggernaut.up&buff.ashen_juggernaut.remains<gcd\nactions.single_target+=/odyns_fury,if=(buff.enrage.up&(spell_targets.whirlwind>1||raid_event.adds.in>15)&(talent.dancing_blades&buff.dancing_blades.remains<5||!talent.dancing_blades))\nactions.single_target+=/rampage,if=talent.anger_management&(buff.recklessness.up||buff.enrage.remains<gcd||rage.pct>85)\nactions.single_target+=/bloodbath,if=set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=95\nactions.single_target+=/bloodthirst,if=(set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=95)||(!talent.reckless_abandon&buff.furious_bloodthirst.up&buff.enrage.up&(!dot.gushing_wound.remains||buff.champions_might.up))\nactions.single_target+=/bloodbath,if=set_bonus.tier31_2pc\nactions.single_target+=/thunderous_roar,if=buff.enrage.up&(buff.avatar.up||(!talent.avatar||cooldown.avatar.remains>6)&(!talent.titans_torment||cooldown.odyns_fury.remains>6))&(spell_targets.whirlwind>1||raid_event.adds.in>15)\nactions.single_target+=/onslaught,if=buff.enrage.up||talent.tenderize\nactions.single_target+=/crushing_blow,if=talent.wrath_and_fury&buff.enrage.up&!buff.furious_bloodthirst.up\nactions.single_target+=/execute,if=buff.enrage.up&!buff.furious_bloodthirst.up&buff.ashen_juggernaut.up||buff.sudden_death.remains<=gcd&(target.health.pct>35&talent.massacre||target.health.pct>20)\nactions.single_target+=/rampage,if=talent.reckless_abandon&(buff.recklessness.up||buff.enrage.remains<gcd||rage.pct>85)\nactions.single_target+=/execute,if=buff.enrage.up\nactions.single_target+=/rampage,if=talent.anger_management\nactions.single_target+=/execute\nactions.single_target+=/bloodbath,if=buff.enrage.up&talent.reckless_abandon&!talent.wrath_and_fury\nactions.single_target+=/rampage,if=target.health.pct<35&talent.massacre.enabled\nactions.single_target+=/bloodthirst,if=(buff.enrage.down||(talent.annihilator&!buff.recklessness.up))&!buff.furious_bloodthirst.up\nactions.single_target+=/raging_blow,if=charges>1&talent.wrath_and_fury\nactions.single_target+=/crushing_blow,if=charges>1&talent.wrath_and_fury&!buff.furious_bloodthirst.up\nactions.single_target+=/bloodbath,if=buff.enrage.down||!talent.wrath_and_fury\nactions.single_target+=/crushing_blow,if=buff.enrage.up&talent.reckless_abandon&!buff.furious_bloodthirst.up\nactions.single_target+=/bloodthirst,if=!talent.wrath_and_fury&!buff.furious_bloodthirst.up\nactions.single_target+=/raging_blow,if=charges>1\nactions.single_target+=/rampage\nactions.single_target+=/slam,if=talent.annihilator\nactions.single_target+=/bloodbath\nactions.single_target+=/raging_blow\nactions.single_target+=/crushing_blow,if=!buff.furious_bloodthirst.up\nactions.single_target+=/bloodthirst\nactions.single_target+=/whirlwind\nactions.single_target+=/wrecking_throw\nactions.single_target+=/storm_bolt\n\n# Trinkets\nactions.trinkets+=/use_item,name=fyralath_the_dreamrender,if=dot.mark_of_fyralath.ticking&!buff.avatar.up\nactions.trinkets+=/use_item,use_off_gcd=1,name=algethar_puzzle_box,if=cooldown.recklessness.remains<3||(talent.anger_management&cooldown.avatar.remains<3)\n# Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.avatar.up&trinket.1.cast_time>0||!trinket.1.cast_time>0)&(buff.avatar.up)&(variable.trinket_2_exclude||!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&(!buff.avatar.up&trinket.2.cast_time>0||!trinket.2.cast_time>0)&(buff.avatar.up)&(variable.trinket_1_exclude||!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.proc.any_dps.duration>=fight_remains\n# If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&(!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs)||(trinket.1.cast_time>0&!buff.avatar.up||!trinket.1.cast_time>0)||cooldown.avatar.remains_expected>20)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&(!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs)||(trinket.2.cast_time>0&!buff.avatar.up||!trinket.2.cast_time>0)||cooldown.avatar.remains_expected>20)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=main_hand,if=!equipped.fyralath_the_dreamrender&(!variable.trinket_1_buffs||trinket.1.cooldown.remains)&(!variable.trinket_2_buffs||trinket.2.cooldown.remains)\n\n# Variables\nactions.variables+=/variable,name=st_planning,value=active_enemies=1&(raid_event.adds.in>15||!raid_event.adds.exists)\nactions.variables+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.remains>5)",
|
|
["version"] = 20240508,
|
|
["warnings"] = "The import for 'single_target' required some automated changes.\nLine 1: Converted 'talent.improved_whirlwind' to 'talent.improved_whirlwind.enabled' (1x).\nLine 1: Converted 'talent.improved_whirlwind' to 'talent.improved_whirlwind.enabled' (1x).\nLine 3: Converted 'talent.dancing_blades' to 'talent.dancing_blades.enabled' (1x).\nLine 3: Converted 'talent.dancing_blades' to 'talent.dancing_blades.enabled' (1x).\nLine 4: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 6: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 8: Converted 'talent.avatar' to 'talent.avatar.enabled' (1x).\nLine 8: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 9: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 10: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 11: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 12: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 14: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 16: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 16: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 18: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 19: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 20: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 21: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 22: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 23: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 26: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 12: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 12: Converted 'talent.odyns_fury' to 'talent.odyns_fury.enabled' (1x).\nLine 12: Converted 'talent.berserkers_torment' to 'talent.berserkers_torment.enabled' (1x).\nLine 12: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 12: Converted 'talent.berserkers_torment' to 'talent.berserkers_torment.enabled' (1x).\nLine 13: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 13: Converted 'talent.avatar' to 'talent.avatar.enabled' (1x).\nLine 14: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 15: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 15: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 6: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 6: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 7: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 7: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 8: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 8: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 8: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 8: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 8: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 8: Converted operations in 'trinket.t1.has_use_buff&(trinket.t1.cooldown.duration%%cooldown.avatar.duration=0||trinket.t1.cooldown.duration%%cooldown.odyns_fury.duration=0)' to 'trinket.t1.has_use_buff&(trinket.t1.cooldown.duration%cooldown.avatar.duration=0||trinket.t1.cooldown.duration%cooldown.odyns_fury.duration=0)'.\nLine 9: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 9: Converted operations in 'trinket.t2.has_use_buff&(trinket.t2.cooldown.duration%%cooldown.avatar.duration=0||trinket.t2.cooldown.duration%%cooldown.odyns_fury.duration=0)' to 'trinket.t2.has_use_buff&(trinket.t2.cooldown.duration%cooldown.avatar.duration=0||trinket.t2.cooldown.duration%cooldown.odyns_fury.duration=0)'.\nLine 10: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 10: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 10: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 10: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 10: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 10: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 11: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 11: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 11: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 11: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 11: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 12: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 12: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 12: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 12: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 12: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 12: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 12: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 12: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 12: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 12: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 12: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 12: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 12: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration%trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration%trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))' to '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration/trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration/trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))'.\nLine 13: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 14: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'trinkets' required some automated changes.\nLine 2: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 4: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 4: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 7: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 7: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\n\nThe import for 'multi_target' required some automated changes.\nLine 2: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 3: Converted 'talent.improved_whirlwind' to 'talent.improved_whirlwind.enabled' (1x).\nLine 3: Converted 'talent.improved_whirlwind' to 'talent.improved_whirlwind.enabled' (1x).\nLine 5: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 6: Converted 'talent.avatar' to 'talent.avatar.enabled' (1x).\nLine 6: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 10: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 11: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 13: Converted 'talent.overwhelming_rage' to 'talent.overwhelming_rage.enabled' (1x).\nLine 13: Converted 'talent.overwhelming_rage' to 'talent.overwhelming_rage.enabled' (1x).\nLine 14: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 14: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 15: Converted 'talent.ashen_juggernaut' to 'talent.ashen_juggernaut.enabled' (1x).\nLine 16: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 17: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 17: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 19: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 20: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 21: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 22: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 23: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 26: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\n\nImported 6 action lists.\n",
|
|
["lists"] = {
|
|
["single_target"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "spell_targets.whirlwind > 1 & talent.improved_whirlwind.enabled & ! buff.meat_cleaver.up || raid_event.adds.in < 2 & talent.improved_whirlwind.enabled & ! buff.meat_cleaver.up",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.ashen_juggernaut.up & buff.ashen_juggernaut.remains < gcd.max",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( buff.enrage.up & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 ) & ( talent.dancing_blades.enabled & buff.dancing_blades.remains < 5 || ! talent.dancing_blades.enabled ) )",
|
|
["action"] = "odyns_fury",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.anger_management.enabled & ( buff.recklessness.up || buff.enrage.remains < gcd.max || rage.pct > 85 )",
|
|
["action"] = "rampage",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= 95",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= 95 ) || ( ! talent.reckless_abandon.enabled & buff.furious_bloodthirst.up & buff.enrage.up & ( ! dot.gushing_wound.remains || buff.champions_might.up ) )",
|
|
["action"] = "bloodthirst",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "set_bonus.tier31_2pc",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & ( buff.avatar.up || ( ! talent.avatar.enabled || cooldown.avatar.remains > 6 ) & ( ! talent.titans_torment.enabled || cooldown.odyns_fury.remains > 6 ) ) & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 )",
|
|
["action"] = "thunderous_roar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up || talent.tenderize.enabled",
|
|
["action"] = "onslaught",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.wrath_and_fury.enabled & buff.enrage.up & ! buff.furious_bloodthirst.up",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & ! buff.furious_bloodthirst.up & buff.ashen_juggernaut.up || buff.sudden_death.remains <= gcd.max & ( target.health.pct > 35 & talent.massacre.enabled || target.health.pct > 20 )",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.reckless_abandon.enabled & ( buff.recklessness.up || buff.enrage.remains < gcd.max || rage.pct > 85 )",
|
|
["action"] = "rampage",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.anger_management.enabled",
|
|
["action"] = "rampage",
|
|
},
|
|
{
|
|
["action"] = "execute",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! talent.wrath_and_fury.enabled",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "target.health.pct < 35 & talent.massacre.enabled",
|
|
["action"] = "rampage",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( buff.enrage.down || ( talent.annihilator.enabled & ! buff.recklessness.up ) ) & ! buff.furious_bloodthirst.up",
|
|
["action"] = "bloodthirst",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
|
|
["action"] = "raging_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled & ! buff.furious_bloodthirst.up",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.down || ! talent.wrath_and_fury.enabled",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! buff.furious_bloodthirst.up",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.wrath_and_fury.enabled & ! buff.furious_bloodthirst.up",
|
|
["action"] = "bloodthirst",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges > 1",
|
|
["action"] = "raging_blow",
|
|
},
|
|
{
|
|
["action"] = "rampage",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.annihilator.enabled",
|
|
["action"] = "slam",
|
|
},
|
|
{
|
|
["action"] = "bloodbath",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "raging_blow",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! buff.furious_bloodthirst.up",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["action"] = "bloodthirst",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "whirlwind",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "wrecking_throw",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "storm_bolt",
|
|
["enabled"] = true,
|
|
},
|
|
},
|
|
["default"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "time <= 0.5 || movement.distance > 5",
|
|
["action"] = "charge",
|
|
},
|
|
{
|
|
["action"] = "pummel",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "spell_reflection",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "potion",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "call_action_list",
|
|
["list_name"] = "trinkets",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "cooldown.recklessness.remains < 3 || buff.recklessness.up",
|
|
["action"] = "ravager",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.recklessness.down",
|
|
["action"] = "lights_judgment",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.recklessness.up",
|
|
["action"] = "berserking",
|
|
},
|
|
{
|
|
["action"] = "blood_fury",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "fireblood",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "ancestral_call",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.titans_torment.enabled & buff.enrage.up & raid_event.adds.in > 15 & ! buff.avatar.up & ( ! talent.odyns_fury.enabled || cooldown.odyns_fury.remains ) || talent.berserkers_torment.enabled & buff.enrage.up & ! buff.avatar.up & raid_event.adds.in > 15 || ! talent.titans_torment.enabled & ! talent.berserkers_torment.enabled & ( buff.recklessness.up || target.time_to_die < 20 )",
|
|
["action"] = "avatar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! raid_event.adds.exists & ( talent.annihilator.enabled & cooldown.champions_spear.remains < 1 || cooldown.avatar.remains > 40 || ! talent.avatar.enabled || target.time_to_die < 12 )",
|
|
["action"] = "recklessness",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! raid_event.adds.exists & ! talent.annihilator.enabled || target.time_to_die < 12",
|
|
["action"] = "recklessness",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & ( ( buff.furious_bloodthirst.up & talent.titans_torment.enabled ) || ! talent.titans_torment.enabled || target.time_to_die < 20 || active_enemies > 1 || ! set_bonus.tier31_2pc ) & raid_event.adds.in > 15",
|
|
["action"] = "champions_spear",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "run_action_list",
|
|
["strict"] = 1,
|
|
["criteria"] = "active_enemies >= 2",
|
|
["list_name"] = "multi_target",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "run_action_list",
|
|
["strict"] = 1,
|
|
["criteria"] = "active_enemies = 1",
|
|
["list_name"] = "single_target",
|
|
},
|
|
},
|
|
["precombat"] = {
|
|
{
|
|
["action"] = "berserker_stance",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "battle_shout",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "algethar_puzzle_box",
|
|
["action"] = "algethar_puzzle_box",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.titans_torment.enabled",
|
|
["action"] = "avatar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.reckless_abandon.enabled",
|
|
["action"] = "recklessness",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
|
|
["var_name"] = "trinket_1_exclude",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
|
|
["var_name"] = "trinket_2_exclude",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "setif",
|
|
["description"] = "Evaluates a trinkets cooldown, divided by avatar or odyns fur. If it's value has no remainder return 1, else return 0.5.",
|
|
["var_name"] = "trinket_1_sync",
|
|
["value"] = "1",
|
|
["action"] = "variable",
|
|
["value_else"] = "0.5",
|
|
["criteria"] = "trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration % cooldown.avatar.duration = 0 || trinket.t1.cooldown.duration % cooldown.odyns_fury.duration = 0 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "setif",
|
|
["action"] = "variable",
|
|
["var_name"] = "trinket_2_sync",
|
|
["value"] = "1",
|
|
["value_else"] = "0.5",
|
|
["criteria"] = "trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration % cooldown.avatar.duration = 0 || trinket.t2.cooldown.duration % cooldown.odyns_fury.duration = 0 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff & ! variable.trinket_1_exclude )",
|
|
["var_name"] = "trinket_1_buffs",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff & ! variable.trinket_2_exclude )",
|
|
["var_name"] = "trinket_2_buffs",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "setif",
|
|
["action"] = "variable",
|
|
["var_name"] = "trinket_priority",
|
|
["value"] = "2",
|
|
["value_else"] = "1",
|
|
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t1.is.algethar_puzzle_box",
|
|
["var_name"] = "trinket_1_manual",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t2.is.algethar_puzzle_box",
|
|
["var_name"] = "trinket_2_manual",
|
|
},
|
|
},
|
|
["variables"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "active_enemies = 1 & ( raid_event.adds.in > 15 || ! raid_event.adds.exists )",
|
|
["var_name"] = "st_planning",
|
|
["description"] = "Variables",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "active_enemies >= 2 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.remains > 5 )",
|
|
["var_name"] = "adds_remain",
|
|
},
|
|
},
|
|
["trinkets"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "fyralath_the_dreamrender",
|
|
["action"] = "fyralath_the_dreamrender",
|
|
["criteria"] = "dot.mark_of_fyralath.ticking & ! buff.avatar.up",
|
|
["description"] = "Trinkets",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "algethar_puzzle_box",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "cooldown.recklessness.remains < 3 || ( talent.anger_management.enabled & cooldown.avatar.remains < 3 )",
|
|
["action"] = "algethar_puzzle_box",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket1",
|
|
["slot"] = "trinket1",
|
|
["use_off_gcd"] = 1,
|
|
["description"] = "Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.",
|
|
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! buff.avatar.up & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & ( buff.avatar.up ) & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket2",
|
|
["slot"] = "trinket2",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! buff.avatar.up & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & ( buff.avatar.up ) & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket1",
|
|
["slot"] = "trinket1",
|
|
["use_off_gcd"] = 1,
|
|
["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.",
|
|
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) || ( trinket.t1.cast_time > 0 & ! buff.avatar.up || ! trinket.t1.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket2",
|
|
["slot"] = "trinket2",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs ) || ( trinket.t2.cast_time > 0 & ! buff.avatar.up || ! trinket.t2.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "main_hand",
|
|
["slot"] = "main_hand",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "! equipped.fyralath_the_dreamrender & ( ! variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( ! variable.trinket_2_buffs || trinket.t2.cooldown.remains )",
|
|
},
|
|
},
|
|
["multi_target"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 15 || active_enemies > 1 || target.time_to_die < 12",
|
|
["action"] = "recklessness",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "active_enemies > 1 & talent.titanic_rage.enabled & ( ! buff.meat_cleaver.up || buff.avatar.up || buff.recklessness.up )",
|
|
["action"] = "odyns_fury",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "spell_targets.whirlwind > 1 & talent.improved_whirlwind.enabled & ! buff.meat_cleaver.up || raid_event.adds.in < 2 & talent.improved_whirlwind.enabled & ! buff.meat_cleaver.up",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.ashen_juggernaut.up & buff.ashen_juggernaut.remains < gcd.max",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.anger_management.enabled & ( buff.recklessness.up || buff.enrage.remains < gcd.max || rage.pct > 85 )",
|
|
["action"] = "rampage",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & ( buff.avatar.up || ( ! talent.avatar.enabled || cooldown.avatar.remains > 6 ) & ( ! talent.titans_torment.enabled || cooldown.odyns_fury.remains > 6 ) ) & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 )",
|
|
["action"] = "thunderous_roar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "active_enemies > 1 & buff.enrage.up & raid_event.adds.in > 15",
|
|
["action"] = "odyns_fury",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.meat_cleaver.stack = 1 & buff.hurricane.up & rage < 80 & rage > 60",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= 95 || set_bonus.tier31_4pc",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= 95 ) || ( ! talent.reckless_abandon.enabled & buff.furious_bloodthirst.up & buff.enrage.up )",
|
|
["action"] = "bloodthirst",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.wrath_and_fury.enabled & buff.enrage.up",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & raid_event.adds.in > 15",
|
|
["action"] = "odyns_fury",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.recklessness.up || buff.enrage.remains < gcd.max || ( rage > 110 & talent.overwhelming_rage.enabled ) || ( rage > 80 & ! talent.overwhelming_rage.enabled )",
|
|
["action"] = "rampage",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! talent.wrath_and_fury.enabled",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & talent.ashen_juggernaut.enabled",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.down || ( talent.annihilator.enabled & ! buff.recklessness.up )",
|
|
["action"] = "bloodthirst",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.annihilator.enabled & buff.enrage.up || talent.tenderize.enabled",
|
|
["action"] = "onslaught",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
|
|
["action"] = "raging_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.down || ! talent.wrath_and_fury.enabled",
|
|
["action"] = "bloodbath",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled",
|
|
["action"] = "crushing_blow",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.wrath_and_fury.enabled",
|
|
["action"] = "bloodthirst",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges >= 1",
|
|
["action"] = "raging_blow",
|
|
},
|
|
{
|
|
["action"] = "rampage",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.annihilator.enabled",
|
|
["action"] = "slam",
|
|
},
|
|
{
|
|
["action"] = "bloodbath",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "raging_blow",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "crushing_blow",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "bloodthirst",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "whirlwind",
|
|
["enabled"] = true,
|
|
},
|
|
},
|
|
},
|
|
["spec"] = 72,
|
|
},
|
|
["Protection Warrior"] = {
|
|
["source"] = "https://github.com/simulationcraft/simc/",
|
|
["builtIn"] = true,
|
|
["date"] = 20240116,
|
|
["spec"] = 73,
|
|
["desc"] = "2023-11-05: Patch 10.2.\n\n2023-05-28: Update to Shield Slam usage in AOE.\n\n2023-05-20: Shield Wall minor update.\n\n2023-05-08: Add additional Execute in single-target if Rage is 50+ (still impacted by Reserve Rage for Mitigation option).\n\n2023-04-30: 2nd minor update.\n\n2023-04-26: Minor update from SimulationCraft for 10.1.\n\n2023-03-26: Shift Shield Charge and Charge above Pummel and Spell Reflection.",
|
|
["profile"] = "actions.precombat+=/defensive_stance,if=buff.stance.down\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/avatar,if=!talent.titans_torment\nactions.precombat+=/recklessness,if=!talent.reckless_abandon\n\n# Executed every time the actor is available.\nactions+=/shield_charge,if=time=0\nactions+=/charge,if=time=0\nactions+=/pummel\nactions+=/spell_reflection\nactions+=/use_items\nactions+=/avatar\n# Usage of Shield Wall is governed by specialization settings; see /hekili > Protection.\nactions+=/shield_wall,if=talent.immovable_object.enabled&buff.avatar.down\nactions+=/blood_fury\nactions+=/berserking\nactions+=/arcane_torrent\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/potion,if=buff.avatar.up\nactions+=/ignore_pain,if=target.health.pct>=20&(rage.deficit<=15&cooldown.shield_slam.ready||rage.deficit<=40&cooldown.shield_charge.ready&talent.champions_bulwark.enabled||rage.deficit<=20&cooldown.shield_charge.ready||rage.deficit<=30&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled||rage.deficit<=20&cooldown.avatar.ready||rage.deficit<=45&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled&buff.last_stand.up&talent.unnerving_focus.enabled||rage.deficit<=30&cooldown.avatar.ready&buff.last_stand.up&talent.unnerving_focus.enabled||rage.deficit<=20||rage.deficit<=40&cooldown.shield_slam.ready&buff.violent_outburst.up&talent.heavy_repercussions.enabled&talent.impenetrable_wall.enabled||rage.deficit<=55&cooldown.shield_slam.ready&buff.violent_outburst.up&buff.last_stand.up&talent.unnerving_focus.enabled&talent.heavy_repercussions.enabled&talent.impenetrable_wall.enabled||rage.deficit<=17&cooldown.shield_slam.ready&talent.heavy_repercussions.enabled||rage.deficit<=18&cooldown.shield_slam.ready&talent.impenetrable_wall.enabled)||(rage>=70||buff.seeing_red.stack=7&rage>=35)&cooldown.shield_slam.remains<=1&buff.shield_block.remains>=4&set_bonus.tier31_2pc,use_off_gcd=1\n# Usage of Last Stand is also governed by specialization settings; see /hekili > Protection.\nactions+=/last_stand,if=talent.unnerving_focus&(target.health.pct>=90||target.health.pct<=20)||talent.bolster&buff.shield_block.down||!talent.bolster&!talent.unnerving_focus||set_bonus.tier30_2pc>0\n# Usage of Rallying Cry is governed by specialization settings; see /hekili > Protection.\nactions+=/rallying_cry\nactions+=/ravager\nactions+=/demoralizing_shout,if=talent.booming_voice.enabled\nactions+=/champions_spear\nactions+=/thunderous_roar\nactions+=/shield_slam,if=buff.fervid.up\nactions+=/shockwave,if=talent.sonic_boom.enabled&buff.avatar.up&talent.unstoppable_force.enabled&!talent.rumbling_earth.enabled||talent.sonic_boom.enabled&talent.rumbling_earth.enabled&spell_targets.shockwave>=3\nactions+=/shield_charge\nactions+=/shield_block,if=buff.shield_block.duration<=10\nactions+=/run_action_list,name=aoe,strict=1,if=spell_targets.thunder_clap>=3\nactions+=/call_action_list,name=generic\n\nactions.aoe+=/thunder_clap,if=dot.rend.remains<=1&talent.blood_and_thunder&talent.rend\nactions.aoe+=/shield_slam,if=(set_bonus.tier30_2pc||set_bonus.tier30_4pc)&spell_targets.thunder_clap<=7||buff.earthen_tenacity.up\nactions.aoe+=/thunder_clap,if=buff.violent_outburst.up&spell_targets.thunderclap>6&buff.avatar.up&talent.unstoppable_force.enabled\nactions.aoe+=/revenge,if=rage>=70&talent.seismic_reverberation.enabled&spell_targets.revenge>=3\nactions.aoe+=/shield_slam,if=rage<=60||buff.violent_outburst.up&spell_targets.thunderclap<=7\nactions.aoe+=/thunder_clap\nactions.aoe+=/revenge,if=rage>=30||rage>=40&talent.barbaric_training.enabled\n\nactions.generic+=/shield_slam\nactions.generic+=/thunder_clap,if=dot.rend.remains<=2&buff.violent_outburst.down\nactions.generic+=/execute,if=buff.sudden_death.up&talent.sudden_death.enabled\nactions.generic+=/execute\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>1||cooldown.shield_slam.remains&!buff.violent_outburst.up)\nactions.generic+=/revenge,if=(rage>=80&target.health.pct>20||buff.revenge.up&target.health.pct<=20&rage<=18&cooldown.shield_slam.remains||buff.revenge.up&target.health.pct>20)||(rage>=80&target.health.pct>35||buff.revenge.up&target.health.pct<=35&rage<=18&cooldown.shield_slam.remains||buff.revenge.up&target.health.pct>35)&talent.massacre.enabled\nactions.generic+=/execute,if=spell_targets.revenge=1\nactions.generic+=/revenge,if=target.health>20\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>=1||cooldown.shield_slam.remains&buff.violent_outburst.up)\nactions.generic+=/devastate",
|
|
["version"] = 20240116,
|
|
["warnings"] = "The import for 'aoe' required some automated changes.\nLine 1: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 1: Converted 'talent.rend' to 'talent.rend.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 17: Converted 'talent.unnerving_focus' to 'talent.unnerving_focus.enabled' (1x).\nLine 17: Converted 'talent.bolster' to 'talent.bolster.enabled' (1x).\nLine 17: Converted 'talent.bolster' to 'talent.bolster.enabled' (1x).\nLine 17: Converted 'talent.unnerving_focus' to 'talent.unnerving_focus.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\n\nImported 4 action lists.\n",
|
|
["lists"] = {
|
|
["aoe"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "dot.rend.remains <= 1 & talent.blood_and_thunder.enabled & talent.rend.enabled",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( set_bonus.tier30_2pc || set_bonus.tier30_4pc ) & spell_targets.thunder_clap <= 7 || buff.earthen_tenacity.up",
|
|
["action"] = "shield_slam",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.violent_outburst.up & spell_targets.thunderclap > 6 & buff.avatar.up & talent.unstoppable_force.enabled",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "rage >= 70 & talent.seismic_reverberation.enabled & spell_targets.revenge >= 3",
|
|
["action"] = "revenge",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "rage <= 60 || buff.violent_outburst.up & spell_targets.thunderclap <= 7",
|
|
["action"] = "shield_slam",
|
|
},
|
|
{
|
|
["action"] = "thunder_clap",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "rage >= 30 || rage >= 40 & talent.barbaric_training.enabled",
|
|
["action"] = "revenge",
|
|
},
|
|
},
|
|
["generic"] = {
|
|
{
|
|
["action"] = "shield_slam",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "dot.rend.remains <= 2 & buff.violent_outburst.down",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sudden_death.up & talent.sudden_death.enabled",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["action"] = "execute",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( spell_targets.thunder_clap > 1 || cooldown.shield_slam.remains & ! buff.violent_outburst.up )",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( rage >= 80 & target.health.pct > 20 || buff.revenge.up & target.health.pct <= 20 & rage <= 18 & cooldown.shield_slam.remains || buff.revenge.up & target.health.pct > 20 ) || ( rage >= 80 & target.health.pct > 35 || buff.revenge.up & target.health.pct <= 35 & rage <= 18 & cooldown.shield_slam.remains || buff.revenge.up & target.health.pct > 35 ) & talent.massacre.enabled",
|
|
["action"] = "revenge",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "spell_targets.revenge = 1",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "target.health > 20",
|
|
["action"] = "revenge",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( spell_targets.thunder_clap >= 1 || cooldown.shield_slam.remains & buff.violent_outburst.up )",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["action"] = "devastate",
|
|
["enabled"] = true,
|
|
},
|
|
},
|
|
["default"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "shield_charge",
|
|
["description"] = "Executed every time the actor is available.",
|
|
["criteria"] = "time = 0",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "time = 0",
|
|
["action"] = "charge",
|
|
},
|
|
{
|
|
["action"] = "pummel",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "spell_reflection",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "use_items",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "avatar",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "shield_wall",
|
|
["description"] = "Usage of Shield Wall is governed by specialization settings, see /hekili > Protection.",
|
|
["criteria"] = "talent.immovable_object.enabled & buff.avatar.down",
|
|
},
|
|
{
|
|
["action"] = "blood_fury",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "berserking",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "arcane_torrent",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "lights_judgment",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "fireblood",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "ancestral_call",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "bag_of_tricks",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.avatar.up",
|
|
["action"] = "potion",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "target.health.pct >= 20 & ( rage.deficit <= 15 & cooldown.shield_slam.ready || rage.deficit <= 40 & cooldown.shield_charge.ready & talent.champions_bulwark.enabled || rage.deficit <= 20 & cooldown.shield_charge.ready || rage.deficit <= 30 & cooldown.demoralizing_shout.ready & talent.booming_voice.enabled || rage.deficit <= 20 & cooldown.avatar.ready || rage.deficit <= 45 & cooldown.demoralizing_shout.ready & talent.booming_voice.enabled & buff.last_stand.up & talent.unnerving_focus.enabled || rage.deficit <= 30 & cooldown.avatar.ready & buff.last_stand.up & talent.unnerving_focus.enabled || rage.deficit <= 20 || rage.deficit <= 40 & cooldown.shield_slam.ready & buff.violent_outburst.up & talent.heavy_repercussions.enabled & talent.impenetrable_wall.enabled || rage.deficit <= 55 & cooldown.shield_slam.ready & buff.violent_outburst.up & buff.last_stand.up & talent.unnerving_focus.enabled & talent.heavy_repercussions.enabled & talent.impenetrable_wall.enabled || rage.deficit <= 17 & cooldown.shield_slam.ready & talent.heavy_repercussions.enabled || rage.deficit <= 18 & cooldown.shield_slam.ready & talent.impenetrable_wall.enabled ) || ( rage >= 70 || buff.seeing_red.stack = 7 & rage >= 35 ) & cooldown.shield_slam.remains <= 1 & buff.shield_block.remains >= 4 & set_bonus.tier31_2pc",
|
|
["action"] = "ignore_pain",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "last_stand",
|
|
["description"] = "Usage of Last Stand is also governed by specialization settings, see /hekili > Protection.",
|
|
["criteria"] = "talent.unnerving_focus.enabled & ( target.health.pct >= 90 || target.health.pct <= 20 ) || talent.bolster.enabled & buff.shield_block.down || ! talent.bolster.enabled & ! talent.unnerving_focus.enabled || set_bonus.tier30_2pc > 0",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["description"] = "Usage of Rallying Cry is governed by specialization settings, see /hekili > Protection.",
|
|
["action"] = "rallying_cry",
|
|
},
|
|
{
|
|
["action"] = "ravager",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.booming_voice.enabled",
|
|
["action"] = "demoralizing_shout",
|
|
},
|
|
{
|
|
["action"] = "champions_spear",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "thunderous_roar",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.fervid.up",
|
|
["action"] = "shield_slam",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.sonic_boom.enabled & buff.avatar.up & talent.unstoppable_force.enabled & ! talent.rumbling_earth.enabled || talent.sonic_boom.enabled & talent.rumbling_earth.enabled & spell_targets.shockwave >= 3",
|
|
["action"] = "shockwave",
|
|
},
|
|
{
|
|
["action"] = "shield_charge",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.shield_block.duration <= 10",
|
|
["action"] = "shield_block",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "run_action_list",
|
|
["strict"] = 1,
|
|
["criteria"] = "spell_targets.thunder_clap >= 3",
|
|
["list_name"] = "aoe",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "call_action_list",
|
|
["list_name"] = "generic",
|
|
},
|
|
},
|
|
["precombat"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.stance.down",
|
|
["action"] = "defensive_stance",
|
|
},
|
|
{
|
|
["action"] = "battle_shout",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "algethar_puzzle_box",
|
|
["action"] = "algethar_puzzle_box",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.titans_torment.enabled",
|
|
["action"] = "avatar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.reckless_abandon.enabled",
|
|
["action"] = "recklessness",
|
|
},
|
|
},
|
|
},
|
|
["author"] = "SimulationCraft",
|
|
},
|
|
["Arms"] = {
|
|
["source"] = "https://github.com/simulationcraft/simc/",
|
|
["builtIn"] = true,
|
|
["date"] = 20240508,
|
|
["author"] = "SimulationCraft",
|
|
["desc"] = "2024-05-08: SimC update.\n\n2024-02-03: Minor SimC update.\n\n2023-12-17: Remove raid_event.adds checks in favor of target count.\n\n2023-11-27: Big axe.\n\n2023-11-22: Update to SimC.\n\n2023-11-06: Removed IP from HAC and set HAC to <1 target.\n\n2023-11-05: Patch 10.2.\n\n2023-07-11: Update trinkets for 10.1.5.\n\n2023-05-20: Update trinket/CDs.\n\n2023-05-08: Use Arcane Torrent at pretty low priority in single-target.\n\n2023-05-02: Update for 10.1.\n\n2023-03-26: Include Spell Reflection.",
|
|
["lists"] = {
|
|
["single_target"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.collateral_damage.up & cooldown.sweeping_strikes.remains < 3",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "active_enemies > 1",
|
|
["action"] = "sweeping_strikes",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "dot.rend.remains <= gcd.max & talent.blood_and_thunder.enabled & talent.blademasters_torment.enabled",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 15",
|
|
["action"] = "thunderous_roar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.hurricane.enabled & raid_event.add.in > 22 & talent.warlords_torment.enabled",
|
|
["action"] = "bladestorm",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 15 || target.time_to_die < 20",
|
|
["action"] = "avatar",
|
|
},
|
|
{
|
|
["action"] = "colossus_smash",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 22",
|
|
["action"] = "warbreaker",
|
|
},
|
|
{
|
|
["action"] = "mortal_strike",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( buff.juggernaut.up & buff.juggernaut.remains < gcd.max ) || ( buff.sudden_death.react & dot.deep_wounds.remains & set_bonus.tier31_2pc || buff.sudden_death.react & ! dot.rend.remains & set_bonus.tier31_4pc )",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "dot.rend.remains <= gcd.max & talent.blood_and_thunder.enabled",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "dot.rend.remains <= gcd.max & ! talent.blood_and_thunder.enabled",
|
|
["action"] = "rend",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.storm_of_swords.enabled & debuff.colossus_smash.up",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.hurricane.enabled & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & buff.hurricane.remains < 2 || talent.unhinged.enabled & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up )",
|
|
["action"] = "bladestorm",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.test_of_might.up || debuff.colossus_smash.up",
|
|
["action"] = "champions_spear",
|
|
},
|
|
{
|
|
["action"] = "skullsplitter",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.sonic_boom.enabled",
|
|
["action"] = "shockwave",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.storm_of_swords.enabled & talent.test_of_might.enabled & cooldown.colossus_smash.remains > cooldown.whirlwind.duration",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sudden_death.react",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "charges = 2 & ! talent.battlelord.enabled || talent.battlelord.enabled",
|
|
["action"] = "overpower",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.storm_of_swords.enabled & ! talent.test_of_might.enabled",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.crushing_force.enabled & dot.rend.remains > 12",
|
|
["action"] = "slam",
|
|
},
|
|
{
|
|
["action"] = "thunder_clap",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.merciless_bonegrinder.up",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["action"] = "slam",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "bladestorm",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "cleave",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "wrecking_throw",
|
|
["enabled"] = true,
|
|
},
|
|
},
|
|
["default"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "time <= 0.5 || movement.distance > 5",
|
|
["action"] = "charge",
|
|
},
|
|
{
|
|
["action"] = "pummel",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "spell_reflection",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || target.time_to_die < 25",
|
|
["action"] = "potion",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "call_action_list",
|
|
["list_name"] = "trinkets",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50",
|
|
["action"] = "arcane_torrent",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
|
|
["action"] = "lights_judgment",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
|
|
["action"] = "bag_of_tricks",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "target.time_to_die > 180 & buff.avatar.up || target.time_to_die < 180 & ( target.health.pct < 35 & talent.massacre.enabled || target.health.pct < 20 ) & buff.avatar.up || target.time_to_die < 20",
|
|
["action"] = "berserking",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.colossus_smash.up",
|
|
["action"] = "blood_fury",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.colossus_smash.up",
|
|
["action"] = "fireblood",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.colossus_smash.up",
|
|
["action"] = "ancestral_call",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "run_action_list",
|
|
["strict"] = 1,
|
|
["criteria"] = "active_enemies > 2 || talent.fervor_of_battle.enabled & ( talent.massacre.enabled & target.health.pct > 35 || target.health.pct > 20 ) & active_enemies > 1",
|
|
["list_name"] = "aoe",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "run_action_list",
|
|
["cycle_targets"] = 1,
|
|
["strict"] = 1,
|
|
["criteria"] = "( talent.massacre.enabled & target.health.pct < 35 ) || target.health.pct < 20",
|
|
["list_name"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "run_action_list",
|
|
["list_name"] = "single_target",
|
|
},
|
|
},
|
|
["precombat"] = {
|
|
{
|
|
["action"] = "battle_stance",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "battle_shout",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
|
|
["var_name"] = "trinket_1_exclude",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
|
|
["var_name"] = "trinket_2_exclude",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "setif",
|
|
["description"] = "Evaluates a trinkets cooldown, divided by avatar. If it's value has no remainder return 1, else return 0.5.",
|
|
["var_name"] = "trinket_1_sync",
|
|
["value"] = "1",
|
|
["action"] = "variable",
|
|
["value_else"] = "0.5",
|
|
["criteria"] = "trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration % cooldown.avatar.duration = 0 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "setif",
|
|
["action"] = "variable",
|
|
["var_name"] = "trinket_2_sync",
|
|
["value"] = "1",
|
|
["value_else"] = "0.5",
|
|
["criteria"] = "trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration % cooldown.avatar.duration = 0 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff & ! variable.trinket_1_exclude )",
|
|
["var_name"] = "trinket_1_buffs",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff & ! variable.trinket_2_exclude )",
|
|
["var_name"] = "trinket_2_buffs",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "setif",
|
|
["action"] = "variable",
|
|
["var_name"] = "trinket_priority",
|
|
["value"] = "2",
|
|
["value_else"] = "1",
|
|
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t1.is.algethar_puzzle_box",
|
|
["var_name"] = "trinket_1_manual",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "trinket.t2.is.algethar_puzzle_box",
|
|
["var_name"] = "trinket_2_manual",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "algethar_puzzle_box",
|
|
["action"] = "algethar_puzzle_box",
|
|
},
|
|
},
|
|
["variables"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "active_enemies = 1 & ( raid_event.adds.in > 15 || ! raid_event.adds.exists )",
|
|
["var_name"] = "st_planning",
|
|
["description"] = "Variables",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["op"] = "set",
|
|
["action"] = "variable",
|
|
["value"] = "active_enemies >= 2 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.remains > 5 )",
|
|
["var_name"] = "adds_remain",
|
|
},
|
|
},
|
|
["trinkets"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "fyralath_the_dreamrender",
|
|
["action"] = "fyralath_the_dreamrender",
|
|
["criteria"] = "dot.mark_of_fyralath.ticking & ! talent.blademasters_torment.enabled || dot.mark_of_fyralath.ticking & cooldown.avatar.remains > 3 & cooldown.bladestorm.remains > 3 & ! debuff.colossus_smash.up",
|
|
["description"] = "Trinkets",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["name"] = "algethar_puzzle_box",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "cooldown.avatar.remains <= 3",
|
|
["action"] = "algethar_puzzle_box",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket1",
|
|
["slot"] = "trinket1",
|
|
["use_off_gcd"] = 1,
|
|
["description"] = "Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.",
|
|
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! buff.avatar.up & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & buff.avatar.up & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket2",
|
|
["slot"] = "trinket2",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! buff.avatar.up & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & buff.avatar.up & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket1",
|
|
["slot"] = "trinket1",
|
|
["use_off_gcd"] = 1,
|
|
["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.",
|
|
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) || ( trinket.t1.cast_time > 0 & ! buff.avatar.up || ! trinket.t1.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "trinket2",
|
|
["slot"] = "trinket2",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs ) || ( trinket.t2.cast_time > 0 & ! buff.avatar.up || ! trinket.t2.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["action"] = "main_hand",
|
|
["slot"] = "main_hand",
|
|
["use_off_gcd"] = 1,
|
|
["criteria"] = "! equipped.fyralath_the_dreamrender & ( ! variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( ! variable.trinket_2_buffs || trinket.t2.cooldown.remains )",
|
|
},
|
|
},
|
|
["aoe"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.juggernaut.up & buff.juggernaut.remains < gcd.max & set_bonus.tier31_4pc",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.thunder_clap.enabled & talent.blood_and_thunder.enabled & talent.rend.enabled & dot.rend.remains <= dot.rend.duration * 0.3",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["action"] = "thunderous_roar",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "cooldown.bladestorm.remains > 15 || talent.improved_sweeping_strikes.enabled & cooldown.bladestorm.remains > 21 || ! talent.bladestorm.enabled || ! talent.bladestorm.enabled & talent.blademasters_torment.enabled & cooldown.avatar.remains > 15 || ! talent.bladestorm.enabled & talent.blademasters_torment.enabled & talent.improved_sweeping_strikes.enabled & cooldown.avatar.remains > 21",
|
|
["action"] = "sweeping_strikes",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 15 || talent.blademasters_torment.enabled || target.time_to_die < 20 || buff.hurricane.remains < 3",
|
|
["action"] = "avatar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 22 || active_enemies > 1",
|
|
["action"] = "warbreaker",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 )",
|
|
["action"] = "colossus_smash",
|
|
["cycle_targets"] = 1,
|
|
},
|
|
{
|
|
["action"] = "colossus_smash",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.storm_of_swords.enabled",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.unhinged.enabled & buff.sweeping_strikes.up",
|
|
["action"] = "bladestorm",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sudden_death.react & set_bonus.tier31_4pc",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.martial_prowess.stack = 2 & ( buff.sweeping_strikes.up & active_enemies > 4 || buff.sweeping_strikes.down ) || buff.merciless_bonegrinder.up",
|
|
["action"] = "cleave",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sweeping_strikes.up & buff.martial_prowess.stack = 2 & ( active_enemies <= 4 || ! talent.cleave.enabled )",
|
|
["action"] = "mortal_strike",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.test_of_might.up || debuff.colossus_smash.up || dot.deep_wounds.remains",
|
|
["action"] = "champions_spear",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sweeping_strikes.up & talent.dreadnaught.enabled",
|
|
["action"] = "overpower",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sweeping_strikes.down & ( buff.hurricane.remains < 3 || ! talent.hurricane.enabled )",
|
|
["action"] = "bladestorm",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.fervor_of_battle.enabled & rage > 70 || buff.merciless_bonegrinder.up",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.dreadnaught.enabled",
|
|
["action"] = "overpower",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.executioners_precision.stack = 2 || dot.deep_wounds.remains <= gcd.max || active_enemies < 3",
|
|
["action"] = "mortal_strike",
|
|
["cycle_targets"] = 1,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sudden_death.react || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) || buff.sweeping_strikes.up || active_enemies <= 2",
|
|
["action"] = "execute",
|
|
["cycle_targets"] = 1,
|
|
},
|
|
{
|
|
["action"] = "whirlwind",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "active_enemies > 3",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["action"] = "mortal_strike",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "! talent.crushing_force.enabled",
|
|
["action"] = "thunder_clap",
|
|
},
|
|
{
|
|
["action"] = "slam",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "shockwave",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "wrecking_throw",
|
|
["enabled"] = true,
|
|
},
|
|
},
|
|
["execute"] = {
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.collateral_damage.up & cooldown.sweeping_strikes.remains < 3",
|
|
["action"] = "whirlwind",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "active_enemies > 1",
|
|
["action"] = "sweeping_strikes",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "dot.rend.remains <= gcd.max & talent.bloodletting.enabled",
|
|
["action"] = "mortal_strike",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "remains <= gcd.max & ! talent.bloodletting.enabled & ( ! talent.warbreaker.enabled & cooldown.colossus_smash.remains < 4 || talent.warbreaker.enabled & cooldown.warbreaker.remains < 4 ) & target.time_to_die > 12",
|
|
["action"] = "rend",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "cooldown.colossus_smash.ready || debuff.colossus_smash.up || target.time_to_die < 20",
|
|
["action"] = "avatar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "cooldown.colossus_smash.remains <= gcd.max",
|
|
["action"] = "champions_spear",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 22",
|
|
["action"] = "warbreaker",
|
|
},
|
|
{
|
|
["action"] = "colossus_smash",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "( talent.test_of_might.enabled & rage < 40 ) || ( ! talent.test_of_might.enabled & ( buff.avatar.up || debuff.colossus_smash.up ) & rage < 70 )",
|
|
["action"] = "thunderous_roar",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "spell_targets.whirlwind > 2 & dot.deep_wounds.remains <= gcd.max",
|
|
["action"] = "cleave",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "raid_event.adds.in > 45 & talent.hurricane.enabled & rage < 40",
|
|
["action"] = "bladestorm",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "debuff.executioners_precision.stack = 2",
|
|
["action"] = "mortal_strike",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "buff.sudden_death.react & dot.deep_wounds.remains",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "rage < 40 & buff.martial_prowess.stack < 2",
|
|
["action"] = "overpower",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "rage < 40",
|
|
["action"] = "skullsplitter",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "rage >= 40",
|
|
["action"] = "execute",
|
|
},
|
|
{
|
|
["enabled"] = true,
|
|
["criteria"] = "talent.sonic_boom.enabled",
|
|
["action"] = "shockwave",
|
|
},
|
|
{
|
|
["action"] = "overpower",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "execute",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "bladestorm",
|
|
["enabled"] = true,
|
|
},
|
|
{
|
|
["action"] = "wrecking_throw",
|
|
["enabled"] = true,
|
|
},
|
|
},
|
|
},
|
|
["version"] = 20240508,
|
|
["warnings"] = "The import for 'single_target' required some automated changes.\nLine 3: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 3: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 5: Converted 'talent.hurricane' to 'talent.hurricane.enabled' (1x).\nLine 5: Converted 'talent.warlords_torment' to 'talent.warlords_torment.enabled' (1x).\nLine 11: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 12: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 13: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 14: Converted 'talent.hurricane' to 'talent.hurricane.enabled' (1x).\nLine 14: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 14: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 14: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 18: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 18: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 20: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 20: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 21: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 21: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 22: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 9: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 3: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 4: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 4: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted operations in 'trinket.t1.has_use_buff&(trinket.t1.cooldown.duration%%cooldown.avatar.duration=0)' to 'trinket.t1.has_use_buff&(trinket.t1.cooldown.duration%cooldown.avatar.duration=0)'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 6: Converted operations in 'trinket.t2.has_use_buff&(trinket.t2.cooldown.duration%%cooldown.avatar.duration=0)' to 'trinket.t2.has_use_buff&(trinket.t2.cooldown.duration%cooldown.avatar.duration=0)'.\nLine 7: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 7: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 7: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 7: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 7: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 7: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 8: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 8: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 8: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 8: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 8: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 9: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 9: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 9: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 9: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 9: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 9: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 9: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 9: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 9: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration%trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration%trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))' to '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration/trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration/trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))'.\nLine 10: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 11: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.thunder_clap' to 'talent.thunder_clap.enabled' (1x).\nLine 2: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 2: Converted 'talent.rend' to 'talent.rend.enabled' (1x).\nLine 4: Converted 'talent.improved_sweeping_strikes' to 'talent.improved_sweeping_strikes.enabled' (1x).\nLine 4: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 4: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 4: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 4: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 4: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 4: Converted 'talent.improved_sweeping_strikes' to 'talent.improved_sweeping_strikes.enabled' (1x).\nLine 5: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 7: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 9: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 10: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 13: Converted 'talent.cleave' to 'talent.cleave.enabled' (1x).\nLine 15: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 16: Converted 'talent.hurricane' to 'talent.hurricane.enabled' (1x).\nLine 17: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 18: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 20: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 24: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 4: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 4: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 7: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 7: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\n\nThe import for 'execute' required some automated changes.\nLine 3: Converted 'talent.bloodletting' to 'talent.bloodletting.enabled' (1x).\nLine 4: Converted 'talent.bloodletting' to 'talent.bloodletting.enabled' (1x).\nLine 4: Converted 'talent.warbreaker' to 'talent.warbreaker.enabled' (1x).\nLine 4: Converted 'talent.warbreaker' to 'talent.warbreaker.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 11: Converted 'talent.hurricane' to 'talent.hurricane.enabled' (1x).\nLine 17: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\n\nImported 7 action lists.\n",
|
|
["spec"] = 71,
|
|
["profile"] = "actions.precombat+=/battle_stance\nactions.precombat+=/battle_shout\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\n# Evaluates a trinkets cooldown, divided by avatar. If it's value has no remainder return 1, else return 0.5.\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(trinket.1.cooldown.duration%%cooldown.avatar.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(trinket.2.cooldown.duration%%cooldown.avatar.duration=0)\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_buff.strength||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit&!variable.trinket_1_exclude)\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_buff.strength||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit&!variable.trinket_2_exclude)\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box\nactions.precombat+=/use_item,name=algethar_puzzle_box\n\nactions+=/charge,if=time<=0.5||movement.distance>5\nactions+=/pummel\nactions+=/spell_reflection\nactions+=/potion,if=gcd.remains=0&debuff.colossus_smash.remains>8||target.time_to_die<25\nactions+=/call_action_list,name=trinkets\nactions+=/arcane_torrent,if=cooldown.mortal_strike.remains>1.5&rage<50\nactions+=/lights_judgment,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains\nactions+=/bag_of_tricks,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains\nactions+=/berserking,if=target.time_to_die>180&buff.avatar.up||target.time_to_die<180&(target.health.pct<35&talent.massacre||target.health.pct<20)&buff.avatar.up||target.time_to_die<20\nactions+=/blood_fury,if=debuff.colossus_smash.up\nactions+=/fireblood,if=debuff.colossus_smash.up\nactions+=/ancestral_call,if=debuff.colossus_smash.up\n## actions+=/invoke_external_buff,name=power_infusion,if=debuff.colossus_smash.up&fight_remains>=135||(target.health.pct<35&talent.massacre||target.health.pct<20)&buff.avatar.up||fight_remains<=25\nactions+=/run_action_list,name=aoe,strict=1,if=active_enemies>2||talent.fervor_of_battle.enabled&(talent.massacre.enabled&target.health.pct>35||target.health.pct>20)&active_enemies>1\nactions+=/run_action_list,name=execute,cycle_targets=1,strict=1,if=(talent.massacre.enabled&target.health.pct<35)||target.health.pct<20\nactions+=/run_action_list,name=single_target\n\nactions.execute+=/whirlwind,if=buff.collateral_damage.up&cooldown.sweeping_strikes.remains<3\nactions.execute+=/sweeping_strikes,if=active_enemies>1\nactions.execute+=/mortal_strike,if=dot.rend.remains<=gcd&talent.bloodletting\nactions.execute+=/rend,if=remains<=gcd&!talent.bloodletting&(!talent.warbreaker&cooldown.colossus_smash.remains<4||talent.warbreaker&cooldown.warbreaker.remains<4)&target.time_to_die>12\nactions.execute+=/avatar,if=cooldown.colossus_smash.ready||debuff.colossus_smash.up||target.time_to_die<20\nactions.execute+=/champions_spear,if=cooldown.colossus_smash.remains<=gcd\nactions.execute+=/warbreaker,if=raid_event.adds.in>22\nactions.execute+=/colossus_smash\nactions.execute+=/thunderous_roar,if=(talent.test_of_might&rage<40)||(!talent.test_of_might&(buff.avatar.up||debuff.colossus_smash.up)&rage<70)\nactions.execute+=/cleave,if=spell_targets.whirlwind>2&dot.deep_wounds.remains<=gcd\nactions.execute+=/bladestorm,if=raid_event.adds.in>45&talent.hurricane&rage<40\nactions.execute+=/mortal_strike,if=debuff.executioners_precision.stack=2\nactions.execute+=/execute,if=buff.sudden_death.react&dot.deep_wounds.remains\nactions.execute+=/overpower,if=rage<40&buff.martial_prowess.stack<2\nactions.execute+=/skullsplitter,if=rage<40\nactions.execute+=/execute,if=rage>=40\nactions.execute+=/shockwave,if=talent.sonic_boom\nactions.execute+=/overpower\nactions.execute+=/execute\nactions.execute+=/bladestorm\nactions.execute+=/wrecking_throw\n\nactions.aoe+=/execute,if=buff.juggernaut.up&buff.juggernaut.remains<gcd&set_bonus.tier31_4pc\nactions.aoe+=/whirlwind,if=buff.collateral_damage.up&debuff.colossus_smash.remains&buff.sweeping_strikes.downactions.aoe+=/thunder_clap,if=talent.thunder_clap&talent.blood_and_thunder&talent.rend&dot.rend.remains<=dot.rend.duration*0.3\nactions.aoe+=/thunderous_roar\nactions.aoe+=/sweeping_strikes,if=cooldown.bladestorm.remains>15||talent.improved_sweeping_strikes&cooldown.bladestorm.remains>21||!talent.bladestorm||!talent.bladestorm&talent.blademasters_torment&cooldown.avatar.remains>15||!talent.bladestorm&talent.blademasters_torment&talent.improved_sweeping_strikes&cooldown.avatar.remains>21\nactions.aoe+=/avatar,if=raid_event.adds.in>15||talent.blademasters_torment||target.time_to_die<20||buff.hurricane.remains<3\nactions.aoe+=/warbreaker,if=raid_event.adds.in>22||active_enemies>1\nactions.aoe+=/colossus_smash,cycle_targets=1,if=(target.health.pct<20||talent.massacre&target.health.pct<35)\nactions.aoe+=/colossus_smash\nactions.aoe+=/whirlwind,if=talent.storm_of_swords\nactions.aoe+=/bladestorm,if=talent.unhinged&buff.sweeping_strikes.up\nactions.aoe+=/execute,if=buff.sudden_death.react&set_bonus.tier31_4pc\nactions.aoe+=/cleave,if=buff.martial_prowess.stack=2&(buff.sweeping_strikes.up&active_enemies>4||buff.sweeping_strikes.down)||buff.merciless_bonegrinder.up\nactions.aoe+=/mortal_strike,if=buff.sweeping_strikes.up&buff.martial_prowess.stack=2&(active_enemies<=4||!talent.cleave)\nactions.aoe+=/champions_spear,if=buff.test_of_might.up||debuff.colossus_smash.up||dot.deep_wounds.remains\nactions.aoe+=/overpower,if=buff.sweeping_strikes.up&talent.dreadnaught\nactions.aoe+=/bladestorm,if=buff.sweeping_strikes.down&(buff.hurricane.remains<3||!talent.hurricane)\nactions.aoe+=/whirlwind,if=talent.fervor_of_battle&rage>70||buff.merciless_bonegrinder.up\nactions.aoe+=/overpower,if=talent.dreadnaught\nactions.aoe+=/mortal_strike,cycle_targets=1,if=debuff.executioners_precision.stack=2||dot.deep_wounds.remains<=gcd||active_enemies<3\nactions.aoe+=/execute,cycle_targets=1,if=buff.sudden_death.react||(target.health.pct<20||talent.massacre&target.health.pct<35)||buff.sweeping_strikes.up||active_enemies<=2\nactions.aoe+=/whirlwind\nactions.aoe+=/thunder_clap,if=active_enemies>3\nactions.aoe+=/mortal_strike\nactions.aoe+=/thunder_clap,if=!talent.crushing_force\nactions.aoe+=/slam\nactions.aoe+=/shockwave\nactions.aoe+=/wrecking_throw\n\nactions.single_target+=/whirlwind,if=buff.collateral_damage.up&cooldown.sweeping_strikes.remains<3\nactions.single_target+=/sweeping_strikes,if=active_enemies>1\nactions.single_target+=/thunder_clap,if=dot.rend.remains<=gcd&talent.blood_and_thunder&talent.blademasters_torment\nactions.single_target+=/thunderous_roar,if=raid_event.adds.in>15\nactions.single_target+=/bladestorm,if=talent.hurricane&raid_event.add.in>22&talent.warlords_torment\nactions.single_target+=/avatar,if=raid_event.adds.in>15||target.time_to_die<20\nactions.single_target+=/colossus_smash\nactions.single_target+=/warbreaker,if=raid_event.adds.in>22\nactions.single_target+=/mortal_strike\nactions.single_target+=/execute,if=(buff.juggernaut.up&buff.juggernaut.remains<gcd)||(buff.sudden_death.react&dot.deep_wounds.remains&set_bonus.tier31_2pc||buff.sudden_death.react&!dot.rend.remains&set_bonus.tier31_4pc)\nactions.single_target+=/thunder_clap,if=dot.rend.remains<=gcd&talent.blood_and_thunder\nactions.single_target+=/rend,if=dot.rend.remains<=gcd&!talent.blood_and_thunder\nactions.single_target+=/whirlwind,if=talent.storm_of_swords&debuff.colossus_smash.up\nactions.single_target+=/bladestorm,if=talent.hurricane&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&buff.hurricane.remains<2||talent.unhinged&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)\nactions.single_target+=/champions_spear,if=buff.test_of_might.up||debuff.colossus_smash.up\nactions.single_target+=/skullsplitter\nactions.single_target+=/shockwave,if=talent.sonic_boom.enabled\nactions.single_target+=/whirlwind,if=talent.storm_of_swords&talent.test_of_might&cooldown.colossus_smash.remains>cooldown.whirlwind.duration\nactions.single_target+=/execute,if=buff.sudden_death.react\nactions.single_target+=/overpower,if=charges=2&!talent.battlelord||talent.battlelord\nactions.single_target+=/whirlwind,if=talent.storm_of_swords&!talent.test_of_might\nactions.single_target+=/slam,if=talent.crushing_force&dot.rend.remains>12\nactions.single_target+=/thunder_clap\nactions.single_target+=/whirlwind,if=buff.merciless_bonegrinder.up\nactions.single_target+=/slam\nactions.single_target+=/bladestorm\nactions.single_target+=/cleave\nactions.single_target+=/wrecking_throw\n\n# Trinkets\nactions.trinkets+=/use_item,name=fyralath_the_dreamrender,if=dot.mark_of_fyralath.ticking&!talent.blademasters_torment||dot.mark_of_fyralath.ticking&cooldown.avatar.remains>3&cooldown.bladestorm.remains>3&!debuff.colossus_smash.up\nactions.trinkets+=/use_item,use_off_gcd=1,name=algethar_puzzle_box,if=cooldown.avatar.remains<=3\n# Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.avatar.up&trinket.1.cast_time>0||!trinket.1.cast_time>0)&buff.avatar.up&(variable.trinket_2_exclude||!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&(!buff.avatar.up&trinket.2.cast_time>0||!trinket.2.cast_time>0)&buff.avatar.up&(variable.trinket_1_exclude||!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.proc.any_dps.duration>=fight_remains\n# If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&(!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs)||(trinket.1.cast_time>0&!buff.avatar.up||!trinket.1.cast_time>0)||cooldown.avatar.remains_expected>20)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&(!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs)||(trinket.2.cast_time>0&!buff.avatar.up||!trinket.2.cast_time>0)||cooldown.avatar.remains_expected>20)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=main_hand,if=!equipped.fyralath_the_dreamrender&(!variable.trinket_1_buffs||trinket.1.cooldown.remains)&(!variable.trinket_2_buffs||trinket.2.cooldown.remains)\n\n# Variables\nactions.variables+=/variable,name=st_planning,value=active_enemies=1&(raid_event.adds.in>15||!raid_event.adds.exists)\nactions.variables+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.remains>5)",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|