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.

38627 lines
2.6 MiB

HekiliDB = {
["namespaces"] = {
["LibDualSpec-1.0"] = {
},
},
["profileKeys"] = {
["Quillidania - Deathwing"] = "Quillidania - Deathwing",
["Quillox - Deathwing"] = "Default",
["Quillandria - Thunderhorn"] = "Quillandria - Thunderhorn",
["Quillstrum - Deathwing"] = "Quillstrum - Deathwing",
["Quilligan - Deathwing"] = "Default",
["Quillmog - Deathwing"] = "Quillmog - Deathwing",
["Quilago - Thunderhorn"] = "Quilago - Thunderhorn",
["Quillphis - Deathwing"] = "Quillphis - Deathwing",
["Quillspeth - Thunderhorn"] = "Quillspeth - Thunderhorn",
["Quillandrus - Deathwing"] = "Default",
["Quilberg - Thunderhorn"] = "Quilberg - Thunderhorn",
["Quilkin - Thunderhorn"] = "Quilkin - Thunderhorn",
["Quillum - Deathwing"] = "Quillum - Deathwing",
["Quilladin - Deathwing"] = "Default",
["Quildra - Deathwing"] = "Quildra - Deathwing",
["Quillten - Deathwing"] = "Quillten - Deathwing",
["Quilldraka - Deathwing"] = "Default",
["Quillcroft - Thunderhorn"] = "Quillcroft - Thunderhorn",
["Quillzana - Thunderhorn"] = "Quillzana - Thunderhorn",
["Quillick - Thunderhorn"] = "Quillick - Thunderhorn",
["Quillson - Thunderhorn"] = "Quillson - Thunderhorn",
["Quillastra - Deathwing"] = "Quillastra - Deathwing",
["Quillikus - Thunderhorn"] = "Quillikus - Thunderhorn",
["Quillisium - Deathwing"] = "Quillisium - Deathwing",
["Quillikan - Deathwing"] = "Quillikan - Deathwing",
["Quillika - Thunderhorn"] = "Quillika - Thunderhorn",
["Quilenko - Thunderhorn"] = "Quilenko - Thunderhorn",
["Quilbee - Thunderhorn"] = "Quilbee - Thunderhorn",
["Quillika - Deathwing"] = "Quillika - Deathwing",
},
["profiles"] = {
["Quillidania - Deathwing"] = {
["runOnce"] = {
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["forceSpellFlashBrightness_20221030"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetRogueMfDOption_20200226"] = true,
["forceReloadClassDefaultOptions_20220306_581"] = true,
["forceReloadClassDefaultOptions_20220306_577"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[581] = {
["maxRefresh"] = 10,
["settings"] = {
["infernal_charges"] = 1,
["frailty_stacks"] = 1,
},
["potionsReset"] = 20180919.1,
["maxTime"] = 33,
["potion"] = "superior_steelskin_potion",
},
[577] = {
["maxRefresh"] = 10,
["settings"] = {
["retreat_and_return"] = "off",
["retreat_filler"] = false,
["fel_rush_charges"] = 0,
["demon_blades_acknowledged"] = false,
["throw_glaive_charges"] = 0,
["recommend_movement"] = false,
["fel_rush_filler"] = true,
["unbound_movement"] = false,
},
["potionsReset"] = 20180919.1,
["maxTime"] = 33,
["potion"] = "potion_of_unbridled_fury",
},
},
["displays"] = {
["Interrupts"] = {
["rel"] = "CENTER",
["y"] = -224.9999542236328,
},
["Cooldowns"] = {
["rel"] = "CENTER",
["x"] = -25,
},
["Primary"] = {
["rel"] = "CENTER",
["elvuiCooldown"] = true,
["y"] = -432,
["x"] = -50,
},
["AOE"] = {
["rel"] = "CENTER",
["x"] = -50,
["y"] = -492,
},
["Defensives"] = {
["rel"] = "CENTER",
["x"] = -75,
["y"] = -324.9998779296875,
},
},
["packs"] = {
["Havoc"] = {
["source"] = "SimulationCraft",
["builtIn"] = true,
["date"] = 20230227,
["spec"] = 577,
["desc"] = "2023-02-18: Options regarding Fel Rush and Vengeful Retreat were revised. Only the filler/movement recommendations can be turned off using Havoc's specialization settings. The entries associated with Isolated Prey, Momentum, Unbound Chaos, Initiative, and Vengeful Retreat may always be recommended if those talents are selected.\n\n2023-02-27: If Fel Rush and Vengeful Retreat are disabled (despite Momentum and Tactical Retreat being talented), the priority will allow Essence Break to be recommended.",
["profile"] = "actions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)\nactions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps||trinket.2.cooldown.duration>trinket.1.cooldown.duration)\nactions.precombat+=/arcane_torrent,if=fury.deficit>15\nactions.precombat+=/use_item,name=algethar_puzzle_box,if=cooldown.metamorphosis.remains<5\nactions.precombat+=/sigil_of_flame\nactions.precombat+=/immolation_aura\n\nactions=disrupt\nactions+=/consume_magic\n# Blade Dance with First Blood, Trail of Ruin, or at 2+ targets\nactions+=/variable,name=blade_dance,value=talent.first_blood||talent.trail_of_ruin||talent.chaos_theory&buff.chaos_theory.down||spell_targets.blade_dance1>1\nactions+=/variable,name=pooling_for_blade_dance,value=variable.blade_dance&fury<(75-talent.demon_blades*20)&cooldown.blade_dance.remains<gcd.max\nactions+=/variable,name=pooling_for_eye_beam,value=talent.demonic&!talent.blind_fury&cooldown.eye_beam.remains<(gcd.max*2)&fury.deficit>20\nactions+=/variable,name=waiting_for_momentum,value=talent.momentum&!buff.momentum.up\nactions+=/call_action_list,name=cooldown,if=gcd.remains=0\n## actions+=/pick_up_fragment,type=demon,if=demon_soul_fragments>0\n## actions+=/pick_up_fragment,mode=nearest,if=talent.demonic_appetite&fury.deficit>=35&(!cooldown.eye_beam.ready||fury<30)\nactions+=/annihilation,if=buff.inner_demon.up&cooldown.metamorphosis.remains<=gcd*3\nactions+=/vengeful_retreat,use_off_gcd=1,if=talent.initiative&talent.essence_break&time>1&gcd.remains<0.4&(cooldown.essence_break.remains>15||cooldown.essence_break.remains<gcd.max&(!talent.demonic||buff.metamorphosis.up||cooldown.eye_beam.remains>15+(10*talent.cycle_of_hatred)))\nactions+=/vengeful_retreat,use_off_gcd=1,if=talent.initiative&!talent.essence_break&time>1&!buff.momentum.up\nactions+=/fel_rush,if=(buff.unbound_chaos.up||variable.waiting_for_momentum&(!talent.unbound_chaos||!cooldown.immolation_aura.ready))&(charges=2||(raid_event.movement.in>10&raid_event.adds.in>10))\n# Essence Break allowed without Momentum/Tactical Retreat if Fel Rush and Vengeful Retreat are disabled.\nactions+=/essence_break,if=(active_enemies>desired_targets||raid_event.adds.in>40)&(!variable.waiting_for_momentum||action.fel_rush.disabled&action.vengeful_retreat.disabled)&fury>40&(cooldown.eye_beam.remains>8||buff.metamorphosis.up)&(!talent.tactical_retreat||buff.tactical_retreat.up||action.vengeful_retreat.disabled)\nactions+=/death_sweep,if=variable.blade_dance&(!talent.essence_break||cooldown.essence_break.remains>(cooldown.death_sweep.duration-4))\nactions+=/fel_barrage,if=active_enemies>desired_targets||raid_event.adds.in>30\nactions+=/glaive_tempest,if=active_enemies>desired_targets||raid_event.adds.in>10\nactions+=/annihilation,if=buff.inner_demon.up&cooldown.eye_beam.remains<=gcd\nactions+=/eye_beam,if=active_enemies>desired_targets||raid_event.adds.in>(40-talent.cycle_of_hatred*15)&!debuff.essence_break.up\nactions+=/blade_dance,if=variable.blade_dance&(cooldown.eye_beam.remains>5||!talent.demonic||(raid_event.adds.in>cooldown&raid_event.adds.in<25))\nactions+=/throw_glaive,if=talent.soulrend&(active_enemies>desired_targets||raid_event.adds.in>full_recharge_time+9)&spell_targets>=(2-talent.furious_throws)&!debuff.essence_break.up\nactions+=/annihilation,if=!variable.pooling_for_blade_dance\nactions+=/throw_glaive,if=talent.serrated_glaive&cooldown.eye_beam.remains<4&!debuff.serrated_glaive.up&!debuff.essence_break.up\nactions+=/immolation_aura,if=!buff.immolation_aura.up&(!talent.ragefire||active_enemies>desired_targets||raid_event.adds.in>15)\nactions+=/fel_rush,if=talent.isolated_prey&active_enemies=1&fury.deficit>=35\nactions+=/felblade,if=fury.deficit>=40\nactions+=/sigil_of_flame,if=active_enemies>desired_targets\nactions+=/chaos_strike,if=!variable.pooling_for_blade_dance&!variable.pooling_for_eye_beam\nactions+=/fel_rush,if=settings.fel_rush_filler&!talent.momentum&talent.demon_blades&!cooldown.eye_beam.ready&(charges=2||(raid_event.movement.in>10&raid_event.adds.in>10))\nactions+=/demons_bite,cycle_targets=1,if=talent.burning_wound&debuff.burning_wound.remains<4&active_dot.burning_wound<(spell_targets>?3)\nactions+=/fel_rush,if=settings.fel_rush_filler&!talent.momentum&!talent.demon_blades&spell_targets>1&(charges=2||(raid_event.movement.in>10&raid_event.adds.in>10))\nactions+=/sigil_of_flame,if=raid_event.adds.in>15&fury.deficit>=30\nactions+=/demons_bite\nactions+=/fel_rush,if=settings.fel_rush_filler&(movement.distance>15||(buff.out_of_range.up&!talent.momentum))\nactions+=/vengeful_retreat,if=settings.retreat_filler&!talent.initiative&movement.distance>15\nactions+=/throw_glaive,if=(talent.demon_blades||buff.out_of_range.up)&!debuff.essence_break.up\n\nactions.cooldown+=/sigil_of_misery,if=talent.misery_in_defeat&!target.is_boss&target.time_to_die>10&(cooldown.metamorphosis.remains<6||talent.demonic&cooldown.eye_beam.remains<6||buff.metamorphosis.remains>10)\n# Cast Metamorphosis if we will get a full Eye Beam refresh or if the encounter is almost over\nactions.cooldown+=/metamorphosis,if=!talent.demonic&((!talent.chaotic_transformation||cooldown.eye_beam.remains>20)&active_enemies>desired_targets||raid_event.adds.in>60||boss&fight_remains<25)\nactions.cooldown+=/metamorphosis,if=talent.demonic&(!talent.chaotic_transformation||cooldown.eye_beam.remains>20&(!variable.blade_dance||cooldown.blade_dance.remains>gcd.max)||boss&fight_remains<25)\nactions.cooldown+=/potion,if=buff.metamorphosis.remains>25||buff.metamorphosis.up&cooldown.metamorphosis.ready||boss&fight_remains<60\n# Default use item logic\nactions.cooldown+=/use_items,slots=trinket1,if=variable.trinket_sync_slot=1&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.1.cooldown.duration%2))||fight_remains<=20)||(variable.trinket_sync_slot=2&!trinket.2.cooldown.ready)||!variable.trinket_sync_slot\nactions.cooldown+=/use_items,slots=trinket2,if=variable.trinket_sync_slot=2&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.2.cooldown.duration%2))||fight_remains<=20)||(variable.trinket_sync_slot=1&!trinket.1.cooldown.ready)||!variable.trinket_sync_slot\nactions.cooldown+=/the_hunt,if=(!talent.momentum||!buff.momentum.up)\nactions.cooldown+=/elysian_decree,if=(active_enemies>desired_targets||raid_event.adds.in>30)",
["version"] = 20230227,
["warnings"] = "The import for 'cooldown' required some automated changes.\nLine 1: Converted 'talent.misery_in_defeat' to 'talent.misery_in_defeat.enabled' (1x).\nLine 1: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 2: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 2: Converted 'talent.chaotic_transformation' to 'talent.chaotic_transformation.enabled' (1x).\nLine 3: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 3: Converted 'talent.chaotic_transformation' to 'talent.chaotic_transformation.enabled' (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 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 5: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 5: Converted operations in 'variable.trinket_sync_slot=1&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t1.cooldown.duration%2))||fight_remains<=20)||(variable.trinket_sync_slot=2&!trinket.t2.cooldown.ready)||!variable.trinket_sync_slot' to 'variable.trinket_sync_slot=1&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t1.cooldown.duration/2))||fight_remains<=20)||(variable.trinket_sync_slot=2&!trinket.t2.cooldown.ready)||!variable.trinket_sync_slot'.\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 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 6: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 6: Converted operations in 'variable.trinket_sync_slot=2&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t2.cooldown.duration%2))||fight_remains<=20)||(variable.trinket_sync_slot=1&!trinket.t1.cooldown.ready)||!variable.trinket_sync_slot' to 'variable.trinket_sync_slot=2&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t2.cooldown.duration/2))||fight_remains<=20)||(variable.trinket_sync_slot=1&!trinket.t1.cooldown.ready)||!variable.trinket_sync_slot'.\nLine 7: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.first_blood' to 'talent.first_blood.enabled' (1x).\nLine 3: Converted 'talent.trail_of_ruin' to 'talent.trail_of_ruin.enabled' (1x).\nLine 3: Converted 'talent.chaos_theory' to 'talent.chaos_theory.enabled' (1x).\nLine 4: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\nLine 5: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 5: Converted 'talent.blind_fury' to 'talent.blind_fury.enabled' (1x).\nLine 6: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 9: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 9: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 9: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 9: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 10: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 10: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 11: Converted 'talent.unbound_chaos' to 'talent.unbound_chaos.enabled' (1x).\nLine 12: Converted 'talent.tactical_retreat' to 'talent.tactical_retreat.enabled' (1x).\nLine 13: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 17: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 18: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 19: Converted 'talent.soulrend' to 'talent.soulrend.enabled' (1x).\nLine 19: Converted 'talent.furious_throws' to 'talent.furious_throws.enabled' (1x).\nLine 21: Converted 'talent.serrated_glaive' to 'talent.serrated_glaive.enabled' (1x).\nLine 22: Converted 'talent.ragefire' to 'talent.ragefire.enabled' (1x).\nLine 23: Converted 'talent.isolated_prey' to 'talent.isolated_prey.enabled' (1x).\nLine 27: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 27: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\nLine 28: Converted 'talent.burning_wound' to 'talent.burning_wound.enabled' (1x).\nLine 29: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 29: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\nLine 32: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 33: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 34: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 1: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 1: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 1: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 2: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\n\nImported 3 action lists.\n",
["author"] = "SimC",
["lists"] = {
["cooldown"] = {
{
["enabled"] = true,
["criteria"] = "talent.misery_in_defeat.enabled & ! target.is_boss & target.time_to_die > 10 & ( cooldown.metamorphosis.remains < 6 || talent.demonic.enabled & cooldown.eye_beam.remains < 6 || buff.metamorphosis.remains > 10 )",
["action"] = "sigil_of_misery",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! talent.demonic.enabled & ( ( ! talent.chaotic_transformation.enabled || cooldown.eye_beam.remains > 20 ) & active_enemies > desired_targets || raid_event.adds.in > 60 || boss & fight_remains < 25 )",
["action"] = "metamorphosis",
["description"] = "Cast Metamorphosis if we will get a full Eye Beam refresh or if the encounter is almost over",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.demonic.enabled & ( ! talent.chaotic_transformation.enabled || cooldown.eye_beam.remains > 20 & ( ! variable.blade_dance || cooldown.blade_dance.remains > gcd.max ) || boss & fight_remains < 25 )",
["action"] = "metamorphosis",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.remains > 25 || buff.metamorphosis.up & cooldown.metamorphosis.ready || boss & fight_remains < 60",
["action"] = "potion",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.trinket_sync_slot = 1 & ( buff.metamorphosis.up || ( ! talent.demonic.enabled & cooldown.metamorphosis.remains > ( fight_remains >? trinket.t1.cooldown.duration / 2 ) ) || fight_remains <= 20 ) || ( variable.trinket_sync_slot = 2 & ! trinket.t2.cooldown.ready ) || ! variable.trinket_sync_slot",
["action"] = "trinket1",
["slots"] = "trinket1",
["description"] = "Default use item logic",
}, -- [5]
{
["enabled"] = true,
["slots"] = "trinket2",
["action"] = "trinket2",
["criteria"] = "variable.trinket_sync_slot = 2 & ( buff.metamorphosis.up || ( ! talent.demonic.enabled & cooldown.metamorphosis.remains > ( fight_remains >? trinket.t2.cooldown.duration / 2 ) ) || fight_remains <= 20 ) || ( variable.trinket_sync_slot = 1 & ! trinket.t1.cooldown.ready ) || ! variable.trinket_sync_slot",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( ! talent.momentum.enabled || ! buff.momentum.up )",
["action"] = "the_hunt",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( active_enemies > desired_targets || raid_event.adds.in > 30 )",
["action"] = "elysian_decree",
}, -- [8]
},
["default"] = {
{
["action"] = "disrupt",
["enabled"] = true,
}, -- [1]
{
["action"] = "consume_magic",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.first_blood.enabled || talent.trail_of_ruin.enabled || talent.chaos_theory.enabled & buff.chaos_theory.down || spell_targets.blade_dance1 > 1",
["var_name"] = "blade_dance",
["description"] = "Blade Dance with First Blood, Trail of Ruin, or at 2+ targets",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.blade_dance & fury < ( 75 - talent.demon_blades.enabled * 20 ) & cooldown.blade_dance.remains < gcd.max",
["var_name"] = "pooling_for_blade_dance",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.demonic.enabled & ! talent.blind_fury.enabled & cooldown.eye_beam.remains < ( gcd.max * 2 ) & fury.deficit > 20",
["var_name"] = "pooling_for_eye_beam",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.momentum.enabled & ! buff.momentum.up",
["var_name"] = "waiting_for_momentum",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "gcd.remains = 0",
["list_name"] = "cooldown",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.inner_demon.up & cooldown.metamorphosis.remains <= gcd.max * 3",
["action"] = "annihilation",
}, -- [8]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["action"] = "vengeful_retreat",
["criteria"] = "talent.initiative.enabled & talent.essence_break.enabled & time > 1 & gcd.remains < 0.4 & ( cooldown.essence_break.remains > 15 || cooldown.essence_break.remains < gcd.max & ( ! talent.demonic.enabled || buff.metamorphosis.up || cooldown.eye_beam.remains > 15 + ( 10 * talent.cycle_of_hatred.enabled ) ) )",
}, -- [9]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["action"] = "vengeful_retreat",
["criteria"] = "talent.initiative.enabled & ! talent.essence_break.enabled & time > 1 & ! buff.momentum.up",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( buff.unbound_chaos.up || variable.waiting_for_momentum & ( ! talent.unbound_chaos.enabled || ! cooldown.immolation_aura.ready ) ) & ( charges = 2 || ( raid_event.movement.in > 10 & raid_event.adds.in > 10 ) )",
["action"] = "fel_rush",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( active_enemies > desired_targets || raid_event.adds.in > 40 ) & ( ! variable.waiting_for_momentum || action.fel_rush.disabled & action.vengeful_retreat.disabled ) & fury > 40 & ( cooldown.eye_beam.remains > 8 || buff.metamorphosis.up ) & ( ! talent.tactical_retreat.enabled || buff.tactical_retreat.up || action.vengeful_retreat.disabled )",
["action"] = "essence_break",
["description"] = "Essence Break allowed without Momentum/Tactical Retreat if Fel Rush and Vengeful Retreat are disabled.",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "variable.blade_dance & ( ! talent.essence_break.enabled || cooldown.essence_break.remains > ( cooldown.death_sweep.duration - 4 ) )",
["action"] = "death_sweep",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 30",
["action"] = "fel_barrage",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 10",
["action"] = "glaive_tempest",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.inner_demon.up & cooldown.eye_beam.remains <= gcd.max",
["action"] = "annihilation",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > ( 40 - talent.cycle_of_hatred.enabled * 15 ) & ! debuff.essence_break.up",
["action"] = "eye_beam",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "variable.blade_dance & ( cooldown.eye_beam.remains > 5 || ! talent.demonic.enabled || ( raid_event.adds.in > action_cooldown & raid_event.adds.in < 25 ) )",
["action"] = "blade_dance",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "talent.soulrend.enabled & ( active_enemies > desired_targets || raid_event.adds.in > full_recharge_time + 9 ) & spell_targets >= ( 2 - talent.furious_throws.enabled ) & ! debuff.essence_break.up",
["action"] = "throw_glaive",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_for_blade_dance",
["action"] = "annihilation",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "talent.serrated_glaive.enabled & cooldown.eye_beam.remains < 4 & ! debuff.serrated_glaive.up & ! debuff.essence_break.up",
["action"] = "throw_glaive",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "! buff.immolation_aura.up & ( ! talent.ragefire.enabled || active_enemies > desired_targets || raid_event.adds.in > 15 )",
["action"] = "immolation_aura",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "talent.isolated_prey.enabled & active_enemies = 1 & fury.deficit >= 35",
["action"] = "fel_rush",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "fury.deficit >= 40",
["action"] = "felblade",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets",
["action"] = "sigil_of_flame",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_for_blade_dance & ! variable.pooling_for_eye_beam",
["action"] = "chaos_strike",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "settings.fel_rush_filler & ! talent.momentum.enabled & talent.demon_blades.enabled & ! cooldown.eye_beam.ready & ( charges = 2 || ( raid_event.movement.in > 10 & raid_event.adds.in > 10 ) )",
["action"] = "fel_rush",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "talent.burning_wound.enabled & debuff.burning_wound.remains < 4 & active_dot.burning_wound < ( spell_targets >? 3 )",
["action"] = "demons_bite",
["cycle_targets"] = 1,
}, -- [28]
{
["enabled"] = true,
["criteria"] = "settings.fel_rush_filler & ! talent.momentum.enabled & ! talent.demon_blades.enabled & spell_targets > 1 & ( charges = 2 || ( raid_event.movement.in > 10 & raid_event.adds.in > 10 ) )",
["action"] = "fel_rush",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15 & fury.deficit >= 30",
["action"] = "sigil_of_flame",
}, -- [30]
{
["action"] = "demons_bite",
["enabled"] = true,
}, -- [31]
{
["enabled"] = true,
["criteria"] = "settings.fel_rush_filler & ( movement.distance > 15 || ( buff.out_of_range.up & ! talent.momentum.enabled ) )",
["action"] = "fel_rush",
}, -- [32]
{
["enabled"] = true,
["criteria"] = "settings.retreat_filler & ! talent.initiative.enabled & movement.distance > 15",
["action"] = "vengeful_retreat",
}, -- [33]
{
["enabled"] = true,
["criteria"] = "( talent.demon_blades.enabled || buff.out_of_range.up ) & ! debuff.essence_break.up",
["action"] = "throw_glaive",
}, -- [34]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t1.has_stat.any_dps & ( ! trinket.t2.has_stat.any_dps || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration )",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t2.has_stat.any_dps & ( ! trinket.t1.has_stat.any_dps || trinket.t2.cooldown.duration > trinket.t1.cooldown.duration )",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "fury.deficit > 15",
["action"] = "arcane_torrent",
}, -- [3]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
["criteria"] = "cooldown.metamorphosis.remains < 5",
}, -- [4]
{
["action"] = "sigil_of_flame",
["enabled"] = true,
}, -- [5]
{
["action"] = "immolation_aura",
["enabled"] = true,
}, -- [6]
},
},
},
["Vengeance"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230209,
["spec"] = 581,
["desc"] = "",
["profile"] = "actions.precombat+=/variable,name=spirit_bomb_soul_fragments_not_in_meta,op=setif,value=4,value_else=5,condition=talent.fracture\nactions.precombat+=/variable,name=spirit_bomb_soul_fragments_in_meta,op=setif,value=3,value_else=4,condition=talent.fracture\n## actions.precombat+=/variable,name=vulnerability_frailty_stack,op=setif,value=1,value_else=0,condition=talent.vulnerability\n## actions.precombat+=/variable,name=cooldown_frailty_requirement_st,op=setif,value=6*variable.vulnerability_frailty_stack,value_else=variable.vulnerability_frailty_stack,condition=talent.soulcrush\n## actions.precombat+=/variable,name=cooldown_frailty_requirement_aoe,op=setif,value=5*variable.vulnerability_frailty_stack,value_else=variable.vulnerability_frailty_stack,condition=talent.soulcrush\nactions.precombat+=/sigil_of_flame\nactions.precombat+=/immolation_aura,if=active_enemies=1||!talent.fallout\n\nactions+=/disrupt\nactions+=/consume_magic\nactions+=/infernal_strike,use_off_gcd=1,if=charges=max_charges&target.distance>10\nactions+=/demon_spikes,use_off_gcd=1,if=!buff.demon_spikes.up&tanking\nactions+=/metamorphosis\nactions+=/fel_devastation,if=!talent.fiery_demise.enabled\nactions+=/fiery_brand,if=!talent.fiery_demise.enabled&!dot.fiery_brand.ticking\nactions+=/bulk_extraction\nactions+=/potion\nactions+=/use_item,slot=trinket1\nactions+=/use_item,slot=trinket2\nactions+=/variable,name=the_hunt_on_cooldown,value=talent.the_hunt&cooldown.the_hunt.remains||!talent.the_hunt\nactions+=/variable,name=elysian_decree_on_cooldown,value=talent.elysian_decree&cooldown.elysian_decree.remains||!talent.elysian_decree\nactions+=/variable,name=soul_carver_on_cooldown,value=talent.soul_carver&cooldown.soul_carver.remains||!talent.soul_carver\nactions+=/variable,name=fel_devastation_on_cooldown,value=talent.fel_devastation&cooldown.fel_devastation.remains||!talent.fel_devastation\nactions+=/variable,name=fiery_demise_fiery_brand_is_ticking_on_current_target,value=talent.fiery_brand&talent.fiery_demise&dot.fiery_brand.ticking\nactions+=/variable,name=fiery_demise_fiery_brand_is_not_ticking_on_current_target,value=talent.fiery_brand&((talent.fiery_demise&!dot.fiery_brand.ticking)||!talent.fiery_demise)\nactions+=/variable,name=fiery_demise_fiery_brand_is_ticking_on_any_target,value=talent.fiery_brand&talent.fiery_demise&active_dot.fiery_brand_dot>0\nactions+=/variable,name=fiery_demise_fiery_brand_is_not_ticking_on_any_target,value=talent.fiery_brand&((talent.fiery_demise&active_dot.fiery_brand_dot=0)||!talent.fiery_demise)\nactions+=/variable,name=spirit_bomb_soul_fragments,op=setif,value=variable.spirit_bomb_soul_fragments_in_meta,value_else=variable.spirit_bomb_soul_fragments_not_in_meta,condition=buff.metamorphosis.up\n## actions+=/variable,name=cooldown_frailty_requirement,op=setif,value=variable.cooldown_frailty_requirement_aoe,value_else=variable.cooldown_frailty_requirement_st,condition=talent.spirit_bomb&(spell_targets.spirit_bomb>1||variable.fiery_demise_fiery_brand_is_ticking_on_any_target)\nactions+=/the_hunt,if=variable.fiery_demise_fiery_brand_is_not_ticking_on_current_target&frailty_threshold_met\nactions+=/elysian_decree,if=variable.fiery_demise_fiery_brand_is_not_ticking_on_current_target&frailty_threshold_met\nactions+=/soul_carver,if=!talent.fiery_demise&soul_fragments<=3&frailty_threshold_met\nactions+=/soul_carver,if=variable.fiery_demise_fiery_brand_is_ticking_on_current_target&soul_fragments<=3&frailty_threshold_met\nactions+=/fel_devastation,if=variable.fiery_demise_fiery_brand_is_ticking_on_current_target&dot.fiery_brand.remains<3\nactions+=/fiery_brand,if=variable.fiery_demise_fiery_brand_is_not_ticking_on_any_target&variable.the_hunt_on_cooldown&variable.elysian_decree_on_cooldown&((talent.soul_carver&(cooldown.soul_carver.up||cooldown.soul_carver.remains<10))||(talent.fel_devastation&(cooldown.fel_devastation.up||cooldown.fel_devastation.remains<10)))\nactions+=/immolation_aura,if=talent.fiery_demise&variable.fiery_demise_fiery_brand_is_ticking_on_any_target\nactions+=/sigil_of_flame,if=talent.fiery_demise&variable.fiery_demise_fiery_brand_is_ticking_on_any_target\nactions+=/spirit_bomb,if=soul_fragments>=variable.spirit_bomb_soul_fragments&(spell_targets>1||variable.fiery_demise_fiery_brand_is_ticking_on_any_target)\nactions+=/soul_cleave,if=(soul_fragments<=1&spell_targets>1)||spell_targets=1\nactions+=/sigil_of_flame\nactions+=/immolation_aura\nactions+=/fracture\nactions+=/shear\nactions+=/throw_glaive\nactions+=/felblade",
["version"] = 20230209,
["warnings"] = "The import for 'default' required some automated changes.\nLine 12: Converted 'talent.the_hunt' to 'talent.the_hunt.enabled' (1x).\nLine 12: Converted 'talent.the_hunt' to 'talent.the_hunt.enabled' (1x).\nLine 13: Converted 'talent.elysian_decree' to 'talent.elysian_decree.enabled' (1x).\nLine 13: Converted 'talent.elysian_decree' to 'talent.elysian_decree.enabled' (1x).\nLine 14: Converted 'talent.soul_carver' to 'talent.soul_carver.enabled' (1x).\nLine 14: Converted 'talent.soul_carver' to 'talent.soul_carver.enabled' (1x).\nLine 15: Converted 'talent.fel_devastation' to 'talent.fel_devastation.enabled' (1x).\nLine 15: Converted 'talent.fel_devastation' to 'talent.fel_devastation.enabled' (1x).\nLine 16: Converted 'talent.fiery_brand' to 'talent.fiery_brand.enabled' (1x).\nLine 16: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 17: Converted 'talent.fiery_brand' to 'talent.fiery_brand.enabled' (1x).\nLine 17: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 17: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 18: Converted 'talent.fiery_brand' to 'talent.fiery_brand.enabled' (1x).\nLine 18: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 19: Converted 'talent.fiery_brand' to 'talent.fiery_brand.enabled' (1x).\nLine 19: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 19: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 23: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 26: Converted 'talent.soul_carver' to 'talent.soul_carver.enabled' (1x).\nLine 26: Converted 'talent.fel_devastation' to 'talent.fel_devastation.enabled' (1x).\nLine 27: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 28: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'talent.fracture' to 'talent.fracture.enabled' (1x).\nLine 2: Converted 'talent.fracture' to 'talent.fracture.enabled' (1x).\nLine 4: Converted 'talent.fallout' to 'talent.fallout.enabled' (1x).\n\nImported 2 action lists.\n",
["lists"] = {
["default"] = {
{
["action"] = "disrupt",
["enabled"] = true,
}, -- [1]
{
["action"] = "consume_magic",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["action"] = "infernal_strike",
["criteria"] = "charges = max_charges & target.distance > 10",
}, -- [3]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["action"] = "demon_spikes",
["criteria"] = "! buff.demon_spikes.up & tanking",
}, -- [4]
{
["action"] = "metamorphosis",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! talent.fiery_demise.enabled",
["action"] = "fel_devastation",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.fiery_demise.enabled & ! dot.fiery_brand.ticking",
["action"] = "fiery_brand",
}, -- [7]
{
["action"] = "bulk_extraction",
["enabled"] = true,
}, -- [8]
{
["action"] = "potion",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [10]
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [11]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.the_hunt.enabled & cooldown.the_hunt.remains || ! talent.the_hunt.enabled",
["var_name"] = "the_hunt_on_cooldown",
}, -- [12]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.elysian_decree.enabled & cooldown.elysian_decree.remains || ! talent.elysian_decree.enabled",
["var_name"] = "elysian_decree_on_cooldown",
}, -- [13]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.soul_carver.enabled & cooldown.soul_carver.remains || ! talent.soul_carver.enabled",
["var_name"] = "soul_carver_on_cooldown",
}, -- [14]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.fel_devastation.enabled & cooldown.fel_devastation.remains || ! talent.fel_devastation.enabled",
["var_name"] = "fel_devastation_on_cooldown",
}, -- [15]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.fiery_brand.enabled & talent.fiery_demise.enabled & dot.fiery_brand.ticking",
["var_name"] = "fiery_demise_fiery_brand_is_ticking_on_current_target",
}, -- [16]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.fiery_brand.enabled & ( ( talent.fiery_demise.enabled & ! dot.fiery_brand.ticking ) || ! talent.fiery_demise.enabled )",
["var_name"] = "fiery_demise_fiery_brand_is_not_ticking_on_current_target",
}, -- [17]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.fiery_brand.enabled & talent.fiery_demise.enabled & active_dot.fiery_brand_dot > 0",
["var_name"] = "fiery_demise_fiery_brand_is_ticking_on_any_target",
}, -- [18]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.fiery_brand.enabled & ( ( talent.fiery_demise.enabled & active_dot.fiery_brand_dot = 0 ) || ! talent.fiery_demise.enabled )",
["var_name"] = "fiery_demise_fiery_brand_is_not_ticking_on_any_target",
}, -- [19]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "spirit_bomb_soul_fragments",
["value"] = "variable.spirit_bomb_soul_fragments_in_meta",
["value_else"] = "variable.spirit_bomb_soul_fragments_not_in_meta",
["criteria"] = "buff.metamorphosis.up",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "variable.fiery_demise_fiery_brand_is_not_ticking_on_current_target & frailty_threshold_met",
["action"] = "the_hunt",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "variable.fiery_demise_fiery_brand_is_not_ticking_on_current_target & frailty_threshold_met",
["action"] = "elysian_decree",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "! talent.fiery_demise.enabled & soul_fragments <= 3 & frailty_threshold_met",
["action"] = "soul_carver",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "variable.fiery_demise_fiery_brand_is_ticking_on_current_target & soul_fragments <= 3 & frailty_threshold_met",
["action"] = "soul_carver",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "variable.fiery_demise_fiery_brand_is_ticking_on_current_target & dot.fiery_brand.remains < 3",
["action"] = "fel_devastation",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "variable.fiery_demise_fiery_brand_is_not_ticking_on_any_target & variable.the_hunt_on_cooldown & variable.elysian_decree_on_cooldown & ( ( talent.soul_carver.enabled & ( cooldown.soul_carver.up || cooldown.soul_carver.remains < 10 ) ) || ( talent.fel_devastation.enabled & ( cooldown.fel_devastation.up || cooldown.fel_devastation.remains < 10 ) ) )",
["action"] = "fiery_brand",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "talent.fiery_demise.enabled & variable.fiery_demise_fiery_brand_is_ticking_on_any_target",
["action"] = "immolation_aura",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "talent.fiery_demise.enabled & variable.fiery_demise_fiery_brand_is_ticking_on_any_target",
["action"] = "sigil_of_flame",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "soul_fragments >= variable.spirit_bomb_soul_fragments & ( spell_targets > 1 || variable.fiery_demise_fiery_brand_is_ticking_on_any_target )",
["action"] = "spirit_bomb",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "( soul_fragments <= 1 & spell_targets > 1 ) || spell_targets = 1",
["action"] = "soul_cleave",
}, -- [30]
{
["action"] = "sigil_of_flame",
["enabled"] = true,
}, -- [31]
{
["action"] = "immolation_aura",
["enabled"] = true,
}, -- [32]
{
["action"] = "fracture",
["enabled"] = true,
}, -- [33]
{
["action"] = "shear",
["enabled"] = true,
}, -- [34]
{
["action"] = "throw_glaive",
["enabled"] = true,
}, -- [35]
{
["action"] = "felblade",
["enabled"] = true,
}, -- [36]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "spirit_bomb_soul_fragments_not_in_meta",
["value"] = "4",
["value_else"] = "5",
["criteria"] = "talent.fracture.enabled",
}, -- [1]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "spirit_bomb_soul_fragments_in_meta",
["value"] = "3",
["value_else"] = "4",
["criteria"] = "talent.fracture.enabled",
}, -- [2]
{
["action"] = "sigil_of_flame",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 || ! talent.fallout.enabled",
["action"] = "immolation_aura",
}, -- [4]
},
},
["author"] = "SimC",
},
},
["notifications"] = {
["enabled"] = false,
},
},
["Quillandria - Thunderhorn"] = {
["runOnce"] = {
["autoconvertGlowsForCustomGlow_20190326"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetRogueMfDOption_20200226"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[266] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["enhancedRecheck"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["package"] = "Demonology",
["custom1Name"] = "Custom 1",
["potionsReset"] = 20180919.1,
["buffPadding"] = 0,
["cycle"] = true,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "spectral_intellect",
["damage"] = true,
["nameplates"] = false,
["damageExpiration"] = 6,
["petbased"] = false,
["damageRange"] = 0,
},
[267] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["enhancedRecheck"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["package"] = "Destruction",
["custom1Name"] = "Custom 1",
["potionsReset"] = 20180919.1,
["buffPadding"] = 0,
["cycle"] = true,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "spectral_intellect",
["damage"] = true,
["nameplates"] = false,
["damageExpiration"] = 6,
["petbased"] = false,
["damageRange"] = 0,
},
[265] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["manage_ds_ticks"] = false,
},
["enhancedRecheck"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["package"] = "Affliction",
["custom1Name"] = "Custom 1",
["potionsReset"] = 20180919.1,
["buffPadding"] = 0,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "spectral_intellect",
["damage"] = true,
["nameplates"] = false,
["damageExpiration"] = 6,
["petbased"] = false,
["damageRange"] = 0,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["packs"] = {
["Demonology"] = {
["source"] = "SimC",
["builtIn"] = true,
["date"] = 20211102,
["spec"] = 266,
["desc"] = "Demonology Warlock\nhttps://github.com/simulationcraft/simc/\nNovember 2, 2021\n\nChanges:\n- Spell Lock.\n- Only recommend Demonbolt pre-combat if it is instant (or hardcast for bosses).\n- Power Siphon allowed pre-combat to proc instant Demonbolt.\n- PvP talent interrupt.\n- Avoid SB->HoG spam when you're not about to summon a Tyrant.\n- Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.\n- Try to avoid wasting Demonic Core stacks.\n- Try to make opener priority only work if we can actually open with a Tyrant.",
["lists"] = {
["slow_trinkets"] = {
{
["enabled"] = true,
["name"] = "soulletting_ruby",
["action"] = "soulletting_ruby",
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < target.distance / 5 & time > variable.first_tyrant_time - ( target.distance / 5 )",
}, -- [1]
{
["enabled"] = true,
["name"] = "sunblood_amethyst",
["action"] = "sunblood_amethyst",
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < target.distance / 5 & time > variable.first_tyrant_time - ( target.distance / 5 )",
}, -- [2]
{
["enabled"] = true,
["name"] = "empyreal_ordnance",
["action"] = "empyreal_ordnance",
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < ( target.distance / 5 ) + 12 & cooldown.summon_demonic_tyrant.remains_expected > ( ( ( target.distance / 5 ) + 12 ) - 15 ) & time > variable.first_tyrant_time - ( ( target.distance / 5 ) + 12 )",
["description"] = "Ordnance has a 12 second delay and is therefore skipped for first Tyrant to line up with the rest",
}, -- [3]
},
["hp_trinks"] = {
{
["enabled"] = true,
["name"] = "sinful_gladiators_emblem",
["action"] = "sinful_gladiators_emblem",
}, -- [1]
{
["enabled"] = true,
["name"] = "sinful_aspirants_emblem",
["action"] = "sinful_aspirants_emblem",
}, -- [2]
},
["covenant_ability"] = {
{
["enabled"] = true,
["criteria"] = "soulbind.grove_invigoration.enabled & ( cooldown.summon_demonic_tyrant.remains_expected < 20 || cooldown.summon_demonic_tyrant.remains_expected > 30 )",
["action"] = "soul_rot",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "soulbind.field_of_blossoms.enabled & pet.demonic_tyrant.active",
["action"] = "soul_rot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "soulbind.wild_hunt_tactics.enabled & ! pet.demonic_tyrant.active & cooldown.summon_demonic_tyrant.remains_expected > 18",
["action"] = "soul_rot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( soulbind.lead_by_example.enabled || soulbind.kevins_oozeling.enabled ) & ( pet.demonic_tyrant.active & soul_shard < 2 || ! pet.demonic_tyrant.active & cooldown.summon_demonic_tyrant.remains_expected > 40 )",
["action"] = "decimating_bolt",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( soulbind.forgeborne_reveries.enabled || ( soulbind.volatile_solvent.enabled & ! soulbind.kevins_oozeling.enabled ) ) & ! pet.demonic_tyrant.active",
["action"] = "decimating_bolt",
}, -- [5]
{
["enabled"] = true,
["interrupt_if"] = "buff.volatile_solvent.up",
["action"] = "fleshcraft",
["criteria"] = "soulbind.volatile_solvent.enabled",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "soulbind.combat_meditation.enabled & pet.demonic_tyrant.active",
["action"] = "scouring_tithe",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! soulbind.combat_meditation.enabled",
["action"] = "scouring_tithe",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "pet.demonic_tyrant.active & soul_shard = 0",
["action"] = "impending_catastrophe",
}, -- [9]
},
["tyrant_setup"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < 15",
["action"] = "nether_portal",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < 17 - ( action.summon_demonic_tyrant.execute_time + action.shadow_bolt.execute_time ) & ( cooldown.call_dreadstalkers.remains < 17 - ( action.summon_demonic_tyrant.execute_time + action.summon_vilefiend.execute_time + action.shadow_bolt.execute_time ) || pet.dreadstalker.remains > cooldown.summon_demonic_tyrant.remains_expected + action.summon_demonic_tyrant.execute_time )",
["action"] = "grimoire_felguard",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( cooldown.summon_demonic_tyrant.remains_expected < 15 - ( action.summon_demonic_tyrant.execute_time ) & ( cooldown.call_dreadstalkers.remains < 15 - ( action.summon_demonic_tyrant.execute_time + action.summon_vilefiend.execute_time ) || pet.dreadstalker.remains > cooldown.summon_demonic_tyrant.remains_expected + action.summon_demonic_tyrant.execute_time ) ) || ( ! runeforge.wilfreds_sigil_of_superior_summoning.enabled & cooldown.summon_demonic_tyrant.remains_expected > 40 )",
["action"] = "summon_vilefiend",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < 12 - ( action.summon_demonic_tyrant.execute_time + action.shadow_bolt.execute_time )",
["action"] = "call_dreadstalkers",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "time > variable.first_tyrant_time & ( pet.dreadstalker.active & pet.dreadstalker.remains > action.summon_demonic_tyrant.execute_time ) & ( ! talent.summon_vilefiend.enabled || pet.vilefiend.active ) & ( soul_shard = 0 || ( pet.dreadstalker.active & pet.dreadstalker.remains < action.summon_demonic_tyrant.execute_time + action.shadow_bolt.execute_time ) || ( pet.vilefiend.active & pet.vilefiend.remains < action.summon_demonic_tyrant.execute_time + action.shadow_bolt.execute_time ) || ( buff.grimoire_felguard.up & buff.grimoire_felguard.remains < action.summon_demonic_tyrant.execute_time + action.shadow_bolt.execute_time ) )",
["action"] = "summon_demonic_tyrant",
}, -- [5]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "spell_lock",
}, -- [1]
{
["action"] = "call_felhunter",
["enabled"] = true,
}, -- [2]
{
["action"] = "axe_toss",
["enabled"] = true,
}, -- [3]
{
["action"] = "devour_magic",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "toggle.cooldowns & time < variable.first_tyrant_time & cooldown.summon_demonic_tyrant.remains < variable.first_tyrant_time - time",
["list_name"] = "opener",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "doom",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "soulbind.grove_invigoration.enabled || soulbind.field_of_blossoms.enabled || soulbind.combat_meditation.enabled || covenant.necrolord",
["list_name"] = "covenant_ability",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( cooldown.summon_demonic_tyrant.remains_expected = 0 & time > variable.first_tyrant_time || soulbind.refined_palate.enabled & cooldown.summon_demonic_tyrant.remains_expected < 38 )",
["action"] = "potion",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "tyrant_setup",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "pet.demonic_tyrant.active",
["list_name"] = "ogcd",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( ! runeforge.wilfreds_sigil_of_superior_summoning.enabled & cooldown.summon_demonic_tyrant.remains_expected > 9 ) || ( pet.demonic_tyrant.active & pet.demonic_tyrant.remains < 6 * gcd.max )",
["action"] = "demonic_strength",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected > 20 - 5 * ! runeforge.wilfreds_sigil_of_superior_summoning.enabled",
["action"] = "call_dreadstalkers",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.wild_imps.stack > 1 & buff.demonic_core.stack < 3",
["action"] = "power_siphon",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.tyrant.down & cooldown.summon_demonic_tyrant.remains_expected > 5",
["action"] = "bilescourge_bombers",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 + ( 1 * talent.sacrificed_souls.enabled ) & buff.wild_imps.stack >= 6 & buff.tyrant.down & cooldown.summon_demonic_tyrant.remains_expected > 5",
["action"] = "implosion",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & buff.wild_imps.stack >= 6 & buff.tyrant.down & cooldown.summon_demonic_tyrant.remains_expected > 5 & ! runeforge.implosive_potential.enabled & ( ! talent.from_the_shadows.enabled || buff.from_the_shadows.up )",
["action"] = "implosion",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & buff.wild_imps.stack >= 6 & buff.implosive_potential.remains < 2 & runeforge.implosive_potential.enabled",
["action"] = "implosion",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.wild_imps.stack >= 12 & talent.soul_conduit.enabled & talent.from_the_shadows.enabled & runeforge.implosive_potential.enabled & buff.tyrant.down & cooldown.summon_demonic_tyrant.remains_expected > 5",
["action"] = "implosion",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "boss & time_to_die < 30",
["action"] = "grimoire_felguard",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "boss & time_to_die < 28",
["action"] = "summon_vilefiend",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "boss & time_to_die < 15",
["action"] = "summon_demonic_tyrant",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "soul_shard = 5",
["action"] = "hand_of_guldan",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "soul_shard >= 3 & ( pet.dreadstalker.active || pet.demonic_tyrant.active )",
["action"] = "hand_of_guldan",
["description"] = "If Dreadstalkers are already active, no need to save shards",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "soul_shard >= 1 & buff.nether_portal.up & cooldown.call_dreadstalkers.remains > 2 * gcd.max",
["action"] = "hand_of_guldan",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "soul_shard >= 1 & cooldown.summon_demonic_tyrant.remains_expected < gcd.max & time > 12 - gcd.max & ( buff.dreadstalkers.up & buff.dreadstalkers.remains > action.hand_of_guldan.execute_time + action.summon_demonic_tyrant.execute_time ) & ( ! talent.summon_vilefiend.enabled || buff.vilefiend.up )",
["action"] = "hand_of_guldan",
}, -- [26]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! covenant.venthyr",
["list_name"] = "covenant_ability",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "! talent.sacrificed_souls.enabled",
["action"] = "soul_strike",
["description"] = "Without Sacrificed Souls, Soul Strike is stronger than Demonbolt, so it has a higher priority",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.react & soul_shard < 4 & cooldown.summon_demonic_tyrant.remains_expected > 20",
["action"] = "demonbolt",
["description"] = "Spend Demonic Cores for Soul Shards until Tyrant cooldown is close to ready",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.react & soul_shard < 4 & cooldown.summon_demonic_tyrant.remains_expected < 12",
["action"] = "demonbolt",
["description"] = "During Tyrant setup, spend Demonic Cores for Soul Shards",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.react & soul_shard < 4 & ( buff.demonic_core.stack > 2 || talent.sacrificed_souls.enabled )",
["action"] = "demonbolt",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.react & soul_shard < 4 & active_enemies > 1",
["action"] = "demonbolt",
}, -- [32]
{
["action"] = "soul_strike",
["enabled"] = true,
}, -- [33]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "covenant_ability",
}, -- [34]
{
["enabled"] = true,
["criteria"] = "soul_shard >= 3 & cooldown.summon_demonic_tyrant.remains_expected > 25 & ( talent.demonic_calling.enabled || cooldown.call_dreadstalkers.remains > ( ( 5 - soul_shard ) * action.shadow_bolt.execute_time ) + action.hand_of_guldan.execute_time )",
["action"] = "hand_of_guldan",
["description"] = "If you can get back to 5 Soul Shards before Dreadstalkers cooldown is ready, it's okay to spend them now",
}, -- [35]
{
["enabled"] = true,
["criteria"] = "refreshable & time > variable.first_tyrant_time",
["action"] = "doom",
["cycle_targets"] = 1,
}, -- [36]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.react & buff.demonic_core.remains < 1 + gcd.max * buff.demonic_core.stack",
["action"] = "demonbolt",
["description"] = "Use Demonbolt if you're going to lose Demonic Core stacks, even if it'd waste a soul shard.",
}, -- [37]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [38]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["description"] = "Executed before combat begins. Accepts non-harmful actions only.",
["value"] = "10",
["var_name"] = "first_tyrant_time",
["action"] = "variable",
["value_else"] = "12",
["criteria"] = "buff.bloodlust.up",
}, -- [1]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive",
["action"] = "fel_domination",
}, -- [3]
{
["action"] = "summon_felguard",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["name"] = "tome_of_monstrous_constructions",
["action"] = "tome_of_monstrous_constructions",
}, -- [5]
{
["enabled"] = true,
["name"] = "soleahs_secret_technique",
["action"] = "soleahs_secret_technique",
}, -- [6]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.wild_imps.stack > 1 & buff.demonic_core.stack <= 2",
["action"] = "power_siphon",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( boss || action.demonbolt.cast = 0 ) & soul_shards < 4",
["action"] = "demonbolt",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! ( boss || action.demonbolt.cast = 0 ) || soul_shards > 3",
["action"] = "shadow_bolt",
}, -- [10]
},
["opener"] = {
{
["enabled"] = true,
["criteria"] = "soulbind.grove_invigoration.enabled",
["action"] = "soul_rot",
}, -- [1]
{
["action"] = "nether_portal",
["enabled"] = true,
}, -- [2]
{
["action"] = "grimoire_felguard",
["enabled"] = true,
}, -- [3]
{
["action"] = "summon_vilefiend",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.react & soul_shard < 4 & cooldown.call_dreadstalkers.up",
["action"] = "demonbolt",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "soul_shard < 5 & cooldown.call_dreadstalkers.up",
["action"] = "shadow_bolt",
}, -- [6]
{
["action"] = "call_dreadstalkers",
["enabled"] = true,
}, -- [7]
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < 22",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.demonic_consumption.enabled & cooldown.summon_demonic_tyrant.remains_expected < 20",
["list_name"] = "hp_trinks",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Effects that travel slowly to target require additional, separate handling",
["list_name"] = "slow_trinkets",
}, -- [3]
{
["enabled"] = true,
["name"] = "overflowing_anima_cage",
["action"] = "overflowing_anima_cage",
["criteria"] = "pet.demonic_tyrant.active",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "trinket.t1.has_use_buff & pet.demonic_tyrant.active",
["action"] = "trinket1",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "trinket.t2.has_use_buff & pet.demonic_tyrant.active",
["action"] = "trinket2",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "time > variable.first_tyrant_time & cooldown.summon_demonic_tyrant.remains_expected > 20",
["list_name"] = "pure_damage_trinks",
}, -- [7]
},
["pure_damage_trinks"] = {
{
["enabled"] = true,
["name"] = "dreadfire_vessel",
["action"] = "dreadfire_vessel",
}, -- [1]
{
["enabled"] = true,
["name"] = "soul_igniter",
["action"] = "soul_igniter",
}, -- [2]
{
["enabled"] = true,
["name"] = "glyph_of_assimilation",
["action"] = "glyph_of_assimilation",
["criteria"] = "active_enemies = 1",
}, -- [3]
{
["enabled"] = true,
["name"] = "darkmoon_deck_putrescence",
["action"] = "darkmoon_deck_putrescence",
}, -- [4]
{
["enabled"] = true,
["name"] = "ebonsoul_vise",
["action"] = "ebonsoul_vise",
}, -- [5]
{
["enabled"] = true,
["name"] = "unchained_gladiators_shackles",
["action"] = "unchained_gladiators_shackles",
}, -- [6]
},
["ogcd"] = {
{
["action"] = "berserking",
["enabled"] = true,
}, -- [1]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [2]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [3]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [4]
},
},
["version"] = 20211102,
["warnings"] = "WARNING: The import for 'slow_trinkets' required some automated changes.\nLine 1: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 2: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 3: Converted SimC syntax % to Lua division operator (/) (3x).\n\nWARNING: The import for 'covenant_ability' required some automated changes.\nLine 1: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 2: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 3: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 4: Converted 'soulbind.X' to 'soulbind.X.enabled' (2x).\nLine 5: Converted 'soulbind.X' to 'soulbind.X.enabled' (3x).\nLine 6: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\nLine 7: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 8: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nWARNING: The import for 'tyrant_setup' required some automated changes.\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 8: Converted 'soulbind.X' to 'soulbind.X.enabled' (3x).\nLine 9: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 12: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 13: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 17: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 18: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 19: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'trinkets' required some automated changes.\nLine 5: Converted 'trinket.1.X' to 'trinket.t1.X' (1x).\nLine 6: Converted 'trinket.2.X' to 'trinket.t2.X' (1x).\n\nWARNING: The import for 'opener' required some automated changes.\nLine 1: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nImported 10 action lists.\n",
["profile"] = "## Demonology Warlock\n## https://github.com/simulationcraft/simc/\n## November 2, 2021\n\n## Changes:\n## - Spell Lock.\n## - Only recommend Demonbolt pre-combat if it is instant (or hardcast for bosses).\n## - Power Siphon allowed pre-combat to proc instant Demonbolt.\n## - PvP talent interrupt.\n## - Avoid SB->HoG spam when you're not about to summon a Tyrant.\n## - Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.\n## - Try to avoid wasting Demonic Core stacks.\n## - Try to make opener priority only work if we can actually open with a Tyrant.\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat+=/variable,name=first_tyrant_time,op=set,if=buff.bloodlust.up,value=10,value_else=12\nactions.precombat+=/use_item,name=shadowed_orb_of_torment\nactions.precombat+=/fel_domination,if=time>0&!pet.alive\nactions.precombat+=/summon_pet\nactions.precombat+=/use_item,name=tome_of_monstrous_constructions\nactions.precombat+=/use_item,name=soleahs_secret_technique\nactions.precombat+=/fleshcraft\nactions.precombat+=/power_siphon,if=buff.wild_imps.stack>1&buff.demonic_core.stack<=2\nactions.precombat+=/demonbolt,if=(boss||action.demonbolt.cast=0)&soul_shards<4\nactions.precombat+=/shadow_bolt,if=!(boss||action.demonbolt.cast=0)||soul_shards>3\n\n# Executed every time the actor is available.\nactions=spell_lock\nactions+=/call_felhunter\nactions+=/axe_toss\nactions+=/devour_magic\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=opener,strict=1,if=toggle.cooldowns&time<variable.first_tyrant_time&cooldown.summon_demonic_tyrant.remains<variable.first_tyrant_time-time\nactions+=/doom,if=refreshable\nactions+=/call_action_list,name=covenant_ability,strict=1,if=soulbind.grove_invigoration||soulbind.field_of_blossoms||soulbind.combat_meditation||covenant.necrolord\nactions+=/potion,if=(cooldown.summon_demonic_tyrant.remains_expected=0&time>variable.first_tyrant_time||soulbind.refined_palate&cooldown.summon_demonic_tyrant.remains_expected<38)\nactions+=/call_action_list,name=tyrant_setup\nactions+=/call_action_list,name=ogcd,strict=1,if=pet.demonic_tyrant.active\nactions+=/demonic_strength,if=(!runeforge.wilfreds_sigil_of_superior_summoning&cooldown.summon_demonic_tyrant.remains_expected>9)||(pet.demonic_tyrant.active&pet.demonic_tyrant.remains<6*gcd.max)\nactions+=/call_dreadstalkers,if=cooldown.summon_demonic_tyrant.remains_expected>20-5*!runeforge.wilfreds_sigil_of_superior_summoning\nactions+=/power_siphon,if=buff.wild_imps.stack>1&buff.demonic_core.stack<3\nactions+=/bilescourge_bombers,if=buff.tyrant.down&cooldown.summon_demonic_tyrant.remains_expected>5\nactions+=/implosion,if=active_enemies>1+(1*talent.sacrificed_souls.enabled)&buff.wild_imps.stack>=6&buff.tyrant.down&cooldown.summon_demonic_tyrant.remains_expected>5\nactions+=/implosion,if=active_enemies>2&buff.wild_imps.stack>=6&buff.tyrant.down&cooldown.summon_demonic_tyrant.remains_expected>5&!runeforge.implosive_potential&(!talent.from_the_shadows.enabled||buff.from_the_shadows.up)\nactions+=/implosion,if=active_enemies>2&buff.wild_imps.stack>=6&buff.implosive_potential.remains<2&runeforge.implosive_potential\nactions+=/implosion,if=buff.wild_imps.stack>=12&talent.soul_conduit.enabled&talent.from_the_shadows.enabled&runeforge.implosive_potential&buff.tyrant.down&cooldown.summon_demonic_tyrant.remains_expected>5\nactions+=/grimoire_felguard,if=boss&time_to_die<30\nactions+=/summon_vilefiend,if=boss&time_to_die<28\nactions+=/summon_demonic_tyrant,if=boss&time_to_die<15\nactions+=/hand_of_guldan,if=soul_shard=5\n# If Dreadstalkers are already active, no need to save shards\nactions+=/hand_of_guldan,if=soul_shard>=3&(pet.dreadstalker.active||pet.demonic_tyrant.active)\nactions+=/hand_of_guldan,if=soul_shard>=1&buff.nether_portal.up&cooldown.call_dreadstalkers.remains>2*gcd.max\nactions+=/hand_of_guldan,if=soul_shard>=1&cooldown.summon_demonic_tyrant.remains_expected<gcd.max&time>12-gcd.max&(buff.dreadstalkers.up&buff.dreadstalkers.remains>action.hand_of_guldan.execute_time+action.summon_demonic_tyrant.execute_time)&(!talent.summon_vilefiend.enabled||buff.vilefiend.up)\nactions+=/call_action_list,name=covenant_ability,strict=1,if=!covenant.venthyr\n# Without Sacrificed Souls, Soul Strike is stronger than Demonbolt, so it has a higher priority\nactions+=/soul_strike,if=!talent.sacrificed_souls.enabled\n# Spend Demonic Cores for Soul Shards until Tyrant cooldown is close to ready\nactions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&cooldown.summon_demonic_tyrant.remains_expected>20\n# During Tyrant setup, spend Demonic Cores for Soul Shards\nactions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&cooldown.summon_demonic_tyrant.remains_expected<12\nactions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&(buff.demonic_core.stack>2||talent.sacrificed_souls.enabled)\nactions+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&active_enemies>1\nactions+=/soul_strike\nactions+=/call_action_list,name=covenant_ability\n# If you can get back to 5 Soul Shards before Dreadstalkers cooldown is ready, it's okay to spend them now\nactions+=/hand_of_guldan,if=soul_shard>=3&cooldown.summon_demonic_tyrant.remains_expected>25&(talent.demonic_calling.enabled||cooldown.call_dreadstalkers.remains>((5-soul_shard)*action.shadow_bolt.execute_time)+action.hand_of_guldan.execute_time)\nactions+=/doom,cycle_targets=1,if=refreshable&time>variable.first_tyrant_time\n# Use Demonbolt if you're going to lose Demonic Core stacks, even if it'd waste a soul shard.\nactions+=/demonbolt,if=buff.demonic_core.react&buff.demonic_core.remains<1+gcd.max*buff.demonic_core.stack\nactions+=/shadow_bolt\n\nactions.slow_trinkets=use_item,name=soulletting_ruby,if=cooldown.summon_demonic_tyrant.remains_expected<target.distance%5&time>variable.first_tyrant_time-(target.distance%5)\nactions.slow_trinkets+=/use_item,name=sunblood_amethyst,if=cooldown.summon_demonic_tyrant.remains_expected<target.distance%5&time>variable.first_tyrant_time-(target.distance%5)\n# Ordnance has a 12 second delay and is therefore skipped for first Tyrant to line up with the rest\nactions.slow_trinkets+=/use_item,name=empyreal_ordnance,if=cooldown.summon_demonic_tyrant.remains_expected<(target.distance%5)+12&cooldown.summon_demonic_tyrant.remains_expected>(((target.distance%5)+12)-15)&time>variable.first_tyrant_time-((target.distance%5)+12)\n\nactions.covenant_ability=soul_rot,if=soulbind.grove_invigoration&(cooldown.summon_demonic_tyrant.remains_expected<20||cooldown.summon_demonic_tyrant.remains_expected>30)\nactions.covenant_ability+=/soul_rot,if=soulbind.field_of_blossoms&pet.demonic_tyrant.active\nactions.covenant_ability+=/soul_rot,if=soulbind.wild_hunt_tactics&!pet.demonic_tyrant.active&cooldown.summon_demonic_tyrant.remains_expected>18\nactions.covenant_ability+=/decimating_bolt,if=(soulbind.lead_by_example||soulbind.kevins_oozeling)&(pet.demonic_tyrant.active&soul_shard<2||!pet.demonic_tyrant.active&cooldown.summon_demonic_tyrant.remains_expected>40)\nactions.covenant_ability+=/decimating_bolt,if=(soulbind.forgeborne_reveries||(soulbind.volatile_solvent&!soulbind.kevins_oozeling))&!pet.demonic_tyrant.active\nactions.covenant_ability+=/fleshcraft,if=soulbind.volatile_solvent,interrupt_if=buff.volatile_solvent.up\nactions.covenant_ability+=/scouring_tithe,if=soulbind.combat_meditation&pet.demonic_tyrant.active\nactions.covenant_ability+=/scouring_tithe,if=!soulbind.combat_meditation\nactions.covenant_ability+=/impending_catastrophe,if=pet.demonic_tyrant.active&soul_shard=0\n\nactions.hp_trinks=use_item,name=sinful_gladiators_emblem\nactions.hp_trinks+=/use_item,name=sinful_aspirants_emblem\n\nactions.ogcd=berserking\nactions.ogcd+=/blood_fury\nactions.ogcd+=/fireblood\nactions.ogcd+=/use_items\n\nactions.opener=soul_rot,if=soulbind.grove_invigoration\nactions.opener+=/nether_portal\nactions.opener+=/grimoire_felguard\nactions.opener+=/summon_vilefiend\nactions.opener+=/demonbolt,if=buff.demonic_core.react&soul_shard<4&cooldown.call_dreadstalkers.up\nactions.opener+=/shadow_bolt,if=soul_shard<5&cooldown.call_dreadstalkers.up\nactions.opener+=/call_dreadstalkers\n\nactions.pure_damage_trinks=use_item,name=dreadfire_vessel\nactions.pure_damage_trinks+=/use_item,name=soul_igniter\nactions.pure_damage_trinks+=/use_item,name=glyph_of_assimilation,if=active_enemies=1\nactions.pure_damage_trinks+=/use_item,name=darkmoon_deck_putrescence\nactions.pure_damage_trinks+=/use_item,name=ebonsoul_vise\nactions.pure_damage_trinks+=/use_item,name=unchained_gladiators_shackles\n\nactions.trinkets=use_item,name=shadowed_orb_of_torment,if=cooldown.summon_demonic_tyrant.remains_expected<22\nactions.trinkets+=/call_action_list,name=hp_trinks,if=talent.demonic_consumption.enabled&cooldown.summon_demonic_tyrant.remains_expected<20\n# Effects that travel slowly to target require additional, separate handling\nactions.trinkets+=/call_action_list,name=slow_trinkets\nactions.trinkets+=/use_item,name=overflowing_anima_cage,if=pet.demonic_tyrant.active\nactions.trinkets+=/trinket1,if=trinket.1.has_use_buff&pet.demonic_tyrant.active\nactions.trinkets+=/trinket2,if=trinket.2.has_use_buff&pet.demonic_tyrant.active\nactions.trinkets+=/call_action_list,name=pure_damage_trinks,if=time>variable.first_tyrant_time&cooldown.summon_demonic_tyrant.remains_expected>20\n\nactions.tyrant_setup=nether_portal,if=cooldown.summon_demonic_tyrant.remains_expected<15\nactions.tyrant_setup+=/grimoire_felguard,if=cooldown.summon_demonic_tyrant.remains_expected<17-(action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time)&(cooldown.call_dreadstalkers.remains<17-(action.summon_demonic_tyrant.execute_time+action.summon_vilefiend.execute_time+action.shadow_bolt.execute_time)||pet.dreadstalker.remains>cooldown.summon_demonic_tyrant.remains_expected+action.summon_demonic_tyrant.execute_time)\nactions.tyrant_setup+=/summon_vilefiend,if=(cooldown.summon_demonic_tyrant.remains_expected<15-(action.summon_demonic_tyrant.execute_time)&(cooldown.call_dreadstalkers.remains<15-(action.summon_demonic_tyrant.execute_time+action.summon_vilefiend.execute_time)||pet.dreadstalker.remains>cooldown.summon_demonic_tyrant.remains_expected+action.summon_demonic_tyrant.execute_time))||(!runeforge.wilfreds_sigil_of_superior_summoning&cooldown.summon_demonic_tyrant.remains_expected>40)\nactions.tyrant_setup+=/call_dreadstalkers,if=cooldown.summon_demonic_tyrant.remains_expected<12-(action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time)\nactions.tyrant_setup+=/summon_demonic_tyrant,if=time>variable.first_tyrant_time&(pet.dreadstalker.active&pet.dreadstalker.remains>action.summon_demonic_tyrant.execute_time)&(!talent.summon_vilefiend.enabled||pet.vilefiend.active)&(soul_shard=0||(pet.dreadstalker.active&pet.dreadstalker.remains<action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time)||(pet.vilefiend.active&pet.vilefiend.remains<action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time)||(buff.grimoire_felguard.up&buff.grimoire_felguard.remains<action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time))",
["author"] = "",
},
["Affliction"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210818,
["spec"] = 265,
["desc"] = "Affliction Warlock\nJuly 7, 2021\n\nChanges:\n- Added Spell Lock.\n- Added Devour Magic.\n- Added breakchannel logic for Drain Soul.\n- Tweak Malefic Rapture logic to work if you're missing a talent in that row.\n- Enable Rampant Afflictions PvP talent.\n- Tweaks to avoid blowing Darkglare in multi-target w/o DOTs up.\n- Condense some Darkglare Prep calls to reduce computation time.\n- Set some call_action_list entries to strict to avoid checking lists that won't be reached (again!).\n- Only Seed once pre-pull.\n- Adjust \"burn CDs before end of fight\" logic to apply only to boss fights (not trash packs).\n- Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.",
["profile"] = "## Affliction Warlock\n## July 7, 2021\n\n## Changes:\n## - Added Spell Lock.\n## - Added Devour Magic.\n## - Added breakchannel logic for Drain Soul.\n## - Tweak Malefic Rapture logic to work if you're missing a talent in that row.\n## - Enable Rampant Afflictions PvP talent.\n## - Tweaks to avoid blowing Darkglare in multi-target w/o DOTs up.\n## - Condense some Darkglare Prep calls to reduce computation time.\n## - Set some call_action_list entries to strict to avoid checking lists that won't be reached (again!).\n## - Only Seed once pre-pull.\n## - Adjust \"burn CDs before end of fight\" logic to apply only to boss fights (not trash packs).\n## - Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.\n\nactions.precombat=fel_domination,if=time>0&!pet.alive&!buff.grimoire_of_sacrifice.up\nactions.precombat+=/summon_pet\nactions.precombat+=/use_item,name=tome_of_monstrous_constructions\nactions.precombat+=/use_item,name=soleahs_secret_technique\nactions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled\nactions.precombat+=/fleshcraft\nactions.precombat+=/variable,name=dots_ready,value=active_dot.corruption>0&active_dot.agony>0&active_dot.unstable_affliction>0&(!talent.siphon_life.enabled||active_dot.siphon_life>0)&(dot.phantom_singularity.ticking||!talent.phantom_singularity.enabled)\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/seed_of_corruption,line_cd=10,if=spell_targets.seed_of_corruption_aoe>=3\nactions.precombat+=/haunt\nactions.precombat+=/unstable_affliction\n\n## Executed every time the actor is available.\nactions=spell_lock\nactions+=/devour_magic\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>3\n# Action lists for trinket behavior. Stats are saved for before Soul Rot/Impending Catastrophe/Phantom Singularity, otherwise on cooldown\nactions+=/call_action_list,name=trinket_split_check\nactions+=/call_action_list,name=delayed_trinkets\nactions+=/call_action_list,name=stat_trinkets,strict=1,if=(dot.soul_rot.ticking||dot.impending_catastrophe_dot.ticking||dot.phantom_singularity.ticking)&soul_shard>3||dot.vile_taint.ticking||talent.sow_the_seeds\nactions+=/call_action_list,name=damage_trinkets,if=covenant.night_fae&(!variable.trinket_split||cooldown.soul_rot.remains>20||(variable.trinket_one&cooldown.soul_rot.remains<trinket.1.cooldown.remains)||(variable.trinket_two&cooldown.soul_rot.remains<trinket.2.cooldown.remains))||covenant.venthyr&(!variable.trinket_split||cooldown.impending_catastrophe.remains>20||(variable.trinket_one&cooldown.impending_catastrophe.remains<trinket.1.cooldown.remains)||(variable.trinket_two&cooldown.impending_catastrophe.remains<trinket.2.cooldown.remains))||(covenant.necrolord||covenant.kyrian||covenant.none)&(!variable.trinket_split||cooldown.phantom_singularity.remains>20||(variable.trinket_one&cooldown.phantom_singularity.remains<trinket.1.cooldown.remains)||(variable.trinket_two&cooldown.phantom_singularity.remains<trinket.2.cooldown.remains))||!talent.phantom_singularity.enabled&(!variable.trinket_split||cooldown.summon_darkglare.remains>20||(variable.trinket_one&cooldown.summon_darkglare.remains<trinket.1.cooldown.remains)||(variable.trinket_two&cooldown.summon_darkglare.remains<trinket.2.cooldown.remains))\n# Burn soul shards if fight is almost over\nactions+=/malefic_rapture,if=boss&fight_remains<execute_time*soul_shard&dot.unstable_affliction.ticking\n# If covenant dot/Phantom Singularity is running, use Darkglare to extend the current set\nactions+=/call_action_list,name=darkglare_prep,if=(covenant.venthyr&dot.impending_catastrophe_dot.ticking&cooldown.summon_darkglare.remains<2&(dot.phantom_singularity.remains>2||!talent.phantom_singularity))||(covenant.night_fae&dot.soul_rot.ticking&cooldown.summon_darkglare.remains<2&(dot.phantom_singularity.remains>2||!talent.phantom_singularity))||((covenant.necrolord||covenant.kyrian||covenant.none)&dot.phantom_singularity.ticking&dot.phantom_singularity.remains<2)\n# Refresh dots early if going into a shard spending phase\nactions+=/call_action_list,name=dot_prep,if=(covenant.night_fae&!dot.soul_rot.ticking&cooldown.soul_rot.remains<4)||(covenant.venthyr&!dot.impending_catastrophe_dot.ticking&cooldown.impending_catastrophe.remains<4)||((covenant.necrolord||covenant.kyrian||covenant.none)&talent.phantom_singularity&!dot.phantom_singularity.ticking&cooldown.phantom_singularity.remains<4)\n# If Phantom Singularity is ticking, it is safe to use Dark Soul\nactions+=/dark_soul,if=dot.phantom_singularity.ticking\nactions+=/dark_soul,if=!talent.phantom_singularity&(dot.soul_rot.ticking||dot.impending_catastrophe_dot.ticking)\n# Sync Phantom Singularity with Venthyr/Night Fae covenant dot, otherwise use on cooldown. If Empyreal Ordnance buff is incoming, hold until it's ready (18 seconds after use)\nactions+=/phantom_singularity,if=covenant.night_fae&time>5&cooldown.soul_rot.remains<1&(trinket.empyreal_ordnance.cooldown.remains<162||!equipped.empyreal_ordnance)\nactions+=/phantom_singularity,if=covenant.venthyr&time>5&cooldown.impending_catastrophe.remains<1&(trinket.empyreal_ordnance.cooldown.remains<162||!equipped.empyreal_ordnance)\n# Necrolord with Malefic Wrath casts phantom singularity in line with Decimating Bolt\nactions+=/phantom_singularity,if=covenant.necrolord&runeforge.malefic_wrath&time>5&cooldown.decimating_bolt.remains<3&(trinket.empyreal_ordnance.cooldown.remains<162||!equipped.empyreal_ordnance)\n# Other covenants (including non-MW Necro) cast PS on cooldown\nactions+=/phantom_singularity,if=(covenant.kyrian||covenant.none||(covenant.necrolord&!runeforge.malefic_wrath))&(trinket.empyreal_ordnance.cooldown.remains<162||!equipped.empyreal_ordnance)\nactions+=/phantom_singularity,if=boss&fight_remains<16\n# If Phantom Singularity is ticking, it's time to use other major dots\nactions+=/call_action_list,name=covenant,if=dot.phantom_singularity.ticking&(covenant.night_fae||covenant.venthyr)\nactions+=/agony,cycle_targets=1,if=dot.agony.remains<4\nactions+=/haunt\n# Sow the Seeds on 3 targets if it isn't currently in flight or on the target. With Siphon Life it's also better to use Seed over manually applying 3 Corruptions.\nactions+=/seed_of_corruption,if=active_enemies>2&talent.sow_the_seeds&!dot.seed_of_corruption.ticking&!in_flight\nactions+=/seed_of_corruption,if=active_enemies>2&talent.siphon_life&!dot.seed_of_corruption.ticking&!in_flight&dot.corruption.remains<4\nactions+=/vile_taint,if=(soul_shard>1||active_enemies>2)&cooldown.summon_darkglare.remains>12\nactions+=/unstable_affliction,if=active_dot.unstable_affliction=0||ticking&dot.unstable_affliction.remains<4\nactions+=/siphon_life,cycle_targets=1,if=dot.siphon_life.remains<4\nactions+=/call_action_list,name=covenant,strict=1,if=!covenant.necrolord\n# Apply Corruption manually on 1-2 targets, or on 3 with Absolute Corruption\nactions+=/corruption,cycle_targets=1,if=active_enemies<4-(talent.sow_the_seeds||talent.siphon_life)&dot.corruption.remains<2\n# After the opener, spend a shard when at 5 on Malefic Rapture to avoid overcapping\nactions+=/malefic_rapture,if=soul_shard>4&time>21\n# When not syncing Phantom Singularity to Venthyr/Night Fae, Summon Darkglare if all dots are applied\nactions+=/call_action_list,name=darkglare_prep,if=(covenant.venthyr&!talent.phantom_singularity&dot.impending_catastrophe_dot.ticking&cooldown.summon_darkglare.ready)||(covenant.night_fae&!talent.phantom_singularity&dot.soul_rot.ticking&cooldown.summon_darkglare.ready)||((covenant.necrolord||covenant.kyrian||covenant.none)&cooldown.summon_darkglare.ready)\n# Use Dark Soul if Darkglare won't be ready again, or if there will be at least 2 more Darkglare uses\nactions+=/dark_soul,if=boss&cooldown.summon_darkglare.remains>fight_remains&(!talent.phantom_singularity||cooldown.phantom_singularity.remains>fight_remains)\nactions+=/dark_soul,if=boss&!talent.phantom_singularity&cooldown.summon_darkglare.remains+cooldown.summon_darkglare.duration<fight_remains\n# Catch-all item usage for anything not specified elsewhere\nactions+=/call_action_list,name=item\n## Refresh Shadow Embrace before spending shards on Malefic Rapture\nactions+=/call_action_list,name=se,if=talent.shadow_embrace.enabled&(debuff.shadow_embrace.stack<(2-action.shadow_bolt.in_flight)||debuff.shadow_embrace.remains<3)\n# Use Malefic Rapture when major dots are up, or if there will be significant time until the next Phantom Singularity. If utilizing Malefic Wrath, hold a shard to refresh the buff\nactions+=/malefic_rapture,if=(dot.vile_taint.ticking||dot.impending_catastrophe_dot.ticking||dot.soul_rot.ticking)&(!runeforge.malefic_wrath||buff.malefic_wrath.stack<3||soul_shard>1)\n# Use Malefic Rapture to maintain the malefic wrath buff until shards need to be generated for the next burst window (20 seconds is more than sufficient to generate 3 shards)\nactions+=/malefic_rapture,if=runeforge.malefic_wrath&cooldown.soul_rot.remains>20&buff.malefic_wrath.remains<4\n# Maintain Malefic Wrath at all times for the Necrolord or Kyrian covenant\nactions+=/malefic_rapture,if=runeforge.malefic_wrath&(covenant.necrolord||covenant.kyrian)&buff.malefic_wrath.remains<4\n# Use Malefic Rapture on Phantom Singularity casts, making sure to save a shard to stack Malefic Wrath if using it\nactions+=/malefic_rapture,if=talent.phantom_singularity&(dot.phantom_singularity.ticking||cooldown.phantom_singularity.remains>25||boss&time_to_die<cooldown.phantom_singularity.remains)&(!runeforge.malefic_wrath||buff.malefic_wrath.stack<3||soul_shard>1)\nactions+=/malefic_rapture,if=talent.sow_the_seeds\n# Drain Life is only a DPS gain with Inevitable Demise near max stacks. If fight is about to end do not miss spending the stacks\nactions+=/drain_life,if=buff.inevitable_demise.stack>40||buff.inevitable_demise.up&boss&fight_remains<4\nactions+=/call_action_list,name=covenant\nactions+=/agony,cycle_targets=1,if=refreshable\nactions+=/unstable_affliction,if=active_dot.unstable_affliction=0||ticking&refreshable\nactions+=/siphon_life,cycle_targets=1,if=refreshable\nactions+=/corruption,cycle_targets=1,if=refreshable&active_enemies<4-(talent.sow_the_seeds||talent.siphon_life)\nactions+=/fleshcraft,if=soulbind.volatile_solvent,interrupt_if=buff.volatile_solvent.up\nactions+=/drain_soul,interrupt=1\nactions+=/shadow_bolt\n\nactions.aoe=phantom_singularity\nactions.aoe+=/haunt\nactions.aoe+=/call_action_list,name=darkglare_prep,if=covenant.venthyr&dot.impending_catastrophe_dot.ticking&cooldown.summon_darkglare.ready&(dot.phantom_singularity.remains>2||!talent.phantom_singularity)||covenant.night_fae&dot.soul_rot.ticking&cooldown.summon_darkglare.ready&(dot.phantom_singularity.remains>2||!talent.phantom_singularity)||(covenant.necrolord||covenant.kyrian||covenant.none)&dot.phantom_singularity.ticking&dot.phantom_singularity.remains<2\nactions.aoe+=/seed_of_corruption,if=talent.sow_the_seeds&can_seed\nactions.aoe+=/seed_of_corruption,if=!talent.sow_the_seeds&!dot.seed_of_corruption.ticking&!in_flight&dot.corruption.refreshable\nactions.aoe+=/agony,cycle_targets=1,if=active_dot.agony<4&!dot.agony.ticking\nactions.aoe+=/agony,cycle_targets=1,if=active_dot.agony>=4&refreshable&dot.agony.ticking\nactions.aoe+=/unstable_affliction,if=active_dot.unstable_affliction=0||ticking&refreshable\nactions.aoe+=/unstable_affliction,cycle_targets=1,if=!ticking&pvptalent.rampant_afflictions.enabled&active_dot.unstable_affliction<3\nactions.aoe+=/vile_taint,if=soul_shard>1\nactions.aoe+=/call_action_list,name=covenant,strict=1,if=!covenant.necrolord\nactions.aoe+=/call_action_list,name=darkglare_prep,if=(covenant.venthyr&(cooldown.impending_catastrophe.ready||dot.impending_catastrophe_dot.ticking)&cooldown.summon_darkglare.ready&(dot.phantom_singularity.remains>2||!talent.phantom_singularity))&((covenant.necrolord||covenant.kyrian||covenant.none)&cooldown.summon_darkglare.remains<2&(dot.phantom_singularity.remains>2||!talent.phantom_singularity))||(covenant.night_fae&(cooldown.soul_rot.ready||dot.soul_rot.ticking)&cooldown.summon_darkglare.remains<2&(dot.phantom_singularity.remains>2||!talent.phantom_singularity))\nactions.aoe+=/dark_soul,if=boss&cooldown.summon_darkglare.remains>fight_remains&(!talent.phantom_singularity||cooldown.phantom_singularity.remains>fight_remains)\nactions.aoe+=/dark_soul,if=boss&cooldown.summon_darkglare.remains+cooldown.summon_darkglare.duration<fight_remains\nactions.aoe+=/call_action_list,name=item\nactions.aoe+=/call_action_list,name=delayed_trinkets\nactions.aoe+=/call_action_list,name=damage_trinkets\nactions.aoe+=/call_action_list,name=stat_trinkets,if=dot.phantom_singularity.ticking||!talent.phantom_singularity\nactions.aoe+=/malefic_rapture,if=dot.vile_taint.ticking\nactions.aoe+=/malefic_rapture,if=dot.soul_rot.ticking&!talent.sow_the_seeds\nactions.aoe+=/malefic_rapture,if=!talent.vile_taint\nactions.aoe+=/malefic_rapture,if=soul_shard>4\nactions.aoe+=/siphon_life,cycle_targets=1,if=active_dot.siphon_life<=3&refreshable&!dot.siphon_life.ticking\nactions.aoe+=/call_action_list,name=covenant,strict=1,if=covenant.necrolord\nactions.aoe+=/drain_life,if=buff.inevitable_demise.stack>=50||boss&buff.inevitable_demise.up&fight_remains<5||buff.inevitable_demise.stack>=35&dot.soul_rot.ticking\nactions.aoe+=/fleshcraft,if=soulbind.volatile_solvent,interrupt_if=buff.volatile_solvent.up\nactions.aoe+=/drain_soul,interrupt=1\nactions.aoe+=/shadow_bolt\n\nactions.covenant=impending_catastrophe,if=!talent.phantom_singularity&(cooldown.summon_darkglare.remains<10||cooldown.summon_darkglare.remains>50||cooldown.summon_darkglare.remains>25&conduit.corrupting_leer)\nactions.covenant+=/impending_catastrophe,if=talent.phantom_singularity&dot.phantom_singularity.ticking\nactions.covenant+=/decimating_bolt,if=cooldown.summon_darkglare.remains>5&(debuff.haunt.remains>4||!talent.haunt)\nactions.covenant+=/soul_rot,if=!talent.phantom_singularity&(cooldown.summon_darkglare.remains<5||cooldown.summon_darkglare.remains>50||cooldown.summon_darkglare.remains>25&conduit.corrupting_leer)\nactions.covenant+=/soul_rot,if=talent.phantom_singularity&dot.phantom_singularity.ticking\nactions.covenant+=/scouring_tithe\n\nactions.damage_trinkets=use_item,name=soul_igniter\nactions.damage_trinkets+=/use_item,name=dreadfire_vessel\nactions.damage_trinkets+=/use_item,name=glyph_of_assimilation\nactions.damage_trinkets+=/use_item,name=unchained_gladiators_shackles\nactions.damage_trinkets+=/use_item,name=ebonsoul_vice\n\nactions.darkglare_prep=vile_taint\nactions.darkglare_prep+=/dark_soul\nactions.darkglare_prep+=/potion\nactions.darkglare_prep+=/fireblood\nactions.darkglare_prep+=/blood_fury\nactions.darkglare_prep+=/berserking\nactions.darkglare_prep+=/call_action_list,name=covenant,if=!covenant.necrolord\nactions.darkglare_prep+=/summon_darkglare\n\nactions.delayed_trinkets=use_item,name=empyreal_ordnance,if=(covenant.night_fae&cooldown.soul_rot.remains<20)||(covenant.venthyr&cooldown.impending_catastrophe.remains<20)||(covenant.necrolord||covenant.kyrian||covenant.none)\nactions.delayed_trinkets+=/use_item,name=sunblood_amethyst,if=(covenant.night_fae&cooldown.soul_rot.remains<6)||(covenant.venthyr&cooldown.impending_catastrophe.remains<6)||(covenant.necrolord||covenant.kyrian||covenant.none)\nactions.delayed_trinkets+=/use_item,name=soulletting_ruby,if=(covenant.night_fae&cooldown.soul_rot.remains<8)||(covenant.venthyr&cooldown.impending_catastrophe.remains<8)||(covenant.necrolord||covenant.kyrian||covenant.none)\nactions.delayed_trinkets+=/use_item,name=shadowed_orb_of_torment,if=(covenant.night_fae&cooldown.soul_rot.remains<4)||(covenant.venthyr&cooldown.impending_catastrophe.remains<4)||(covenant.necrolord||covenant.kyrian||covenant.none)\n\nactions.dot_prep=agony,if=dot.agony.remains<8&cooldown.summon_darkglare.remains>dot.agony.remains\nactions.dot_prep+=/siphon_life,if=dot.siphon_life.remains<8&cooldown.summon_darkglare.remains>dot.siphon_life.remains\nactions.dot_prep+=/unstable_affliction,if=dot.unstable_affliction.remains<8&cooldown.summon_darkglare.remains>dot.unstable_affliction.remains\nactions.dot_prep+=/corruption,if=dot.corruption.remains<8&cooldown.summon_darkglare.remains>dot.corruption.remains\n\nactions.item=use_items\n\nactions.se=haunt\nactions.se+=/drain_soul,interrupt_global=1,interrupt_if=debuff.shadow_embrace.stack>=3\nactions.se+=/shadow_bolt\n\nactions.stat_trinkets=use_item,name=inscrutable_quantum_device\nactions.stat_trinkets+=/use_item,name=instructors_divine_bell\nactions.stat_trinkets+=/use_item,name=overflowing_anima_cage\nactions.stat_trinkets+=/use_item,name=darkmoon_deck_putrescence\nactions.stat_trinkets+=/use_item,name=macabre_sheet_music\nactions.stat_trinkets+=/use_item,name=flame_of_battle\nactions.stat_trinkets+=/use_item,name=wakeners_frond\nactions.stat_trinkets+=/use_item,name=tablet_of_despair\nactions.stat_trinkets+=/use_item,name=sinful_aspirants_badge_of_ferocity\nactions.stat_trinkets+=/use_item,name=sinful_gladiators_badge_of_ferocity\nactions.stat_trinkets+=/blood_fury\nactions.stat_trinkets+=/fireblood\nactions.stat_trinkets+=/berserking\n\n# We don't support ^ as XOR in Lua, so I've converted this to arithmetic.\nactions.trinket_split_check=variable,name=special_equipped,value=((1*equipped.empyreal_ordnance)+(1*equipped.inscrutable_quantum_device)+(1*equipped.soulletting_ruby)+(1*equipped.sunblood_amethyst))=1\nactions.trinket_split_check+=/variable,name=trinket_one,value=(trinket.1.has_proc&trinket.1.has_cooldown)\nactions.trinket_split_check+=/variable,name=trinket_two,value=(trinket.2.has_proc&trinket.2.has_cooldown)\nactions.trinket_split_check+=/variable,name=damage_trinket,value=(!(trinket.1.has_proc&trinket.1.has_cooldown))||(!(trinket.2.has_proc&trinket.2.has_cooldown))||equipped.glyph_of_assimilation\nactions.trinket_split_check+=/variable,name=trinket_split,value=(variable.trinket_one&variable.damage_trinket)||(variable.trinket_two&variable.damage_trinket)||(1*variable.trinket_one)+(1*variable.special_equipped)=1||(1*variable.trinket_two)+(1*variable.special_equipped)=1",
["version"] = 20210818,
["warnings"] = "WARNING: The import for 'trinket_split_check' required some automated changes.\nLine 2: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 3: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 4: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 4: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\n\nWARNING: The import for 'covenant' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 1: Converted 'conduit.X' to 'conduit.X.enabled' (1x).\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'conduit.X' to 'conduit.X.enabled' (1x).\nLine 5: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 6: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 7: Converted 'trinket.1.X' to 'trinket.t1.X' (4x).\nLine 7: Converted 'trinket.2.X' to 'trinket.t2.X' (4x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 12: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 13: Converted 'trinket.abc.cooldown' to 'cooldown.abc' (1x).\nLine 14: Converted 'trinket.abc.cooldown' to 'cooldown.abc' (1x).\nLine 15: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 15: Converted 'trinket.abc.cooldown' to 'cooldown.abc' (1x).\nLine 16: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 16: Converted 'trinket.abc.cooldown' to 'cooldown.abc' (1x).\nLine 21: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 22: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 27: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 29: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 30: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 31: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 34: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 35: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 36: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 37: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 37: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 38: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 44: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 45: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nWARNING: The import for 'aoe' required some automated changes.\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 5: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 12: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 13: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 18: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 20: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 21: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 26: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nImported 12 action lists.\n",
["author"] = "SimC",
["lists"] = {
["darkglare_prep"] = {
{
["action"] = "vile_taint",
["enabled"] = true,
}, -- [1]
{
["action"] = "dark_soul",
["enabled"] = true,
}, -- [2]
{
["action"] = "potion",
["enabled"] = true,
}, -- [3]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [4]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [5]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "! covenant.necrolord",
["list_name"] = "covenant",
}, -- [7]
{
["action"] = "summon_darkglare",
["enabled"] = true,
}, -- [8]
},
["trinket_split_check"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ( 1 * equipped.empyreal_ordnance ) + ( 1 * equipped.inscrutable_quantum_device ) + ( 1 * equipped.soulletting_ruby ) + ( 1 * equipped.sunblood_amethyst ) ) = 1",
["var_name"] = "special_equipped",
["description"] = "We don't support ",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( trinket.t1.has_proc & trinket.t1.has_cooldown )",
["var_name"] = "trinket_one",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( trinket.t2.has_proc & trinket.t2.has_cooldown )",
["var_name"] = "trinket_two",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! ( trinket.t1.has_proc & trinket.t1.has_cooldown ) ) || ( ! ( trinket.t2.has_proc & trinket.t2.has_cooldown ) ) || equipped.glyph_of_assimilation",
["var_name"] = "damage_trinket",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.trinket_one & variable.damage_trinket ) || ( variable.trinket_two & variable.damage_trinket ) || ( 1 * variable.trinket_one ) + ( 1 * variable.special_equipped ) = 1 || ( 1 * variable.trinket_two ) + ( 1 * variable.special_equipped ) = 1",
["var_name"] = "trinket_split",
}, -- [5]
},
["damage_trinkets"] = {
{
["enabled"] = true,
["name"] = "soul_igniter",
["action"] = "soul_igniter",
}, -- [1]
{
["enabled"] = true,
["name"] = "dreadfire_vessel",
["action"] = "dreadfire_vessel",
}, -- [2]
{
["enabled"] = true,
["name"] = "glyph_of_assimilation",
["action"] = "glyph_of_assimilation",
}, -- [3]
{
["enabled"] = true,
["name"] = "unchained_gladiators_shackles",
["action"] = "unchained_gladiators_shackles",
}, -- [4]
{
["enabled"] = true,
["name"] = "ebonsoul_vice",
["action"] = "ebonsoul_vice",
}, -- [5]
},
["delayed_trinkets"] = {
{
["enabled"] = true,
["name"] = "empyreal_ordnance",
["action"] = "empyreal_ordnance",
["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 20 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 20 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )",
}, -- [1]
{
["enabled"] = true,
["name"] = "sunblood_amethyst",
["action"] = "sunblood_amethyst",
["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 6 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 6 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )",
}, -- [2]
{
["enabled"] = true,
["name"] = "soulletting_ruby",
["action"] = "soulletting_ruby",
["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 8 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 8 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )",
}, -- [3]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 4 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 4 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )",
}, -- [4]
},
["covenant"] = {
{
["enabled"] = true,
["criteria"] = "! talent.phantom_singularity.enabled & ( cooldown.summon_darkglare.remains < 10 || cooldown.summon_darkglare.remains > 50 || cooldown.summon_darkglare.remains > 25 & conduit.corrupting_leer.enabled )",
["action"] = "impending_catastrophe",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.phantom_singularity.enabled & dot.phantom_singularity.ticking",
["action"] = "impending_catastrophe",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.summon_darkglare.remains > 5 & ( debuff.haunt.remains > 4 || ! talent.haunt.enabled )",
["action"] = "decimating_bolt",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.phantom_singularity.enabled & ( cooldown.summon_darkglare.remains < 5 || cooldown.summon_darkglare.remains > 50 || cooldown.summon_darkglare.remains > 25 & conduit.corrupting_leer.enabled )",
["action"] = "soul_rot",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.phantom_singularity.enabled & dot.phantom_singularity.ticking",
["action"] = "soul_rot",
}, -- [5]
{
["action"] = "scouring_tithe",
["enabled"] = true,
}, -- [6]
},
["dot_prep"] = {
{
["enabled"] = true,
["criteria"] = "dot.agony.remains < 8 & cooldown.summon_darkglare.remains > dot.agony.remains",
["action"] = "agony",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "dot.siphon_life.remains < 8 & cooldown.summon_darkglare.remains > dot.siphon_life.remains",
["action"] = "siphon_life",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "dot.unstable_affliction.remains < 8 & cooldown.summon_darkglare.remains > dot.unstable_affliction.remains",
["action"] = "unstable_affliction",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "dot.corruption.remains < 8 & cooldown.summon_darkglare.remains > dot.corruption.remains",
["action"] = "corruption",
}, -- [4]
},
["default"] = {
{
["action"] = "spell_lock",
["enabled"] = true,
}, -- [1]
{
["action"] = "devour_magic",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 3",
["list_name"] = "aoe",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Action lists for trinket behavior. Stats are saved for before Soul Rot/Impending Catastrophe/Phantom Singularity, otherwise on cooldown",
["list_name"] = "trinket_split_check",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "delayed_trinkets",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( dot.soul_rot.ticking || dot.impending_catastrophe_dot.ticking || dot.phantom_singularity.ticking ) & soul_shard > 3 || dot.vile_taint.ticking || talent.sow_the_seeds.enabled",
["list_name"] = "stat_trinkets",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "covenant.night_fae & ( ! variable.trinket_split || cooldown.soul_rot.remains > 20 || ( variable.trinket_one & cooldown.soul_rot.remains < trinket.t1.cooldown.remains ) || ( variable.trinket_two & cooldown.soul_rot.remains < trinket.t2.cooldown.remains ) ) || covenant.venthyr & ( ! variable.trinket_split || cooldown.impending_catastrophe.remains > 20 || ( variable.trinket_one & cooldown.impending_catastrophe.remains < trinket.t1.cooldown.remains ) || ( variable.trinket_two & cooldown.impending_catastrophe.remains < trinket.t2.cooldown.remains ) ) || ( covenant.necrolord || covenant.kyrian || covenant.none ) & ( ! variable.trinket_split || cooldown.phantom_singularity.remains > 20 || ( variable.trinket_one & cooldown.phantom_singularity.remains < trinket.t1.cooldown.remains ) || ( variable.trinket_two & cooldown.phantom_singularity.remains < trinket.t2.cooldown.remains ) ) || ! talent.phantom_singularity.enabled & ( ! variable.trinket_split || cooldown.summon_darkglare.remains > 20 || ( variable.trinket_one & cooldown.summon_darkglare.remains < trinket.t1.cooldown.remains ) || ( variable.trinket_two & cooldown.summon_darkglare.remains < trinket.t2.cooldown.remains ) )",
["list_name"] = "damage_trinkets",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < execute_time * soul_shard & dot.unstable_affliction.ticking",
["action"] = "malefic_rapture",
["description"] = "Burn soul shards if fight is almost over",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "If covenant dot/Phantom Singularity is running, use Darkglare to extend the current set",
["criteria"] = "( covenant.venthyr & dot.impending_catastrophe_dot.ticking & cooldown.summon_darkglare.remains < 2 & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) ) || ( covenant.night_fae & dot.soul_rot.ticking & cooldown.summon_darkglare.remains < 2 & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) ) || ( ( covenant.necrolord || covenant.kyrian || covenant.none ) & dot.phantom_singularity.ticking & dot.phantom_singularity.remains < 2 )",
["list_name"] = "darkglare_prep",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Refresh dots early if going into a shard spending phase",
["criteria"] = "( covenant.night_fae & ! dot.soul_rot.ticking & cooldown.soul_rot.remains < 4 ) || ( covenant.venthyr & ! dot.impending_catastrophe_dot.ticking & cooldown.impending_catastrophe.remains < 4 ) || ( ( covenant.necrolord || covenant.kyrian || covenant.none ) & talent.phantom_singularity.enabled & ! dot.phantom_singularity.ticking & cooldown.phantom_singularity.remains < 4 )",
["list_name"] = "dot_prep",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.phantom_singularity.ticking",
["action"] = "dark_soul",
["description"] = "If Phantom Singularity is ticking, it is safe to use Dark Soul",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! talent.phantom_singularity.enabled & ( dot.soul_rot.ticking || dot.impending_catastrophe_dot.ticking )",
["action"] = "dark_soul",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "covenant.night_fae & time > 5 & cooldown.soul_rot.remains < 1 & ( cooldown.empyreal_ordnance.remains < 162 || ! equipped.empyreal_ordnance )",
["action"] = "phantom_singularity",
["description"] = "Sync Phantom Singularity with Venthyr/Night Fae covenant dot, otherwise use on cooldown. If Empyreal Ordnance buff is incoming, hold until it's ready (18 seconds after use)",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "covenant.venthyr & time > 5 & cooldown.impending_catastrophe.remains < 1 & ( cooldown.empyreal_ordnance.remains < 162 || ! equipped.empyreal_ordnance )",
["action"] = "phantom_singularity",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "covenant.necrolord & runeforge.malefic_wrath.enabled & time > 5 & cooldown.decimating_bolt.remains < 3 & ( cooldown.empyreal_ordnance.remains < 162 || ! equipped.empyreal_ordnance )",
["action"] = "phantom_singularity",
["description"] = "Necrolord with Malefic Wrath casts phantom singularity in line with Decimating Bolt",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( covenant.kyrian || covenant.none || ( covenant.necrolord & ! runeforge.malefic_wrath.enabled ) ) & ( cooldown.empyreal_ordnance.remains < 162 || ! equipped.empyreal_ordnance )",
["action"] = "phantom_singularity",
["description"] = "Other covenants (including non-MW Necro) cast PS on cooldown",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 16",
["action"] = "phantom_singularity",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "If Phantom Singularity is ticking, it's time to use other major dots",
["criteria"] = "dot.phantom_singularity.ticking & ( covenant.night_fae || covenant.venthyr )",
["list_name"] = "covenant",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "dot.agony.remains < 4",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [19]
{
["action"] = "haunt",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & talent.sow_the_seeds.enabled & ! dot.seed_of_corruption.ticking & ! in_flight",
["action"] = "seed_of_corruption",
["description"] = "Sow the Seeds on 3 targets if it isn't currently in flight or on the target. With Siphon Life it's also better to use Seed over manually applying 3 Corruptions.",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & talent.siphon_life.enabled & ! dot.seed_of_corruption.ticking & ! in_flight & dot.corruption.remains < 4",
["action"] = "seed_of_corruption",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( soul_shard > 1 || active_enemies > 2 ) & cooldown.summon_darkglare.remains > 12",
["action"] = "vile_taint",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "active_dot.unstable_affliction = 0 || ticking & dot.unstable_affliction.remains < 4",
["action"] = "unstable_affliction",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "dot.siphon_life.remains < 4",
["action"] = "siphon_life",
["cycle_targets"] = 1,
}, -- [25]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! covenant.necrolord",
["list_name"] = "covenant",
}, -- [26]
{
["enabled"] = true,
["action"] = "corruption",
["cycle_targets"] = 1,
["description"] = "Apply Corruption manually on 1-2 targets, or on 3 with Absolute Corruption",
["criteria"] = "active_enemies < 4 - ( talent.sow_the_seeds.enabled || talent.siphon_life.enabled ) & dot.corruption.remains < 2",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "soul_shard > 4 & time > 21",
["action"] = "malefic_rapture",
["description"] = "After the opener, spend a shard when at 5 on Malefic Rapture to avoid overcapping",
}, -- [28]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "When not syncing Phantom Singularity to Venthyr/Night Fae, Summon Darkglare if all dots are applied",
["criteria"] = "( covenant.venthyr & ! talent.phantom_singularity.enabled & dot.impending_catastrophe_dot.ticking & cooldown.summon_darkglare.ready ) || ( covenant.night_fae & ! talent.phantom_singularity.enabled & dot.soul_rot.ticking & cooldown.summon_darkglare.ready ) || ( ( covenant.necrolord || covenant.kyrian || covenant.none ) & cooldown.summon_darkglare.ready )",
["list_name"] = "darkglare_prep",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "boss & cooldown.summon_darkglare.remains > fight_remains & ( ! talent.phantom_singularity.enabled || cooldown.phantom_singularity.remains > fight_remains )",
["action"] = "dark_soul",
["description"] = "Use Dark Soul if Darkglare won't be ready again, or if there will be at least 2 more Darkglare uses",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "boss & ! talent.phantom_singularity.enabled & cooldown.summon_darkglare.remains + cooldown.summon_darkglare.duration < fight_remains",
["action"] = "dark_soul",
}, -- [31]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Catch-all item usage for anything not specified elsewhere",
["list_name"] = "item",
}, -- [32]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.shadow_embrace.enabled & ( debuff.shadow_embrace.stack < ( 2 - action.shadow_bolt.in_flight ) || debuff.shadow_embrace.remains < 3 )",
["list_name"] = "se",
}, -- [33]
{
["enabled"] = true,
["criteria"] = "( dot.vile_taint.ticking || dot.impending_catastrophe_dot.ticking || dot.soul_rot.ticking ) & ( ! runeforge.malefic_wrath.enabled || buff.malefic_wrath.stack < 3 || soul_shard > 1 )",
["action"] = "malefic_rapture",
["description"] = "Use Malefic Rapture when major dots are up, or if there will be significant time until the next Phantom Singularity. If utilizing Malefic Wrath, hold a shard to refresh the buff",
}, -- [34]
{
["enabled"] = true,
["criteria"] = "runeforge.malefic_wrath.enabled & cooldown.soul_rot.remains > 20 & buff.malefic_wrath.remains < 4",
["action"] = "malefic_rapture",
["description"] = "Use Malefic Rapture to maintain the malefic wrath buff until shards need to be generated for the next burst window (20 seconds is more than sufficient to generate 3 shards)",
}, -- [35]
{
["enabled"] = true,
["criteria"] = "runeforge.malefic_wrath.enabled & ( covenant.necrolord || covenant.kyrian ) & buff.malefic_wrath.remains < 4",
["action"] = "malefic_rapture",
["description"] = "Maintain Malefic Wrath at all times for the Necrolord or Kyrian covenant",
}, -- [36]
{
["enabled"] = true,
["criteria"] = "talent.phantom_singularity.enabled & ( dot.phantom_singularity.ticking || cooldown.phantom_singularity.remains > 25 || boss & time_to_die < cooldown.phantom_singularity.remains ) & ( ! runeforge.malefic_wrath.enabled || buff.malefic_wrath.stack < 3 || soul_shard > 1 )",
["action"] = "malefic_rapture",
["description"] = "Use Malefic Rapture on Phantom Singularity casts, making sure to save a shard to stack Malefic Wrath if using it",
}, -- [37]
{
["enabled"] = true,
["criteria"] = "talent.sow_the_seeds.enabled",
["action"] = "malefic_rapture",
}, -- [38]
{
["enabled"] = true,
["criteria"] = "buff.inevitable_demise.stack > 40 || buff.inevitable_demise.up & boss & fight_remains < 4",
["action"] = "drain_life",
["description"] = "Drain Life is only a DPS gain with Inevitable Demise near max stacks. If fight is about to end do not miss spending the stacks",
}, -- [39]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "covenant",
}, -- [40]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [41]
{
["enabled"] = true,
["criteria"] = "active_dot.unstable_affliction = 0 || ticking & refreshable",
["action"] = "unstable_affliction",
}, -- [42]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "siphon_life",
["cycle_targets"] = 1,
}, -- [43]
{
["enabled"] = true,
["criteria"] = "refreshable & active_enemies < 4 - ( talent.sow_the_seeds.enabled || talent.siphon_life.enabled )",
["action"] = "corruption",
["cycle_targets"] = 1,
}, -- [44]
{
["enabled"] = true,
["interrupt_if"] = "buff.volatile_solvent.up",
["action"] = "fleshcraft",
["criteria"] = "soulbind.volatile_solvent.enabled",
}, -- [45]
{
["interrupt"] = "1",
["action"] = "drain_soul",
["enabled"] = true,
}, -- [46]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [47]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive & ! buff.grimoire_of_sacrifice.up",
["action"] = "fel_domination",
}, -- [1]
{
["action"] = "summon_felhunter",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "tome_of_monstrous_constructions",
["action"] = "tome_of_monstrous_constructions",
}, -- [3]
{
["enabled"] = true,
["name"] = "soleahs_secret_technique",
["action"] = "soleahs_secret_technique",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.grimoire_of_sacrifice.enabled",
["action"] = "grimoire_of_sacrifice",
}, -- [5]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_dot.corruption > 0 & active_dot.agony > 0 & active_dot.unstable_affliction > 0 & ( ! talent.siphon_life.enabled || active_dot.siphon_life > 0 ) & ( dot.phantom_singularity.ticking || ! talent.phantom_singularity.enabled )",
["var_name"] = "dots_ready",
}, -- [7]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets.seed_of_corruption_aoe >= 3",
["action"] = "seed_of_corruption",
["line_cd"] = "10",
}, -- [9]
{
["action"] = "haunt",
["enabled"] = true,
}, -- [10]
{
["action"] = "unstable_affliction",
["enabled"] = true,
}, -- [11]
},
["aoe"] = {
{
["action"] = "phantom_singularity",
["enabled"] = true,
}, -- [1]
{
["action"] = "haunt",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "covenant.venthyr & dot.impending_catastrophe_dot.ticking & cooldown.summon_darkglare.ready & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) || covenant.night_fae & dot.soul_rot.ticking & cooldown.summon_darkglare.ready & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) || ( covenant.necrolord || covenant.kyrian || covenant.none ) & dot.phantom_singularity.ticking & dot.phantom_singularity.remains < 2",
["list_name"] = "darkglare_prep",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.sow_the_seeds.enabled & can_seed",
["action"] = "seed_of_corruption",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.sow_the_seeds.enabled & ! dot.seed_of_corruption.ticking & ! in_flight & dot.corruption.refreshable",
["action"] = "seed_of_corruption",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_dot.agony < 4 & ! dot.agony.ticking",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_dot.agony >= 4 & refreshable & dot.agony.ticking",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_dot.unstable_affliction = 0 || ticking & refreshable",
["action"] = "unstable_affliction",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! ticking & pvptalent.rampant_afflictions.enabled & active_dot.unstable_affliction < 3",
["action"] = "unstable_affliction",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "soul_shard > 1",
["action"] = "vile_taint",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! covenant.necrolord",
["list_name"] = "covenant",
}, -- [11]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "( covenant.venthyr & ( cooldown.impending_catastrophe.ready || dot.impending_catastrophe_dot.ticking ) & cooldown.summon_darkglare.ready & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) ) & ( ( covenant.necrolord || covenant.kyrian || covenant.none ) & cooldown.summon_darkglare.remains < 2 & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) ) || ( covenant.night_fae & ( cooldown.soul_rot.ready || dot.soul_rot.ticking ) & cooldown.summon_darkglare.remains < 2 & ( dot.phantom_singularity.remains > 2 || ! talent.phantom_singularity.enabled ) )",
["list_name"] = "darkglare_prep",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "boss & cooldown.summon_darkglare.remains > fight_remains & ( ! talent.phantom_singularity.enabled || cooldown.phantom_singularity.remains > fight_remains )",
["action"] = "dark_soul",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "boss & cooldown.summon_darkglare.remains + cooldown.summon_darkglare.duration < fight_remains",
["action"] = "dark_soul",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "item",
}, -- [15]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "delayed_trinkets",
}, -- [16]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "damage_trinkets",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "dot.phantom_singularity.ticking || ! talent.phantom_singularity.enabled",
["list_name"] = "stat_trinkets",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "dot.vile_taint.ticking",
["action"] = "malefic_rapture",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "dot.soul_rot.ticking & ! talent.sow_the_seeds.enabled",
["action"] = "malefic_rapture",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "! talent.vile_taint.enabled",
["action"] = "malefic_rapture",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "soul_shard > 4",
["action"] = "malefic_rapture",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "active_dot.siphon_life <= 3 & refreshable & ! dot.siphon_life.ticking",
["action"] = "siphon_life",
["cycle_targets"] = 1,
}, -- [23]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "covenant.necrolord",
["list_name"] = "covenant",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.inevitable_demise.stack >= 50 || boss & buff.inevitable_demise.up & fight_remains < 5 || buff.inevitable_demise.stack >= 35 & dot.soul_rot.ticking",
["action"] = "drain_life",
}, -- [25]
{
["enabled"] = true,
["interrupt_if"] = "buff.volatile_solvent.up",
["action"] = "fleshcraft",
["criteria"] = "soulbind.volatile_solvent.enabled",
}, -- [26]
{
["interrupt"] = "1",
["action"] = "drain_soul",
["enabled"] = true,
}, -- [27]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [28]
},
["stat_trinkets"] = {
{
["enabled"] = true,
["name"] = "inscrutable_quantum_device",
["action"] = "inscrutable_quantum_device",
}, -- [1]
{
["enabled"] = true,
["name"] = "instructors_divine_bell",
["action"] = "instructors_divine_bell",
}, -- [2]
{
["enabled"] = true,
["name"] = "overflowing_anima_cage",
["action"] = "overflowing_anima_cage",
}, -- [3]
{
["enabled"] = true,
["name"] = "darkmoon_deck_putrescence",
["action"] = "darkmoon_deck_putrescence",
}, -- [4]
{
["enabled"] = true,
["name"] = "macabre_sheet_music",
["action"] = "macabre_sheet_music",
}, -- [5]
{
["enabled"] = true,
["name"] = "flame_of_battle",
["action"] = "flame_of_battle",
}, -- [6]
{
["enabled"] = true,
["name"] = "wakeners_frond",
["action"] = "wakeners_frond",
}, -- [7]
{
["enabled"] = true,
["name"] = "tablet_of_despair",
["action"] = "tablet_of_despair",
}, -- [8]
{
["enabled"] = true,
["name"] = "sinful_aspirants_badge_of_ferocity",
["action"] = "sinful_aspirants_badge_of_ferocity",
}, -- [9]
{
["enabled"] = true,
["name"] = "sinful_gladiators_badge_of_ferocity",
["action"] = "sinful_gladiators_badge_of_ferocity",
}, -- [10]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [11]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [12]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [13]
},
["se"] = {
{
["action"] = "haunt",
["enabled"] = true,
}, -- [1]
{
["interrupt_if"] = "debuff.shadow_embrace.stack>=3",
["enabled"] = true,
["action"] = "drain_soul",
["interrupt_global"] = "1",
}, -- [2]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [3]
},
["item"] = {
{
["action"] = "use_items",
["enabled"] = true,
}, -- [1]
},
},
},
["Destruction"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210916,
["author"] = "SimC",
["desc"] = "Destruction Warlock\nSeptember 16, 2021\n\nChanges:\n- Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.",
["lists"] = {
["essences"] = {
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [1]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [2]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [5]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [6]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "target.health_pct > 80 || target.health_pct < 20 || fight_remains < 20 || target.time_to_pct_20 > 40",
["action"] = "reaping_flames",
}, -- [8]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.remains",
["action"] = "the_unbound_force",
}, -- [10]
},
["havoc"] = {
{
["enabled"] = true,
["criteria"] = "buff.backdraft.down & soul_shard >= 1 & soul_shard <= 4",
["action"] = "conflagrate",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains",
["action"] = "soul_fire",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains & soulbind.lead_by_example.enabled",
["action"] = "decimating_bolt",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains",
["action"] = "scouring_tithe",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.internal_combustion.enabled & remains < duration * 0.5 || ! talent.internal_combustion.enabled & refreshable",
["action"] = "immolate",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains",
["action"] = "chaos_bolt",
}, -- [6]
{
["action"] = "shadowburn",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains",
["action"] = "incinerate",
}, -- [8]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive",
["action"] = "fel_domination",
["description"] = "Executed before combat begins. Accepts non-harmful actions only.",
}, -- [1]
{
["action"] = "summon_imp",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "tome_of_monstrous_constructions",
["action"] = "tome_of_monstrous_constructions",
}, -- [3]
{
["enabled"] = true,
["name"] = "soleahs_secret_technique",
["action"] = "soleahs_secret_technique",
}, -- [4]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.grimoire_of_sacrifice.enabled",
["action"] = "grimoire_of_sacrifice",
}, -- [6]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
}, -- [7]
{
["action"] = "soul_fire",
["enabled"] = true,
}, -- [8]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [9]
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "pet.infernal.active & ( ! cooldown.havoc.ready || active_enemies > 3 )",
["action"] = "rain_of_fire",
}, -- [1]
{
["action"] = "soul_rot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "dot.immolate.remains > cast_time",
["action"] = "channel_demonfire",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "remains < 5 & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > remains )",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies < 4",
["action"] = "havoc",
["cycle_targets"] = 1,
}, -- [7]
{
["action"] = "rain_of_fire",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["action"] = "havoc",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( soulbind.lead_by_example.enabled || ! talent.fire_and_brimstone.enabled )",
["action"] = "decimating_bolt",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.fire_and_brimstone.enabled & buff.backdraft.up & soul_shard < 5 - 0.2 * active_enemies",
["action"] = "incinerate",
}, -- [11]
{
["action"] = "soul_fire",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.down",
["action"] = "conflagrate",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20",
["action"] = "shadowburn",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! ( talent.fire_and_brimstone.enabled || talent.inferno.enabled )",
["action"] = "scouring_tithe",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! ( talent.fire_and_brimstone.enabled || talent.inferno.enabled )",
["action"] = "impending_catastrophe",
}, -- [16]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [17]
},
["cds"] = {
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
["criteria"] = "cooldown.summon_infernal.remains < 3 || target.time_to_die < 42",
}, -- [1]
{
["action"] = "summon_infernal",
["enabled"] = true,
}, -- [2]
{
["action"] = "dark_soul_instability",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active",
["action"] = "potion",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active",
["action"] = "berserking",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active",
["action"] = "blood_fury",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active",
["action"] = "fireblood",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || target.time_to_die < 20",
["action"] = "use_items",
}, -- [8]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "spell_lock",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "havoc_active & active_enemies > 1 & active_enemies < 5 - talent.inferno.enabled + ( talent.inferno.enabled & talent.internal_combustion.enabled )",
["list_name"] = "havoc",
}, -- [2]
{
["enabled"] = true,
["interrupt_if"] = "buff.volatile_solvent.up",
["action"] = "fleshcraft",
["criteria"] = "soulbind.volatile_solvent.enabled",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.roaring_blaze.enabled & debuff.roaring_blaze.remains < 1.5",
["action"] = "conflagrate",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! ( pet.infernal.active & dot.immolate.remains + 1 > pet.infernal.remains ) || spell_targets.cataclysm > 1",
["action"] = "cataclysm",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 2",
["list_name"] = "aoe",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "refreshable & soul_shard <= 4 & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > remains )",
["action"] = "soul_fire",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "refreshable & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > remains )",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.internal_combustion.enabled & action.chaos_bolt.in_flight & remains < duration * 0.5",
["action"] = "immolate",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [11]
{
["action"] = "channel_demonfire",
["enabled"] = true,
}, -- [12]
{
["action"] = "scouring_tithe",
["enabled"] = true,
}, -- [13]
{
["action"] = "decimating_bolt",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "dot.immolate.remains > dot.immolate.duration * 0.5 || ! talent.internal_combustion.enabled",
["action"] = "havoc",
["cycle_targets"] = 1,
}, -- [15]
{
["action"] = "impending_catastrophe",
["enabled"] = true,
}, -- [16]
{
["action"] = "soul_rot",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "runeforge.odr_shawl_of_the_ymirjar.equipped",
["action"] = "havoc",
}, -- [18]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies > 1 & cooldown.havoc.remains <= 10 || cooldown.summon_infernal.remains <= 15 & talent.dark_soul_instability.enabled & cooldown.dark_soul_instability.remains <= 15 || talent.dark_soul_instability.enabled & cooldown.dark_soul_instability.remains <= 15 & ( cooldown.summon_infernal.remains > target.time_to_die || cooldown.summon_infernal.remains + cooldown.summon_infernal.duration > target.time_to_die )",
["var_name"] = "pool_soul_shards",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.down & soul_shard >= 1.5 - 0.3 * talent.flashover.enabled & ! variable.pool_soul_shards",
["action"] = "conflagrate",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.dark_soul_instability.up",
["action"] = "chaos_bolt",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.up & ! variable.pool_soul_shards & ! talent.eradication.enabled",
["action"] = "chaos_bolt",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "! variable.pool_soul_shards & talent.eradication.enabled & ( debuff.eradication.remains < cast_time || buff.backdraft.up )",
["action"] = "chaos_bolt",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "! variable.pool_soul_shards || soul_shard >= 4.5",
["action"] = "shadowburn",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( soul_shard >= 4.5 - 0.2 * active_enemies )",
["action"] = "chaos_bolt",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "charges > 1",
["action"] = "conflagrate",
}, -- [26]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [27]
},
},
["version"] = 20210916,
["warnings"] = "WARNING: The import for 'default' required some automated changes.\nLine 3: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nImported 6 action lists.\n",
["spec"] = 267,
["profile"] = "## Destruction Warlock\n## September 16, 2021\n\n## Changes:\n## - Fleshcraft/Volatile Solvent cancel_if changed to interrupt_if.\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat=fel_domination,if=time>0&!pet.alive\nactions.precombat+=/summon_pet\nactions.precombat+=/use_item,name=tome_of_monstrous_constructions\nactions.precombat+=/use_item,name=soleahs_secret_technique\nactions.precombat+=/fleshcraft\nactions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled\nactions.precombat+=/use_item,name=shadowed_orb_of_torment\nactions.precombat+=/soul_fire\nactions.precombat+=/incinerate\n\n# Executed every time the actor is available.\nactions=spell_lock\nactions=call_action_list,name=havoc,if=havoc_active&active_enemies>1&active_enemies<5-talent.inferno.enabled+(talent.inferno.enabled&talent.internal_combustion.enabled)\nactions+=/fleshcraft,if=soulbind.volatile_solvent,interrupt_if=buff.volatile_solvent.up\nactions+=/conflagrate,if=talent.roaring_blaze.enabled&debuff.roaring_blaze.remains<1.5\nactions+=/cataclysm,if=!(pet.infernal.active&dot.immolate.remains+1>pet.infernal.remains)||spell_targets.cataclysm>1\nactions+=/call_action_list,name=aoe,if=active_enemies>2\nactions+=/soul_fire,cycle_targets=1,if=refreshable&soul_shard<=4&(!talent.cataclysm.enabled||cooldown.cataclysm.remains>remains)\nactions+=/immolate,cycle_targets=1,if=refreshable&(!talent.cataclysm.enabled||cooldown.cataclysm.remains>remains)\nactions+=/immolate,if=talent.internal_combustion.enabled&action.chaos_bolt.in_flight&remains<duration*0.5\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=essences\nactions+=/channel_demonfire\nactions+=/scouring_tithe\nactions+=/decimating_bolt\nactions+=/havoc,cycle_targets=1,if=dot.immolate.remains>dot.immolate.duration*0.5||!talent.internal_combustion.enabled\nactions+=/impending_catastrophe\nactions+=/soul_rot\nactions+=/havoc,if=runeforge.odr_shawl_of_the_ymirjar.equipped\nactions+=/variable,name=pool_soul_shards,value=active_enemies>1&cooldown.havoc.remains<=10||cooldown.summon_infernal.remains<=15&talent.dark_soul_instability.enabled&cooldown.dark_soul_instability.remains<=15||talent.dark_soul_instability.enabled&cooldown.dark_soul_instability.remains<=15&(cooldown.summon_infernal.remains>target.time_to_die||cooldown.summon_infernal.remains+cooldown.summon_infernal.duration>target.time_to_die)\nactions+=/conflagrate,if=buff.backdraft.down&soul_shard>=1.5-0.3*talent.flashover.enabled&!variable.pool_soul_shards\nactions+=/chaos_bolt,if=buff.dark_soul_instability.up\nactions+=/chaos_bolt,if=buff.backdraft.up&!variable.pool_soul_shards&!talent.eradication.enabled\nactions+=/chaos_bolt,if=!variable.pool_soul_shards&talent.eradication.enabled&(debuff.eradication.remains<cast_time||buff.backdraft.up)\nactions+=/shadowburn,if=!variable.pool_soul_shards||soul_shard>=4.5\nactions+=/chaos_bolt,if=(soul_shard>=4.5-0.2*active_enemies)\nactions+=/conflagrate,if=charges>1\nactions+=/incinerate\n\nactions.aoe=rain_of_fire,if=pet.infernal.active&(!cooldown.havoc.ready||active_enemies>3)\nactions.aoe+=/soul_rot\nactions.aoe+=/channel_demonfire,if=dot.immolate.remains>cast_time\nactions.aoe+=/immolate,cycle_targets=1,if=remains<5&(!talent.cataclysm.enabled||cooldown.cataclysm.remains>remains)\nactions.aoe+=/call_action_list,name=cds\nactions.aoe+=/call_action_list,name=essences\nactions.aoe+=/havoc,cycle_targets=1,if=active_enemies<4\nactions.aoe+=/rain_of_fire\nactions.aoe+=/havoc,cycle_targets=1\nactions.aoe+=/decimating_bolt,if=(soulbind.lead_by_example.enabled||!talent.fire_and_brimstone.enabled)\nactions.aoe+=/incinerate,if=talent.fire_and_brimstone.enabled&buff.backdraft.up&soul_shard<5-0.2*active_enemies\nactions.aoe+=/soul_fire\nactions.aoe+=/conflagrate,if=buff.backdraft.down\nactions.aoe+=/shadowburn,if=target.health.pct<20\nactions.aoe+=/scouring_tithe,if=!(talent.fire_and_brimstone.enabled||talent.inferno.enabled)\nactions.aoe+=/impending_catastrophe,if=!(talent.fire_and_brimstone.enabled||talent.inferno.enabled)\nactions.aoe+=/incinerate\n\nactions.cds=use_item,name=shadowed_orb_of_torment,if=cooldown.summon_infernal.remains<3||target.time_to_die<42\nactions.cds+=/summon_infernal\nactions.cds+=/dark_soul_instability\nactions.cds+=/potion,if=pet.infernal.active\nactions.cds+=/berserking,if=pet.infernal.active\nactions.cds+=/blood_fury,if=pet.infernal.active\nactions.cds+=/fireblood,if=pet.infernal.active\nactions.cds+=/use_items,if=pet.infernal.active||target.time_to_die<20\n\nactions.havoc=conflagrate,if=buff.backdraft.down&soul_shard>=1&soul_shard<=4\nactions.havoc+=/soul_fire,if=cast_time<havoc_remains\nactions.havoc+=/decimating_bolt,if=cast_time<havoc_remains&soulbind.lead_by_example.enabled\nactions.havoc+=/scouring_tithe,if=cast_time<havoc_remains\nactions.havoc+=/immolate,if=talent.internal_combustion.enabled&remains<duration*0.5||!talent.internal_combustion.enabled&refreshable\nactions.havoc+=/chaos_bolt,if=cast_time<havoc_remains\nactions.havoc+=/shadowburn\nactions.havoc+=/incinerate,if=cast_time<havoc_remains\n\nactions.essences+=/worldvein_resonance\nactions.essences+=/memory_of_lucid_dreams\nactions.essences+=/blood_of_the_enemy\nactions.essences+=/guardian_of_azeroth\nactions.essences+=/ripple_in_space\nactions.essences+=/focused_azerite_beam\nactions.essences+=/purifying_blast\nactions.essences+=/reaping_flames,if=target.health_pct>80||target.health_pct<20||fight_remains<20||target.time_to_pct_20>40\nactions.essences+=/concentrated_flame\nactions.essences+=/the_unbound_force,if=buff.reckless_force.remains",
},
},
},
["Quillstrum - Deathwing"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["forceReloadClassDefaultOptions_20220306_71"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetRogueMfDOption_20200226"] = true,
["forceReloadClassDefaultOptions_20220306_72"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["forceReloadClassDefaultOptions_20220306_73"] = true,
["resetPotionsToDefaults_20190717"] = true,
["forceSpellFlashBrightness_20221030"] = true,
},
["specs"] = {
[73] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["rallying_cry_health"] = 50,
["stack_shield_block"] = false,
["stance_weaving"] = false,
["last_stand_amount"] = 50,
["rallying_cry_condition"] = false,
["free_revenge"] = true,
["shield_wall_amount"] = 50,
["rallying_cry_amount"] = 50,
["shockwave_interrupt"] = true,
["shield_wall_health"] = 50,
["heroic_charge"] = false,
["overlap_ignore_pain"] = false,
["last_stand_condition"] = false,
["shield_wall_condition"] = false,
["last_stand_health"] = 50,
["last_stand_offensively"] = false,
["reserve_rage"] = 35,
},
["maxTime"] = 33,
},
[71] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["shockwave_interrupt"] = true,
["heroic_charge"] = false,
},
["maxTime"] = 33,
},
[72] = {
["maxRefresh"] = 10,
["settings"] = {
["check_ww_range"] = false,
["shockwave_interrupt"] = true,
["heroic_charge"] = false,
},
["package"] = "Fury",
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["displays"] = {
["Defensives"] = {
["rel"] = "CENTER",
["y"] = -224.9999847412109,
},
["Primary"] = {
["rel"] = "CENTER",
["x"] = -49.99994277954102,
["y"] = -397.4990844726563,
},
["AOE"] = {
["rel"] = "CENTER",
["x"] = 118.3330764770508,
["y"] = -397.4996643066406,
},
["Interrupts"] = {
["rel"] = "CENTER",
["y"] = -224.9999847412109,
},
},
["packs"] = {
["Arms"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230209,
["author"] = "SimulationCraft",
["desc"] = "",
["lists"] = {
["single_target"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1",
["action"] = "sweeping_strikes",
}, -- [1]
{
["action"] = "mortal_strike",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "remains <= gcd.max || talent.tide_of_blood.enabled & cooldown.skullsplitter.remains <= gcd.max & ( cooldown.colossus_smash.remains <= gcd.max || debuff.colossus_smash.up ) & dot.rend.remains < dot.rend.duration * 0.85",
["action"] = "rend",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.warlords_torment.enabled & rage.pct < 33 & ( cooldown.colossus_smash.ready || debuff.colossus_smash.up || buff.test_of_might.up ) || ! talent.warlords_torment.enabled & ( cooldown.colossus_smash.ready || debuff.colossus_smash.up )",
["action"] = "avatar",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains <= gcd.max || cooldown.warbreaker.remains <= gcd.max",
["action"] = "spear_of_bastion",
}, -- [5]
{
["action"] = "warbreaker",
["enabled"] = true,
}, -- [6]
{
["action"] = "colossus_smash",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.test_of_might.up || talent.test_of_might.enabled & debuff.colossus_smash.up & rage.pct < 33 || ! talent.test_of_might.enabled & debuff.colossus_smash.up",
["action"] = "thunderous_roar",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.hurricane.enabled & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) || talent.unhinged.enabled & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up )",
["action"] = "bladestorm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.tide_of_blood.enabled & dot.rend.remains & ( debuff.colossus_smash.up || cooldown.colossus_smash.remains > gcd.max * 4 & buff.test_of_might.up || ! talent.test_of_might.enabled & cooldown.colossus_smash.remains > gcd.max * 4 ) || rage < 30",
["action"] = "skullsplitter",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.react",
["action"] = "execute",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.sonic_boom.enabled",
["action"] = "shockwave",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.anger_management.enabled || talent.test_of_might.enabled & debuff.colossus_smash.up",
["action"] = "ignore_pain",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.storm_of_swords.enabled & talent.battlelord.enabled & rage.pct > 80 & debuff.colossus_smash.up",
["action"] = "whirlwind",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "charges = 2 & ! talent.battlelord.enabled & ( debuff.colossus_smash.down || rage.pct < 25 ) || talent.battlelord.enabled",
["action"] = "overpower",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "talent.storm_of_swords.enabled || talent.fervor_of_battle.enabled & active_enemies > 1",
["action"] = "whirlwind",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "talent.battlelord.enabled & talent.blood_and_thunder.enabled",
["action"] = "thunder_clap",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & rage.pct < 50 & ! talent.battlelord.enabled || rage.pct < 25",
["action"] = "overpower",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.merciless_bonegrinder.up",
["action"] = "whirlwind",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "set_bonus.tier29_2pc & ! talent.crushing_force.enabled",
["action"] = "cleave",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "rage > 30 & ( ! talent.fervor_of_battle.enabled || talent.fervor_of_battle.enabled & active_enemies = 1 )",
["action"] = "slam",
}, -- [21]
{
["action"] = "bladestorm",
["enabled"] = true,
}, -- [22]
{
["action"] = "cleave",
["enabled"] = true,
}, -- [23]
{
["action"] = "wrecking_throw",
["enabled"] = true,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "remains < duration * 0.3",
["action"] = "rend",
}, -- [25]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "time <= 0.5 || movement.distance > 5",
["action"] = "charge",
}, -- [1]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25",
["action"] = "potion",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains < 3",
["action"] = "algethar_puzzle_box",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.avatar.up",
["action"] = "irideus_fragment",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! buff.avatar.up & ! debuff.colossus_smash.up",
["action"] = "manic_grieftorch",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25",
["action"] = "gladiators_badge",
}, -- [7]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50",
["action"] = "arcane_torrent",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
["action"] = "lights_judgment",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
["action"] = "bag_of_tricks",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.remains > 6",
["action"] = "berserking",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "ancestral_call",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "blood_fury",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "ancestral_call",
}, -- [15]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "raid_event.adds.exists || active_enemies > 2",
["list_name"] = "hac",
}, -- [16]
{
["enabled"] = true,
["action"] = "call_action_list",
["cycle_targets"] = 1,
["strict"] = 1,
["criteria"] = "( talent.massacre.enabled & target.health.pct < 35 ) || target.health.pct < 20",
["list_name"] = "execute",
}, -- [17]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! raid_event.adds.exists",
["list_name"] = "single_target",
}, -- [18]
},
["precombat"] = {
{
["action"] = "battle_stance",
["enabled"] = true,
}, -- [1]
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.titans_torment.enabled & ! talent.blademasters_torment.enabled",
["action"] = "avatar",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.reckless_abandon.enabled",
["action"] = "recklessness",
}, -- [5]
},
["execute"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1",
["action"] = "sweeping_strikes",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "remains <= gcd.max & ( ! talent.warbreaker.enabled & cooldown.colossus_smash.remains < 4 || talent.warbreaker.enabled & cooldown.warbreaker.remains < 4 ) & target.time_to_die > 12",
["action"] = "rend",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.ready || debuff.colossus_smash.up || boss & fight_remains < 20",
["action"] = "avatar",
}, -- [3]
{
["action"] = "warbreaker",
["enabled"] = true,
}, -- [4]
{
["action"] = "colossus_smash",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up",
["action"] = "thunderous_roar",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up || buff.test_of_might.up",
["action"] = "spear_of_bastion",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "rage < 40",
["action"] = "skullsplitter",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 2 & dot.deep_wounds.remains < gcd.max",
["action"] = "cleave",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "rage < 40 & buff.martial_prowess.stack < 2",
["action"] = "overpower",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "debuff.executioners_precision.stack = 2 || dot.deep_wounds.remains <= gcd.max",
["action"] = "mortal_strike",
}, -- [11]
{
["action"] = "execute",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.sonic_boom.enabled",
["action"] = "shockwave",
}, -- [13]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [14]
{
["action"] = "bladestorm",
["enabled"] = true,
}, -- [15]
},
["hac"] = {
{
["enabled"] = true,
["criteria"] = "buff.juggernaut.up & buff.juggernaut.remains < gcd.max",
["action"] = "execute",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & talent.thunder_clap.enabled & talent.blood_and_thunder.enabled & talent.rend.enabled & dot.rend.remains <= dot.rend.duration * 0.3",
["action"] = "thunder_clap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & ( cooldown.bladestorm.remains > 15 || ! talent.bladestorm.enabled )",
["action"] = "sweeping_strikes",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & remains <= gcd.max & ( target.health.pct > 20 || talent.massacre.enabled & target.health.pct > 35 ) || talent.tide_of_blood.enabled & cooldown.skullsplitter.remains <= gcd.max & ( cooldown.colossus_smash.remains <= gcd.max || debuff.colossus_smash.up ) & dot.rend.remains < dot.rend.duration * 0.85",
["action"] = "rend",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15 || talent.blademasters_torment.enabled & active_enemies > 1 || boss & fight_remains < 20",
["action"] = "avatar",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 22 || active_enemies > 1",
["action"] = "warbreaker",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 )",
["action"] = "colossus_smash",
["cycle_targets"] = 1,
}, -- [7]
{
["action"] = "colossus_smash",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & raid_event.adds.in > 15 || active_enemies > 1 & dot.deep_wounds.remains",
["action"] = "thunderous_roar",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & raid_event.adds.in > 15",
["action"] = "spear_of_bastion",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.unhinged.enabled & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up )",
["action"] = "bladestorm",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & raid_event.adds.in > 30 || active_enemies > 1 & dot.deep_wounds.remains",
["action"] = "bladestorm",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || ! talent.battlelord.enabled & buff.merciless_bonegrinder.up & cooldown.mortal_strike.remains > gcd.max",
["action"] = "cleave",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || talent.storm_of_swords.enabled & ( buff.merciless_bonegrinder.up || buff.hurricane.up )",
["action"] = "whirlwind",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "rage < 40 || talent.tide_of_blood.enabled & dot.rend.remains & ( buff.sweeping_strikes.up & active_enemies >= 2 || debuff.colossus_smash.up || buff.test_of_might.up )",
["action"] = "skullsplitter",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up & talent.dreadnaught.enabled",
["action"] = "overpower",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "debuff.executioners_precision.stack = 2 || dot.deep_wounds.remains <= gcd.max || talent.dreadnaught.enabled & talent.battlelord.enabled & active_enemies <= 2",
["action"] = "mortal_strike",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.react || active_enemies <= 2 & ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) || buff.sweeping_strikes.up",
["action"] = "execute",
["cycle_targets"] = 1,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15",
["action"] = "thunderous_roar",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & talent.sonic_boom.enabled",
["action"] = "shockwave",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( charges = 2 & ! talent.battlelord.enabled & ( debuff.colossus_smash.down || rage.pct < 25 ) || talent.battlelord.enabled )",
["action"] = "overpower",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ! talent.battlelord.enabled & rage.pct > 70",
["action"] = "slam",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "charges = 2 & ( ! talent.test_of_might.enabled || talent.test_of_might.enabled & debuff.colossus_smash.down || talent.battlelord.enabled ) || rage < 70",
["action"] = "overpower",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "thunder_clap",
}, -- [24]
{
["action"] = "mortal_strike",
["enabled"] = true,
}, -- [25]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & dot.rend.remains < duration * 0.3",
["action"] = "rend",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "talent.storm_of_swords.enabled || talent.fervor_of_battle.enabled & active_enemies > 1",
["action"] = "whirlwind",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "! talent.crushing_force.enabled",
["action"] = "cleave",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "talent.battlelord.enabled & talent.anger_management.enabled & rage > 30 & ( target.health.pct > 20 || talent.massacre.enabled & target.health.pct > 35 )",
["action"] = "ignore_pain",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "talent.crushing_force.enabled & rage > 30 & ( talent.fervor_of_battle.enabled & active_enemies = 1 || ! talent.fervor_of_battle.enabled )",
["action"] = "slam",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "talent.sonic_boom.enabled",
["action"] = "shockwave",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 30",
["action"] = "bladestorm",
}, -- [32]
{
["action"] = "wrecking_throw",
["enabled"] = true,
}, -- [33]
},
},
["version"] = 20230209,
["warnings"] = "The import for 'single_target' required some automated changes.\nLine 3: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 4: Converted 'talent.warlords_torment' to 'talent.warlords_torment.enabled' (1x).\nLine 4: Converted 'talent.warlords_torment' to 'talent.warlords_torment.enabled' (1x).\nLine 8: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 8: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 9: Converted 'talent.hurricane' to 'talent.hurricane.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 9: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 10: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 10: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 13: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 13: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 14: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 14: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 15: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 15: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 16: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 16: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 17: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 17: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 18: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 20: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 21: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 21: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 4: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 5: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\n\nThe import for 'execute' required some automated changes.\nLine 2: Converted 'talent.warbreaker' to 'talent.warbreaker.enabled' (1x).\nLine 2: Converted 'talent.warbreaker' to 'talent.warbreaker.enabled' (1x).\nLine 6: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 13: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\n\nThe import for 'hac' 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 3: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 4: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 4: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.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.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 10: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 11: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 11: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 12: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 13: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 14: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 15: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 16: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 17: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 17: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 18: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 20: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\nLine 21: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 21: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 22: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 23: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 23: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 23: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 27: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 27: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 28: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 29: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 29: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 29: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 30: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 30: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 30: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 31: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\n\nImported 5 action lists.\n",
["profile"] = "actions.precombat+=/battle_stance\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/avatar,if=!talent.titans_torment&!talent.blademasters_torment\nactions.precombat+=/recklessness,if=!talent.reckless_abandon\n\nactions+=/charge,if=time<=0.5||movement.distance>5\nactions+=/pummel\nactions+=/potion,if=gcd.remains=0&debuff.colossus_smash.remains>8||boss&fight_remains<25\nactions+=/algethar_puzzle_box,if=cooldown.avatar.remains<3\nactions+=/irideus_fragment,if=buff.avatar.up\nactions+=/manic_grieftorch,if=!buff.avatar.up&!debuff.colossus_smash.up\nactions+=/gladiators_badge,if=gcd.remains=0&debuff.colossus_smash.remains>8||boss&fight_remains<25\nactions+=/use_items\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=debuff.colossus_smash.remains>6\nactions+=/ancestral_call,if=debuff.colossus_smash.up\nactions+=/blood_fury,if=debuff.colossus_smash.up\nactions+=/ancestral_call,if=debuff.colossus_smash.up\nactions+=/run_action_list,name=hac,strict=1,if=raid_event.adds.exists||active_enemies>2\nactions+=/call_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,strict=1,if=!raid_event.adds.exists\n\nactions.execute+=/sweeping_strikes,if=spell_targets.whirlwind>1\nactions.execute+=/rend,if=remains<=gcd&(!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||boss&fight_remains<20\nactions.execute+=/warbreaker\nactions.execute+=/colossus_smash\nactions.execute+=/thunderous_roar,if=buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up\nactions.execute+=/spear_of_bastion,if=debuff.colossus_smash.up||buff.test_of_might.up\nactions.execute+=/skullsplitter,if=rage<40\nactions.execute+=/cleave,if=spell_targets.whirlwind>2&dot.deep_wounds.remains<gcd\nactions.execute+=/overpower,if=rage<40&buff.martial_prowess.stack<2\nactions.execute+=/mortal_strike,if=debuff.executioners_precision.stack=2||dot.deep_wounds.remains<=gcd\nactions.execute+=/execute\nactions.execute+=/shockwave,if=talent.sonic_boom\nactions.execute+=/overpower\nactions.execute+=/bladestorm\n\nactions.hac+=/execute,if=buff.juggernaut.up&buff.juggernaut.remains<gcd\nactions.hac+=/thunder_clap,if=active_enemies>2&talent.thunder_clap&talent.blood_and_thunder&talent.rend&dot.rend.remains<=dot.rend.duration*0.3\nactions.hac+=/sweeping_strikes,if=active_enemies>=2&(cooldown.bladestorm.remains>15||!talent.bladestorm)\nactions.hac+=/rend,if=active_enemies=1&remains<=gcd&(target.health.pct>20||talent.massacre&target.health.pct>35)||talent.tide_of_blood&cooldown.skullsplitter.remains<=gcd&(cooldown.colossus_smash.remains<=gcd||debuff.colossus_smash.up)&dot.rend.remains<dot.rend.duration*0.85\nactions.hac+=/avatar,if=raid_event.adds.in>15||talent.blademasters_torment&active_enemies>1||boss&fight_remains<20\nactions.hac+=/warbreaker,if=raid_event.adds.in>22||active_enemies>1\nactions.hac+=/colossus_smash,cycle_targets=1,if=(target.health.pct<20||talent.massacre&target.health.pct<35)\nactions.hac+=/colossus_smash\nactions.hac+=/thunderous_roar,if=(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&raid_event.adds.in>15||active_enemies>1&dot.deep_wounds.remains\nactions.hac+=/spear_of_bastion,if=(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&raid_event.adds.in>15\nactions.hac+=/bladestorm,if=talent.unhinged&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)\nactions.hac+=/bladestorm,if=active_enemies>1&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&raid_event.adds.in>30||active_enemies>1&dot.deep_wounds.remains\nactions.hac+=/cleave,if=active_enemies>2||!talent.battlelord&buff.merciless_bonegrinder.up&cooldown.mortal_strike.remains>gcd\nactions.hac+=/whirlwind,if=active_enemies>2||talent.storm_of_swords&(buff.merciless_bonegrinder.up||buff.hurricane.up)\nactions.hac+=/skullsplitter,if=rage<40||talent.tide_of_blood&dot.rend.remains&(buff.sweeping_strikes.up&active_enemies>=2||debuff.colossus_smash.up||buff.test_of_might.up)\nactions.hac+=/overpower,if=buff.sweeping_strikes.up&talent.dreadnaught\nactions.hac+=/mortal_strike,cycle_targets=1,if=debuff.executioners_precision.stack=2||dot.deep_wounds.remains<=gcd||talent.dreadnaught&talent.battlelord&active_enemies<=2\nactions.hac+=/execute,cycle_targets=1,if=buff.sudden_death.react||active_enemies<=2&(target.health.pct<20||talent.massacre&target.health.pct<35)||buff.sweeping_strikes.up\nactions.hac+=/thunderous_roar,if=raid_event.adds.in>15\nactions.hac+=/shockwave,if=active_enemies>2&talent.sonic_boom\nactions.hac+=/overpower,if=active_enemies=1&(charges=2&!talent.battlelord&(debuff.colossus_smash.down||rage.pct<25)||talent.battlelord)\nactions.hac+=/slam,if=active_enemies=1&!talent.battlelord&rage.pct>70\nactions.hac+=/overpower,if=charges=2&(!talent.test_of_might||talent.test_of_might&debuff.colossus_smash.down||talent.battlelord)||rage<70\nactions.hac+=/thunder_clap,if=active_enemies>2\nactions.hac+=/mortal_strike\nactions.hac+=/rend,if=active_enemies=1&dot.rend.remains<duration*0.3\nactions.hac+=/whirlwind,if=talent.storm_of_swords||talent.fervor_of_battle&active_enemies>1\nactions.hac+=/cleave,if=!talent.crushing_force\nactions.hac+=/ignore_pain,if=talent.battlelord&talent.anger_management&rage>30&(target.health.pct>20||talent.massacre&target.health.pct>35)\nactions.hac+=/slam,if=talent.crushing_force&rage>30&(talent.fervor_of_battle&active_enemies=1||!talent.fervor_of_battle)\nactions.hac+=/shockwave,if=talent.sonic_boom\nactions.hac+=/bladestorm,if=raid_event.adds.in>30\nactions.hac+=/wrecking_throw\n\nactions.single_target+=/sweeping_strikes,if=spell_targets.whirlwind>1\nactions.single_target+=/mortal_strike\nactions.single_target+=/rend,if=remains<=gcd||talent.tide_of_blood&cooldown.skullsplitter.remains<=gcd&(cooldown.colossus_smash.remains<=gcd||debuff.colossus_smash.up)&dot.rend.remains<dot.rend.duration*0.85\nactions.single_target+=/avatar,if=talent.warlords_torment&rage.pct<33&(cooldown.colossus_smash.ready||debuff.colossus_smash.up||buff.test_of_might.up)||!talent.warlords_torment&(cooldown.colossus_smash.ready||debuff.colossus_smash.up)\nactions.single_target+=/spear_of_bastion,if=cooldown.colossus_smash.remains<=gcd||cooldown.warbreaker.remains<=gcd\nactions.single_target+=/warbreaker\nactions.single_target+=/colossus_smash\nactions.single_target+=/thunderous_roar,if=buff.test_of_might.up||talent.test_of_might&debuff.colossus_smash.up&rage.pct<33||!talent.test_of_might&debuff.colossus_smash.up\nactions.single_target+=/bladestorm,if=talent.hurricane&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)||talent.unhinged&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)\nactions.single_target+=/skullsplitter,if=talent.tide_of_blood&dot.rend.remains&(debuff.colossus_smash.up||cooldown.colossus_smash.remains>gcd*4&buff.test_of_might.up||!talent.test_of_might&cooldown.colossus_smash.remains>gcd*4)||rage<30\nactions.single_target+=/execute,if=buff.sudden_death.react\nactions.single_target+=/shockwave,if=talent.sonic_boom.enabled\nactions.single_target+=/ignore_pain,if=talent.anger_management||talent.test_of_might&debuff.colossus_smash.up\nactions.single_target+=/whirlwind,if=talent.storm_of_swords&talent.battlelord&rage.pct>80&debuff.colossus_smash.up\nactions.single_target+=/overpower,if=charges=2&!talent.battlelord&(debuff.colossus_smash.down||rage.pct<25)||talent.battlelord\nactions.single_target+=/whirlwind,if=talent.storm_of_swords||talent.fervor_of_battle&active_enemies>1\nactions.single_target+=/thunder_clap,if=talent.battlelord&talent.blood_and_thunder\nactions.single_target+=/overpower,if=debuff.colossus_smash.down&rage.pct<50&!talent.battlelord||rage.pct<25\nactions.single_target+=/whirlwind,if=buff.merciless_bonegrinder.up\nactions.single_target+=/cleave,if=set_bonus.tier29_2pc&!talent.crushing_force\nactions.single_target+=/slam,if=rage>30&(!talent.fervor_of_battle||talent.fervor_of_battle&active_enemies=1)\nactions.single_target+=/bladestorm\nactions.single_target+=/cleave\nactions.single_target+=/wrecking_throw\nactions.single_target+=/rend,if=remains<duration*0.3",
["spec"] = 71,
},
["Protection Warrior"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230127,
["spec"] = 73,
["desc"] = "",
["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+=/pummel\nactions+=/spell_reflection\nactions+=/shield_charge,if=time=0\nactions+=/charge,if=time=0\nactions+=/use_items\nactions+=/avatar\n# Usage of Shield Wall is governed by specialization settings; see /hekili > Protection.\nactions+=/shield_wall,if=buff.avatar.down||!talent.immovable_object\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||buff.avatar.up&target.health.pct<=20\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),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\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+=/spear_of_bastion\nactions+=/thunderous_roar\nactions+=/shockwave,if=talent.sonic_boom.enabled&buff.avatar.up&talent.unstoppable_force.enabled&!talent.rumbling_earth.enabled\nactions+=/shield_charge\nactions+=/shield_block,if=buff.shield_block.duration<=18&talent.enduring_defenses.enabled||buff.shield_block.duration<=12\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+=/thunder_clap,if=buff.violent_outburst.up&spell_targets.thunderclap>5&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<=4\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<=1&buff.violent_outburst.down\nactions.generic+=/execute,if=buff.sudden_death.up&talent.sudden_death.enabled\nactions.generic+=/revenge,if=buff.vanguards_determination.down\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>1||cooldown.shield_slam.remains&!buff.violent_outburst.up)\nactions.generic+=/revenge,if=(rage>=60&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>=60&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\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>=1||cooldown.shield_slam.remains&buff.violent_outburst.up)\nactions.generic+=/devastate",
["version"] = 20230127,
["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 7: Converted 'talent.immovable_object' to 'talent.immovable_object.enabled' (1x).\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",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.violent_outburst.up & spell_targets.thunderclap > 5 & buff.avatar.up & talent.unstoppable_force.enabled",
["action"] = "thunder_clap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "rage >= 70 & talent.seismic_reverberation.enabled & spell_targets.revenge >= 3",
["action"] = "revenge",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "rage <= 60 || buff.violent_outburst.up & spell_targets.thunderclap <= 4",
["action"] = "shield_slam",
}, -- [4]
{
["action"] = "thunder_clap",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "rage >= 30 || rage >= 40 & talent.barbaric_training.enabled",
["action"] = "revenge",
}, -- [6]
},
["generic"] = {
{
["action"] = "shield_slam",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 1 & buff.violent_outburst.down",
["action"] = "thunder_clap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.up & talent.sudden_death.enabled",
["action"] = "execute",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.vanguards_determination.down",
["action"] = "revenge",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap > 1 || cooldown.shield_slam.remains & ! buff.violent_outburst.up )",
["action"] = "thunder_clap",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( rage >= 60 & 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 >= 60 & 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",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "spell_targets.revenge = 1",
["action"] = "execute",
}, -- [7]
{
["action"] = "revenge",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap >= 1 || cooldown.shield_slam.remains & buff.violent_outburst.up )",
["action"] = "thunder_clap",
}, -- [9]
{
["action"] = "devastate",
["enabled"] = true,
}, -- [10]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "pummel",
}, -- [1]
{
["action"] = "spell_reflection",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "time = 0",
["action"] = "shield_charge",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "time = 0",
["action"] = "charge",
}, -- [4]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [5]
{
["action"] = "avatar",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["description"] = "Usage of Shield Wall is governed by specialization settings, see /hekili > Protection.",
["criteria"] = "buff.avatar.down || ! talent.immovable_object.enabled",
["action"] = "shield_wall",
}, -- [7]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [8]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [9]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [10]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [11]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [12]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.avatar.up || buff.avatar.up & target.health.pct <= 20",
["action"] = "potion",
}, -- [15]
{
["enabled"] = true,
["action"] = "ignore_pain",
["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 )",
["use_off_gcd"] = 1,
}, -- [16]
{
["enabled"] = true,
["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",
["action"] = "last_stand",
}, -- [17]
{
["enabled"] = true,
["description"] = "Usage of Rallying Cry is governed by specialization settings, see /hekili > Protection.",
["action"] = "rallying_cry",
}, -- [18]
{
["action"] = "ravager",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.booming_voice.enabled",
["action"] = "demoralizing_shout",
}, -- [20]
{
["action"] = "spear_of_bastion",
["enabled"] = true,
}, -- [21]
{
["action"] = "thunderous_roar",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["criteria"] = "talent.sonic_boom.enabled & buff.avatar.up & talent.unstoppable_force.enabled & ! talent.rumbling_earth.enabled",
["action"] = "shockwave",
}, -- [23]
{
["action"] = "shield_charge",
["enabled"] = true,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.shield_block.duration <= 18 & talent.enduring_defenses.enabled || buff.shield_block.duration <= 12",
["action"] = "shield_block",
}, -- [25]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.thunder_clap >= 3",
["list_name"] = "aoe",
}, -- [26]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "generic",
}, -- [27]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "buff.stance.down",
["action"] = "defensive_stance",
}, -- [1]
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.titans_torment.enabled",
["action"] = "avatar",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.reckless_abandon.enabled",
["action"] = "recklessness",
}, -- [5]
},
},
["author"] = "SimulationCraft",
},
["Fury"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230209,
["author"] = "SimC",
["desc"] = "",
["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",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.ashen_juggernaut.up & buff.ashen_juggernaut.remains < gcd.max",
["action"] = "execute",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 )",
["action"] = "thunderous_roar",
}, -- [3]
{
["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",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.anger_management.enabled & ( buff.recklessness.up || buff.enrage.remains < gcd.max || rage.pct > 85 )",
["action"] = "rampage",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "execute",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up || talent.tenderize.enabled",
["action"] = "onslaught",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.wrath_and_fury.enabled & buff.enrage.up",
["action"] = "crushing_blow",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.reckless_abandon.enabled & ( buff.recklessness.up || buff.enrage.remains < gcd.max || rage.pct > 85 )",
["action"] = "rampage",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.anger_management.enabled",
["action"] = "rampage",
}, -- [10]
{
["action"] = "execute",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! talent.wrath_and_fury.enabled",
["action"] = "bloodbath",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || ( talent.annihilator.enabled & ! buff.recklessness.up )",
["action"] = "bloodthirst",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
["action"] = "raging_blow",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
["action"] = "crushing_blow",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || ! talent.wrath_and_fury.enabled",
["action"] = "bloodbath",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled",
["action"] = "crushing_blow",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! talent.wrath_and_fury.enabled",
["action"] = "bloodthirst",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "charges > 1",
["action"] = "raging_blow",
}, -- [19]
{
["action"] = "rampage",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "talent.annihilator.enabled",
["action"] = "slam",
}, -- [21]
{
["action"] = "bloodbath",
["enabled"] = true,
}, -- [22]
{
["action"] = "raging_blow",
["enabled"] = true,
}, -- [23]
{
["action"] = "crushing_blow",
["enabled"] = true,
}, -- [24]
{
["action"] = "bloodthirst",
["enabled"] = true,
}, -- [25]
{
["action"] = "whirlwind",
["enabled"] = true,
}, -- [26]
{
["action"] = "wrecking_throw",
["enabled"] = true,
}, -- [27]
{
["action"] = "storm_bolt",
["enabled"] = true,
}, -- [28]
},
["precombat"] = {
{
["action"] = "berserker_stance",
["enabled"] = true,
}, -- [1]
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.titans_torment.enabled",
["action"] = "avatar",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.reckless_abandon.enabled",
["action"] = "recklessness",
}, -- [5]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "time <= 0.5 || movement.distance > 5",
["action"] = "charge",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( raid_event.movement.distance > 25 & raid_event.movement.in > 45 )",
["action"] = "heroic_leap",
}, -- [2]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [3]
{
["action"] = "potion",
["enabled"] = true,
}, -- [4]
{
["action"] = "conquerors_banner",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.recklessness.remains < 3 || ( talent.anger_management.enabled & cooldown.avatar.remains < 3 )",
["action"] = "algethar_puzzle_box",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "irideus_fragment",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.avatar.down",
["action"] = "manic_grieftorch",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.recklessness.remains > 10 & ( buff.recklessness.up || boss & fight_remains < 11 || boss & fight_remains > 65 )",
["action"] = "gladiators_badge",
}, -- [9]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cooldown.recklessness.remains < 3 || buff.recklessness.up",
["action"] = "ravager",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "rage < 40 & ! buff.recklessness.up",
["action"] = "arcane_torrent",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down",
["action"] = "lights_judgment",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "berserking",
}, -- [14]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [15]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [16]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "talent.titans_torment.enabled & buff.enrage.up & raid_event.adds.in > 15 || ! talent.titans_torment.enabled & ( buff.recklessness.up || boss & fight_remains < 20 )",
["action"] = "avatar",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists & ( talent.annihilator.enabled & cooldown.avatar.remains < 1 || cooldown.avatar.remains > 40 || ! talent.avatar.enabled || boss & fight_remains < 12 )",
["action"] = "recklessness",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists & ! talent.annihilator.enabled || boss & fight_remains < 12",
["action"] = "recklessness",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( buff.recklessness.up || buff.avatar.up || boss & fight_remains < 20 || active_enemies > 1 ) & raid_event.adds.in > 15",
["action"] = "spear_of_bastion",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2",
["list_name"] = "multi_target",
}, -- [22]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "single_target",
}, -- [23]
},
["multi_target"] = {
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15 || active_enemies > 1 || boss & fight_remains < 12",
["action"] = "recklessness",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & talent.titanic_rage.enabled & ( ! buff.meat_cleaver.up || buff.avatar.up || buff.recklessness.up )",
["action"] = "odyns_fury",
}, -- [2]
{
["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",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.ashen_juggernaut.up & buff.ashen_juggernaut.remains < gcd.max",
["action"] = "execute",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 )",
["action"] = "thunderous_roar",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.enrage.up & raid_event.adds.in > 15",
["action"] = "odyns_fury",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.wrath_and_fury.enabled & buff.enrage.up",
["action"] = "crushing_blow",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "execute",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & raid_event.adds.in > 15",
["action"] = "odyns_fury",
}, -- [9]
{
["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",
}, -- [10]
{
["action"] = "execute",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! talent.wrath_and_fury.enabled",
["action"] = "bloodbath",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || ( talent.annihilator.enabled & ! buff.recklessness.up )",
["action"] = "bloodthirst",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! talent.annihilator.enabled & buff.enrage.up || talent.tenderize.enabled",
["action"] = "onslaught",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
["action"] = "raging_blow",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled",
["action"] = "crushing_blow",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || ! talent.wrath_and_fury.enabled",
["action"] = "bloodbath",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled",
["action"] = "crushing_blow",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! talent.wrath_and_fury.enabled",
["action"] = "bloodthirst",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "charges >= 1",
["action"] = "raging_blow",
}, -- [20]
{
["action"] = "rampage",
["enabled"] = true,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "talent.annihilator.enabled",
["action"] = "slam",
}, -- [22]
{
["action"] = "bloodbath",
["enabled"] = true,
}, -- [23]
{
["action"] = "raging_blow",
["enabled"] = true,
}, -- [24]
{
["action"] = "crushing_blow",
["enabled"] = true,
}, -- [25]
{
["action"] = "whirlwind",
["enabled"] = true,
}, -- [26]
},
},
["version"] = 20230209,
["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 4: Converted 'talent.dancing_blades' to 'talent.dancing_blades.enabled' (1x).\nLine 4: Converted 'talent.dancing_blades' to 'talent.dancing_blades.enabled' (1x).\nLine 5: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 7: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 8: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 9: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 10: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 12: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 12: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 13: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 14: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 15: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 16: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 17: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 18: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 21: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\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 7: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 10: Converted 'talent.overwhelming_rage' to 'talent.overwhelming_rage.enabled' (1x).\nLine 10: Converted 'talent.overwhelming_rage' to 'talent.overwhelming_rage.enabled' (1x).\nLine 12: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 12: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 13: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 14: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 14: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 15: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 16: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 17: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 18: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 19: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 22: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 6: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 18: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 18: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 19: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 19: Converted 'talent.avatar' to 'talent.avatar.enabled' (1x).\nLine 20: Converted 'talent.annihilator' to 'talent.annihilator.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",
["spec"] = 72,
["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\n\nactions+=/charge,if=time<=0.5||movement.distance>5\nactions+=/heroic_leap,if=(raid_event.movement.distance>25&raid_event.movement.in>45)\nactions+=/pummel\nactions+=/potion\nactions+=/conquerors_banner\nactions+=/algethar_puzzle_box,if=cooldown.recklessness.remains<3||(talent.anger_management&cooldown.avatar.remains<3)\nactions+=/irideus_fragment,if=buff.recklessness.up\nactions+=/manic_grieftorch,if=buff.avatar.down\nactions+=/gladiators_badge,if=cooldown.recklessness.remains>10&(buff.recklessness.up||boss&fight_remains<11||boss&fight_remains>65)\nactions+=/use_items\nactions+=/ravager,if=cooldown.recklessness.remains<3||buff.recklessness.up\nactions+=/arcane_torrent,if=rage<40&!buff.recklessness.up\nactions+=/lights_judgment,if=buff.recklessness.down\nactions+=/berserking,if=buff.recklessness.up\nactions+=/blood_fury\nactions+=/ancestral_call\nactions+=/fireblood\n## actions+=/bag_of_tricks,if=buff.recklessness.down&buff.enrage.up\nactions+=/avatar,if=talent.titans_torment&buff.enrage.up&raid_event.adds.in>15||!talent.titans_torment&(buff.recklessness.up||boss&fight_remains<20)\nactions+=/recklessness,if=!raid_event.adds.exists&(talent.annihilator&cooldown.avatar.remains<1||cooldown.avatar.remains>40||!talent.avatar||boss&fight_remains<12)\nactions+=/recklessness,if=!raid_event.adds.exists&!talent.annihilator||boss&fight_remains<12\nactions+=/spear_of_bastion,if=buff.enrage.up&(buff.recklessness.up||buff.avatar.up||boss&fight_remains<20||active_enemies>1)&raid_event.adds.in>15\nactions+=/call_action_list,name=multi_target,strict=1,if=active_enemies>2\nactions+=/call_action_list,name=single_target\n\nactions.multi_target+=/recklessness,if=raid_event.adds.in>15||active_enemies>1||boss&fight_remains<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+=/thunderous_roar,if=buff.enrage.up&(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+=/crushing_blow,if=talent.wrath_and_fury&buff.enrage.up\nactions.multi_target+=/execute,if=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+=/execute\nactions.multi_target+=/bloodbath,if=buff.enrage.up&talent.reckless_abandon&!talent.wrath_and_fury\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+=/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+=/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+=/thunderous_roar,if=buff.enrage.up&(spell_targets.whirlwind>1||raid_event.adds.in>15)\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+=/execute,if=buff.enrage.up\nactions.single_target+=/onslaught,if=buff.enrage.up||talent.tenderize\nactions.single_target+=/crushing_blow,if=talent.wrath_and_fury&buff.enrage.up\nactions.single_target+=/rampage,if=talent.reckless_abandon&(buff.recklessness.up||buff.enrage.remains<gcd||rage.pct>85)\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+=/bloodthirst,if=buff.enrage.down||(talent.annihilator&!buff.recklessness.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\nactions.single_target+=/bloodbath,if=buff.enrage.down||!talent.wrath_and_fury\nactions.single_target+=/crushing_blow,if=buff.enrage.up&talent.reckless_abandon\nactions.single_target+=/bloodthirst,if=!talent.wrath_and_fury\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\nactions.single_target+=/bloodthirst\nactions.single_target+=/whirlwind\nactions.single_target+=/wrecking_throw\nactions.single_target+=/storm_bolt",
},
},
},
["Quillmog - Deathwing"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetRogueMfDOption_20200226"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[255] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["use_harpoon"] = true,
["ca_vop_overlap"] = false,
},
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Survival",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
[254] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["trueshot_vop_overlap"] = false,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Marksmanship",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["throttleTime"] = false,
["damageRange"] = 0,
},
[253] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["aspect_vop_overlap"] = false,
["barbed_shot_grace_period"] = 0.5,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["buffPadding"] = 0,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Beast Mastery",
["damage"] = true,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 3,
["throttleTime"] = false,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Marksmanship"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200401,
["author"] = "SimC",
["desc"] = "# Marksmanship Hunter\n# https://github.com/simulationcraft/simc/\n# March 30, 2020\n\n# Changes:\n# - Add utility priority to APL.\n# - Use time_to_die rather than target.time_to_die to anticipate end of combat.",
["lists"] = {
["trickshots"] = {
{
["action"] = "barrage",
["enabled"] = true,
}, -- [1]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ca_execute & buff.double_tap.up",
["action"] = "aimed_shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ( azerite.focused_fire.enabled || azerite.in_the_rhythm.rank > 1 || azerite.surging_shots.enabled || talent.streamline.enabled )",
["action"] = "rapid_fire",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ( buff.precise_shots.down || cooldown.aimed_shot.full_recharge_time < action.aimed_shot.cast_time || buff.trueshot.up )",
["action"] = "aimed_shot",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up",
["action"] = "rapid_fire",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.down || buff.precise_shots.up & ! buff.trueshot.up || focus > 70",
["action"] = "multishot",
}, -- [7]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [8]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [9]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [10]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [12]
{
["action"] = "piercing_shot",
["enabled"] = true,
}, -- [13]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "refreshable & ! action.serpent_sting.in_flight",
["action"] = "serpent_sting",
}, -- [15]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [16]
},
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains_guess < 15 || time_to_die < 30",
["name"] = "lurkers_insidious_gift",
["action"] = "lurkers_insidious_gift",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( time_to_die > action_cooldown + 34 || target.health.pct < 20 || target.time_to_pct_20 < 15 ) & cooldown.trueshot.remains_guess < 15 || time_to_die < 35",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains_guess < 5 || time_to_die < 20",
["name"] = "lustrous_golden_plumage",
["action"] = "lustrous_golden_plumage",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot || ! talent.calling_the_shots.enabled || time_to_die < 10",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( buff.guardian_of_azeroth.up || ! essence.condensed_lifeforce.major & ca_execute ) || debuff.razor_coral_debuff.down || time_to_die < 20",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up & ! essence.blood_of_the_enemy.major || debuff.blood_of_the_enemy.up || time_to_die < 5",
["name"] = "pocketsized_computation_device",
["action"] = "pocketsized_computation_device",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot || ! talent.calling_the_shots.enabled || time_to_die < 20",
["action"] = "use_items",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3",
["list_name"] = "st",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 2",
["list_name"] = "trickshots",
}, -- [11]
},
["precombat"] = {
{
["action"] = "hunters_mark",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["precast_time"] = "10",
["action"] = "double_tap",
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [4]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [5]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "trueshot",
["criteria"] = "active_enemies > 2",
}, -- [7]
{
["action"] = "potion",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "aimed_shot",
}, -- [9]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "debuff.hunters_mark.down & ! buff.trueshot.up",
["action"] = "hunters_mark",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.rapid_fire.remains < gcd || cooldown.rapid_fire.remains < cooldown.aimed_shot.remains || time_to_die < 20",
["action"] = "double_tap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.berserking.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 13",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.blood_fury.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 16",
["action"] = "blood_fury",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.ancestral_call.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 16",
["action"] = "ancestral_call",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.fireblood.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 9",
["action"] = "fireblood",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "lights_judgment",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & ( target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30 )",
["action"] = "reaping_flames",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( cooldown.azsharas_font_of_power.remains > 20 || ! equipped.azsharas_font_of_power || time_to_die < cooldown.azsharas_font_of_power.duration + 34 & target.health.pct > 20 ) & ( cooldown.trueshot.remains_guess < 3 || ( essence.vision_of_perfection.minor & time_to_die > action_cooldown + buff.worldvein_resonance.duration ) ) || time_to_die < 20",
["action"] = "worldvein_resonance",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( ca_execute || target.time_to_die > action_cooldown + 30 ) & ( buff.trueshot.up || cooldown.trueshot.remains < 16 ) || time_to_die < 31",
["action"] = "guardian_of_azeroth",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains < 7",
["action"] = "ripple_in_space",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up",
["action"] = "memory_of_lucid_dreams",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.react & buff.bloodlust.react || prev_gcd.1.trueshot & target.health.pct < 20 || ( ( consumable.potion_of_unbridled_fury || consumable.unbridled_fury ) & target.time_to_die < 61 || time_to_die < 26 )",
["action"] = "potion",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & cooldown.rapid_fire.remains || time_to_die < 15",
["action"] = "trueshot",
}, -- [15]
},
["st"] = {
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "barrage",
}, -- [2]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable & ! action.serpent_sting.in_flight",
["action"] = "serpent_sting",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down || focus < 35 || focus < 60 & ! talent.lethal_shots.enabled || buff.in_the_rhythm.remains < execute_time",
["action"] = "rapid_fire",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & ( buff.unerring_vision.stack > 4 || ! azerite.unerring_vision.enabled ) || time_to_die < 11",
["action"] = "blood_of_the_enemy",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up || time_to_die < 5",
["action"] = "focused_azerite_beam",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & buff.master_marksman.up & ! buff.memory_of_lucid_dreams.up",
["action"] = "arcane_shot",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || ( buff.double_tap.down || ca_execute ) & buff.precise_shots.down || full_recharge_time < cast_time & cooldown.trueshot.remains",
["action"] = "aimed_shot",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & buff.master_marksman.up & buff.memory_of_lucid_dreams.up",
["action"] = "arcane_shot",
}, -- [10]
{
["action"] = "piercing_shot",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up || time_to_die < 8",
["action"] = "purifying_blast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "focus + focus.regen * gcd < focus.max & buff.trueshot.down & ( ! dot.concentrated_flame_burn.remains & ! action.concentrated_flame.in_flight ) || full_recharge_time < gcd || target.time_to_die < 5",
["action"] = "concentrated_flame",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10 || time_to_die < 5",
["action"] = "the_unbound_force",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & ( buff.precise_shots.up & ( focus > 55 || buff.master_marksman.up ) || focus > 75 || time_to_die < 5 )",
["action"] = "arcane_shot",
}, -- [15]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [16]
},
["utility"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200401,
["warnings"] = "Imported 6 action lists.\n",
["profile"] = "# Marksmanship Hunter\n# https://github.com/simulationcraft/simc/\n# March 30, 2020\n\n# Changes:\n# - Add utility priority to APL.\n# - Use time_to_die rather than target.time_to_die to anticipate end of combat.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/hunters_mark\n# Precast this as early as possible to potentially gain another cast during the fight.\nactions.precombat+=/double_tap,precast_time=10\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/trueshot,precast_time=1.5,if=active_enemies>2\nactions.precombat+=/potion\nactions.precombat+=/aimed_shot,if=active_enemies<3\n\nactions.utility=counter_shot\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_item,name=lurkers_insidious_gift,if=cooldown.trueshot.remains_guess<15||time_to_die<30\nactions+=/use_item,name=azsharas_font_of_power,if=(time_to_die>cooldown+34||target.health.pct<20||target.time_to_pct_20<15)&cooldown.trueshot.remains_guess<15||time_to_die<35\nactions+=/use_item,name=lustrous_golden_plumage,if=cooldown.trueshot.remains_guess<5||time_to_die<20\nactions+=/use_item,name=galecallers_boon,if=prev_gcd.1.trueshot||!talent.calling_the_shots.enabled||time_to_die<10\nactions+=/use_item,name=ashvanes_razor_coral,if=prev_gcd.1.trueshot&(buff.guardian_of_azeroth.up||!essence.condensed_lifeforce.major&ca_execute)||debuff.razor_coral_debuff.down||time_to_die<20\nactions+=/use_item,name=pocketsized_computation_device,if=!buff.trueshot.up&!essence.blood_of_the_enemy.major||debuff.blood_of_the_enemy.up||time_to_die<5\n# Try to line up activated trinkets with Trueshot\nactions+=/use_items,if=prev_gcd.1.trueshot||!talent.calling_the_shots.enabled||time_to_die<20\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<3\nactions+=/call_action_list,name=trickshots,if=active_enemies>2\n\nactions.cds=hunters_mark,if=debuff.hunters_mark.down&!buff.trueshot.up\nactions.cds+=/double_tap,if=cooldown.rapid_fire.remains<gcd||cooldown.rapid_fire.remains<cooldown.aimed_shot.remains||time_to_die<20\nactions.cds+=/berserking,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.berserking.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<13\nactions.cds+=/blood_fury,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.blood_fury.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<16\nactions.cds+=/ancestral_call,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.ancestral_call.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<16\nactions.cds+=/fireblood,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.fireblood.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<9\nactions.cds+=/lights_judgment,if=buff.trueshot.down\nactions.cds+=/bag_of_tricks,if=buff.trueshot.down\nactions.cds+=/reaping_flames,if=buff.trueshot.down&(target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30)\nactions.cds+=/worldvein_resonance,if=(cooldown.azsharas_font_of_power.remains>20||!equipped.azsharas_font_of_power||time_to_die<cooldown.azsharas_font_of_power.duration+34&target.health.pct>20)&(cooldown.trueshot.remains_guess<3||(essence.vision_of_perfection.minor&time_to_die>cooldown+buff.worldvein_resonance.duration))||time_to_die<20\nactions.cds+=/guardian_of_azeroth,if=(ca_execute||target.time_to_die>cooldown+30)&(buff.trueshot.up||cooldown.trueshot.remains<16)||time_to_die<31\nactions.cds+=/ripple_in_space,if=cooldown.trueshot.remains<7\nactions.cds+=/memory_of_lucid_dreams,if=!buff.trueshot.up\nactions.cds+=/potion,if=buff.trueshot.react&buff.bloodlust.react||prev_gcd.1.trueshot&target.health.pct<20||((consumable.potion_of_unbridled_fury||consumable.unbridled_fury)&target.time_to_die<61||time_to_die<26)\nactions.cds+=/trueshot,if=buff.trueshot.down&cooldown.rapid_fire.remains||time_to_die<15\n\nactions.st=explosive_shot\nactions.st+=/barrage,if=active_enemies>1\nactions.st+=/a_murder_of_crows\nactions.st+=/serpent_sting,if=refreshable&!action.serpent_sting.in_flight\nactions.st+=/rapid_fire,if=buff.trueshot.down||focus<35||focus<60&!talent.lethal_shots.enabled||buff.in_the_rhythm.remains<execute_time\n# if=buff.trueshot.up&(buff.unerring_vision.stack>4||!azerite.unerring_vision.enabled)||target.time_to_die<11\nactions.st+=/blood_of_the_enemy,if=buff.trueshot.up&(buff.unerring_vision.stack>4||!azerite.unerring_vision.enabled)||time_to_die<11\nactions.st+=/focused_azerite_beam,if=!buff.trueshot.up||time_to_die<5\nactions.st+=/arcane_shot,if=buff.trueshot.up&buff.master_marksman.up&!buff.memory_of_lucid_dreams.up\nactions.st+=/aimed_shot,if=buff.trueshot.up||(buff.double_tap.down||ca_execute)&buff.precise_shots.down||full_recharge_time<cast_time&cooldown.trueshot.remains\nactions.st+=/arcane_shot,if=buff.trueshot.up&buff.master_marksman.up&buff.memory_of_lucid_dreams.up\nactions.st+=/piercing_shot\nactions.st+=/purifying_blast,if=!buff.trueshot.up||time_to_die<8\nactions.st+=/concentrated_flame,if=focus+focus.regen*gcd<focus.max&buff.trueshot.down&(!dot.concentrated_flame_burn.remains&!action.concentrated_flame.in_flight)||full_recharge_time<gcd||target.time_to_die<5\nactions.st+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10||time_to_die<5\nactions.st+=/arcane_shot,if=buff.trueshot.down&(buff.precise_shots.up&(focus>55||buff.master_marksman.up)||focus>75||time_to_die<5)\nactions.st+=/steady_shot\n\nactions.trickshots=barrage\nactions.trickshots+=/explosive_shot\nactions.trickshots+=/aimed_shot,if=buff.trick_shots.up&ca_execute&buff.double_tap.up\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.up&(azerite.focused_fire.enabled||azerite.in_the_rhythm.rank>1||azerite.surging_shots.enabled||talent.streamline.enabled)\nactions.trickshots+=/aimed_shot,if=buff.trick_shots.up&(buff.precise_shots.down||cooldown.aimed_shot.full_recharge_time<action.aimed_shot.cast_time||buff.trueshot.up)\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.up\nactions.trickshots+=/multishot,if=buff.trick_shots.down||buff.precise_shots.up&!buff.trueshot.up||focus>70\nactions.trickshots+=/focused_azerite_beam\nactions.trickshots+=/purifying_blast\nactions.trickshots+=/concentrated_flame\nactions.trickshots+=/blood_of_the_enemy\nactions.trickshots+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.trickshots+=/piercing_shot\nactions.trickshots+=/a_murder_of_crows\nactions.trickshots+=/serpent_sting,if=refreshable&!action.serpent_sting.in_flight\nactions.trickshots+=/steady_shot",
["spec"] = 254,
},
["Beast Mastery"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["author"] = "SimC",
["desc"] = "# Beast Mastery Hunter\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Counter Shot to default action list.\n# - Use time_to_die (vs. target.time_to_die) to anticipate end of encounter.\n# - Add dispels/purges via utility action list.\n# - trinket.X.has_cooldown is unsupported.\n# - Check for crit_pct_current.",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.aspect_of_the_wild || time_to_die < 20",
["action"] = "use_items",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains_guess < 15 & time_to_die > 10",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.up & ( ! equipped.azsharas_font_of_power || cooldown.azsharas_font_of_power.remains > 86 || essence.blood_of_the_enemy.major ) & ( prev_gcd.1.aspect_of_the_wild || ! equipped.cyclotronic_blast & buff.aspect_of_the_wild.remains > 9 ) & ( ! essence.condensed_lifeforce.major || buff.guardian_of_azeroth.up ) & ( target.health.pct < 35 || ! essence.condensed_lifeforce.major || ! talent.killer_instinct.enabled ) || ( debuff.razor_coral_debuff.down || time_to_die < 26 ) & time_to_die > ( 24 * ( cooldown.cyclotronic_blast.remains + 4 < time_to_die ) )",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.remains > 10 || cooldown.aspect_of_the_wild.remains > 45 || time_to_die < 11",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 5",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 2",
["list_name"] = "st",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1",
["list_name"] = "cleave",
}, -- [9]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists & ( equipped.variable_intensity_gigavolt_oscillating_reactor )",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists & ( trinket.1.has_cooldown + trinket.2.has_cooldown < 2 || equipped.variable_intensity_gigavolt_oscillating_reactor )",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists",
["action"] = "focused_azerite_beam",
}, -- [8]
{
["enabled"] = true,
["precast_time"] = "1.3",
["action"] = "aspect_of_the_wild",
["criteria"] = "! azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [9]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "bestial_wrath",
["criteria"] = "azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [10]
{
["action"] = "potion",
["enabled"] = true,
}, -- [11]
},
["cleave"] = {
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + barbed_shot_grace_period",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "gcd.max - buff.beast_cleave.remains > 0.25",
["action"] = "multishot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max & cooldown.bestial_wrath.remains",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [3]
{
["action"] = "aspect_of_the_wild",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & buff.bestial_wrath.up || time_to_die < 15",
["action"] = "stampede",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains_guess > 20 || talent.one_with_the_pack.enabled || time_to_die < 15",
["action"] = "bestial_wrath",
}, -- [6]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [7]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [8]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies < 4 || ! azerite.rapid_reload.enabled",
["action"] = "kill_command",
}, -- [10]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.down & ( charges_fractional > 1.8 || buff.bestial_wrath.up ) || cooldown.aspect_of_the_wild.remains < buff.frenzy.duration - gcd & azerite.primal_instincts.enabled || charges_fractional > 1.4 || time_to_die < 9",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [12]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [13]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [14]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "azerite.rapid_reload.enabled & active_enemies > 2",
["action"] = "multishot",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.kill_command.remains > focus.time_to_max & ( active_enemies < 3 || ! azerite.rapid_reload.enabled )",
["action"] = "cobra_shot",
}, -- [18]
{
["action"] = "spitting_cobra",
["enabled"] = true,
}, -- [19]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "ancestral_call",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "fireblood",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "focus < focus.max & ( raid_event.adds.remains > 90 || ! raid_event.adds.exists || active_enemies > 1 )",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & ( time_to_die > cooldown.berserking.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || time_to_die < 13",
["action"] = "berserking",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & ( time_to_die > cooldown.blood_fury.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || time_to_die < 16",
["action"] = "blood_fury",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains > gcd.max || ! buff.frenzy.up",
["action"] = "lights_judgment",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.up & buff.aspect_of_the_wild.up & target.health.pct < 35 || ( ( consumable.potion_of_unbridled_fury || consumable.unbridled_fury ) & time_to_die < 61 || time_to_die < 26 )",
["action"] = "potion",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.aspect_of_the_wild || cooldown.aspect_of_the_wild.remains < gcd || target.time_to_die < 20 ) || ! essence.vision_of_perfection.minor",
["action"] = "worldvein_resonance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains < 10 || time_to_die > action.guardian_of_azeroth.cooldown + 30 || time_to_die < 30",
["action"] = "guardian_of_azeroth",
}, -- [9]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [10]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30",
["action"] = "reaping_flames",
}, -- [12]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains < gcd + barbed_shot_grace_period || cooldown.bestial_wrath.remains & ( full_recharge_time < gcd || azerite.primal_instincts.enabled & cooldown.aspect_of_the_wild.remains < gcd )",
["action"] = "barbed_shot",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + focus.regen * gcd < focus.max & buff.bestial_wrath.down & ( ! dot.concentrated_flame_burn.remains & ! action.concentrated_flame.in_flight ) || full_recharge_time < gcd || time_to_die < 5",
["action"] = "concentrated_flame",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.down & ( cooldown.barbed_shot.charges < 1 || ! azerite.primal_instincts.enabled )",
["action"] = "aspect_of_the_wild",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & buff.bestial_wrath.up || time_to_die < 15",
["action"] = "stampede",
}, -- [4]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 5",
["action"] = "focused_azerite_beam",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10 || time_to_die < 5",
["action"] = "the_unbound_force",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.one_with_the_pack.enabled & buff.bestial_wrath.remains < gcd || buff.bestial_wrath.down & cooldown.aspect_of_the_wild.remains > 15 || time_to_die < 15 + gcd",
["action"] = "bestial_wrath",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "azerite.dance_of_death.rank > 1 & buff.dance_of_death.remains < gcd",
["action"] = "barbed_shot",
}, -- [9]
{
["action"] = "kill_command",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "bag_of_tricks",
}, -- [11]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [12]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.one_with_the_pack.enabled & charges_fractional > 1.5 || charges_fractional > 1.8 || cooldown.aspect_of_the_wild.remains < buff.frenzy.duration - gcd & azerite.primal_instincts.enabled || time_to_die < 9",
["action"] = "barbed_shot",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 8",
["action"] = "purifying_blast",
}, -- [15]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [16]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "( focus - cost + focus.regen * ( cooldown.kill_command.remains - 1 ) > action.kill_command.cost || cooldown.kill_command.remains > 1 + gcd & cooldown.bestial_wrath.remains_guess > focus.time_to_max || buff.memory_of_lucid_dreams.up ) & cooldown.kill_command.remains > 1 || time_to_die < 3",
["action"] = "cobra_shot",
}, -- [18]
{
["action"] = "spitting_cobra",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.duration - gcd > full_recharge_time",
["action"] = "barbed_shot",
}, -- [20]
},
["utility"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200614,
["warnings"] = "WARNING: The import for 'default' required some automated changes.\nLine 4: Converted 'trinket.X.cooldown' to 'cooldown.X' (1x).\n\nWARNING: The import for 'cleave' required some automated changes.\nLine 1: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 2: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 12: Converted 'pet.X.Y...' to 'Y...' (2x).\n\nWARNING: The import for 'cds' required some automated changes.\nLine 6: Converted 'pet.X.Y...' to 'Y...' (3x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 1: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 14: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 20: Converted 'pet.X.Y...' to 'Y...' (1x).\n\nImported 6 action lists.\n",
["spec"] = 253,
["profile"] = "# Beast Mastery Hunter\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Counter Shot to default action list.\n# - Use time_to_die (vs. target.time_to_die) to anticipate end of encounter.\n# - Add dispels/purges via utility action list.\n# - trinket.X.has_cooldown is unsupported.\n# - Check for crit_pct_current.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\nactions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists&(equipped.variable_intensity_gigavolt_oscillating_reactor)\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists&(trinket.1.has_cooldown+trinket.2.has_cooldown<2||equipped.variable_intensity_gigavolt_oscillating_reactor)\nactions.precombat+=/focused_azerite_beam,if=!raid_event.invulnerable.exists\n# Adjusts the duration and cooldown of Aspect of the Wild and Primal Instincts by the duration of an unhasted GCD when they're used precombat. Because Aspect of the Wild reduces GCD by 200ms, this is 1.3 seconds. \nactions.precombat+=/aspect_of_the_wild,precast_time=1.3,if=!azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\n# Adjusts the duration and cooldown of Bestial Wrath and Haze of Rage by the duration of an unhasted GCD when they're used precombat.\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\nactions.precombat+=/potion\n\nactions.utility=counter_shot\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_items,if=prev_gcd.1.aspect_of_the_wild||time_to_die<20\nactions+=/use_item,name=azsharas_font_of_power,if=cooldown.aspect_of_the_wild.remains_guess<15&time_to_die>10\nactions+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.up&(!equipped.azsharas_font_of_power||trinket.azsharas_font_of_power.cooldown.remains>86||essence.blood_of_the_enemy.major)&(prev_gcd.1.aspect_of_the_wild||!equipped.cyclotronic_blast&buff.aspect_of_the_wild.remains>9)&(!essence.condensed_lifeforce.major||buff.guardian_of_azeroth.up)&(target.health.pct<35||!essence.condensed_lifeforce.major||!talent.killer_instinct.enabled)||(debuff.razor_coral_debuff.down||time_to_die<26)&time_to_die>(24*(cooldown.cyclotronic_blast.remains+4<time_to_die))\nactions+=/use_item,name=galecallers_boon,if=buff.aspect_of_the_wild.remains>10||cooldown.aspect_of_the_wild.remains>45||time_to_die<11\nactions+=/use_item,effect_name=cyclotronic_blast,if=buff.bestial_wrath.down||time_to_die<5\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<2\nactions+=/call_action_list,name=cleave,if=active_enemies>1\n\nactions.cds=ancestral_call,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/fireblood,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/blood_of_the_enemy,if=focus<focus.max&(raid_event.adds.remains>90||!raid_event.adds.exists||active_enemies>1)\nactions.cds+=/berserking,if=buff.aspect_of_the_wild.up&(time_to_die>cooldown.berserking.duration+duration||(target.health.pct<35||!talent.killer_instinct.enabled))||time_to_die<13\nactions.cds+=/blood_fury,if=buff.aspect_of_the_wild.up&(time_to_die>cooldown.blood_fury.duration+duration||(target.health.pct<35||!talent.killer_instinct.enabled))||time_to_die<16\nactions.cds+=/lights_judgment,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains>gcd.max||!pet.cat.buff.frenzy.up\nactions.cds+=/potion,if=buff.bestial_wrath.up&buff.aspect_of_the_wild.up&target.health.pct<35||((consumable.potion_of_unbridled_fury||consumable.unbridled_fury)&time_to_die<61||time_to_die<26)\nactions.cds+=/worldvein_resonance,if=(prev_gcd.1.aspect_of_the_wild||cooldown.aspect_of_the_wild.remains<gcd||target.time_to_die<20)||!essence.vision_of_perfection.minor\nactions.cds+=/guardian_of_azeroth,if=cooldown.aspect_of_the_wild.remains<10||time_to_die>action.guardian_of_azeroth.cooldown+30||time_to_die<30\nactions.cds+=/ripple_in_space\nactions.cds+=/memory_of_lucid_dreams\n# actions.cds+=/bag_of_tricks\nactions.cds+=/reaping_flames,if=target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30\n\nactions.cleave=barbed_shot,cycle_targets=1,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains<=gcd.max+barbed_shot_grace_period\nactions.cleave+=/multishot,if=gcd.max-pet.cat.buff.beast_cleave.remains>0.25\nactions.cleave+=/barbed_shot,cycle_targets=1,if=full_recharge_time<gcd.max&cooldown.bestial_wrath.remains\nactions.cleave+=/aspect_of_the_wild\nactions.cleave+=/stampede,if=buff.aspect_of_the_wild.up&buff.bestial_wrath.up||time_to_die<15\nactions.cleave+=/bestial_wrath,if=cooldown.aspect_of_the_wild.remains_guess>20||talent.one_with_the_pack.enabled||time_to_die<15\nactions.cleave+=/chimaera_shot\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/barrage\nactions.cleave+=/kill_command,if=active_enemies<4||!azerite.rapid_reload.enabled\nactions.cleave+=/dire_beast\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.cat.buff.frenzy.down&(charges_fractional>1.8||buff.bestial_wrath.up)||cooldown.aspect_of_the_wild.remains<pet.cat.buff.frenzy.duration-gcd&azerite.primal_instincts.enabled||charges_fractional>1.4||time_to_die<9\nactions.cleave+=/focused_azerite_beam\nactions.cleave+=/purifying_blast\nactions.cleave+=/concentrated_flame\nactions.cleave+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.cleave+=/multishot,if=azerite.rapid_reload.enabled&active_enemies>2\nactions.cleave+=/cobra_shot,if=cooldown.kill_command.remains>focus.time_to_max&(active_enemies<3||!azerite.rapid_reload.enabled)\nactions.cleave+=/spitting_cobra\n\nactions.st=barbed_shot,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains<gcd+barbed_shot_grace_period||cooldown.bestial_wrath.remains&(full_recharge_time<gcd||azerite.primal_instincts.enabled&cooldown.aspect_of_the_wild.remains<gcd)\nactions.st+=/concentrated_flame,if=focus+focus.regen*gcd<focus.max&buff.bestial_wrath.down&(!dot.concentrated_flame_burn.remains&!action.concentrated_flame.in_flight)||full_recharge_time<gcd||time_to_die<5\nactions.st+=/aspect_of_the_wild,if=buff.aspect_of_the_wild.down&(cooldown.barbed_shot.charges<1||!azerite.primal_instincts.enabled)\nactions.st+=/stampede,if=buff.aspect_of_the_wild.up&buff.bestial_wrath.up||time_to_die<15\nactions.st+=/a_murder_of_crows\nactions.st+=/focused_azerite_beam,if=buff.bestial_wrath.down||time_to_die<5\nactions.st+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10||time_to_die<5\nactions.st+=/bestial_wrath,if=talent.one_with_the_pack.enabled&buff.bestial_wrath.remains<gcd||buff.bestial_wrath.down&cooldown.aspect_of_the_wild.remains>15||time_to_die<15+gcd\nactions.st+=/barbed_shot,if=azerite.dance_of_death.rank>1&buff.dance_of_death.remains<gcd\nactions.st+=/kill_command\nactions.st+=/bag_of_tricks,if=buff.bestial_wrath.down||target.time_to_die<5\nactions.st+=/chimaera_shot\nactions.st+=/dire_beast\nactions.st+=/barbed_shot,if=talent.one_with_the_pack.enabled&charges_fractional>1.5||charges_fractional>1.8||cooldown.aspect_of_the_wild.remains<pet.cat.buff.frenzy.duration-gcd&azerite.primal_instincts.enabled||time_to_die<9\nactions.st+=/purifying_blast,if=buff.bestial_wrath.down||time_to_die<8\nactions.st+=/blood_of_the_enemy\nactions.st+=/barrage\nactions.st+=/cobra_shot,if=(focus-cost+focus.regen*(cooldown.kill_command.remains-1)>action.kill_command.cost||cooldown.kill_command.remains>1+gcd&cooldown.bestial_wrath.remains_guess>focus.time_to_max||buff.memory_of_lucid_dreams.up)&cooldown.kill_command.remains>1||time_to_die<3\nactions.st+=/spitting_cobra\nactions.st+=/barbed_shot,if=pet.cat.buff.frenzy.duration-gcd>full_recharge_time",
},
["Survival"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200525,
["author"] = "SimulationCraft",
["desc"] = "# Survival Hunter\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Added Muzzle to default action list.\n# - Changed target_if expressions to cycle_targets.\n# - Modified carve_cdr to work more easily with the addon's implementation of variable.\n# - Added utility APL.",
["lists"] = {
["apst"] = {
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "mongoose_bite",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "raptor_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ! ticking & ! buff.memory_of_lucid_dreams.up & ( full_recharge_time < 1.5 * gcd || ! dot.wildfire_bomb.ticking & ! buff.coordinated_assault.up || ! dot.wildfire_bomb.ticking & buff.mongoose_fury.stack < 1 ) || time_to_die < 18 & ! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! dot.serpent_sting.ticking & ! buff.coordinated_assault.up",
["action"] = "serpent_sting",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( buff.mongoose_fury.stack < 5 || focus < action.mongoose_bite.cost )",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "refreshable & ! buff.coordinated_assault.up & buff.mongoose_fury.stack < 5",
["action"] = "serpent_sting",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "a_murder_of_crows",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + cast_regen > focus.max - 10 || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [12]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "wildfire_bomb",
}, -- [14]
},
["cleave"] = {
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "carve_cdr",
["value"] = "active_enemies",
["value_else"] = "5",
["criteria"] = "active_enemies < 5",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "azerite.blur_of_talons.rank > 0 & ( buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd || buff.coordinated_assault.remains & ! buff.blur_of_talons.remains ) )",
["action"] = "mongoose_bite",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "debuff.latent_poison.stack > ( active_enemies || 9 ) & target.time_to_die < active_enemies * gcd",
["action"] = "mongoose_bite",
["target_if"] = "",
}, -- [3]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [4]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking & ! talent.hydras_bite.enabled || dot.shrapnel_bomb.ticking & active_enemies > 5",
["action"] = "carve",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.guerrilla_tactics.enabled || full_recharge_time < gcd || raid_event.adds.remains < 6 & raid_event.adds.exists",
["action"] = "wildfire_bomb",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "charges_fractional > 2.5 || dot.shrapnel_bomb.ticking || cooldown.wildfire_bomb.remains > active_enemies - gcd || debuff.blood_of_the_enemy.remains || raid_event.adds.remains < 5 & raid_event.adds.exists",
["action"] = "butchery",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "debuff.latent_poison.stack > 8",
["action"] = "mongoose_bite",
["target_if"] = "",
}, -- [9]
{
["action"] = "chakrams",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.guerrilla_tactics.enabled",
["action"] = "carve",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.remains > ( active_enemies || 5 )",
["action"] = "butchery",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable || talent.wildfire_infusion.enabled",
["action"] = "wildfire_bomb",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.react",
["action"] = "serpent_sting",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.remains > variable.carve_cdr % 2",
["action"] = "carve",
}, -- [18]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "refreshable & buff.tip_of_the_spear.stack < 3 & next_wi_bomb.volatile || refreshable & azerite.latent_poison.rank > 0",
["action"] = "serpent_sting",
["cycle_targets"] = 1,
}, -- [20]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [22]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "raptor_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "mongoose_bite",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & buff.vipers_venom.remains < 1 * gcd",
["action"] = "serpent_sting",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & refreshable & full_recharge_time < gcd & ! buff.memory_of_lucid_dreams.up || focus + cast_regen < focus.max & ( ! dot.wildfire_bomb.ticking & ( ! buff.coordinated_assault.up || buff.mongoose_fury.stack < 1 || time_to_die < 18 || ! dot.wildfire_bomb.ticking & azerite.wilderness_survival.rank > 0 ) ) & ! buff.memory_of_lucid_dreams.up",
["action"] = "wildfire_bomb",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & dot.serpent_sting.remains < 4 * gcd || dot.serpent_sting.refreshable & ! buff.coordinated_assault.up",
["action"] = "serpent_sting",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "a_murder_of_crows",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + cast_regen > focus.max - 20 & talent.vipers_venom.enabled || focus + cast_regen > focus.max - 1 & talent.terms_of_engagement.enabled || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [12]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable",
["action"] = "wildfire_bomb",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up",
["action"] = "serpent_sting",
}, -- [15]
},
["wfi"] = {
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "mongoose_bite",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "raptor_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & buff.vipers_venom.remains < 1.5 * gcd || ! dot.serpent_sting.ticking",
["action"] = "serpent_sting",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max || ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 )",
["action"] = "wildfire_bomb",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max - focus.regen",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [6]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd",
["action"] = "wildfire_bomb",
}, -- [9]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & dot.serpent_sting.remains < 4 * gcd",
["action"] = "serpent_sting",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking || buff.mongoose_fury.stack = 5",
["action"] = "mongoose_bite",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "serpent_sting",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! buff.mongoose_fury.remains",
["action"] = "chakrams",
}, -- [15]
{
["action"] = "mongoose_bite",
["enabled"] = true,
}, -- [16]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up",
["action"] = "serpent_sting",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel",
["action"] = "wildfire_bomb",
}, -- [19]
},
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_die < focus % ( action.mongoose_bite.cost - cast_regen ) * gcd",
["action"] = "mongoose_bite",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.chakrams.enabled & talent.alpha_predator.enabled",
["list_name"] = "apwfi",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.chakrams.enabled",
["list_name"] = "wfi",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & ! talent.alpha_predator.enabled & ! talent.wildfire_infusion.enabled",
["list_name"] = "st",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.alpha_predator.enabled & ! talent.wildfire_infusion.enabled",
["list_name"] = "apst",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.alpha_predator.enabled & talent.wildfire_infusion.enabled",
["list_name"] = "apwfi",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & ! talent.alpha_predator.enabled & talent.wildfire_infusion.enabled",
["list_name"] = "wfi",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2",
["list_name"] = "cleave",
}, -- [11]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [12]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [5]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "potion",
["dynamic_prepot"] = "1",
}, -- [7]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [8]
{
["action"] = "harpoon",
["enabled"] = true,
}, -- [9]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "blood_fury",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "ancestral_call",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "fireblood",
}, -- [3]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 60 || time_to_die < 13",
["action"] = "berserking",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.guardian_of_azeroth.up & ( buff.berserking.up || buff.blood_fury.up || ! race.troll ) || ( consumable.potion_of_unbridled_fury & time_to_die < 61 || time_to_die < 26 ) || ! essence.condensed_lifeforce.major & buff.coordinated_assault.up",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "target.distance >= 6",
["action"] = "aspect_of_the_eagle",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up & target.time_to_die < cooldown.memory_of_lucid_dreams.remains + 15 || buff.guardian_of_azeroth.stack = 5 & target.time_to_die < cooldown.guardian_of_azeroth.remains + 20 || debuff.razor_coral_debuff.down || target.time_to_die < 21 || buff.worldvein_resonance.remains & target.time_to_die < cooldown.worldvein_resonance.remains + 18 || ! talent.birds_of_prey.enabled & target.time_to_die < cooldown.coordinated_assault.remains + 20 & buff.coordinated_assault.remains",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.memory_of_lucid_dreams.remains || talent.wildfire_infusion.enabled & cooldown.coordinated_assault.remains || ! essence.memory_of_lucid_dreams.major & cooldown.coordinated_assault.remains",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [9]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 90 & focus < focus.max - 25 || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) & ( buff.blur_of_talons.up & buff.blur_of_talons.remains > 3 * gcd || ! buff.blur_of_talons.up )",
["action"] = "focused_azerite_beam",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( ( raid_event.adds.remains > 90 || ! raid_event.adds.exists ) || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) ) & focus < focus.max",
["action"] = "blood_of_the_enemy",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( ( raid_event.adds.remains > 60 || ! raid_event.adds.exists ) || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) ) & focus < focus.max",
["action"] = "purifying_blast",
}, -- [13]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [14]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1 * gcd",
["action"] = "concentrated_flame",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [17]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30",
["action"] = "reaping_flames",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & refreshable & buff.vipers_venom.up & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "serpent_sting",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "mongoose_bite",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & full_recharge_time < 1.5 * gcd & focus < action.mongoose_bite.cost & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "wildfire_bomb",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "focus < action.mongoose_bite.cost & buff.coordinated_assault.up",
["action"] = "memory_of_lucid_dreams",
}, -- [23]
},
["apwfi"] = {
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "mongoose_bite",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "raptor_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! dot.serpent_sting.ticking",
["action"] = "serpent_sting",
}, -- [3]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd || focus + cast_regen < focus.max & ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 )",
["action"] = "wildfire_bomb",
}, -- [5]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.remains & next_wi_bomb.pheromone",
["action"] = "mongoose_bite",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max - 20",
["action"] = "kill_command",
["target_if"] = "",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack = 3 || dot.shrapnel_bomb.ticking",
["action"] = "raptor_strike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & focus > 30 & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.mongoose_fury.remains",
["action"] = "chakrams",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "serpent_sting",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( buff.mongoose_fury.stack < 5 || focus < action.mongoose_bite.cost )",
["action"] = "kill_command",
["target_if"] = "",
}, -- [15]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus > 40 || dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel & focus > 50",
["action"] = "wildfire_bomb",
}, -- [18]
},
["utility"] = {
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200525,
["warnings"] = "WARNING: The import for 'cleave' required some automated changes.\nLine 3: Removed min:X check (not available in emulation) (1x).\nLine 9: Removed max:X check (not available in emulation) (1x).\n\nWARNING: The import for 'apwfi' required some automated changes.\nLine 8: Removed min:X check (not available in emulation) (1x).\nLine 15: Removed min:X check (not available in emulation) (1x).\n\nImported 9 action lists.\n",
["spec"] = 255,
["profile"] = "# Survival Hunter\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Added Muzzle to default action list.\n# - Changed target_if expressions to cycle_targets.\n# - Modified carve_cdr to work more easily with the addon's implementation of variable.\n# - Added utility APL.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\nactions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/coordinated_assault\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/potion,dynamic_prepot=1\nactions.precombat+=/steel_trap\nactions.precombat+=/harpoon\n\nactions.utility=muzzle\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_items\nactions+=/call_action_list,name=cds\nactions+=/mongoose_bite,if=active_enemies=1&target.time_to_die<focus%(action.mongoose_bite.cost-cast_regen)*gcd\nactions+=/call_action_list,name=apwfi,if=active_enemies<3&talent.chakrams.enabled&talent.alpha_predator.enabled\nactions+=/call_action_list,name=wfi,if=active_enemies<3&talent.chakrams.enabled\nactions+=/call_action_list,name=st,if=active_enemies<3&!talent.alpha_predator.enabled&!talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=apst,if=active_enemies<3&talent.alpha_predator.enabled&!talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=apwfi,if=active_enemies<3&talent.alpha_predator.enabled&talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=wfi,if=active_enemies<3&!talent.alpha_predator.enabled&talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=cleave,if=active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2\nactions+=/concentrated_flame\nactions+=/arcane_torrent\nactions+=/bag_of_tricks\n\nactions.apst=mongoose_bite,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.apst+=/raptor_strike,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.apst+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.apst+=/kill_command,cycle_targets=1,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max\nactions.apst+=/steel_trap,if=focus+cast_regen<focus.max\nactions.apst+=/wildfire_bomb,if=focus+cast_regen<focus.max&!ticking&!buff.memory_of_lucid_dreams.up&(full_recharge_time<1.5*gcd||!dot.wildfire_bomb.ticking&!buff.coordinated_assault.up||!dot.wildfire_bomb.ticking&buff.mongoose_fury.stack<1)||time_to_die<18&!dot.wildfire_bomb.ticking\nactions.apst+=/serpent_sting,if=!dot.serpent_sting.ticking&!buff.coordinated_assault.up\nactions.apst+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&(buff.mongoose_fury.stack<5||focus<action.mongoose_bite.cost)\nactions.apst+=/serpent_sting,if=refreshable&!buff.coordinated_assault.up&buff.mongoose_fury.stack<5\nactions.apst+=/a_murder_of_crows,if=!buff.coordinated_assault.up\nactions.apst+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.apst+=/mongoose_bite,if=buff.mongoose_fury.up||focus+cast_regen>focus.max-10||buff.coordinated_assault.up\nactions.apst+=/raptor_strike\nactions.apst+=/wildfire_bomb,if=!ticking\n\nactions.apwfi=mongoose_bite,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.apwfi+=/raptor_strike,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.apwfi+=/serpent_sting,if=!dot.serpent_sting.ticking\nactions.apwfi+=/a_murder_of_crows\nactions.apwfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd||focus+cast_regen<focus.max&(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)\nactions.apwfi+=/coordinated_assault\nactions.apwfi+=/mongoose_bite,if=buff.mongoose_fury.remains&next_wi_bomb.pheromone\nactions.apwfi+=/kill_command,target_if=min:bloodseeker.remains,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max-20\nactions.apwfi+=/steel_trap,if=focus+cast_regen<focus.max\nactions.apwfi+=/raptor_strike,if=buff.tip_of_the_spear.stack=3||dot.shrapnel_bomb.ticking\nactions.apwfi+=/mongoose_bite,if=dot.shrapnel_bomb.ticking\nactions.apwfi+=/wildfire_bomb,if=next_wi_bomb.shrapnel&focus>30&dot.serpent_sting.remains>5*gcd\nactions.apwfi+=/chakrams,if=!buff.mongoose_fury.remains\nactions.apwfi+=/serpent_sting,if=refreshable\nactions.apwfi+=/kill_command,target_if=min:bloodseeker.remains,if=focus+cast_regen<focus.max&(buff.mongoose_fury.stack<5||focus<action.mongoose_bite.cost)\nactions.apwfi+=/raptor_strike\nactions.apwfi+=/mongoose_bite,if=buff.mongoose_fury.up||focus>40||dot.shrapnel_bomb.ticking\nactions.apwfi+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel&focus>50\n\nactions.cds=blood_fury,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/ancestral_call,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/fireblood,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/lights_judgment\nactions.cds+=/berserking,if=cooldown.coordinated_assault.remains>60||time_to_die<13\nactions.cds+=/potion,if=buff.guardian_of_azeroth.up&(buff.berserking.up||buff.blood_fury.up||!race.troll)||(consumable.potion_of_unbridled_fury&time_to_die<61||time_to_die<26)||!essence.condensed_lifeforce.major&buff.coordinated_assault.up\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=buff.memory_of_lucid_dreams.up&target.time_to_die<cooldown.memory_of_lucid_dreams.remains+15||buff.guardian_of_azeroth.stack=5&target.time_to_die<cooldown.guardian_of_azeroth.remains+20||debuff.razor_coral_debuff.down||target.time_to_die<21||buff.worldvein_resonance.remains&target.time_to_die<cooldown.worldvein_resonance.remains+18||!talent.birds_of_prey.enabled&target.time_to_die<cooldown.coordinated_assault.remains+20&buff.coordinated_assault.remains\nactions.cds+=/use_item,name=galecallers_boon,if=cooldown.memory_of_lucid_dreams.remains||talent.wildfire_infusion.enabled&cooldown.coordinated_assault.remains||!essence.memory_of_lucid_dreams.major&cooldown.coordinated_assault.remains\nactions.cds+=/use_item,name=azsharas_font_of_power\nactions.cds+=/focused_azerite_beam,if=raid_event.adds.in>90&focus<focus.max-25||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2)&(buff.blur_of_talons.up&buff.blur_of_talons.remains>3*gcd||!buff.blur_of_talons.up)\nactions.cds+=/blood_of_the_enemy,if=((raid_event.adds.remains>90||!raid_event.adds.exists)||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2))&focus<focus.max\nactions.cds+=/purifying_blast,if=((raid_event.adds.remains>60||!raid_event.adds.exists)||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2))&focus<focus.max\nactions.cds+=/guardian_of_azeroth\nactions.cds+=/ripple_in_space\nactions.cds+=/concentrated_flame,if=full_recharge_time<1*gcd\nactions.cds+=/the_unbound_force,if=buff.reckless_force.up\nactions.cds+=/worldvein_resonance\nactions.cds+=/reaping_flames,if=target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30\nactions.cds+=/serpent_sting,if=essence.memory_of_lucid_dreams.major&refreshable&buff.vipers_venom.up&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/mongoose_bite,if=essence.memory_of_lucid_dreams.major&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/wildfire_bomb,if=essence.memory_of_lucid_dreams.major&full_recharge_time<1.5*gcd&focus<action.mongoose_bite.cost&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/memory_of_lucid_dreams,if=focus<action.mongoose_bite.cost&buff.coordinated_assault.up\n\nactions.cleave=variable,name=carve_cdr,op=setif,value=active_enemies,value_else=5,condition=active_enemies<5\nactions.cleave+=/mongoose_bite,if=azerite.blur_of_talons.rank>0&(buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd||buff.coordinated_assault.remains&!buff.blur_of_talons.remains))\nactions.cleave+=/mongoose_bite,target_if=min:time_to_die,if=debuff.latent_poison.stack>(active_enemies||9)&target.time_to_die<active_enemies*gcd\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/coordinated_assault\nactions.cleave+=/carve,if=dot.shrapnel_bomb.ticking&!talent.hydras_bite.enabled||dot.shrapnel_bomb.ticking&active_enemies>5\nactions.cleave+=/wildfire_bomb,if=!talent.guerrilla_tactics.enabled||full_recharge_time<gcd||raid_event.adds.remains<6&raid_event.adds.exists\nactions.cleave+=/butchery,if=charges_fractional>2.5||dot.shrapnel_bomb.ticking||cooldown.wildfire_bomb.remains>active_enemies-gcd||debuff.blood_of_the_enemy.remains||raid_event.adds.remains<5&raid_event.adds.exists\nactions.cleave+=/mongoose_bite,target_if=max:debuff.latent_poison.stack,if=debuff.latent_poison.stack>8\nactions.cleave+=/chakrams\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.cleave+=/harpoon,if=talent.terms_of_engagement.enabled\nactions.cleave+=/carve,if=talent.guerrilla_tactics.enabled\nactions.cleave+=/butchery,if=cooldown.wildfire_bomb.remains>(active_enemies||5)\nactions.cleave+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.cleave+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable||talent.wildfire_infusion.enabled\nactions.cleave+=/serpent_sting,cycle_targets=1,if=buff.vipers_venom.react\nactions.cleave+=/carve,if=cooldown.wildfire_bomb.remains>variable.carve_cdr%2\nactions.cleave+=/steel_trap\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable&buff.tip_of_the_spear.stack<3&next_wi_bomb.volatile||refreshable&azerite.latent_poison.rank>0\n# To simulate usage for Mongoose Bite or Raptor Strike during Aspect of the Eagle, copy each occurrence of the action and append _eagle to the action name.\nactions.cleave+=/mongoose_bite,cycle_targets=1\nactions.cleave+=/raptor_strike,cycle_targets=1\n\nactions.st=harpoon,if=talent.terms_of_engagement.enabled\nactions.st+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.st+=/raptor_strike,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\n# To simulate usage for Mongoose Bite or Raptor Strike during Aspect of the Eagle, copy each occurrence of the action and append _eagle to the action name.\nactions.st+=/mongoose_bite,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.st+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.st+=/serpent_sting,if=buff.vipers_venom.up&buff.vipers_venom.remains<1*gcd\nactions.st+=/steel_trap,if=focus+cast_regen<focus.max\nactions.st+=/wildfire_bomb,if=focus+cast_regen<focus.max&refreshable&full_recharge_time<gcd&!buff.memory_of_lucid_dreams.up||focus+cast_regen<focus.max&(!dot.wildfire_bomb.ticking&(!buff.coordinated_assault.up||buff.mongoose_fury.stack<1||time_to_die<18||!dot.wildfire_bomb.ticking&azerite.wilderness_survival.rank>0))&!buff.memory_of_lucid_dreams.up\nactions.st+=/serpent_sting,if=buff.vipers_venom.up&dot.serpent_sting.remains<4*gcd||dot.serpent_sting.refreshable&!buff.coordinated_assault.up\nactions.st+=/a_murder_of_crows,if=!buff.coordinated_assault.up\nactions.st+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.st+=/mongoose_bite,if=buff.mongoose_fury.up||focus+cast_regen>focus.max-20&talent.vipers_venom.enabled||focus+cast_regen>focus.max-1&talent.terms_of_engagement.enabled||buff.coordinated_assault.up\nactions.st+=/raptor_strike\nactions.st+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable\nactions.st+=/serpent_sting,if=buff.vipers_venom.up\n\nactions.wfi=harpoon,if=focus+cast_regen<focus.max&talent.terms_of_engagement.enabled\nactions.wfi+=/mongoose_bite,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.wfi+=/raptor_strike,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up&buff.vipers_venom.remains<1.5*gcd||!dot.serpent_sting.ticking\nactions.wfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max||(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)\nactions.wfi+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max-focus.regen\nactions.wfi+=/a_murder_of_crows\nactions.wfi+=/steel_trap,if=focus+cast_regen<focus.max\nactions.wfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd\nactions.wfi+=/coordinated_assault\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up&dot.serpent_sting.remains<4*gcd\nactions.wfi+=/mongoose_bite,if=dot.shrapnel_bomb.ticking||buff.mongoose_fury.stack=5\nactions.wfi+=/wildfire_bomb,if=next_wi_bomb.shrapnel&dot.serpent_sting.remains>5*gcd\nactions.wfi+=/serpent_sting,if=refreshable\nactions.wfi+=/chakrams,if=!buff.mongoose_fury.remains\nactions.wfi+=/mongoose_bite\nactions.wfi+=/raptor_strike\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up\nactions.wfi+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel",
},
},
},
["Quilago - Thunderhorn"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["resetPotionsToDefaults_20190717"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetRogueMfDOption_20200226"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[103] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["brutal_charges"] = 2,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Feral",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "focused_resolve",
["potionsReset"] = 20180919.1,
["nameplates"] = true,
["damageExpiration"] = 3,
["buffPadding"] = 0,
["damageRange"] = 0,
},
[104] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["maul_rage"] = 20,
["ironfur_damage_threshold"] = 5,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Guardian",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "focused_resolve",
["potionsReset"] = 20180919.1,
["nameplates"] = true,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
[102] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["starlord_cancel"] = false,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Balance",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["nameplates"] = false,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Feral"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200222,
["spec"] = 103,
["desc"] = "# Feral Druid\n# https://github.com/simulationcraft/simc/\n# February 22, 2020\n\n# Changes:\n# - Added Skull Bash.\n# - Relaxed Tiger's Fury energy check to apply only when Tiger's Fury is already up.\n# - opener_done is handled internally by the addon; removed these variables. Only bother in boss fights.\n# - Convert target_if conditions to cycle_targets.\n# - Remove 'heart_essence' generic action.\n# - Add Balance Affinity priority.\n# - Reincorporate some of ShmooDude's edits.",
["profile"] = "# Feral Druid\n# https://github.com/simulationcraft/simc/\n# February 22, 2020\n\n# Changes:\n# - Added Skull Bash.\n# - Relaxed Tiger's Fury energy check to apply only when Tiger's Fury is already up.\n# - opener_done is handled internally by the addon; removed these variables. Only bother in boss fights.\n# - Convert target_if conditions to cycle_targets.\n# - Remove 'heart_essence' generic action.\n# - Add Balance Affinity priority.\n# - Reincorporate some of ShmooDude's edits.\n# - Don't use Brutal Slash w/ Wild Fleshrending if Thrash isn't up.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# It is worth it for almost everyone to maintain thrash\nactions.precombat+=/variable,name=use_thrash,value=0\nactions.precombat+=/variable,name=use_thrash,value=2,if=azerite.wild_fleshrending.enabled\nactions.precombat+=/variable,name=rip_ticks,value=8\nactions.precombat+=/regrowth,if=buff.moonkin_form.down&talent.bloodtalons.enabled\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/prowl,if=buff.moonkin_form.down\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/potion\nactions.precombat+=/berserk,if=buff.moonkin_form.down\nactions.precombat+=/tigers_fury,if=buff.moonkin_form.down&buff.tigers_fury.down\nactions.precombat+=/cat_form,if=buff.moonkin_form.down\n\n# Executed every time the actor is available.\nactions=skull_bash,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/run_action_list,name=balance,if=talent.balance_affinity.enabled&buff.moonkin_form.up\nactions+=/call_action_list,name=opener,if=!opener_done&talent.sabertooth.enabled&(buff.berserk.up||buff.incarnation.up)\nactions+=/cat_form,if=!buff.cat_form.up\nactions+=/rake,if=buff.prowl.up||buff.shadowmeld.up\nactions+=/call_action_list,name=cooldowns\nactions+=/ferocious_bite,cycle_targets=1,if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die>10&(talent.sabertooth.enabled)\nactions+=/ferocious_bite,cycle_targets=1,if=talent.sabertooth.enabled&combo_points>spell_targets.thrash_cat&dot.rip.ticking&dot.rip.remains<3&target.time_to_die>dot.rip.remains+variable.rip_ticks*action.rip.tick_time\n# actions+=/regrowth,if=combo_points=5&buff.predatory_swiftness.up&talent.bloodtalons.enabled&buff.bloodtalons.down\nactions+=/run_action_list,name=finishers,if=combo_points>4\nactions+=/call_action_list,name=generators_aoe,if=spell_targets.thrash_cat>1\nactions+=/run_action_list,name=generators\n\nactions.cooldowns=berserk,if=energy>=30&(cooldown.tigers_fury.remains>5||buff.tigers_fury.up)\nactions.cooldowns+=/tigers_fury,if=energy.deficit>=60||buff.tigers_fury.down\nactions.cooldowns+=/berserking\nactions.cooldowns+=/thorns,if=active_enemies>desired_targets||raid_event.adds.in>45\nactions.cooldowns+=/the_unbound_force,if=buff.reckless_force.up||buff.tigers_fury.up\nactions.cooldowns+=/memory_of_lucid_dreams,if=buff.tigers_fury.up&buff.berserk.down\nactions.cooldowns+=/blood_of_the_enemy,if=buff.tigers_fury.up\nactions.cooldowns+=/feral_frenzy,if=combo_points=0\nactions.cooldowns+=/focused_azerite_beam,if=active_enemies>desired_targets||(raid_event.adds.in>90&energy.deficit>=50)\nactions.cooldowns+=/purifying_blast,if=active_enemies>desired_targets||raid_event.adds.in>60\nactions.cooldowns+=/guardian_of_azeroth,if=buff.tigers_fury.up\nactions.cooldowns+=/concentrated_flame,if=buff.tigers_fury.up\nactions.cooldowns+=/ripple_in_space,if=buff.tigers_fury.up\nactions.cooldowns+=/worldvein_resonance,if=buff.tigers_fury.up\nactions.cooldowns+=/reaping_flames,if=target.time_to_die<1.5||((target.health.pct>80||target.health.pct<=20)&target.time_to_die>29)||(target.time_to_pct_20>30&target.time_to_die>44)\nactions.cooldowns+=/incarnation,if=energy>=30&(cooldown.tigers_fury.remains>15||buff.tigers_fury.up)\nactions.cooldowns+=/potion,if=target.time_to_die<65||(time_to_die<180&(buff.berserk.up||buff.incarnation.up))\nactions.cooldowns+=/shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.bloodtalons.up||!talent.bloodtalons.enabled)&(!talent.incarnation.enabled||cooldown.incarnation.remains>18)&!buff.incarnation.up\nactions.cooldowns+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.down||debuff.conductive_ink_debuff.up&target.time_to_pct_30<1.5||!debuff.conductive_ink_debuff.up&(debuff.razor_coral_debuff.stack>=25-10*debuff.blood_of_the_enemy.up||time_to_die<40)&buff.tigers_fury.remains>10\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast,if=(energy.deficit>=energy.regen*3)&buff.tigers_fury.down&!azerite.jungle_fury.enabled\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast,if=buff.tigers_fury.up&azerite.jungle_fury.enabled\nactions.cooldowns+=/use_item,effect_name=azsharas_font_of_power,if=energy.deficit>=50\nactions.cooldowns+=/use_items,if=buff.tigers_fury.up||time_to_die<20\n\nactions.finishers=regrowth,if=buff.predatory_swiftness.up&talent.bloodtalons.enabled&buff.bloodtalons.stack<2\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/savage_roar,if=buff.savage_roar.down\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/primal_wrath,cycle_targets=1,if=spell_targets.primal_wrath>1&dot.rip.remains<4\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/primal_wrath,cycle_targets=1,if=spell_targets.primal_wrath>=2\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/rip,cycle_targets=1,if=!talent.sabertooth.enabled&refreshable&target.time_to_die>dot.rip.remains+variable.rip_ticks*action.rip.tick_time\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/rip,cycle_targets=1,if=talent.sabertooth.enabled&(!ticking||remains<=duration*0.3&persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die>dot.rip.remains+variable.rip_ticks*(1+dot.rip.ticking*3)*action.rip.tick_time\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/savage_roar,if=buff.savage_roar.remains<12\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/maim,if=buff.iron_jaws.up\nactions.finishers+=/ferocious_bite,max_energy=1,cycle_targets=1\n\nactions.generators=regrowth,if=talent.bloodtalons.enabled&buff.predatory_swiftness.up&buff.bloodtalons.down&combo_points=4&dot.rake.remains<4\nactions.generators+=/regrowth,if=talent.bloodtalons.enabled&buff.bloodtalons.down&buff.predatory_swiftness.up&talent.lunar_inspiration.enabled&dot.rake.remains<1\nactions.generators+=/brutal_slash,if=spell_targets.brutal_slash>desired_targets&(!azerite.wild_fleshrending.enabled||dot.thrash_cat.ticking)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/thrash_cat,if=(refreshable&spell_targets.thrash_cat>2)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/thrash_cat,if=(talent.scent_of_blood.enabled&buff.scent_of_blood.down)&spell_targets.thrash_cat>3\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/swipe_cat,if=buff.scent_of_blood.up||(action.swipe_cat.damage*spell_targets.swipe_cat>(action.rake.damage+(action.rake_bleed.tick_damage*5)))\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/rake,cycle_targets=1,if=!ticking||(!talent.bloodtalons.enabled&remains<duration*0.3)&target.time_to_die>4\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/rake,cycle_targets=1,if=talent.bloodtalons.enabled&buff.bloodtalons.up&((remains<=7)&persistent_multiplier>dot.rake.pmultiplier*0.85)&target.time_to_die>4\n# With LI & BT, we can use moonfire to save BT charges, allowing us to better refresh rake\nactions.generators+=/moonfire_cat,if=buff.bloodtalons.up&buff.predatory_swiftness.down&combo_points<5\nactions.generators+=/moonfire_cat,cycle_targets=1,if=refreshable\nactions.generators+=/brutal_slash,if=(!azerite.wild_fleshrending.enabled||dot.thrash_cat.ticking)&buff.tigers_fury.up&(raid_event.adds.in>(1+max_charges-charges_fractional)*recharge_time)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/thrash_cat,if=refreshable&((variable.use_thrash=2&(!buff.incarnation.up||azerite.wild_fleshrending.enabled))||spell_targets.thrash_cat>1)\n# actions.generators+=/thrash_cat,if=refreshable&variable.use_thrash=1&buff.clearcasting.react&(!buff.incarnation.up||azerite.wild_fleshrending.enabled)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/swipe_cat,if=spell_targets.swipe_cat>1\nactions.generators+=/shred,if=dot.rake.remains>(action.shred.cost+action.rake.cost-energy)%energy.regen||buff.clearcasting.react\n\nactions.generators_aoe=pool_resource,for_next=1\nactions.generators_aoe+=/thrash_cat,if=(refreshable||active_dot.thrash_cat<active_enemies%2)&spell_targets.thrash_cat>2||talent.scent_of_blood.enabled&buff.scent_of_blood.down&spell_targets.thrash_cat>3||!ticking&azerite.wild_fleshrending.enabled\nactions.generators_aoe+=/pool_resource,for_next=1\nactions.generators_aoe+=/brutal_slash,if=spell_targets.brutal_slash>desired_targets\nactions.generators_aoe+=/pool_resource,for_next=1\nactions.generators_aoe+=/swipe_cat,if=buff.scent_of_blood.up\n\n# The opener generally follow the logic of the rest of the apl, but is separated out here for logical clarity\n# We will open with TF, you can safely cast this from stealth without breaking it.\nactions.opener=tigers_fury\n# Always open with rake, consuming stealth and one BT charge (if talented)\nactions.opener+=/rake,if=!ticking||buff.prowl.up\n# Lets make sure we end the opener \"sequence\" when our first rip is ticking\n# actions.opener+=/variable,name=opener_done,value=dot.rip.ticking\n# Break out of the action list\n# actions.opener+=/wait,sec=0.001,if=dot.rip.ticking\n# If we have LI, and haven't applied it yet use moonfire.\nactions.opener+=/moonfire_cat,if=!ticking\n# no need to wait for 5 CPs anymore, just rip and we are up and running\nactions.opener+=/primal_wrath,if=active_enemies>1&(buff.tigers_fury.up&(buff.bloodtalons.up||!talent.bloodtalons.enabled)&(!talent.lunar_inspiration.enabled||dot.moonfire_cat.ticking)&!ticking)\nactions.opener+=/rip,if=active_enemies=1&(buff.tigers_fury.up&(buff.bloodtalons.up||!talent.bloodtalons.enabled)&dot.rake.ticking&(!talent.lunar_inspiration.enabled||dot.moonfire_cat.ticking)&!ticking)\n\nactions.balance=sunfire,if=refreshable||(active_enemies>1&(dot.sunfire.refreshable||active_dot.sunfire<active_enemies))\nactions.balance+=/lunar_strike,if=active_enemies>4||(active_enemies>1&buff.lunar_empowerment.up)\nactions.balance+=/solar_wrath,if=active_enemies>2&buff.solar_empowerment.up\nactions.balance+=/starsurge\nactions.balance+=/solar_wrath,if=buff.solar_empowerment.up\nactions.balance+=/lunar_strike,if=buff.lunar_empowerment.up\nactions.balance+=/solar_wrath",
["version"] = 20200222,
["warnings"] = "Imported 8 action lists.\n",
["author"] = "SimC",
["lists"] = {
["opener"] = {
{
["action"] = "tigers_fury",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! ticking || buff.prowl.up",
["action"] = "rake",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "moonfire_cat",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ( buff.tigers_fury.up & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & ( ! talent.lunar_inspiration.enabled || dot.moonfire_cat.ticking ) & ! ticking )",
["action"] = "primal_wrath",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( buff.tigers_fury.up & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & dot.rake.ticking & ( ! talent.lunar_inspiration.enabled || dot.moonfire_cat.ticking ) & ! ticking )",
["action"] = "rip",
}, -- [5]
},
["generators_aoe"] = {
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( refreshable || active_dot.thrash_cat < active_enemies % 2 ) & spell_targets.thrash_cat > 2 || talent.scent_of_blood.enabled & buff.scent_of_blood.down & spell_targets.thrash_cat > 3 || ! ticking & azerite.wild_fleshrending.enabled",
["action"] = "thrash_cat",
}, -- [2]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "spell_targets.brutal_slash > desired_targets",
["action"] = "brutal_slash",
}, -- [4]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.scent_of_blood.up",
["action"] = "swipe_cat",
}, -- [6]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "skull_bash",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.balance_affinity.enabled & buff.moonkin_form.up",
["action"] = "run_action_list",
["list_name"] = "balance",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! opener_done & talent.sabertooth.enabled & ( buff.berserk.up || buff.incarnation.up )",
["action"] = "call_action_list",
["list_name"] = "opener",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.prowl.up || buff.shadowmeld.up",
["action"] = "rake",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [6]
{
["enabled"] = true,
["action"] = "ferocious_bite",
["criteria"] = "dot.rip.ticking & dot.rip.remains < 3 & target.time_to_die > 10 & ( talent.sabertooth.enabled )",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "ferocious_bite",
["criteria"] = "talent.sabertooth.enabled & combo_points > spell_targets.thrash_cat & dot.rip.ticking & dot.rip.remains < 3 & target.time_to_die > dot.rip.remains + variable.rip_ticks * action.rip.tick_time",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "combo_points > 4",
["action"] = "run_action_list",
["list_name"] = "finishers",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "spell_targets.thrash_cat > 1",
["action"] = "call_action_list",
["list_name"] = "generators_aoe",
}, -- [10]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "generators",
}, -- [11]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "use_thrash",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["criteria"] = "azerite.wild_fleshrending.enabled",
["var_name"] = "use_thrash",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "8",
["var_name"] = "rip_ticks",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down & talent.bloodtalons.enabled",
["action"] = "regrowth",
}, -- [4]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "prowl",
}, -- [6]
{
["action"] = "potion",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "berserk",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down & buff.tigers_fury.down",
["action"] = "tigers_fury",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "cat_form",
}, -- [10]
},
["generators"] = {
{
["enabled"] = true,
["criteria"] = "talent.bloodtalons.enabled & buff.predatory_swiftness.up & buff.bloodtalons.down & combo_points = 4 & dot.rake.remains < 4",
["action"] = "regrowth",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.down & buff.predatory_swiftness.up & talent.lunar_inspiration.enabled & dot.rake.remains < 1",
["action"] = "regrowth",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "spell_targets.brutal_slash > desired_targets & ( ! azerite.wild_fleshrending.enabled || dot.thrash_cat.ticking )",
["action"] = "brutal_slash",
}, -- [3]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( refreshable & spell_targets.thrash_cat > 2 )",
["action"] = "thrash_cat",
}, -- [5]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( talent.scent_of_blood.enabled & buff.scent_of_blood.down ) & spell_targets.thrash_cat > 3",
["action"] = "thrash_cat",
}, -- [7]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.scent_of_blood.up || ( action.swipe_cat.damage * spell_targets.swipe_cat > ( action.rake.damage + ( action.rake_bleed.tick_damage * 5 ) ) )",
["action"] = "swipe_cat",
}, -- [9]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [10]
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "! ticking || ( ! talent.bloodtalons.enabled & remains < duration * 0.3 ) & target.time_to_die > 4",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [12]
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.up & ( ( remains <= 7 ) & persistent_multiplier > dot.rake.pmultiplier * 0.85 ) & target.time_to_die > 4",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.bloodtalons.up & buff.predatory_swiftness.down & combo_points < 5",
["action"] = "moonfire_cat",
}, -- [14]
{
["enabled"] = true,
["action"] = "moonfire_cat",
["criteria"] = "refreshable",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( ! azerite.wild_fleshrending.enabled || dot.thrash_cat.ticking ) & buff.tigers_fury.up & ( raid_event.adds.in > ( 1 + max_charges - charges_fractional ) * recharge_time )",
["action"] = "brutal_slash",
}, -- [16]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "refreshable & ( ( variable.use_thrash = 2 & ( ! buff.incarnation.up || azerite.wild_fleshrending.enabled ) ) || spell_targets.thrash_cat > 1 )",
["action"] = "thrash_cat",
}, -- [18]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1",
["action"] = "swipe_cat",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "dot.rake.remains > ( action.shred.cost + action.rake.cost - energy ) % energy.regen || buff.clearcasting.react",
["action"] = "shred",
}, -- [21]
},
["finishers"] = {
{
["enabled"] = true,
["criteria"] = "buff.predatory_swiftness.up & talent.bloodtalons.enabled & buff.bloodtalons.stack < 2",
["action"] = "regrowth",
}, -- [1]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.savage_roar.down",
["action"] = "savage_roar",
}, -- [3]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["action"] = "primal_wrath",
["criteria"] = "spell_targets.primal_wrath > 1 & dot.rip.remains < 4",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [6]
{
["enabled"] = true,
["action"] = "primal_wrath",
["criteria"] = "spell_targets.primal_wrath >= 2",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [8]
{
["enabled"] = true,
["action"] = "rip",
["criteria"] = "! talent.sabertooth.enabled & refreshable & target.time_to_die > dot.rip.remains + variable.rip_ticks * action.rip.tick_time",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [10]
{
["enabled"] = true,
["action"] = "rip",
["criteria"] = "talent.sabertooth.enabled & ( ! ticking || remains <= duration * 0.3 & persistent_multiplier > dot.rip.pmultiplier ) & target.time_to_die > dot.rip.remains + variable.rip_ticks * ( 1 + dot.rip.ticking * 3 ) * action.rip.tick_time",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.savage_roar.remains < 12",
["action"] = "savage_roar",
}, -- [13]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.iron_jaws.up",
["action"] = "maim",
}, -- [15]
{
["max_energy"] = "1",
["enabled"] = true,
["action"] = "ferocious_bite",
["cycle_targets"] = 1,
}, -- [16]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "energy >= 30 & ( cooldown.tigers_fury.remains > 5 || buff.tigers_fury.up )",
["action"] = "berserk",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 60 || buff.tigers_fury.down",
["action"] = "tigers_fury",
}, -- [2]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 45",
["action"] = "thorns",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.tigers_fury.up",
["action"] = "the_unbound_force",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up & buff.berserk.down",
["action"] = "memory_of_lucid_dreams",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "blood_of_the_enemy",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "combo_points = 0",
["action"] = "feral_frenzy",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || ( raid_event.adds.in > 90 & energy.deficit >= 50 )",
["action"] = "focused_azerite_beam",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "guardian_of_azeroth",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "concentrated_flame",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "ripple_in_space",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "worldvein_resonance",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "target.time_to_die < 1.5 || ( ( target.health.pct > 80 || target.health.pct <= 20 ) & target.time_to_die > 29 ) || ( target.time_to_pct_20 > 30 & target.time_to_die > 44 )",
["action"] = "reaping_flames",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "energy >= 30 & ( cooldown.tigers_fury.remains > 15 || buff.tigers_fury.up )",
["action"] = "incarnation",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "target.time_to_die < 65 || ( time_to_die < 180 & ( buff.berserk.up || buff.incarnation.up ) )",
["action"] = "potion",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "combo_points < 5 & energy >= action.rake.cost & dot.rake.pmultiplier < 2.1 & buff.tigers_fury.up & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & ( ! talent.incarnation.enabled || cooldown.incarnation.remains > 18 ) & ! buff.incarnation.up",
["action"] = "shadowmeld",
}, -- [18]
{
["enabled"] = true,
["action"] = "ashvanes_razor_coral",
["criteria"] = "debuff.razor_coral_debuff.down || debuff.conductive_ink_debuff.up & target.time_to_pct_30 < 1.5 || ! debuff.conductive_ink_debuff.up & ( debuff.razor_coral_debuff.stack >= 25 - 10 * debuff.blood_of_the_enemy.up || time_to_die < 40 ) & buff.tigers_fury.remains > 10",
["name"] = "ashvanes_razor_coral",
}, -- [19]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "( energy.deficit >= energy.regen * 3 ) & buff.tigers_fury.down & ! azerite.jungle_fury.enabled",
["effect_name"] = "cyclotronic_blast",
}, -- [20]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.tigers_fury.up & azerite.jungle_fury.enabled",
["effect_name"] = "cyclotronic_blast",
}, -- [21]
{
["enabled"] = true,
["action"] = "azsharas_font_of_power",
["criteria"] = "energy.deficit >= 50",
["effect_name"] = "azsharas_font_of_power",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up || time_to_die < 20",
["action"] = "use_items",
}, -- [23]
},
["balance"] = {
{
["enabled"] = true,
["criteria"] = "refreshable || ( active_enemies > 1 & ( dot.sunfire.refreshable || active_dot.sunfire < active_enemies ) )",
["action"] = "sunfire",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 4 || ( active_enemies > 1 & buff.lunar_empowerment.up )",
["action"] = "lunar_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & buff.solar_empowerment.up",
["action"] = "solar_wrath",
}, -- [3]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.solar_empowerment.up",
["action"] = "solar_wrath",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.lunar_empowerment.up",
["action"] = "lunar_strike",
}, -- [6]
{
["action"] = "solar_wrath",
["enabled"] = true,
}, -- [7]
},
},
},
["Balance"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["author"] = "SimC",
["desc"] = "# Balance Druid\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Solar Beam.\n# - Changed target_if cases to cycle_targets.\n# - Simplify Azerite trait lookups (don't use unnecessary variable syntax).\n# - Removed Lively Spirit condition for Celestial Alignment; you'll have it or you won't since Innervate is higher priority.",
["lists"] = {
["default"] = {
{
["action"] = "solar_beam",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up",
["action"] = "berserking",
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
["criteria"] = "! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ! talent.starlord.enabled || buff.starlord.up ) & ! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["action"] = "guardian_of_azeroth",
}, -- [4]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["effect_name"] = "cyclotronic_blast",
}, -- [5]
{
["enabled"] = true,
["name"] = "shiver_venom_relic",
["action"] = "shiver_venom_relic",
["criteria"] = "! buff.ca_inc.up & ! buff.bloodlust.up",
["target_if"] = "dot.shiver_venom.stack >= 5",
}, -- [6]
{
["enabled"] = true,
["name"] = "manifesto_of_madness",
["action"] = "manifesto_of_madness",
["criteria"] = "buff.ca_inc.remains > 10 || buff.ca_inc.remains > 4 & buff.arcanic_pulsar.stack > 6 || fight_remains < 21",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "cooldown.ca_inc.remains > 30",
["action"] = "blood_of_the_enemy",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & ( astral_power < 25 || cooldown.ca_inc.remains > 30 ) & dot.sunfire.remains > 10 & dot.moonfire.remains > 10 & ( ! talent.stellar_flare.enabled || dot.stellar_flare.remains > 10 )",
["action"] = "memory_of_lucid_dreams",
}, -- [9]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [10]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [11]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["action"] = "the_unbound_force",
}, -- [13]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( ! variable.az_ss || ! buff.ca_inc.up ) & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["action"] = "focused_azerite_beam",
}, -- [15]
{
["action"] = "thorns",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up || fight_remains < 20",
["action"] = "use_items",
}, -- [17]
{
["action"] = "warrior_of_elune",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & ( buff.memory_of_lucid_dreams.up || ( ( cooldown.memory_of_lucid_dreams.remains > 20 || ! essence.memory_of_lucid_dreams.major ) & ap_check ) ) & ( buff.memory_of_lucid_dreams.up || ap_check ) & dot.sunfire.remains > 8 & dot.moonfire.remains > 12 & ( dot.stellar_flare.remains > 6 || ! talent.stellar_flare.enabled )",
["action"] = "incarnation",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & ( buff.memory_of_lucid_dreams.up || ( ( cooldown.memory_of_lucid_dreams.remains > 20 || ! essence.memory_of_lucid_dreams.major ) & ap_check ) ) & ( dot.sunfire.remains > 2 & dot.moonfire.ticking & ( dot.stellar_flare.ticking || ! talent.stellar_flare.enabled ) )",
["action"] = "celestial_alignment",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( buff.ca_inc.up || cooldown.ca_inc.remains > 30 ) & solar_wrath.ap_check",
["action"] = "fury_of_elune",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "( buff.ca_inc.up || cooldown.ca_inc.remains > 30 ) & ap_check",
["action"] = "force_of_nature",
}, -- [22]
{
["enabled"] = true,
["action"] = "cancel_buff",
["criteria"] = "buff.starlord.remains < 3 & ! solar_wrath.ap_check",
["buff_name"] = "starlord",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "( ! solar_wrath.ap_check || ( buff.starlord.stack < 3 || buff.starlord.remains >= 8 ) & ( fight_remains + 1 ) * spell_targets > cost % 2.5 ) & spell_targets >= variable.sf_targets",
["action"] = "starfall",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( ( talent.starlord.enabled & ( buff.starlord.stack < 3 || buff.starlord.remains >= 5 & buff.arcanic_pulsar.stack < 8 ) || ! talent.starlord.enabled & ( buff.arcanic_pulsar.stack < 8 || buff.ca_inc.up ) ) & buff.solar_empowerment.stack < 3 & buff.lunar_empowerment.stack < 3 & buff.reckless_force_counter.stack < 19 || buff.reckless_force.up ) & spell_targets.starfall < variable.sf_targets & ( ! variable.az_ss || ! buff.ca_inc.up || ! prev.starsurge ) || fight_remains <= execute_time * astral_power % 40 || ! solar_wrath.ap_check",
["action"] = "starsurge",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up & buff.ca_inc.remains < gcd.max & azerite.streaking_stars.rank & dot.moonfire.remains > remains",
["action"] = "sunfire",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up & buff.ca_inc.remains < gcd.max & azerite.streaking_stars.rank",
["action"] = "moonfire",
}, -- [27]
{
["enabled"] = true,
["action"] = "sunfire",
["criteria"] = "refreshable & ap_check & floor ( target.time_to_die % ( 2 * spell_haste ) ) * spell_targets >= ceil ( floor ( 2 % spell_targets ) * 1.5 ) + 2 * spell_targets & ( spell_targets > 1 + talent.twin_moons.enabled || dot.moonfire.ticking ) & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.sunfire ) & ( buff.ca_inc.remains > remains || ! buff.ca_inc.up )",
["cycle_targets"] = 1,
}, -- [28]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "refreshable & ap_check & floor ( target.time_to_die % ( 2 * spell_haste ) ) * spell_targets >= 6 & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.moonfire ) & ( buff.ca_inc.remains > remains || ! buff.ca_inc.up )",
["cycle_targets"] = 1,
}, -- [29]
{
["enabled"] = true,
["action"] = "stellar_flare",
["criteria"] = "refreshable & ap_check & floor ( target.time_to_die % ( 2 * spell_haste ) ) >= 5 & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.stellar_flare )",
["cycle_targets"] = 1,
}, -- [30]
{
["enabled"] = true,
["criteria"] = "ap_check",
["action"] = "new_moon",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "ap_check",
["action"] = "half_moon",
}, -- [32]
{
["enabled"] = true,
["criteria"] = "ap_check",
["action"] = "full_moon",
}, -- [33]
{
["enabled"] = true,
["criteria"] = "buff.solar_empowerment.stack < 3 & ( ap_check || buff.lunar_empowerment.stack = 3 ) & ( ( buff.warrior_of_elune.up || buff.lunar_empowerment.up || spell_targets >= 2 & ! buff.solar_empowerment.up ) & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up ) || azerite.streaking_stars.rank & buff.ca_inc.up & prev.solar_wrath )",
["action"] = "lunar_strike",
}, -- [34]
{
["enabled"] = true,
["criteria"] = "azerite.streaking_stars.rank < 3 || ! buff.ca_inc.up || ! prev.solar_wrath",
["action"] = "solar_wrath",
}, -- [35]
{
["action"] = "sunfire",
["enabled"] = true,
}, -- [36]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "4",
["var_name"] = "sf_targets",
}, -- [1]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "azerite.arcanic_pulsar.enabled",
["var_name"] = "sf_targets",
}, -- [2]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "talent.starlord.enabled",
["var_name"] = "sf_targets",
}, -- [3]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "azerite.streaking_stars.rank > 2 & azerite.arcanic_pulsar.enabled",
["var_name"] = "sf_targets",
}, -- [4]
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["criteria"] = "! talent.twin_moons.enabled",
["var_name"] = "sf_targets",
}, -- [5]
{
["action"] = "moonkin_form",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [7]
{
["enabled"] = true,
["action"] = "potion",
["dynamic_prepot"] = "1",
}, -- [8]
{
["action"] = "solar_wrath",
["enabled"] = true,
}, -- [9]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [10]
},
},
["version"] = 20200614,
["warnings"] = "Imported 2 action lists.\n",
["spec"] = 102,
["profile"] = "# Balance Druid\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Solar Beam.\n# - Changed target_if cases to cycle_targets.\n# - Simplify Azerite trait lookups (don't use unnecessary variable syntax).\n# - Removed Lively Spirit condition for Celestial Alignment; you'll have it or you won't since Innervate is higher priority.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n\n# Azerite variables\n# actions.precombat+=/variable,name=az_ss,value=azerite.streaking_stars.rank\n# actions.precombat+=/variable,name=az_ap,value=azerite.arcanic_pulsar.rank\n\n# Starfall v Starsurge target cutoff\nactions.precombat=variable,name=sf_targets,value=4\nactions.precombat+=/variable,name=sf_targets,op=add,value=1,if=azerite.arcanic_pulsar.enabled\nactions.precombat+=/variable,name=sf_targets,op=add,value=1,if=talent.starlord.enabled\nactions.precombat+=/variable,name=sf_targets,op=add,value=1,if=azerite.streaking_stars.rank>2&azerite.arcanic_pulsar.enabled\nactions.precombat+=/variable,name=sf_targets,op=sub,value=1,if=!talent.twin_moons.enabled\nactions.precombat+=/moonkin_form\n\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/potion,dynamic_prepot=1\nactions.precombat+=/solar_wrath\nactions.precombat+=/starsurge\n\n# Executed every time the actor is available.\nactions=solar_beam\n# CDs\nactions+=/berserking,if=buff.ca_inc.up\nactions+=/use_item,name=azsharas_font_of_power,if=!buff.ca_inc.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/guardian_of_azeroth,if=(!talent.starlord.enabled||buff.starlord.up)&!buff.ca_inc.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/use_item,effect_name=cyclotronic_blast,if=!buff.ca_inc.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/use_item,name=shiver_venom_relic,if=!buff.ca_inc.up&!buff.bloodlust.up,target_if=dot.shiver_venom.stack>=5\nactions+=/use_item,name=manifesto_of_madness,if=buff.ca_inc.remains>10||buff.ca_inc.remains>4&buff.arcanic_pulsar.stack>6||fight_remains<21\nactions+=/blood_of_the_enemy,if=cooldown.ca_inc.remains>30\nactions+=/memory_of_lucid_dreams,if=!buff.ca_inc.up&(astral_power<25||cooldown.ca_inc.remains>30)&dot.sunfire.remains>10&dot.moonfire.remains>10&(!talent.stellar_flare.enabled||dot.stellar_flare.remains>10)\nactions+=/purifying_blast\nactions+=/ripple_in_space\nactions+=/concentrated_flame\nactions+=/the_unbound_force,if=buff.reckless_force.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/worldvein_resonance\nactions+=/focused_azerite_beam,if=(!variable.az_ss||!buff.ca_inc.up)&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/thorns\nactions+=/use_items,if=buff.ca_inc.up||fight_remains<20\nactions+=/warrior_of_elune\n# actions+=/innervate,if=azerite.lively_spirit.enabled&(cooldown.incarnation.remains<2||cooldown.celestial_alignment.remains<12)\nactions+=/incarnation,if=!buff.ca_inc.up&(buff.memory_of_lucid_dreams.up||((cooldown.memory_of_lucid_dreams.remains>20||!essence.memory_of_lucid_dreams.major)&ap_check))&(buff.memory_of_lucid_dreams.up||ap_check)&dot.sunfire.remains>8&dot.moonfire.remains>12&(dot.stellar_flare.remains>6||!talent.stellar_flare.enabled)\nactions+=/celestial_alignment,if=!buff.ca_inc.up&(buff.memory_of_lucid_dreams.up||((cooldown.memory_of_lucid_dreams.remains>20||!essence.memory_of_lucid_dreams.major)&ap_check))&(dot.sunfire.remains>2&dot.moonfire.ticking&(dot.stellar_flare.ticking||!talent.stellar_flare.enabled))\nactions+=/fury_of_elune,if=(buff.ca_inc.up||cooldown.ca_inc.remains>30)&solar_wrath.ap_check\nactions+=/force_of_nature,if=(buff.ca_inc.up||cooldown.ca_inc.remains>30)&ap_check\n\n# Spenders\nactions+=/cancel_buff,name=starlord,if=buff.starlord.remains<3&!solar_wrath.ap_check\nactions+=/starfall,if=(!solar_wrath.ap_check||(buff.starlord.stack<3||buff.starlord.remains>=8)&(fight_remains+1)*spell_targets>cost%2.5)&spell_targets>=variable.sf_targets\nactions+=/starsurge,if=((talent.starlord.enabled&(buff.starlord.stack<3||buff.starlord.remains>=5&buff.arcanic_pulsar.stack<8)||!talent.starlord.enabled&(buff.arcanic_pulsar.stack<8||buff.ca_inc.up))&buff.solar_empowerment.stack<3&buff.lunar_empowerment.stack<3&buff.reckless_force_counter.stack<19||buff.reckless_force.up)&spell_targets.starfall<variable.sf_targets&(!variable.az_ss||!buff.ca_inc.up||!prev.starsurge)||fight_remains<=execute_time*astral_power%40||!solar_wrath.ap_check\nactions+=/sunfire,if=buff.ca_inc.up&buff.ca_inc.remains<gcd.max&azerite.streaking_stars.rank&dot.moonfire.remains>remains\nactions+=/moonfire,if=buff.ca_inc.up&buff.ca_inc.remains<gcd.max&azerite.streaking_stars.rank\n\n# DoTs\nactions+=/sunfire,cycle_targets=1,if=refreshable&ap_check&floor(target.time_to_die%(2*spell_haste))*spell_targets>=ceil(floor(2%spell_targets)*1.5)+2*spell_targets&(spell_targets>1+talent.twin_moons.enabled||dot.moonfire.ticking)&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.sunfire)&(buff.ca_inc.remains>remains||!buff.ca_inc.up)\nactions+=/moonfire,cycle_targets=1,if=refreshable&ap_check&floor(target.time_to_die%(2*spell_haste))*spell_targets>=6&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.moonfire)&(buff.ca_inc.remains>remains||!buff.ca_inc.up)\nactions+=/stellar_flare,cycle_targets=1,if=refreshable&ap_check&floor(target.time_to_die%(2*spell_haste))>=5&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.stellar_flare)\n\n# Generators\nactions+=/new_moon,if=ap_check\nactions+=/half_moon,if=ap_check\nactions+=/full_moon,if=ap_check\nactions+=/lunar_strike,if=buff.solar_empowerment.stack<3&(ap_check||buff.lunar_empowerment.stack=3)&((buff.warrior_of_elune.up||buff.lunar_empowerment.up||spell_targets>=2&!buff.solar_empowerment.up)&(!azerite.streaking_stars.rank||!buff.ca_inc.up)||azerite.streaking_stars.rank&buff.ca_inc.up&prev.solar_wrath)\nactions+=/solar_wrath,if=azerite.streaking_stars.rank<3||!buff.ca_inc.up||!prev.solar_wrath\n\n# Fallthru for movement\nactions+=/sunfire",
},
["Guardian"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20190818,
["author"] = "SimC",
["desc"] = "# Guardian Druid\n# https://github.com/simulationcraft/simc/\n# August 18, 2019 - 14:00\n\n# Changes:\n# - Added Mitigation abilities.\n# - Added Skull Bash.\n# - Added ironfur_damage_threshold option.",
["lists"] = {
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s > ironfur_damage_threshold & buff.ironfur.remains < gcd * 2",
["action"] = "ironfur",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "health.current < 0.75 * health.max",
["action"] = "frenzied_regeneration",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "toggle.defensives & health.pct < 80",
["action"] = "anima_of_death",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "health.pct < 75 & incoming_damage_5s > 0.25 * health.max",
["action"] = "barkskin",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.survival_instincts.down & buff.barkskin.down & health.pct < 60 & incoming_damage_5s > 0.25 * health.max",
["action"] = "survival_instincts",
}, -- [5]
},
["cooldowns"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [2]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [3]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [6]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "lunar_beam",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "bristling_fur",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( dot.moonfire.ticking || active_enemies > 1 ) & dot.thrash_bear.ticking",
["action"] = "incarnation",
}, -- [10]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "toggle.cooldowns & ( time_to_die < action_cooldown % 2 || active_enemies > 1 )",
["action"] = "anima_of_death",
}, -- [12]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [13]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [14]
},
["default"] = {
{
["action"] = "skull_bash",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 20 & active_enemies < 4",
["action"] = "maul",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 20 & essence.conflict_and_strife.major & ! buff.sharpened_claws.up",
["action"] = "maul",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cost = 0 || ( rage > cost & azerite.layered_mane.enabled & active_enemies > 2 )",
["action"] = "ironfur",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "dot.thrash_bear.stack = dot.thrash_bear.max_stacks",
["action"] = "pulverize",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "dot.moonfire.refreshable & active_enemies < 2",
["action"] = "moonfire",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( buff.incarnation.down & active_enemies > 1 ) || ( buff.incarnation.up & active_enemies > 4 )",
["action"] = "thrash_bear",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.incarnation.down & active_enemies > 4",
["action"] = "swipe_bear",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.thrash_bear.ticking",
["action"] = "mangle",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.galactic_guardian.up & active_enemies < 2",
["action"] = "moonfire",
}, -- [12]
{
["action"] = "thrash_bear",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "azerite.power_of_the_moon.rank > 1 & active_enemies = 1",
["action"] = "moonfire",
}, -- [14]
{
["action"] = "swipe_bear",
["enabled"] = true,
}, -- [15]
},
["precombat"] = {
{
["action"] = "bear_form",
["enabled"] = true,
}, -- [1]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [2]
{
["action"] = "potion",
["enabled"] = true,
}, -- [3]
},
},
["version"] = 20190818,
["warnings"] = "Imported 4 action lists.\n",
["spec"] = 104,
["profile"] = "# Guardian Druid\n# https://github.com/simulationcraft/simc/\n# August 18, 2019 - 14:00\n\n# Changes:\n# - Added Mitigation abilities.\n# - Added Skull Bash.\n# - Added ironfur_damage_threshold option.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/bear_form\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/potion\n\n# Executed every time the actor is available.\nactions=skull_bash\nactions+=/call_action_list,name=mitigation\nactions+=/call_action_list,name=cooldowns\nactions+=/maul,if=rage.deficit<20&active_enemies<4\nactions+=/maul,if=rage.deficit<20&essence.conflict_and_strife.major&!buff.sharpened_claws.up\nactions+=/ironfur,if=cost=0||(rage>cost&azerite.layered_mane.enabled&active_enemies>2)\nactions+=/pulverize,target_if=dot.thrash_bear.stack=dot.thrash_bear.max_stacks\nactions+=/moonfire,target_if=dot.moonfire.refreshable&active_enemies<2\nactions+=/thrash,if=(buff.incarnation.down&active_enemies>1)||(buff.incarnation.up&active_enemies>4)\nactions+=/swipe,if=buff.incarnation.down&active_enemies>4\nactions+=/mangle,if=dot.thrash_bear.ticking\nactions+=/moonfire,target_if=buff.galactic_guardian.up&active_enemies<2\nactions+=/thrash\n# Fill with Moonfire with PotMx2\nactions+=/moonfire,if=azerite.power_of_the_moon.rank>1&active_enemies=1\nactions+=/swipe\n\nactions.mitigation=ironfur,if=incoming_damage_5s>ironfur_damage_threshold&buff.ironfur.remains<gcd*2\nactions.mitigation+=/frenzied_regeneration,if=health.current<0.75*health.max\nactions.mitigation+=/anima_of_death,if=toggle.defensives&health.pct<80\nactions.mitigation+=/barkskin,if=health.pct<75&incoming_damage_5s>0.25*health.max\nactions.mitigation+=/survival_instincts,if=buff.survival_instincts.down&buff.barkskin.down&health.pct<60&incoming_damage_5s>0.25*health.max\n\nactions.cooldowns=potion\n# actions.cooldowns+=/heart_essence\nactions.cooldowns+=/blood_fury\nactions.cooldowns+=/berserking\nactions.cooldowns+=/arcane_torrent\nactions.cooldowns+=/lights_judgment\nactions.cooldowns+=/fireblood\nactions.cooldowns+=/ancestral_call\nactions.cooldowns+=/lunar_beam,if=buff.bear_form.up\nactions.cooldowns+=/bristling_fur,if=buff.bear_form.up\nactions.cooldowns+=/incarnation,if=(dot.moonfire.ticking||active_enemies>1)&dot.thrash_bear.ticking\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast\nactions.cooldowns+=/anima_of_death,if=toggle.cooldowns&(time_to_die<cooldown%2||active_enemies>1)\nactions.cooldowns+=/memory_of_lucid_dreams\nactions.cooldowns+=/use_items",
},
},
},
["Quillphis - Deathwing"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetRogueMfDOption_20200226"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[252] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["enhancedRecheck"] = true,
["settings"] = {
["festermight_cycle"] = false,
},
["damageExpiration"] = 8,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
["custom1Name"] = "Custom 1",
["damage"] = true,
["debuffPadding"] = 0,
["cycle"] = true,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_spectral_strength",
["buffPadding"] = 0,
["nameplates"] = true,
["cycleDebuff"] = "festering_wound",
["package"] = "Unholy",
["damageRange"] = 0,
},
[251] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["package"] = "Frost DK",
["damagePets"] = false,
["settings"] = {
["bos_rp"] = 50,
},
["enhancedRecheck"] = false,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["throttleRefresh"] = false,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["buffPadding"] = 0,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_spectral_strength",
["damage"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["petbased"] = false,
["damageRange"] = 0,
},
[250] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["package"] = "Blood",
["damagePets"] = false,
["settings"] = {
["save_blood_shield"] = true,
},
["enhancedRecheck"] = false,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["throttleRefresh"] = false,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["buffPadding"] = 0,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_phantom_fire",
["damage"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["petbased"] = false,
["damageRange"] = 0,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["packs"] = {
["Unholy"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210708,
["spec"] = 252,
["desc"] = "Death Knight Unholy\nJuly 8, 2021\n\nChanges:\n- Adjustments to DnD/Defile/Deaths Due to only count targets who are expected to live long enough to matter (aoe_setup #1).\n- Disabled Sacrificial Pact because dead ghouls make for sad DKs.\n- Using Wound Spender abilities more flexibly (at 4+ stacks instead of 5+); DPS neutral and may prevent some no-rec situations.\n- Using Festering Strike in AOE if you have nothing else to do and won't overcap wounds is DPS neutral.\n- Changed many 'fight_remains' conditionals to apply in boss fights only (less CD waste on trash).\n- Added another Outbreak entry to set up stronger Epidemics.\n- Relax ST vs. AOE logic since it relies on confabulated raid_events.\n- TODO: Factor Strength procs into trinket logic.",
["lists"] = {
["aoe_setup"] = {
{
["enabled"] = true,
["criteria"] = "death_knight.fwounded_targets >= cycle_enemies || death_knight.fwounded_targets >= 5 || ! talent.bursting_sores.enabled || raid_event.adds.exists & raid_event.adds.remains <= 11 || fight_remains <= 11",
["action"] = "any_dnd",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ( buff.dark_transformation.up & runeforge.deadliest_coil.enabled & active_enemies <= 3 || active_enemies = 2 )",
["action"] = "death_coil",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "epidemic",
}, -- [3]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "debuff.festering_wound.stack <= 3 & cooldown.apocalypse.remains < 3",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "debuff.festering_wound.stack < 1",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "rune.time_to_4 < ( cooldown.death_and_decay.remains & ! talent.defile.enabled || cooldown.defile.remains & talent.defile.enabled || covenant.night_fae & cooldown.deaths_due.remains )",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["action"] = "wound_spender",
["description"] = "When target swaps are disabled, this will let you spend runes/wounds instead of waiting for DnD/Defile/Death's Due.",
["criteria"] = "( ! settings.cycle || death_knight.fwounded_targets >= cycle_enemies ) & debuff.festering_wound.stack > 3 & rune.time_to_3 < cooldown.any_dnd.remains",
}, -- [7]
},
["aoe_burst"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies <= 5",
["action"] = "clawing_shadows",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies = 6 & death_knight.fwounded_targets >= 3",
["action"] = "clawing_shadows",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.bursting_sores.enabled & ( death_knight.fwounded_targets = active_enemies || death_knight.fwounded_targets >= 3 ) || talent.bursting_sores.enabled & talent.clawing_shadows.enabled & death_knight.fwounded_targets >= 1",
["action"] = "wound_spender",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( buff.sudden_doom.react || ! variable.pooling_runic_power ) & ( buff.dark_transformation.up & runeforge.deadliest_coil.enabled & active_enemies <= 3 || active_enemies = 2 )",
["action"] = "death_coil",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit < ( 10 + death_knight.fwounded_targets * 3 ) & death_knight.fwounded_targets < 6 & ! variable.pooling_runic_power || buff.swarming_mist.up",
["action"] = "epidemic",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit < 25 & death_knight.fwounded_targets > 5 & ! variable.pooling_runic_power",
["action"] = "epidemic",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! death_knight.fwounded_targets & ! variable.pooling_runic_power || fight_remains < 5 || raid_event.adds.exists & raid_event.adds.remains < 5",
["action"] = "epidemic",
}, -- [7]
{
["action"] = "wound_spender",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "epidemic",
}, -- [9]
},
["generic_aoe"] = {
{
["enabled"] = true,
["sec"] = "cooldown.soul_reaper.remains",
["action"] = "wait",
["criteria"] = "talent.soul_reaper.enabled & target.time_to_pct_35 < 5 & fight_remains > 5 & cooldown.soul_reaper.remains < ( gcd * 0.75 ) & active_enemies <= 3",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! variable.pooling_runic_power || buff.sudden_doom.react ) & ( buff.dark_transformation.up & runeforge.deadliest_coil.enabled & active_enemies <= 3 || active_enemies = 2 )",
["action"] = "death_coil",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.sudden_doom.react || ! variable.pooling_runic_power",
["action"] = "epidemic",
}, -- [3]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "If target cycling is disabled, switch back to the single-target generic list instead.",
["strict"] = 1,
["criteria"] = "cycle_enemies = 1",
["list_name"] = "generic",
}, -- [4]
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "( cooldown.apocalypse.remains > 5 & debuff.festering_wound.up || debuff.festering_wound.stack > 3 ) & ( fight_remains < cooldown.death_and_decay.remains + 10 || fight_remains > cooldown.apocalypse.remains )",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "debuff.festering_wound.stack <= 3 & cooldown.apocalypse.remains < 5 || debuff.festering_wound.stack < 1",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "cooldown.apocalypse.remains > 5 & debuff.festering_wound.stack < 1",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "festering_strike",
["description"] = "This is effectively filler which sims DPS neutral, but should prevent a scenario where the addon has nothing to recommend.",
["criteria"] = "active_dot.festering_wound >= cycle_enemies & debuff.festering_wound.stack < 4",
}, -- [8]
},
["generic"] = {
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ( buff.sudden_doom.react || runic_power.deficit <= 13 ) || pet.gargoyle.active & rune <= 3 || fight_remains < 10 & ! debuff.festering_wound.up",
["action"] = "death_coil",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( talent.defile.enabled || covenant.night_fae || runeforge.phearomones.enabled ) & ( ! variable.pooling_runes || boss & fight_remains < 5 )",
["action"] = "any_dnd",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.major_procs_active & debuff.festering_wound.stack >= 1 & cooldown.apocalypse.remains_expected > 5 & ! variable.pooling_runes",
["action"] = "wound_spender",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack > 3 & ! variable.pooling_runes || debuff.festering_wound.up & fight_remains < ( debuff.festering_wound.stack * gcd )",
["action"] = "wound_spender",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit <= 20 & ! variable.pooling_runic_power",
["action"] = "death_coil",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack < 4 & ! variable.pooling_runes",
["action"] = "festering_strike",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "death_coil",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack >= 1 & rune < 2 & ! variable.pooling_runes & cooldown.apocalypse.remains_expected > 5",
["action"] = "wound_spender",
}, -- [8]
},
["covenants"] = {
{
["enabled"] = true,
["criteria"] = "variable.st_planning & runic_power.deficit > 16 & ( cooldown.apocalypse.remains || ! talent.army_of_the_damned.enabled & cooldown.dark_transformation.remains ) || boss & fight_remains < 11",
["action"] = "swarming_mist",
}, -- [1]
{
["enabled"] = true,
["action"] = "swarming_mist",
["description"] = "Set to use after apoc is on CD as to prevent overcapping RP while setting up CD's",
["criteria"] = "cooldown.apocalypse.remains & ( active_enemies >= 2 & active_enemies <= 5 & runic_power.deficit > 10 + ( active_enemies * 6 ) & variable.adds_remain || active_enemies > 5 & runic_power.deficit > 40 )",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ! soulbind.lead_by_example.enabled & ( cooldown.apocalypse.remains || ! talent.army_of_the_damned.enabled & cooldown.dark_transformation.remains ) & rune.time_to_4 > buff.runic_corruption.remains || boss & fight_remains < 21",
["action"] = "abomination_limb",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ( soulbind.lead_by_example.enabled || soulbind.kevins_oozeling.enabled ) & ( dot.unholy_blight_dot.remains > 11 || ! talent.unholy_blight.enabled & cooldown.dark_transformation.remains )",
["action"] = "abomination_limb",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain & rune.time_to_4 > buff.runic_corruption.remains",
["action"] = "abomination_limb",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ( cooldown.apocalypse.remains > 10 || ! talent.army_of_the_damned.enabled & cooldown.dark_transformation.remains ) || boss & fight_remains < 15",
["action"] = "shackle_the_unworthy",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain & ( death_and_decay.ticking || raid_event.adds.remains <= 14 )",
["action"] = "shackle_the_unworthy",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled",
["action"] = "fleshcraft",
}, -- [8]
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "raise_dead",
["enabled"] = true,
}, -- [2]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["action"] = "army_of_the_dead",
["criteria"] = "! talent.summon_gargoyle.enabled",
["precombat_time"] = "3",
}, -- [4]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Evaluates a trinkets cooldown, divided by 45. This was chosen as unholy works on 45 second burst cycles, but has too many cdr effects to give a cooldown.x.duration divisor instead. If it's value has no remainder return 1, else return 0.5.",
["criteria"] = "trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration % 45 = 0 )",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["value"] = "1",
}, -- [5]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration % 45 = 0 )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [6]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a strength modifier to give a higher priority to strength trinkets, as well as a modifier for if a trinket will or will not sync with cooldowns.",
["criteria"] = "! trinket.t1.has_use_buff & trinket.t2.has_use_buff || trinket.t2.has_use_buff & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_buff ) * ( variable.trinket_1_sync ) )",
["var_name"] = "trinket_priority",
["action"] = "variable",
["value_else"] = "1",
["value"] = "2",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.army_of_the_damned.enabled & conduit.convocation_of_the_dead.rank >= 9",
["description"] = "Evaluates current setup for the quantity of Apocalypse CDR effects",
["var_name"] = "full_cdr",
}, -- [8]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "variable.major_cooldowns_active || pet.gargoyle.active & pet.gargoyle.remains <= 26 || fight_remains < 26",
["action"] = "potion",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.unholy_blight.remains < 7 & cooldown.dark_transformation.remains_expected < 7 & talent.unholy_blight.enabled & ( cooldown.apocalypse.remains_expected < 7 & variable.full_cdr || ! variable.full_cdr ) || ! talent.unholy_blight.enabled || boss & fight_remains < 35",
["action"] = "army_of_the_dead",
}, -- [2]
{
["enabled"] = true,
["action"] = "soul_reaper",
["criteria"] = "target.time_to_pct_35 < 5 & target.time_to_die > 5 & active_enemies <= 3",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["action"] = "unholy_blight",
["description"] = "Holds Blight for up to 5 seconds to sync with Apocalypse, Otherwise, use with Dark Transformation.",
["criteria"] = "variable.st_planning & ( cooldown.apocalypse.remains_expected < 5 || cooldown.apocalypse.remains_expected > 10 ) & ( cooldown.dark_transformation.remains < gcd || buff.dark_transformation.up )",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain || boss & fight_remains < 21",
["action"] = "unholy_blight",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ( dot.unholy_blight_dot.remains || ! talent.unholy_blight.enabled )",
["action"] = "dark_transformation",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain || boss & fight_remains < 21",
["action"] = "dark_transformation",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & debuff.festering_wound.stack >= 4 & ( ! variable.full_cdr || variable.full_cdr & ( cooldown.unholy_blight.remains > 10 || cooldown.dark_transformation.remains_expected > 10 & ! talent.unholy_blight.enabled ) )",
["action"] = "apocalypse",
}, -- [8]
{
["enabled"] = true,
["action"] = "apocalypse",
["criteria"] = "active_enemies >= 2 & debuff.festering_wound.stack > 3 & ! death_and_decay.ticking",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit < 14 & cooldown.unholy_blight.remains < 13 & cooldown.dark_transformation.remains_expected < 13",
["action"] = "summon_gargoyle",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & debuff.festering_wound.stack < 2 & ( pet.apoc_ghoul.active || buff.dark_transformation.up & cooldown.apocalypse.remains > 10 )",
["action"] = "unholy_assault",
}, -- [11]
{
["enabled"] = true,
["action"] = "unholy_assault",
["criteria"] = "active_enemies >= 2 & debuff.festering_wound.stack < 2 & ( pet.apoc_ghoul.active || buff.dark_transformation.up || cooldown.death_and_decay.remains < gcd )",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! pet.ghoul.active",
["action"] = "raise_dead",
}, -- [13]
},
["trinkets"] = {
{
["enabled"] = true,
["action"] = "inscrutable_quantum_device",
["criteria"] = "( cooldown.unholy_blight.remains > 20 || cooldown.dark_transformation.remains_expected > 20 ) & ( active_enemies >= 2 || pet.army_ghoul.active || pet.apoc_ghoul.active & ( talent.unholy_assault.enabled || death_knight.disable_aotd ) || pet.gargoyle.active ) || boss & fight_remains < 21 || target.time_to_pct_20 < 5",
["name"] = "inscrutable_quantum_device",
}, -- [1]
{
["enabled"] = true,
["action"] = "trinket1",
["description"] = "The trinket with the highest estimated value, will be used first and paired with Apocalypse (if buff is 15 seconds or less) or Blight/DT (if greater than 15 seconds)",
["criteria"] = "! variable.specified_trinket & ( ( trinket.t1.buff_duration <= 15 & cooldown.apocalypse.remains > 20 || trinket.t1.buff_duration > 15 & ( cooldown.unholy_blight.remains > 20 || cooldown.dark_transformation.remains_expected > 20 ) || active_enemies >= 2 & buff.dark_transformation.up ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) ) || trinket.t1.buff_duration >= fight_remains",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.specified_trinket & ( ( trinket.t2.buff_duration <= 15 & cooldown.apocalypse.remains > 20 || trinket.t2.buff_duration > 15 & ( cooldown.unholy_blight.remains > 20 || cooldown.dark_transformation.remains_expected > 20 ) || active_enemies >= 2 & buff.dark_transformation.up ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) ) || trinket.t2.buff_duration >= fight_remains",
["action"] = "trinket2",
}, -- [3]
{
["enabled"] = true,
["action"] = "trinket1",
["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"] = "! trinket.t1.has_use_buff & ( trinket.t2.cooldown.remains || ! trinket.t2.has_use_buff )",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! trinket.t2.has_use_buff & ( trinket.t1.cooldown.remains || ! trinket.t1.has_use_buff )",
["action"] = "trinket2",
}, -- [5]
},
["default"] = {
{
["action"] = "mind_freeze",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( equipped.inscrutable_quantum_device & cooldown.inscrutable_quantum_device.ready )",
["description"] = "Prevent specified trinkets being used with automatic lines",
["var_name"] = "specified_trinket",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.summon_gargoyle.remains < 5 & talent.summon_gargoyle.enabled & ( talent.unholy_blight.enabled & cooldown.unholy_blight.remains < 13 & cooldown.dark_transformation.remains_expected < 13 || ! talent.unholy_blight.enabled )",
["var_name"] = "pooling_runic_power",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.soul_reaper.enabled & rune < 2 & target.time_to_pct_35 < 5 & fight_remains > 5",
["var_name"] = "pooling_runes",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1 & ( ! raid_event.adds.exists || raid_event.adds.in > 15 )",
["var_name"] = "st_planning",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies >= 2 & ( ! raid_event.adds.exists || raid_event.adds.exists & ( raid_event.adds.remains > 5 || fight_remains > 10 ) )",
["var_name"] = "adds_remain",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.summon_gargoyle.enabled & ! pet.gargoyle.active & cooldown.summon_gargoyle.remains || ! talent.summon_gargoyle.enabled ) & ( buff.unholy_assault.up || talent.army_of_the_damned.enabled & pet.apoc_ghoul.active || buff.dark_transformation.up || active_enemies >= 2 & death_and_decay.ticking )",
["var_name"] = "major_cooldowns_active",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "covenant.night_fae & death_and_decay.ticking & buff.deaths_due.stack < 4 || buff.marrowed_gemstone_enhancement.up || buff.thrill_seeker.up || buff.frenzied_monstrosity.up || buff.lead_by_example.up",
["var_name"] = "major_procs_active",
}, -- [8]
{
["enabled"] = true,
["action"] = "outbreak",
["description"] = "Maintaining Virulent Plague is a priority",
["criteria"] = "dot.virulent_plague.refreshable & ! talent.unholy_blight.enabled & ! raid_event.adds.exists",
}, -- [9]
{
["enabled"] = true,
["action"] = "outbreak",
["criteria"] = "dot.virulent_plague.refreshable & active_enemies >= 2 & ( ! talent.unholy_blight.enabled || cooldown.unholy_blight.remains & buff.unholy_blight_buff.down )",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["action"] = "outbreak",
["line_cd"] = "6",
["criteria"] = "active_dot.virulent_plague < active_enemies & active_enemies >= 2 & ( ! talent.unholy_blight.enabled || cooldown.unholy_blight.remains & buff.unholy_blight_buff.down )",
["description"] = "If there are enemies missing VP, apply it (but no more than once per 6 seconds).",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "runeforge.superstrain.enabled & ( dot.frost_fever.refreshable || dot.blood_plague.refreshable )",
["action"] = "outbreak",
}, -- [12]
{
["enabled"] = true,
["action"] = "wound_spender",
["description"] = "Refreshes Deaths Due's buff just before deaths due ends",
["criteria"] = "covenant.night_fae & death_and_decay.active_remains < ( gcd * 1.5 ) & death_and_decay.ticking",
}, -- [13]
{
["enabled"] = true,
["sec"] = "cooldown.soul_reaper.remains",
["action"] = "wait",
["criteria"] = "talent.soul_reaper.enabled & target.time_to_pct_35 < 5 & target.time_to_die > 5 & cooldown.soul_reaper.remains < ( gcd * 0.75 ) & active_enemies = 1",
}, -- [14]
{
["enabled"] = true,
["action"] = "wait",
["sec"] = "cooldown.deaths_due.remains",
["description"] = "Wait for Death's Due/Defile if Night Fae to get strength buff back asap",
["criteria"] = "covenant.night_fae & cooldown.deaths_due.remains < gcd & active_enemies = 1",
}, -- [15]
{
["enabled"] = true,
["sec"] = "cooldown.defile.remains",
["action"] = "wait",
["criteria"] = "covenant.night_fae & cooldown.defile.remains < gcd & active_enemies = 1",
}, -- [16]
{
["enabled"] = true,
["description"] = "Action Lists and Openers (Openers/Sequences unsupported in addon.)",
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "covenants",
}, -- [18]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "racials",
}, -- [19]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain & ( cooldown.death_and_decay.remains < 10 & ! talent.defile.enabled || cooldown.defile.remains < 10 & talent.defile.enabled || covenant.night_fae & cooldown.deaths_due.remains < 10 ) & ! death_and_decay.ticking",
["action"] = "run_action_list",
["list_name"] = "aoe_setup",
}, -- [21]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 2 & death_and_decay.ticking",
["list_name"] = "aoe_burst",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & ( ! death_and_decay.ticking & ( cooldown.death_and_decay.remains > 10 & ! talent.defile.enabled || cooldown.defile.remains > 10 & talent.defile.enabled || covenant.night_fae & cooldown.deaths_due.remains > 10 ) || ! variable.adds_remain )",
["action"] = "run_action_list",
["list_name"] = "generic_aoe",
}, -- [23]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 1 || ! variable.adds_remain",
["list_name"] = "generic",
}, -- [24]
},
["racials"] = {
{
["enabled"] = true,
["action"] = "arcane_torrent",
["description"] = "Racials",
["criteria"] = "runic_power.deficit > 65 & ( pet.gargoyle.active || ! talent.summon_gargoyle.enabled ) & rune.deficit >= 5",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.major_cooldowns_active || pet.gargoyle.active & pet.gargoyle.remains <= buff.blood_fury.duration || boss & fight_remains <= buff.blood_fury.duration",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.major_cooldowns_active || pet.gargoyle.active & pet.gargoyle.remains <= buff.berserking.duration || boss & fight_remains <= buff.berserking.duration",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.unholy_strength.up",
["action"] = "lights_judgment",
}, -- [4]
{
["enabled"] = true,
["action"] = "ancestral_call",
["description"] = "Ancestral Call can trigger 4 potential buffs, each lasting 15 seconds. Utilized hard coded time as a trigger to keep it readable.",
["criteria"] = "variable.major_cooldowns_active || pet.gargoyle.active & pet.gargoyle.remains <= 15 || boss & fight_remains <= 15",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 || ( rune.deficit >= 5 & runic_power.deficit >= 60 )",
["action"] = "arcane_pulse",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.major_cooldowns_active || pet.gargoyle.active & pet.gargoyle.remains <= buff.fireblood.duration || boss & fight_remains <= buff.fireblood.duration",
["action"] = "fireblood",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( buff.unholy_strength.up || boss & fight_remains < 5 )",
["action"] = "bag_of_tricks",
}, -- [8]
},
},
["version"] = 20210708,
["warnings"] = "WARNING: The import for 'aoe_setup' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 6: Converted 'talent.X' to 'talent.X.enabled' (2x).\n\nWARNING: The import for 'aoe_burst' required some automated changes.\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 2: Converted 'trinket.1.X' to 'trinket.t1.X' (3x).\nLine 2: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 3: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 3: Converted 'trinket.2.X' to 'trinket.t2.X' (3x).\nLine 4: Converted 'trinket.1.X' to 'trinket.t1.X' (1x).\nLine 4: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 5: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 5: Converted 'trinket.2.X' to 'trinket.t2.X' (1x).\n\nWARNING: The import for 'generic' required some automated changes.\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'covenants' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 3: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'soulbind.X' to 'soulbind.X.enabled' (2x).\nLine 6: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 8: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nWARNING: The import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 5: Converted SimC syntax %% to Lua modulus operator (%) (1x).\nLine 5: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 6: Converted SimC syntax %% to Lua modulus operator (%) (1x).\nLine 6: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 7: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 7: Converted 'trinket.1.X' to 'trinket.t1.X' (4x).\nLine 7: Converted 'trinket.2.X' to 'trinket.t2.X' (5x).\nLine 8: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'cooldowns' required some automated changes.\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 6: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 8: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'generic_aoe' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 11: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 12: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 14: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 21: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 23: Converted 'talent.X' to 'talent.X.enabled' (2x).\n\nThe 'use_items' action was not found in this import.\nImported 10 action lists.\n",
["profile"] = "## Death Knight Unholy\n## July 8, 2021\n\n## Changes:\n## - Adjustments to DnD/Defile/Deaths Due to only count targets who are expected to live long enough to matter (aoe_setup #1).\n## - Disabled Sacrificial Pact because dead ghouls make for sad DKs.\n## - Using Wound Spender abilities more flexibly (at 4+ stacks instead of 5+); DPS neutral and may prevent some no-rec situations.\n## - Using Festering Strike in AOE if you have nothing else to do and won't overcap wounds is DPS neutral.\n## - Changed many 'fight_remains' conditionals to apply in boss fights only (less CD waste on trash).\n## - Added another Outbreak entry to set up stronger Epidemics.\n## - Relax ST vs. AOE logic since it relies on confabulated raid_events.\n## - TODO: Factor Strength procs into trinket logic.\n\nactions.precombat+=/potion\nactions.precombat+=/raise_dead\nactions.precombat+=/fleshcraft\nactions.precombat+=/army_of_the_dead,precombat_time=3,if=!talent.summon_gargoyle\n# Evaluates a trinkets cooldown, divided by 45. This was chosen as unholy works on 45 second burst cycles, but has too many cdr effects to give a cooldown.x.duration divisor instead. 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%%45=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%%45=0)\n# Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a strength modifier to give a higher priority to strength trinkets, as well as a modifier for if a trinket will or will not sync with cooldowns.\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!trinket.1.has_use_buff&trinket.2.has_use_buff||trinket.2.has_use_buff&((trinket.2.cooldown.duration%trinket.2.buff_duration)*(1.5+trinket.2.has_buff)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.buff_duration)*(1.5+trinket.1.has_buff)*(variable.trinket_1_sync))\n# Evaluates current setup for the quantity of Apocalypse CDR effects\nactions.precombat+=/variable,name=full_cdr,value=talent.army_of_the_damned&conduit.convocation_of_the_dead.rank>=9\n\n## Executed every time the actor is available.\nactions=mind_freeze\n# Prevent specified trinkets being used with automatic lines\nactions+=/variable,name=specified_trinket,value=(equipped.inscrutable_quantum_device&cooldown.inscrutable_quantum_device.ready)\n## Variables\nactions+=/variable,name=pooling_runic_power,value=cooldown.summon_gargoyle.remains<5&talent.summon_gargoyle&(talent.unholy_blight&cooldown.unholy_blight.remains<13&cooldown.dark_transformation.remains_expected<13||!talent.unholy_blight)\nactions+=/variable,name=pooling_runes,value=talent.soul_reaper&rune<2&target.time_to_pct_35<5&fight_remains>5\nactions+=/variable,name=st_planning,value=active_enemies=1&(!raid_event.adds.exists||raid_event.adds.in>15)\nactions+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists||raid_event.adds.exists&(raid_event.adds.remains>5||fight_remains>10))\nactions+=/variable,name=major_cooldowns_active,value=(talent.summon_gargoyle&!pet.gargoyle.active&cooldown.summon_gargoyle.remains||!talent.summon_gargoyle)&(buff.unholy_assault.up||talent.army_of_the_damned&pet.apoc_ghoul.active||buff.dark_transformation.up||active_enemies>=2&death_and_decay.ticking)\nactions+=/variable,name=major_procs_active,value=covenant.night_fae&death_and_decay.ticking&buff.deaths_due.stack<4||buff.marrowed_gemstone_enhancement.up||buff.thrill_seeker.up||buff.frenzied_monstrosity.up||buff.lead_by_example.up\n# Maintaining Virulent Plague is a priority\nactions+=/outbreak,if=dot.virulent_plague.refreshable&!talent.unholy_blight&!raid_event.adds.exists\nactions+=/outbreak,cycle_targets=1,if=dot.virulent_plague.refreshable&active_enemies>=2&(!talent.unholy_blight||cooldown.unholy_blight.remains&buff.unholy_blight_buff.down)\n# If there are enemies missing VP, apply it (but no more than once per 6 seconds).\nactions+=/outbreak,line_cd=6,if=active_dot.virulent_plague<active_enemies&active_enemies>=2&(!talent.unholy_blight||cooldown.unholy_blight.remains&buff.unholy_blight_buff.down)\nactions+=/outbreak,if=runeforge.superstrain&(dot.frost_fever.refreshable||dot.blood_plague.refreshable)\n# Refreshes Deaths Due's buff just before deaths due ends\nactions+=/wound_spender,if=covenant.night_fae&death_and_decay.active_remains<(gcd*1.5)&death_and_decay.ticking\nactions+=/wait,sec=cooldown.soul_reaper.remains,if=talent.soul_reaper&target.time_to_pct_35<5&target.time_to_die>5&cooldown.soul_reaper.remains<(gcd*0.75)&active_enemies=1\n# Wait for Death's Due/Defile if Night Fae to get strength buff back asap\nactions+=/wait,sec=cooldown.deaths_due.remains,if=covenant.night_fae&cooldown.deaths_due.remains<gcd&active_enemies=1\nactions+=/wait,sec=cooldown.defile.remains,if=covenant.night_fae&cooldown.defile.remains<gcd&active_enemies=1\n# Action Lists and Openers (Openers/Sequences unsupported in addon.)\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=covenants\nactions+=/call_action_list,name=racials\n## actions+=/sequence,if=active_enemies=1&!death_knight.disable_aotd&talent.summon_gargoyle,name=garg_opener:outbreak:festering_strike:festering_strike:summon_gargoyle:army_of_the_dead:death_coil,if=buff.sudden_doom.up:death_coil:death_coil:scourge_strike,if=debuff.festering_wound.stack>4:scourge_strike,if=debuff.festering_wound.stack>4:festering_strike\n## actions+=/sequence,if=active_enemies=1&!death_knight.disable_aotd&!talent.summon_gargoyle,name=opener:festering_strike:festering_strike:potion:unholy_blight:dark_transformation:apocalypse\nactions+=/call_action_list,name=cooldowns\nactions+=/run_action_list,name=aoe_setup,if=variable.adds_remain&(cooldown.death_and_decay.remains<10&!talent.defile||cooldown.defile.remains<10&talent.defile||covenant.night_fae&cooldown.deaths_due.remains<10)&!death_and_decay.ticking\nactions+=/run_action_list,name=aoe_burst,strict=1,if=active_enemies>=2&death_and_decay.ticking\nactions+=/run_action_list,name=generic_aoe,if=active_enemies>=2&(!death_and_decay.ticking&(cooldown.death_and_decay.remains>10&!talent.defile||cooldown.defile.remains>10&talent.defile||covenant.night_fae&cooldown.deaths_due.remains>10)||!variable.adds_remain)\nactions+=/call_action_list,name=generic,strict=1,if=active_enemies=1||!variable.adds_remain\n\n## AoE Burst\nactions.aoe_burst=clawing_shadows,if=active_enemies<=5\nactions.aoe_burst+=/clawing_shadows,if=active_enemies=6&death_knight.fwounded_targets>=3\nactions.aoe_burst+=/wound_spender,if=talent.bursting_sores&(death_knight.fwounded_targets=active_enemies||death_knight.fwounded_targets>=3)||talent.bursting_sores&talent.clawing_shadows&death_knight.fwounded_targets>=1\nactions.aoe_burst+=/death_coil,if=(buff.sudden_doom.react||!variable.pooling_runic_power)&(buff.dark_transformation.up&runeforge.deadliest_coil&active_enemies<=3||active_enemies=2)\nactions.aoe_burst+=/epidemic,if=runic_power.deficit<(10+death_knight.fwounded_targets*3)&death_knight.fwounded_targets<6&!variable.pooling_runic_power||buff.swarming_mist.up\nactions.aoe_burst+=/epidemic,if=runic_power.deficit<25&death_knight.fwounded_targets>5&!variable.pooling_runic_power\nactions.aoe_burst+=/epidemic,if=!death_knight.fwounded_targets&!variable.pooling_runic_power||fight_remains<5||raid_event.adds.exists&raid_event.adds.remains<5\nactions.aoe_burst+=/wound_spender\nactions.aoe_burst+=/epidemic,if=!variable.pooling_runic_power\n\n## AoE Setup\nactions.aoe_setup=any_dnd,if=death_knight.fwounded_targets>=cycle_enemies||death_knight.fwounded_targets>=5||!talent.bursting_sores||raid_event.adds.exists&raid_event.adds.remains<=11||fight_remains<=11\nactions.aoe_setup+=/death_coil,if=!variable.pooling_runic_power&(buff.dark_transformation.up&runeforge.deadliest_coil&active_enemies<=3||active_enemies=2)\nactions.aoe_setup+=/epidemic,if=!variable.pooling_runic_power\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<=3&cooldown.apocalypse.remains<3\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<1\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=rune.time_to_4<(cooldown.death_and_decay.remains&!talent.defile||cooldown.defile.remains&talent.defile||covenant.night_fae&cooldown.deaths_due.remains)\n# When target swaps are disabled, this will let you spend runes/wounds instead of waiting for DnD/Defile/Death's Due.\nactions.aoe_setup+=/wound_spender,if=(!settings.cycle||death_knight.fwounded_targets>=cycle_enemies)&debuff.festering_wound.stack>3&rune.time_to_3<cooldown.any_dnd.remains\n\n## Potion\nactions.cooldowns=potion,if=variable.major_cooldowns_active||pet.gargoyle.active&pet.gargoyle.remains<=26||fight_remains<26\n## Cooldowns\nactions.cooldowns+=/army_of_the_dead,if=cooldown.unholy_blight.remains<7&cooldown.dark_transformation.remains_expected<7&talent.unholy_blight&(cooldown.apocalypse.remains_expected<7&variable.full_cdr||!variable.full_cdr)||!talent.unholy_blight||boss&fight_remains<35\nactions.cooldowns+=/soul_reaper,cycle_targets=1,if=target.time_to_pct_35<5&target.time_to_die>5&active_enemies<=3\n# Holds Blight for up to 5 seconds to sync with Apocalypse, Otherwise, use with Dark Transformation.\nactions.cooldowns+=/unholy_blight,if=variable.st_planning&(cooldown.apocalypse.remains_expected<5||cooldown.apocalypse.remains_expected>10)&(cooldown.dark_transformation.remains<gcd||buff.dark_transformation.up)\nactions.cooldowns+=/unholy_blight,if=variable.adds_remain||boss&fight_remains<21\nactions.cooldowns+=/dark_transformation,if=variable.st_planning&(dot.unholy_blight_dot.remains||!talent.unholy_blight)\nactions.cooldowns+=/dark_transformation,if=variable.adds_remain||boss&fight_remains<21\nactions.cooldowns+=/apocalypse,if=active_enemies=1&debuff.festering_wound.stack>=4&(!variable.full_cdr||variable.full_cdr&(cooldown.unholy_blight.remains>10||cooldown.dark_transformation.remains_expected>10&!talent.unholy_blight))\nactions.cooldowns+=/apocalypse,cycle_targets=1,if=active_enemies>=2&debuff.festering_wound.stack>3&!death_and_decay.ticking\nactions.cooldowns+=/summon_gargoyle,if=runic_power.deficit<14&cooldown.unholy_blight.remains<13&cooldown.dark_transformation.remains_expected<13\nactions.cooldowns+=/unholy_assault,if=variable.st_planning&debuff.festering_wound.stack<2&(pet.apoc_ghoul.active||buff.dark_transformation.up&cooldown.apocalypse.remains>10)\nactions.cooldowns+=/unholy_assault,cycle_targets=1,if=active_enemies>=2&debuff.festering_wound.stack<2&(pet.apoc_ghoul.active||buff.dark_transformation.up||cooldown.death_and_decay.remains<gcd)\nactions.cooldowns+=/raise_dead,if=!pet.ghoul.active\n## Disabled, just not really normal behavior that's worth pursuing in-game.\n## actions.cooldowns+=/sacrificial_pact,if=active_enemies>=2&!buff.dark_transformation.up&cooldown.dark_transformation.remains>5||boss&fight_remains<gcd\n\n## Covenant Abilities\nactions.covenants=swarming_mist,if=variable.st_planning&runic_power.deficit>16&(cooldown.apocalypse.remains||!talent.army_of_the_damned&cooldown.dark_transformation.remains)||boss&fight_remains<11\n# Set to use after apoc is on CD as to prevent overcapping RP while setting up CD's\nactions.covenants+=/swarming_mist,if=cooldown.apocalypse.remains&(active_enemies>=2&active_enemies<=5&runic_power.deficit>10+(active_enemies*6)&variable.adds_remain||active_enemies>5&runic_power.deficit>40)\nactions.covenants+=/abomination_limb,if=variable.st_planning&!soulbind.lead_by_example&(cooldown.apocalypse.remains||!talent.army_of_the_damned&cooldown.dark_transformation.remains)&rune.time_to_4>buff.runic_corruption.remains||boss&fight_remains<21\nactions.covenants+=/abomination_limb,if=variable.st_planning&(soulbind.lead_by_example||soulbind.kevins_oozeling)&(dot.unholy_blight_dot.remains>11||!talent.unholy_blight&cooldown.dark_transformation.remains)\nactions.covenants+=/abomination_limb,if=variable.adds_remain&rune.time_to_4>buff.runic_corruption.remains\nactions.covenants+=/shackle_the_unworthy,if=variable.st_planning&(cooldown.apocalypse.remains>10||!talent.army_of_the_damned&cooldown.dark_transformation.remains)||boss&fight_remains<15\nactions.covenants+=/shackle_the_unworthy,if=variable.adds_remain&(death_and_decay.ticking||raid_event.adds.remains<=14)\nactions.covenants+=/fleshcraft,if=soulbind.pustule_eruption\n\n## Single Target\nactions.generic=death_coil,if=!variable.pooling_runic_power&(buff.sudden_doom.react||runic_power.deficit<=13)||pet.gargoyle.active&rune<=3||fight_remains<10&!debuff.festering_wound.up\nactions.generic+=/any_dnd,if=(talent.defile.enabled||covenant.night_fae||runeforge.phearomones)&(!variable.pooling_runes||boss&fight_remains<5)\nactions.generic+=/wound_spender,if=variable.major_procs_active&debuff.festering_wound.stack>=1&cooldown.apocalypse.remains_expected>5&!variable.pooling_runes\nactions.generic+=/wound_spender,if=debuff.festering_wound.stack>3&!variable.pooling_runes||debuff.festering_wound.up&fight_remains<(debuff.festering_wound.stack*gcd)\nactions.generic+=/death_coil,if=runic_power.deficit<=20&!variable.pooling_runic_power\nactions.generic+=/festering_strike,if=debuff.festering_wound.stack<4&!variable.pooling_runes\nactions.generic+=/death_coil,if=!variable.pooling_runic_power\nactions.generic+=/wound_spender,if=debuff.festering_wound.stack>=1&rune<2&!variable.pooling_runes&cooldown.apocalypse.remains_expected>5\n\n## Generic AoE Priority\nactions.generic_aoe=wait,sec=cooldown.soul_reaper.remains,if=talent.soul_reaper&target.time_to_pct_35<5&fight_remains>5&cooldown.soul_reaper.remains<(gcd*0.75)&active_enemies<=3\nactions.generic_aoe+=/death_coil,if=(!variable.pooling_runic_power||buff.sudden_doom.react)&(buff.dark_transformation.up&runeforge.deadliest_coil&active_enemies<=3||active_enemies=2)\nactions.generic_aoe+=/epidemic,if=buff.sudden_doom.react||!variable.pooling_runic_power\n# If target cycling is disabled, switch back to the single-target generic list instead.\nactions.generic_aoe+=/run_action_list,name=generic,strict=1,if=cycle_enemies=1\nactions.generic_aoe+=/wound_spender,cycle_targets=1,if=(cooldown.apocalypse.remains>5&debuff.festering_wound.up||debuff.festering_wound.stack>3)&(fight_remains<cooldown.death_and_decay.remains+10||fight_remains>cooldown.apocalypse.remains)\nactions.generic_aoe+=/festering_strike,cycle_targets=1,if=debuff.festering_wound.stack<=3&cooldown.apocalypse.remains<5||debuff.festering_wound.stack<1\nactions.generic_aoe+=/festering_strike,cycle_targets=1,if=cooldown.apocalypse.remains>5&debuff.festering_wound.stack<1\n# This is effectively filler which sims DPS neutral, but should prevent a scenario where the addon has nothing to recommend.\nactions.generic_aoe+=/festering_strike,if=active_dot.festering_wound>=cycle_enemies&debuff.festering_wound.stack<4\n\n# Racials\nactions.racials=arcane_torrent,if=runic_power.deficit>65&(pet.gargoyle.active||!talent.summon_gargoyle.enabled)&rune.deficit>=5\nactions.racials+=/blood_fury,if=variable.major_cooldowns_active||pet.gargoyle.active&pet.gargoyle.remains<=buff.blood_fury.duration||boss&fight_remains<=buff.blood_fury.duration\nactions.racials+=/berserking,if=variable.major_cooldowns_active||pet.gargoyle.active&pet.gargoyle.remains<=buff.berserking.duration||boss&fight_remains<=buff.berserking.duration\nactions.racials+=/lights_judgment,if=buff.unholy_strength.up\n# Ancestral Call can trigger 4 potential buffs, each lasting 15 seconds. Utilized hard coded time as a trigger to keep it readable.\nactions.racials+=/ancestral_call,if=variable.major_cooldowns_active||pet.gargoyle.active&pet.gargoyle.remains<=15||boss&fight_remains<=15\nactions.racials+=/arcane_pulse,if=active_enemies>=2||(rune.deficit>=5&runic_power.deficit>=60)\nactions.racials+=/fireblood,if=variable.major_cooldowns_active||pet.gargoyle.active&pet.gargoyle.remains<=buff.fireblood.duration||boss&fight_remains<=buff.fireblood.duration\nactions.racials+=/bag_of_tricks,if=active_enemies=1&(buff.unholy_strength.up||boss&fight_remains<5)\n\n## Trinkets\nactions.trinkets=use_item,name=inscrutable_quantum_device,if=(cooldown.unholy_blight.remains>20||cooldown.dark_transformation.remains_expected>20)&(active_enemies>=2||pet.army_ghoul.active||pet.apoc_ghoul.active&(talent.unholy_assault||death_knight.disable_aotd)||pet.gargoyle.active)||boss&fight_remains<21||target.time_to_pct_20<5\n# The trinket with the highest estimated value, will be used first and paired with Apocalypse (if buff is 15 seconds or less) or Blight/DT (if greater than 15 seconds)\nactions.trinkets+=/trinket1,if=!variable.specified_trinket&((trinket.1.buff_duration<=15&cooldown.apocalypse.remains>20||trinket.1.buff_duration>15&(cooldown.unholy_blight.remains>20||cooldown.dark_transformation.remains_expected>20)||active_enemies>=2&buff.dark_transformation.up)&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1))||trinket.1.buff_duration>=fight_remains\nactions.trinkets+=/trinket2,if=!variable.specified_trinket&((trinket.2.buff_duration<=15&cooldown.apocalypse.remains>20||trinket.2.buff_duration>15&(cooldown.unholy_blight.remains>20||cooldown.dark_transformation.remains_expected>20)||active_enemies>=2&buff.dark_transformation.up)&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2))||trinket.2.buff_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+=/trinket1,if=!trinket.1.has_use_buff&(trinket.2.cooldown.remains||!trinket.2.has_use_buff)\nactions.trinkets+=/trinket2,if=!trinket.2.has_use_buff&(trinket.1.cooldown.remains||!trinket.1.has_use_buff)",
["author"] = "SimulationCraft",
},
["Frost DK"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210723,
["author"] = "SimC",
["desc"] = "Death Knight Frost\nJuly 21, 2021\n\nChanges\n- Removed last-second usage of Chains of Ice as it doesn't play well in practice.",
["lists"] = {
["obliteration_pooling"] = {
{
["enabled"] = true,
["criteria"] = "variable.rw_buffs || active_enemies >= 2",
["action"] = "remorseless_winter",
["description"] = "Pooling For Obliteration: Starts 10 seconds before Pillar of Frost comes off CD",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & variable.frost_strike_conduits",
["action"] = "frost_strike",
}, -- [2]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "buff.killing_machine.react",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime",
["action"] = "howling_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.glacial_advance >= 2 & runic_power.deficit < 60",
["action"] = "glacial_advance",
}, -- [5]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "runic_power.deficit < 70",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "rune >= 3",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 4 & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [8]
},
["cold_heart"] = {
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & buff.pillar_of_frost.up & buff.cold_heart.stack >= 10 & buff.pillar_of_frost.remains < gcd * ( 1 + cooldown.frostwyrms_fury.ready )",
["action"] = "chains_of_ice",
["description"] = "Use during Pillar with Icecap/Breath",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & death_knight.runeforge.fallen_crusader & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains > 15 & ( buff.cold_heart.stack >= 10 & buff.unholy_strength.up || buff.cold_heart.stack >= 13 )",
["action"] = "chains_of_ice",
["description"] = "Outside of Pillar useage with Icecap/Breath",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & ! death_knight.runeforge.fallen_crusader & buff.cold_heart.stack >= 10 & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains > 20",
["action"] = "chains_of_ice",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & ( buff.cold_heart.stack >= 14 & buff.unholy_strength.up || buff.cold_heart.stack >= 19 || cooldown.pillar_of_frost.remains < 3 & buff.cold_heart.stack >= 14 )",
["action"] = "chains_of_ice",
["description"] = "Prevent Cold Heart overcapping during pillar",
}, -- [4]
},
["obliteration"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & variable.rw_buffs",
["action"] = "remorseless_winter",
["description"] = "Obliteration rotation",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! dot.frost_fever.ticking & ! buff.killing_machine.up & rune >= 3",
["action"] = "howling_blast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.react & spell_targets.frostscythe >= 2 & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [3]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "buff.killing_machine.react",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.glacial_advance >= 2 & ( runic_power.deficit < 10 || rune.time_to_2 > gcd ) || ( debuff.razorice.stack < 5 || debuff.razorice.remains < 15 )",
["action"] = "glacial_advance",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & variable.frost_strike_conduits",
["action"] = "frost_strike",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime & spell_targets.howling_blast >= 2",
["action"] = "howling_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "spell_targets.glacial_advance >= 2",
["action"] = "glacial_advance",
}, -- [8]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "! talent.avalanche.enabled & ! buff.killing_machine.up || talent.avalanche.enabled & ! variable.rotfc_rime || variable.rotfc_rime & rune.time_to_2 >= gcd",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime",
["action"] = "howling_blast",
}, -- [10]
{
["enabled"] = true,
["action"] = "obliterate",
["cycle_targets"] = 1,
}, -- [11]
},
["standard"] = {
{
["enabled"] = true,
["criteria"] = "variable.rw_buffs",
["action"] = "remorseless_winter",
["description"] = "Standard single-target rotation",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.react",
["action"] = "obliterate",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.frost_strike_conduits",
["action"] = "frost_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! death_knight.runeforge.razorice & ( debuff.razorice.stack < 5 || debuff.razorice.remains < 7 )",
["action"] = "glacial_advance",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.remorseless_winter.remains <= 2 * gcd & talent.gathering_storm.enabled",
["action"] = "frost_strike",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime",
["action"] = "howling_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.frozen_pulse.up & talent.frozen_pulse.enabled || variable.deaths_due_active & buff.deaths_due.stack < 4 || rune.time_to_4 <= gcd",
["action"] = "obliterate",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit < ( 15 + talent.runic_attenuation.enabled * 5 )",
["action"] = "frost_strike",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > ( 25 + talent.runic_attenuation.enabled * 5 )",
["action"] = "obliterate",
}, -- [9]
{
["action"] = "frost_strike",
["enabled"] = true,
}, -- [10]
{
["action"] = "horn_of_winter",
["enabled"] = true,
}, -- [11]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [12]
},
["aoe"] = {
{
["enabled"] = true,
["description"] = "AoE Rotation",
["action"] = "remorseless_winter",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.frostscythe.enabled",
["action"] = "glacial_advance",
}, -- [2]
{
["enabled"] = true,
["action"] = "frost_strike",
["cycle_targets"] = 1,
["criteria"] = "cooldown.remorseless_winter.remains <= 2 * gcd & talent.gathering_storm.enabled",
["description"] = "Formulaic approach to create a pseudo priority target list for applying razorice in aoe",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime",
["action"] = "howling_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.deaths_due_active & buff.deaths_due.stack < 4",
["action"] = "obliterate",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.react & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit < ( 15 + talent.runic_attenuation.enabled * 3 )",
["action"] = "glacial_advance",
}, -- [7]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "runic_power.deficit < ( 15 + talent.runic_attenuation.enabled * 5 )",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [9]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "runic_power.deficit > ( 25 + talent.runic_attenuation.enabled * 5 )",
["cycle_targets"] = 1,
}, -- [10]
{
["action"] = "glacial_advance",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["action"] = "frost_strike",
["cycle_targets"] = 1,
}, -- [12]
{
["action"] = "horn_of_winter",
["enabled"] = true,
}, -- [13]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [14]
},
["bos_pooling"] = {
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime",
["action"] = "howling_blast",
["description"] = "Breath of Sindragosa pooling rotation : starts 10s before BoS is available",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 || rune.time_to_5 <= gcd & variable.rw_buffs",
["action"] = "remorseless_winter",
}, -- [2]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "runic_power.deficit >= 25",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit < 20 & spell_targets.glacial_advance >= 2 & cooldown.pillar_of_frost.remains > 5",
["action"] = "glacial_advance",
}, -- [4]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "runic_power.deficit < 20 & cooldown.pillar_of_frost.remains > 5",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.react & runic_power.deficit > ( 15 + talent.runic_attenuation.enabled * 5 ) & spell_targets.frostscythe >= 2 & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit >= ( 35 + talent.runic_attenuation.enabled * 5 ) & spell_targets.frostscythe >= 2 & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "cooldown.pillar_of_frost.remains > rune.time_to_4 & runic_power.deficit < 40 & spell_targets.glacial_advance >= 2",
["action"] = "glacial_advance",
}, -- [8]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "cooldown.pillar_of_frost.remains > rune.time_to_4 & runic_power.deficit < 40",
["cycle_targets"] = 1,
}, -- [9]
},
["racials"] = {
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up",
["action"] = "blood_fury",
["description"] = "Racial Abilities",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up",
["action"] = "berserking",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( ! buff.pillar_of_frost.up & active_enemies >= 2 ) || ! buff.pillar_of_frost.up & ( rune.deficit >= 5 & runic_power.deficit >= 60 )",
["action"] = "arcane_pulse",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up",
["action"] = "lights_judgment",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up & buff.empower_rune_weapon.up",
["action"] = "ancestral_call",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.remains <= 8 & buff.empower_rune_weapon.up",
["action"] = "fireblood",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up & active_enemies = 1 & ( buff.pillar_of_frost.remains < 5 & talent.cold_heart.enabled || ! talent.cold_heart.enabled & buff.pillar_of_frost.remains < 3 )",
["action"] = "bag_of_tricks",
}, -- [7]
},
["default"] = {
{
["action"] = "mind_freeze",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( equipped.inscrutable_quantum_device & cooldown.inscrutable_quantum_device.ready )",
["description"] = "Prevent specified trinkets being used with automatic lines",
["var_name"] = "specified_trinket",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1 & ( raid_event.adds.in > 15 || ! raid_event.adds.exists )",
["var_name"] = "st_planning",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies >= 2 & ( ! raid_event.adds.exists || raid_event.adds.exists & ( raid_event.adds.remains > 5 || fight_remains > 10 ) )",
["var_name"] = "adds_remain",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.rime.up & ( ! runeforge.rage_of_the_frozen_champion.enabled || runeforge.rage_of_the_frozen_champion.enabled & runic_power.deficit > 8 )",
["var_name"] = "rotfc_rime",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "conduit.eradicating_blow & buff.eradicating_blow.stack = 2 || conduit.unleashed_frenzy.enabled & buff.unleashed_frenzy.remains < ( gcd * 2 )",
["var_name"] = "frost_strike_conduits",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "death_and_decay.ticking & covenant.night_fae",
["var_name"] = "deaths_due_active",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "conduit.everfrost & talent.gathering_storm.enabled & ! talent.obliteration.enabled & cooldown.pillar_of_frost.remains",
["action"] = "remorseless_winter",
["description"] = "Apply Frost Fever, maintain Icy Talons and keep Remorseless Winter rolling",
}, -- [8]
{
["enabled"] = true,
["action"] = "howling_blast",
["criteria"] = "dot.frost_fever.refreshable & ( talent.icecap.enabled || ! buff.breath_of_sindragosa.up & talent.breath_of_sindragosa.enabled || talent.obliteration.enabled & cooldown.pillar_of_frost.remains & ! buff.killing_machine.up )",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.icy_talons.remains <= gcd & buff.icy_talons.up & spell_targets.glacial_advance >= 2 & ( ! talent.breath_of_sindragosa.enabled || cooldown.breath_of_sindragosa.remains > 15 )",
["action"] = "glacial_advance",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.icy_talons.remains <= gcd & buff.icy_talons.up & ( ! talent.breath_of_sindragosa.enabled || ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > 10 )",
["action"] = "frost_strike",
}, -- [11]
{
["enabled"] = true,
["description"] = "Choose Action list to run",
["action"] = "call_action_list",
["list_name"] = "covenants",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "racials",
}, -- [13]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "talent.cold_heart.enabled & ( ! buff.killing_machine.up || talent.breath_of_sindragosa.enabled ) & ( debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice )",
["action"] = "call_action_list",
["list_name"] = "cold_heart",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.breath_of_sindragosa.up",
["action"] = "run_action_list",
["list_name"] = "bos_ticking",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.remains < 10 ) & ( raid_event.adds.in > 25 || ! raid_event.adds.exists || cooldown.pillar_of_frost.remains < 10 & raid_event.adds.exists & raid_event.adds.in < 10 )",
["action"] = "run_action_list",
["list_name"] = "bos_pooling",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up & talent.obliteration.enabled",
["action"] = "run_action_list",
["list_name"] = "obliteration",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & cooldown.pillar_of_frost.remains < 10 & ( variable.st_planning || raid_event.adds.exists & raid_event.adds.in < 10 || ! raid_event.adds.exists )",
["action"] = "run_action_list",
["list_name"] = "obliteration_pooling",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2",
["action"] = "run_action_list",
["list_name"] = "aoe",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "standard",
}, -- [22]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Evaluates a trinkets cooldown, divided by pillar of frost or breath of sindragosa's cooldown. If it's value has no remainder return 1, else return 0.5.",
["criteria"] = "trinket.t1.has_use_buff & ( ! talent.breath_of_sindragosa.enabled & ( trinket.t1.cooldown.duration % cooldown.pillar_of_frost.duration = 0 ) || talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.duration % trinket.t1.cooldown.duration = 0 ) || talent.icecap.enabled )",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0.5",
["var_name"] = "trinket_1_sync",
}, -- [1]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "trinket.t2.has_use_buff & ( ! talent.breath_of_sindragosa.enabled & ( trinket.t2.cooldown.duration % cooldown.pillar_of_frost.duration = 0 ) || talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.duration % trinket.t2.cooldown.duration = 0 ) || talent.icecap.enabled )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [2]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a strength modifier to give a higher priority to strength trinkets, as well as a modifier for if a trinket will or will not sync with cooldowns.",
["criteria"] = "! trinket.t1.has_use_buff & trinket.t2.has_use_buff || trinket.t2.has_use_buff & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_buff.strength ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_buff.strength ) * ( variable.trinket_1_sync ) )",
["value"] = "2",
["action"] = "variable",
["value_else"] = "1",
["var_name"] = "trinket_priority",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.gathering_storm.enabled || conduit.everfrost.enabled || runeforge.biting_cold.enabled",
["var_name"] = "rw_buffs",
}, -- [4]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [5]
},
["cooldowns"] = {
{
["enabled"] = true,
["action"] = "potion",
["criteria"] = "buff.pillar_of_frost.up",
["description"] = "Potion",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & rune < 6 & ( variable.st_planning || variable.adds_remain ) & ( cooldown.pillar_of_frost.remains < 5 || buff.pillar_of_frost.up ) || fight_remains < 20",
["action"] = "empower_rune_weapon",
["description"] = "Cooldowns",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & runic_power.deficit > 30 & rune.time_to_5 > gcd & ( buff.breath_of_sindragosa.up || fight_remains < 20 )",
["action"] = "empower_rune_weapon",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.icecap.enabled",
["action"] = "empower_rune_weapon",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & ( variable.st_planning || variable.adds_remain ) & ( cooldown.breath_of_sindragosa.remains || cooldown.breath_of_sindragosa.ready & runic_power.deficit < 50 )",
["action"] = "pillar_of_frost",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.icecap.enabled & ! buff.pillar_of_frost.up",
["action"] = "pillar_of_frost",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ( variable.st_planning || variable.adds_remain ) & ( talent.gathering_storm.enabled & buff.remorseless_winter.up || ! talent.gathering_storm.enabled )",
["action"] = "pillar_of_frost",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up",
["action"] = "breath_of_sindragosa",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & buff.pillar_of_frost.remains < gcd & buff.pillar_of_frost.up & ! talent.obliteration.enabled & ( ! raid_event.adds.exists || raid_event.adds.in > 30 ) || fight_remains < 3",
["action"] = "frostwyrms_fury",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & ( buff.pillar_of_frost.up || raid_event.adds.in > cooldown.pillar_of_frost.remains ) & ( buff.pillar_of_frost.remains < gcd || raid_event.adds.remains < gcd )",
["action"] = "frostwyrms_fury",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & buff.pillar_of_frost.up & ( ( buff.pillar_of_frost.remains < gcd || buff.unholy_strength.up & buff.unholy_strength.remains < gcd ) & ( debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice ) )",
["action"] = "frostwyrms_fury",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & runic_power.deficit > 40 & rune <= 3 & ( buff.breath_of_sindragosa.up || cooldown.breath_of_sindragosa.remains > 40 ) || ! talent.breath_of_sindragosa.enabled & runic_power.deficit >= 25",
["action"] = "hypothermic_presence",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up",
["action"] = "raise_dead",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & ( boss & fight_remains < 3 || ! buff.breath_of_sindragosa.up & ( pet.ghoul.remains < gcd || raid_event.adds.remains < 3 & raid_event.adds.in > pet.ghoul.remains ) )",
["action"] = "sacrificial_pact",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "active_enemies > 5 || runeforge.phearomones.enabled",
["action"] = "death_and_decay",
}, -- [15]
},
["trinkets"] = {
{
["enabled"] = true,
["criteria"] = "buff.pillar_of_frost.up || target.time_to_pct_20 < 5 || boss & fight_remains < 21",
["action"] = "inscrutable_quantum_device",
["description"] = "Trinkets",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! variable.specified_trinket & buff.pillar_of_frost.up & ( ! talent.icecap.enabled || talent.icecap.enabled & buff.pillar_of_frost.remains >= 10 ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains",
["action"] = "trinket1",
["description"] = "The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.specified_trinket & buff.pillar_of_frost.up & ( ! talent.icecap.enabled || talent.icecap.enabled & buff.pillar_of_frost.remains >= 10 ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains",
["action"] = "trinket2",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ( trinket.t2.cooldown.remains || ! trinket.t2.has_use_buff ) || cooldown.pillar_of_frost.remains > 20",
["action"] = "trinket1",
["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.",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! trinket.t2.has_use_buff & ( trinket.t1.cooldown.remains || ! trinket.t1.has_use_buff ) || cooldown.pillar_of_frost.remains > 20",
["action"] = "trinket2",
}, -- [5]
},
["covenants"] = {
{
["enabled"] = true,
["criteria"] = "variable.st_planning || variable.adds_remain",
["action"] = "deaths_due",
["description"] = "Covenant Abilities",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 13 & cooldown.pillar_of_frost.remains < 3 & ! talent.breath_of_sindragosa.enabled & variable.st_planning",
["action"] = "swarming_mist",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.breath_of_sindragosa.enabled & variable.adds_remain",
["action"] = "swarming_mist",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & ( buff.breath_of_sindragosa.up & ( variable.st_planning & runic_power.deficit > 40 || variable.adds_remain & runic_power.deficit > 60 || variable.adds_remain & raid_event.adds.remains < 9 ) || ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains )",
["action"] = "swarming_mist",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.pillar_of_frost.remains < 3 & variable.st_planning & ( talent.breath_of_sindragosa.enabled & runic_power.deficit < 60 & cooldown.breath_of_sindragosa.remains < 2 || ! talent.breath_of_sindragosa.enabled )",
["action"] = "abomination_limb",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain",
["action"] = "abomination_limb",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ( cooldown.pillar_of_frost.remains < 3 || talent.icecap.enabled )",
["action"] = "shackle_the_unworthy",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain",
["action"] = "shackle_the_unworthy",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! buff.pillar_of_frost.up & ( soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled )",
["interrupt_if"] = "soulbind.volatile_solvent",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [9]
},
["bos_ticking"] = {
{
["enabled"] = true,
["action"] = "obliterate",
["cycle_targets"] = 1,
["criteria"] = "runic_power.deficit >= ( 45 + talent.runic_attenuation.enabled * 5 )",
["description"] = "Breath of Sindragosa Active Rotation",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.rw_buffs || active_enemies >= 2 || runic_power < 32",
["action"] = "remorseless_winter",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "runic_power < 32",
["action"] = "death_and_decay",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime & ( runic_power.deficit < 55 || rune.time_to_3 <= gcd || runeforge.rage_of_the_frozen_champion.enabled || spell_targets.howling_blast >= 2 ) || runic_power < 32",
["action"] = "howling_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & spell_targets.frostscythe >= 2 & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit >= 40 & rune.time_to_3 > gcd",
["action"] = "horn_of_winter",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "spell_targets.frostscythe >= 2 & ! variable.deaths_due_active",
["action"] = "frostscythe",
}, -- [7]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "runic_power.deficit > 25 || rune.time_to_3 < gcd",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "variable.rotfc_rime",
["action"] = "howling_blast",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 50",
["action"] = "arcane_torrent",
}, -- [10]
},
},
["version"] = 20210723,
["warnings"] = "WARNING: The import for 'cold_heart' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'obliteration' required some automated changes.\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (2x).\n\nWARNING: The import for 'bos_ticking' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'covenants' required some automated changes.\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 5: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 9: Converted 'soulbind.X' to 'soulbind.X.enabled' (2x).\n\nWARNING: The import for 'standard' required some automated changes.\nLine 5: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 8: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'bos_pooling' required some automated changes.\nLine 6: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'precombat' required some automated changes.\nLine 1: Converted SimC syntax %% to Lua modulus operator (%) (2x).\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 1: Converted 'trinket.1.X' to 'trinket.t1.X' (3x).\nLine 2: Converted SimC syntax %% to Lua modulus operator (%) (2x).\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 2: Converted 'trinket.2.X' to 'trinket.t2.X' (3x).\nLine 3: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 3: Converted 'trinket.1.X' to 'trinket.t1.X' (4x).\nLine 3: Converted 'trinket.2.X' to 'trinket.t2.X' (5x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 4: Converted 'conduit.X' to 'conduit.X.enabled' (1x).\n\nWARNING: The import for 'cooldowns' required some automated changes.\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 5: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 6: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 11: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 12: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 15: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\n\nWARNING: The import for 'trinkets' required some automated changes.\nLine 2: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 2: Converted 'trinket.1.X' to 'trinket.t1.X' (1x).\nLine 2: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 3: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 3: Converted 'trinket.2.X' to 'trinket.t2.X' (1x).\nLine 4: Converted 'trinket.1.X' to 'trinket.t1.X' (1x).\nLine 4: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 5: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 5: Converted 'trinket.2.X' to 'trinket.t2.X' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' (2x).\nLine 6: Converted 'conduit.X' to 'conduit.X.enabled' (1x).\nLine 8: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (3x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 11: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 16: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 18: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 19: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 20: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 3: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 8: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nThe 'use_items' action was not found in this import.\nImported 13 action lists.\n",
["profile"] = "## Death Knight Frost\n## July 21, 2021\n\n## Changes\n## - Removed last-second usage of Chains of Ice as it doesn't play well in practice.\n\n# Evaluates a trinkets cooldown, divided by pillar of frost or breath of sindragosa's cooldown. 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&(!talent.breath_of_sindragosa&(trinket.1.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.duration%%trinket.1.cooldown.duration=0)||talent.icecap)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(!talent.breath_of_sindragosa&(trinket.2.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.duration%%trinket.2.cooldown.duration=0)||talent.icecap)\n# Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a strength modifier to give a higher priority to strength trinkets, as well as a modifier for if a trinket will or will not sync with cooldowns.\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!trinket.1.has_use_buff&trinket.2.has_use_buff||trinket.2.has_use_buff&((trinket.2.cooldown.duration%trinket.2.buff_duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.buff_duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=rw_buffs,value=talent.gathering_storm||conduit.everfrost||runeforge.biting_cold\nactions.precombat+=/fleshcraft\n\n## Executed every time the actor is available.\nactions=mind_freeze\n# Prevent specified trinkets being used with automatic lines\nactions+=/variable,name=specified_trinket,value=(equipped.inscrutable_quantum_device&cooldown.inscrutable_quantum_device.ready)\nactions+=/variable,name=st_planning,value=active_enemies=1&(raid_event.adds.in>15||!raid_event.adds.exists)\nactions+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists||raid_event.adds.exists&(raid_event.adds.remains>5||fight_remains>10))\nactions+=/variable,name=rotfc_rime,value=buff.rime.up&(!runeforge.rage_of_the_frozen_champion||runeforge.rage_of_the_frozen_champion&runic_power.deficit>8)\nactions+=/variable,name=frost_strike_conduits,value=conduit.eradicating_blow&buff.eradicating_blow.stack=2||conduit.unleashed_frenzy&buff.unleashed_frenzy.remains<(gcd*2)\nactions+=/variable,name=deaths_due_active,value=death_and_decay.ticking&covenant.night_fae\n# Apply Frost Fever, maintain Icy Talons and keep Remorseless Winter rolling\nactions+=/remorseless_winter,if=conduit.everfrost&talent.gathering_storm&!talent.obliteration&cooldown.pillar_of_frost.remains\nactions+=/howling_blast,cycle_targets=1,if=dot.frost_fever.refreshable&(talent.icecap||!buff.breath_of_sindragosa.up&talent.breath_of_sindragosa||talent.obliteration&cooldown.pillar_of_frost.remains&!buff.killing_machine.up)\nactions+=/glacial_advance,if=buff.icy_talons.remains<=gcd&buff.icy_talons.up&spell_targets.glacial_advance>=2&(!talent.breath_of_sindragosa||cooldown.breath_of_sindragosa.remains>15)\nactions+=/frost_strike,if=buff.icy_talons.remains<=gcd&buff.icy_talons.up&(!talent.breath_of_sindragosa||!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>10)\n# Choose Action list to run\nactions+=/call_action_list,name=covenants\nactions+=/call_action_list,name=racials\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=cold_heart,if=talent.cold_heart&(!buff.killing_machine.up||talent.breath_of_sindragosa)&(debuff.razorice.stack=5||!death_knight.runeforge.razorice)\nactions+=/run_action_list,name=bos_ticking,if=buff.breath_of_sindragosa.up\nactions+=/run_action_list,name=bos_pooling,if=talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.remains<10)&(raid_event.adds.in>25||!raid_event.adds.exists||cooldown.pillar_of_frost.remains<10&raid_event.adds.exists&raid_event.adds.in<10)\nactions+=/run_action_list,name=obliteration,if=buff.pillar_of_frost.up&talent.obliteration\nactions+=/run_action_list,name=obliteration_pooling,if=talent.obliteration&cooldown.pillar_of_frost.remains<10&(variable.st_planning||raid_event.adds.exists&raid_event.adds.in<10||!raid_event.adds.exists)\nactions+=/run_action_list,name=aoe,if=active_enemies>=2\nactions+=/call_action_list,name=standard\n\n# AoE Rotation\nactions.aoe=remorseless_winter\nactions.aoe+=/glacial_advance,if=talent.frostscythe\n# Formulaic approach to create a pseudo priority target list for applying razorice in aoe\nactions.aoe+=/frost_strike,cycle_targets=1,if=cooldown.remorseless_winter.remains<=2*gcd&talent.gathering_storm\nactions.aoe+=/howling_blast,if=variable.rotfc_rime\nactions.aoe+=/obliterate,if=variable.deaths_due_active&buff.deaths_due.stack<4\nactions.aoe+=/frostscythe,if=buff.killing_machine.react&!variable.deaths_due_active\nactions.aoe+=/glacial_advance,if=runic_power.deficit<(15+talent.runic_attenuation*3)\nactions.aoe+=/frost_strike,cycle_targets=1,if=runic_power.deficit<(15+talent.runic_attenuation*5)\nactions.aoe+=/frostscythe,if=!variable.deaths_due_active\nactions.aoe+=/obliterate,cycle_targets=1,if=runic_power.deficit>(25+talent.runic_attenuation*5)\nactions.aoe+=/glacial_advance\nactions.aoe+=/frost_strike,cycle_targets=1\nactions.aoe+=/horn_of_winter\nactions.aoe+=/arcane_torrent\n\n# Breath of Sindragosa pooling rotation : starts 10s before BoS is available\nactions.bos_pooling=howling_blast,if=variable.rotfc_rime\nactions.bos_pooling+=/remorseless_winter,if=active_enemies>=2||rune.time_to_5<=gcd&variable.rw_buffs\n## 'target_if=max:(debuff.razorice.stack+1)%(debuff.razorice.remains+1)*death_knight.runeforge.razorice' Repeats a lot, this is intended to target the highest priority enemy with an ability that will apply razorice if runeforged. That being an enemy with 0 stacks, or an enemy that the debuff will soon expire on.\nactions.bos_pooling+=/obliterate,cycle_targets=1,if=runic_power.deficit>=25\nactions.bos_pooling+=/glacial_advance,if=runic_power.deficit<20&spell_targets.glacial_advance>=2&cooldown.pillar_of_frost.remains>5\nactions.bos_pooling+=/frost_strike,cycle_targets=1,if=runic_power.deficit<20&cooldown.pillar_of_frost.remains>5\nactions.bos_pooling+=/frostscythe,if=buff.killing_machine.react&runic_power.deficit>(15+talent.runic_attenuation*5)&spell_targets.frostscythe>=2&!variable.deaths_due_active\nactions.bos_pooling+=/frostscythe,if=runic_power.deficit>=(35+talent.runic_attenuation*5)&spell_targets.frostscythe>=2&!variable.deaths_due_active\nactions.bos_pooling+=/glacial_advance,if=cooldown.pillar_of_frost.remains>rune.time_to_4&runic_power.deficit<40&spell_targets.glacial_advance>=2\nactions.bos_pooling+=/frost_strike,cycle_targets=1,if=cooldown.pillar_of_frost.remains>rune.time_to_4&runic_power.deficit<40\n\n# Breath of Sindragosa Active Rotation\nactions.bos_ticking=obliterate,cycle_targets=1,if=runic_power.deficit>=(45+talent.runic_attenuation*5)\nactions.bos_ticking+=/remorseless_winter,if=variable.rw_buffs||active_enemies>=2||runic_power<32\nactions.bos_ticking+=/death_and_decay,if=runic_power<32\nactions.bos_ticking+=/howling_blast,if=variable.rotfc_rime&(runic_power.deficit<55||rune.time_to_3<=gcd||runeforge.rage_of_the_frozen_champion||spell_targets.howling_blast>=2)||runic_power<32\nactions.bos_ticking+=/frostscythe,if=buff.killing_machine.up&spell_targets.frostscythe>=2&!variable.deaths_due_active\nactions.bos_ticking+=/horn_of_winter,if=runic_power.deficit>=40&rune.time_to_3>gcd\nactions.bos_ticking+=/frostscythe,if=spell_targets.frostscythe>=2&!variable.deaths_due_active\nactions.bos_ticking+=/obliterate,cycle_targets=1,if=runic_power.deficit>25||rune.time_to_3<gcd\nactions.bos_ticking+=/howling_blast,if=variable.rotfc_rime\nactions.bos_ticking+=/arcane_torrent,if=runic_power.deficit>50\n\n## Cold Heart Conditions\n## actions.cold_heart=chains_of_ice,if=fight_remains<gcd&(rune<2||!buff.killing_machine.up&(!main_hand.2h&buff.cold_heart.stack>=4+runeforge.koltiras_favor||main_hand.2h&buff.cold_heart.stack>8+runeforge.koltiras_favor)||buff.killing_machine.up&(!main_hand.2h&buff.cold_heart.stack>8+runeforge.koltiras_favor||main_hand.2h&buff.cold_heart.stack>10+runeforge.koltiras_favor))\n# Use during Pillar with Icecap/Breath\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&buff.pillar_of_frost.up&buff.cold_heart.stack>=10&buff.pillar_of_frost.remains<gcd*(1+cooldown.frostwyrms_fury.ready)\n# Outside of Pillar useage with Icecap/Breath\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&death_knight.runeforge.fallen_crusader&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains>15&(buff.cold_heart.stack>=10&buff.unholy_strength.up||buff.cold_heart.stack>=13)\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&!death_knight.runeforge.fallen_crusader&buff.cold_heart.stack>=10&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains>20\n# Prevent Cold Heart overcapping during pillar\nactions.cold_heart+=/chains_of_ice,if=talent.obliteration&!buff.pillar_of_frost.up&(buff.cold_heart.stack>=14&buff.unholy_strength.up||buff.cold_heart.stack>=19||cooldown.pillar_of_frost.remains<3&buff.cold_heart.stack>=14)\n\n# Potion\nactions.cooldowns=potion,if=buff.pillar_of_frost.up\n# Cooldowns\nactions.cooldowns+=/empower_rune_weapon,if=talent.obliteration&rune<6&(variable.st_planning||variable.adds_remain)&(cooldown.pillar_of_frost.remains<5||buff.pillar_of_frost.up)||fight_remains<20\nactions.cooldowns+=/empower_rune_weapon,if=talent.breath_of_sindragosa&runic_power.deficit>30&rune.time_to_5>gcd&(buff.breath_of_sindragosa.up||fight_remains<20)\nactions.cooldowns+=/empower_rune_weapon,if=talent.icecap\nactions.cooldowns+=/pillar_of_frost,if=talent.breath_of_sindragosa&(variable.st_planning||variable.adds_remain)&(cooldown.breath_of_sindragosa.remains||cooldown.breath_of_sindragosa.ready&runic_power.deficit<50)\nactions.cooldowns+=/pillar_of_frost,if=talent.icecap&!buff.pillar_of_frost.up\nactions.cooldowns+=/pillar_of_frost,if=talent.obliteration&(variable.st_planning||variable.adds_remain)&(talent.gathering_storm.enabled&buff.remorseless_winter.up||!talent.gathering_storm.enabled)\nactions.cooldowns+=/breath_of_sindragosa,if=buff.pillar_of_frost.up\nactions.cooldowns+=/frostwyrms_fury,if=active_enemies=1&buff.pillar_of_frost.remains<gcd&buff.pillar_of_frost.up&!talent.obliteration&(!raid_event.adds.exists||raid_event.adds.in>30)||fight_remains<3\nactions.cooldowns+=/frostwyrms_fury,if=active_enemies>=2&(buff.pillar_of_frost.up||raid_event.adds.in>cooldown.pillar_of_frost.remains)&(buff.pillar_of_frost.remains<gcd||raid_event.adds.remains<gcd)\nactions.cooldowns+=/frostwyrms_fury,if=talent.obliteration&buff.pillar_of_frost.up&((buff.pillar_of_frost.remains<gcd||buff.unholy_strength.up&buff.unholy_strength.remains<gcd)&(debuff.razorice.stack=5||!death_knight.runeforge.razorice))\nactions.cooldowns+=/hypothermic_presence,if=talent.breath_of_sindragosa&runic_power.deficit>40&rune<=3&(buff.breath_of_sindragosa.up||cooldown.breath_of_sindragosa.remains>40)||!talent.breath_of_sindragosa&runic_power.deficit>=25\nactions.cooldowns+=/raise_dead,if=buff.pillar_of_frost.up\nactions.cooldowns+=/sacrificial_pact,if=active_enemies>=2&(boss&fight_remains<3||!buff.breath_of_sindragosa.up&(pet.ghoul.remains<gcd||raid_event.adds.remains<3&raid_event.adds.in>pet.ghoul.remains))\nactions.cooldowns+=/death_and_decay,if=active_enemies>5||runeforge.phearomones\n\n# Covenant Abilities\nactions.covenants=deaths_due,if=variable.st_planning||variable.adds_remain\nactions.covenants+=/swarming_mist,if=runic_power.deficit>13&cooldown.pillar_of_frost.remains<3&!talent.breath_of_sindragosa&variable.st_planning\nactions.covenants+=/swarming_mist,if=!talent.breath_of_sindragosa&variable.adds_remain\nactions.covenants+=/swarming_mist,if=talent.breath_of_sindragosa&(buff.breath_of_sindragosa.up&(variable.st_planning&runic_power.deficit>40||variable.adds_remain&runic_power.deficit>60||variable.adds_remain&raid_event.adds.remains<9)||!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains)\nactions.covenants+=/abomination_limb,if=cooldown.pillar_of_frost.remains<3&variable.st_planning&(talent.breath_of_sindragosa&runic_power.deficit<60&cooldown.breath_of_sindragosa.remains<2||!talent.breath_of_sindragosa)\nactions.covenants+=/abomination_limb,if=variable.adds_remain\nactions.covenants+=/shackle_the_unworthy,if=variable.st_planning&(cooldown.pillar_of_frost.remains<3||talent.icecap)\nactions.covenants+=/shackle_the_unworthy,if=variable.adds_remain\nactions.covenants+=/fleshcraft,if=!buff.pillar_of_frost.up&(soulbind.pustule_eruption||soulbind.volatile_solvent),interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent\n\n# Obliteration rotation\nactions.obliteration=remorseless_winter,if=active_enemies>=3&variable.rw_buffs\nactions.obliteration+=/howling_blast,target_if=!dot.frost_fever.ticking&!buff.killing_machine.up&rune>=3\nactions.obliteration+=/frostscythe,if=buff.killing_machine.react&spell_targets.frostscythe>=2&!variable.deaths_due_active\nactions.obliteration+=/obliterate,cycle_targets=1,if=buff.killing_machine.react\nactions.obliteration+=/glacial_advance,if=spell_targets.glacial_advance>=2&(runic_power.deficit<10||rune.time_to_2>gcd)||(debuff.razorice.stack<5||debuff.razorice.remains<15)\nactions.obliteration+=/frost_strike,if=active_enemies=1&variable.frost_strike_conduits\nactions.obliteration+=/howling_blast,if=variable.rotfc_rime&spell_targets.howling_blast>=2\nactions.obliteration+=/glacial_advance,if=spell_targets.glacial_advance>=2\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!talent.avalanche&!buff.killing_machine.up||talent.avalanche&!variable.rotfc_rime||variable.rotfc_rime&rune.time_to_2>=gcd\nactions.obliteration+=/howling_blast,if=variable.rotfc_rime\nactions.obliteration+=/obliterate,cycle_targets=1\n\n# Pooling For Obliteration: Starts 10 seconds before Pillar of Frost comes off CD\nactions.obliteration_pooling=remorseless_winter,if=variable.rw_buffs||active_enemies>=2\nactions.obliteration_pooling+=/frost_strike,if=active_enemies=1&variable.frost_strike_conduits\nactions.obliteration_pooling+=/obliterate,cycle_targets=1,if=buff.killing_machine.react\nactions.obliteration_pooling+=/howling_blast,if=variable.rotfc_rime\nactions.obliteration_pooling+=/glacial_advance,if=spell_targets.glacial_advance>=2&runic_power.deficit<60\nactions.obliteration_pooling+=/frost_strike,cycle_targets=1,if=runic_power.deficit<70\nactions.obliteration_pooling+=/obliterate,cycle_targets=1,if=rune>=3\nactions.obliteration_pooling+=/frostscythe,if=active_enemies>=4&!variable.deaths_due_active\n\n# Racial Abilities\nactions.racials=blood_fury,if=buff.pillar_of_frost.up\nactions.racials+=/berserking,if=buff.pillar_of_frost.up\nactions.racials+=/arcane_pulse,if=(!buff.pillar_of_frost.up&active_enemies>=2)||!buff.pillar_of_frost.up&(rune.deficit>=5&runic_power.deficit>=60)\nactions.racials+=/lights_judgment,if=buff.pillar_of_frost.up\nactions.racials+=/ancestral_call,if=buff.pillar_of_frost.up&buff.empower_rune_weapon.up\nactions.racials+=/fireblood,if=buff.pillar_of_frost.remains<=8&buff.empower_rune_weapon.up\nactions.racials+=/bag_of_tricks,if=buff.pillar_of_frost.up&active_enemies=1&(buff.pillar_of_frost.remains<5&talent.cold_heart.enabled||!talent.cold_heart.enabled&buff.pillar_of_frost.remains<3)\n\n# Standard single-target rotation\nactions.standard=remorseless_winter,if=variable.rw_buffs\nactions.standard+=/obliterate,if=buff.killing_machine.react\nactions.standard+=/frost_strike,if=variable.frost_strike_conduits\nactions.standard+=/glacial_advance,if=!death_knight.runeforge.razorice&(debuff.razorice.stack<5||debuff.razorice.remains<7)\nactions.standard+=/frost_strike,if=cooldown.remorseless_winter.remains<=2*gcd&talent.gathering_storm\nactions.standard+=/howling_blast,if=variable.rotfc_rime\nactions.standard+=/obliterate,if=!buff.frozen_pulse.up&talent.frozen_pulse||variable.deaths_due_active&buff.deaths_due.stack<4||rune.time_to_4<=gcd\nactions.standard+=/frost_strike,if=runic_power.deficit<(15+talent.runic_attenuation*5)\nactions.standard+=/obliterate,if=runic_power.deficit>(25+talent.runic_attenuation*5)\nactions.standard+=/frost_strike\nactions.standard+=/horn_of_winter\nactions.standard+=/arcane_torrent\n\n# Trinkets\nactions.trinkets=inscrutable_quantum_device,if=buff.pillar_of_frost.up||target.time_to_pct_20<5||boss&fight_remains<21\n# The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.\nactions.trinkets+=/trinket1,if=!variable.specified_trinket&buff.pillar_of_frost.up&(!talent.icecap||talent.icecap&buff.pillar_of_frost.remains>=10)&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.buff_duration>=fight_remains\nactions.trinkets+=/trinket2,if=!variable.specified_trinket&buff.pillar_of_frost.up&(!talent.icecap||talent.icecap&buff.pillar_of_frost.remains>=10)&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.buff_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+=/trinket1,if=!trinket.1.has_use_buff&(trinket.2.cooldown.remains||!trinket.2.has_use_buff)||cooldown.pillar_of_frost.remains>20\nactions.trinkets+=/trinket2,if=!trinket.2.has_use_buff&(trinket.1.cooldown.remains||!trinket.1.has_use_buff)||cooldown.pillar_of_frost.remains>20",
["spec"] = 251,
},
["Blood"] = {
["source"] = "SimulationCraft",
["builtIn"] = true,
["date"] = 20210705,
["spec"] = 250,
["desc"] = "Blood Death Knight\nJuly 5, 2021",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "mind_freeze",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.bone_shield.remains < 3 * gcd.execute || ( buff.bone_shield.remains <= rune.time_to_3 || buff.bone_shield.remains <= ( gcd + cooldown.blooddrinker.ready * talent.blooddrinker.enabled * 2 ) || buff.bone_shield.stack < 5 ) & runic_power.deficit >= 20",
["action"] = "marrowrend",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "tanking || incoming_damage_5s > 0",
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cooldown.dancing_rune_weapon.ready & ( ! cooldown.blooddrinker.ready || ! talent.blooddrinker.enabled )",
["action"] = "blood_fury",
}, -- [4]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 || rune < 1 & runic_power.deficit > 60",
["action"] = "arcane_pulse",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.unholy_strength.up",
["action"] = "lights_judgment",
}, -- [7]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [8]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [9]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["description"] = "Since the potion cooldown has changed, we'll sync with DRW",
["action"] = "potion",
["criteria"] = "buff.dancing_rune_weapon.up",
}, -- [11]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [12]
{
["action"] = "raise_dead",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! buff.dancing_rune_weapon.up & ( ! covenant.night_fae || buff.deaths_due.remains > 7 )",
["action"] = "blooddrinker",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "charges >= 2 & ( covenant.kyrian || buff.dancing_rune_weapon.up )",
["action"] = "blood_boil",
}, -- [15]
{
["action"] = "raise_dead",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "fight_remains < 3",
["action"] = "death_strike",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "covenants",
}, -- [18]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "standard",
}, -- [19]
},
["precombat"] = {
{
["enabled"] = true,
["description"] = "Executed before combat begins. Accepts non-harmful actions only.",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [1]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [2]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [3]
},
["standard"] = {
{
["enabled"] = true,
["criteria"] = "runic_power.deficit <= 10 & ( ! talent.bonestorm.enabled || ! cooldown.bonestorm.ready || buff.dancing_rune_weapon.up )",
["action"] = "death_strike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "pet.ghoul.remains < gcd * 2",
["action"] = "sacrificial_pact",
}, -- [2]
{
["enabled"] = true,
["description"] = "Use blood tap to prevent overcapping charges if we have space for a rune and a GCD to spare to burn it",
["criteria"] = "rune <= 2 & rune.time_to_4 > gcd & charges_fractional >= 1.8",
["action"] = "blood_tap",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.blooddrinker.enabled || ! cooldown.blooddrinker.ready",
["action"] = "dancing_rune_weapon",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.bone_shield.stack >= 7 & rune >= 2",
["action"] = "tombstone",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bone_shield.stack < 6 & runic_power.deficit >= 15 & ( ! covenant.night_fae || buff.deaths_due.remains > 5 )",
["action"] = "marrowrend",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.blooddrinker.enabled & death_and_decay.remains < 5 & runic_power.deficit <= ( 15 + buff.dancing_rune_weapon.up * 5 + spell_targets.heart_strike * talent.heartbreaker.enabled * 2 )",
["action"] = "heart_strike",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.8 & ( buff.hemostasis.stack <= ( 5 - spell_targets.blood_boil ) || spell_targets.blood_boil > 2 )",
["action"] = "blood_boil",
}, -- [8]
{
["enabled"] = true,
["description"] = "Mark of Blood does not pandemic-extend.",
["criteria"] = "debuff.mark_of_blood.down & fight_remains > 7.5",
["action"] = "mark_of_blood",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( buff.crimson_scourge.up & talent.relish_in_blood.enabled ) & runic_power.deficit > 10",
["action"] = "death_and_decay",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "runic_power >= 100 & ! buff.dancing_rune_weapon.up",
["action"] = "bonestorm",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit <= ( 15 + buff.dancing_rune_weapon.up * 5 + spell_targets.heart_strike * talent.heartbreaker.enabled * 2 ) || fight_remains < 10",
["action"] = "death_strike",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "spell_targets.death_and_decay >= 3",
["action"] = "death_and_decay",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up || rune.time_to_4 < gcd",
["action"] = "heart_strike",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up",
["action"] = "blood_boil",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "rune.time_to_3 > gcd",
["action"] = "blood_tap",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.crimson_scourge.up || talent.rapid_decomposition.enabled || spell_targets.death_and_decay >= 2",
["action"] = "death_and_decay",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.bone_shield.remains > 3 * gcd",
["action"] = "consumption",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.1 & buff.bone_shield.remains > 3 * gcd",
["action"] = "blood_boil",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "rune > 1 & ( rune.time_to_3 < gcd || buff.bone_shield.stack > 7 & buff.bone_shield.remains > rune.time_to_3 + gcd )",
["action"] = "heart_strike",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 20",
["action"] = "arcane_torrent",
}, -- [21]
},
["covenants"] = {
{
["enabled"] = true,
["description"] = "Burn RP if we have time between DD refreshes",
["criteria"] = "covenant.night_fae & buff.deaths_due.remains > 6 & runic_power > 70",
["action"] = "death_strike",
}, -- [1]
{
["enabled"] = true,
["description"] = "Make sure we never lose that buff",
["criteria"] = "covenant.night_fae & death_and_decay.ticking & ( ( buff.deaths_due.up || buff.dancing_rune_weapon.up ) & buff.deaths_due.remains < 6 )",
["action"] = "heart_strike",
}, -- [2]
{
["enabled"] = true,
["description"] = "And that we always cast DD as high prio when we actually need it",
["criteria"] = "! buff.deaths_due.up || buff.deaths_due.remains < 4 || buff.crimson_scourge.up",
["action"] = "deaths_due",
}, -- [3]
{
["enabled"] = true,
["description"] = "Attempt to sacrifice the ghoul if we predictably will not do much in the near future",
["criteria"] = "( ! covenant.night_fae || buff.deaths_due.remains > 6 ) & ! buff.dancing_rune_weapon.up & ( pet.ghoul.remains < 10 || target.time_to_die < gcd )",
["action"] = "sacrificial_pact",
}, -- [4]
{
["enabled"] = true,
["description"] = "Burn RP off just before swarming comes back off CD",
["criteria"] = "covenant.venthyr & runic_power > 70 & cooldown.swarming_mist.remains < 3",
["action"] = "death_strike",
}, -- [5]
{
["enabled"] = true,
["description"] = "And swarming as long as we're not < 3s off DRW",
["criteria"] = "! buff.dancing_rune_weapon.up",
["action"] = "swarming_mist",
}, -- [6]
{
["enabled"] = true,
["description"] = "Pre-AL marrow on pull in order to guarantee ossuary during the first DRW",
["criteria"] = "covenant.necrolord & buff.bone_shield.stack <= 0",
["action"] = "marrowrend",
}, -- [7]
{
["enabled"] = true,
["description"] = "And we cast AL",
["criteria"] = "! buff.dancing_rune_weapon.up",
["action"] = "abomination_limb",
}, -- [8]
{
["enabled"] = true,
["description"] = "We just don't cast this during DRW",
["criteria"] = "cooldown.dancing_rune_weapon.remains < 3 || ! buff.dancing_rune_weapon.up",
["action"] = "shackle_the_unworthy",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled",
["interrupt_if"] = "soulbind.volatile_solvent",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [10]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "health.pct < 50 || ( ! group & health.pct < 66 )",
["action"] = "vampiric_blood",
}, -- [1]
{
["enabled"] = true,
["description"] = "Incoming damage requirement is 25% of max health solo, 50% of max health in a group.",
["criteria"] = "incoming_damage_3s >= health.current",
["action"] = "death_strike",
}, -- [2]
{
["enabled"] = true,
["description"] = "Don't let an existing Blood Shield drop.",
["criteria"] = "save_blood_shield & incoming_damage_5s > 0 & buff.blood_shield.up & buff.blood_shield.remains < 1.5 * gcd",
["action"] = "death_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "tanking & buff.rune_tap.down & incoming_damage_3s > health.max * 0.1",
["action"] = "rune_tap",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "health.pct < 50 - ( 20 * buff.blood_shield.up )",
["action"] = "icebound_fortitude",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "health.pct < 75 & pet.ghoul.remains < 5",
["action"] = "sacrificial_pact",
}, -- [6]
},
},
["version"] = 20210705,
["warnings"] = "WARNING: The import for 'covenants' required some automated changes.\nLine 10: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 10: Converted 'soulbind.X' to 'soulbind.X.enabled' at EOL (1x).\n\nImported 5 action lists.\n",
["profile"] = "# Blood Death Knight\n# July 5, 2021\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat=use_item,name=azsharas_font_of_power\nactions.precombat+=/use_item,effect_name=cyclotronic_blast\nactions.precombat+=/fleshcraft\n\n# Executed every time the actor is available.\nactions=mind_freeze\nactions+=/marrowrend,if=buff.bone_shield.remains<3*gcd.execute||(buff.bone_shield.remains<=rune.time_to_3||buff.bone_shield.remains<=(gcd+cooldown.blooddrinker.ready*talent.blooddrinker.enabled*2)||buff.bone_shield.stack<5)&runic_power.deficit>=20\nactions+=/call_action_list,name=mitigation,if=tanking||incoming_damage_5s>0\nactions+=/blood_fury,if=cooldown.dancing_rune_weapon.ready&(!cooldown.blooddrinker.ready||!talent.blooddrinker.enabled)\nactions+=/berserking\nactions+=/arcane_pulse,if=active_enemies>=2||rune<1&runic_power.deficit>60\nactions+=/lights_judgment,if=buff.unholy_strength.up\nactions+=/ancestral_call\nactions+=/fireblood\nactions+=/bag_of_tricks\n# Since the potion cooldown has changed, we'll sync with DRW\nactions+=/potion,if=buff.dancing_rune_weapon.up\nactions+=/use_items\nactions+=/raise_dead\nactions+=/blooddrinker,if=!buff.dancing_rune_weapon.up&(!covenant.night_fae||buff.deaths_due.remains>7)\nactions+=/blood_boil,if=charges>=2&(covenant.kyrian||buff.dancing_rune_weapon.up)\nactions+=/raise_dead\nactions+=/death_strike,if=fight_remains<3\nactions+=/call_action_list,name=covenants\nactions+=/call_action_list,name=standard\n\n# Burn RP if we have time between DD refreshes\nactions.covenants=death_strike,if=covenant.night_fae&buff.deaths_due.remains>6&runic_power>70\n# Make sure we never lose that buff\nactions.covenants+=/heart_strike,if=covenant.night_fae&death_and_decay.ticking&((buff.deaths_due.up||buff.dancing_rune_weapon.up)&buff.deaths_due.remains<6)\n# And that we always cast DD as high prio when we actually need it\nactions.covenants+=/deaths_due,if=!buff.deaths_due.up||buff.deaths_due.remains<4||buff.crimson_scourge.up\n# Attempt to sacrifice the ghoul if we predictably will not do much in the near future\nactions.covenants+=/sacrificial_pact,if=(!covenant.night_fae||buff.deaths_due.remains>6)&!buff.dancing_rune_weapon.up&(pet.ghoul.remains<10||target.time_to_die<gcd)\n# Burn RP off just before swarming comes back off CD\nactions.covenants+=/death_strike,if=covenant.venthyr&runic_power>70&cooldown.swarming_mist.remains<3\n# And swarming as long as we're not < 3s off DRW\nactions.covenants+=/swarming_mist,if=!buff.dancing_rune_weapon.up\n# Pre-AL marrow on pull in order to guarantee ossuary during the first DRW\nactions.covenants+=/marrowrend,if=covenant.necrolord&buff.bone_shield.stack<=0\n# And we cast AL\nactions.covenants+=/abomination_limb,if=!buff.dancing_rune_weapon.up\n# We just don't cast this during DRW\nactions.covenants+=/shackle_the_unworthy,if=cooldown.dancing_rune_weapon.remains<3||!buff.dancing_rune_weapon.up\nactions.covenants+=/fleshcraft,if=soulbind.pustule_eruption||soulbind.volatile_solvent,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent\n\nactions.mitigation=vampiric_blood,if=health.pct<50||(!group&health.pct<66)\n# Incoming damage requirement is 25% of max health solo, 50% of max health in a group.\nactions.mitigation+=/death_strike,if=incoming_damage_3s>=health.current\n# Don't let an existing Blood Shield drop.\nactions.mitigation+=/death_strike,if=save_blood_shield&incoming_damage_5s>0&buff.blood_shield.up&buff.blood_shield.remains<1.5*gcd\nactions.mitigation+=/rune_tap,if=tanking&buff.rune_tap.down&incoming_damage_3s>health.max*0.1\nactions.mitigation+=/icebound_fortitude,if=health.pct<50-(20*buff.blood_shield.up)\nactions.mitigation+=/sacrificial_pact,if=health.pct<75&pet.ghoul.remains<5\n\nactions.standard=death_strike,if=runic_power.deficit<=10&(!talent.bonestorm.enabled||!cooldown.bonestorm.ready||buff.dancing_rune_weapon.up)\nactions.standard+=/sacrificial_pact,if=pet.ghoul.remains<gcd*2\n\n## actions.standard+=/blooddrinker,if=!buff.dancing_rune_weapon.up\n## Duplicated here because the mitigation list relies on tanking/taking damage.\n## actions.standard+=/marrowrend,if=buff.bone_shield.remains<3*gcd.execute||(buff.bone_shield.remains<=rune.time_to_3||buff.bone_shield.remains<=(gcd+cooldown.blooddrinker.ready*talent.blooddrinker.enabled*2)||buff.bone_shield.stack<3)&runic_power.deficit>=20\n\n# Use blood tap to prevent overcapping charges if we have space for a rune and a GCD to spare to burn it\nactions.standard=blood_tap,if=rune<=2&rune.time_to_4>gcd&charges_fractional>=1.8\nactions.standard+=/dancing_rune_weapon,if=!talent.blooddrinker.enabled||!cooldown.blooddrinker.ready\nactions.standard+=/tombstone,if=buff.bone_shield.stack>=7&rune>=2\n## actions.standard+=/marrowrend,if=(!covenant.necrolord||buff.abomination_limb.up)&(buff.bone_shield.remains<=rune.time_to_3||buff.bone_shield.remains<=(gcd+cooldown.blooddrinker.ready*talent.blooddrinker.enabled*2)||buff.bone_shield.stack<5)&runic_power.deficit>=20\n## actions.standard+=/death_strike,if=runic_power.deficit<=70\nactions.standard+=/marrowrend,if=buff.bone_shield.stack<6&runic_power.deficit>=15&(!covenant.night_fae||buff.deaths_due.remains>5)\nactions.standard+=/heart_strike,if=!talent.blooddrinker.enabled&death_and_decay.remains<5&runic_power.deficit<=(15+buff.dancing_rune_weapon.up*5+spell_targets.heart_strike*talent.heartbreaker.enabled*2)\nactions.standard+=/blood_boil,if=charges_fractional>=1.8&(buff.hemostasis.stack<=(5-spell_targets.blood_boil)||spell_targets.blood_boil>2)\n# Mark of Blood does not pandemic-extend.\nactions.standard+=/mark_of_blood,if=debuff.mark_of_blood.down&fight_remains>7.5\nactions.standard+=/death_and_decay,if=(buff.crimson_scourge.up&talent.relish_in_blood.enabled)&runic_power.deficit>10\nactions.standard+=/bonestorm,if=runic_power>=100&!buff.dancing_rune_weapon.up\nactions.standard+=/death_strike,if=runic_power.deficit<=(15+buff.dancing_rune_weapon.up*5+spell_targets.heart_strike*talent.heartbreaker.enabled*2)||fight_remains<10\nactions.standard+=/death_and_decay,if=spell_targets.death_and_decay>=3\nactions.standard+=/heart_strike,if=buff.dancing_rune_weapon.up||rune.time_to_4<gcd\nactions.standard+=/blood_boil,if=buff.dancing_rune_weapon.up\nactions.standard+=/blood_tap,if=rune.time_to_3>gcd\nactions.standard+=/death_and_decay,if=buff.crimson_scourge.up||talent.rapid_decomposition.enabled||spell_targets.death_and_decay>=2\nactions.standard+=/consumption,if=buff.bone_shield.remains>3*gcd\nactions.standard+=/blood_boil,if=charges_fractional>=1.1&buff.bone_shield.remains>3*gcd\nactions.standard+=/heart_strike,if=rune>1&(rune.time_to_3<gcd||buff.bone_shield.stack>7&buff.bone_shield.remains>rune.time_to_3+gcd)\nactions.standard+=/arcane_torrent,if=runic_power.deficit>20",
["author"] = "SimC + Hekili",
},
},
},
["Quilberg - Thunderhorn"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["resetRogueMfDOption_20200226"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetAllPotions_20201209"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[73] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["shockwave_interrupt"] = true,
["free_revenge"] = true,
["heroic_charge"] = false,
},
["aoe"] = 2,
["enhancedRecheck"] = false,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["damage"] = true,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["package"] = "Protection Warrior",
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_phantom_fire",
["buffPadding"] = 0,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["debuffPadding"] = 0,
["damageRange"] = 0,
},
[71] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["aoe"] = 2,
["enhancedRecheck"] = false,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["package"] = "Arms",
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["damage"] = true,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "spectral_strength",
["buffPadding"] = 0,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["debuffPadding"] = 0,
["damageRange"] = 0,
},
[72] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["check_ww_range"] = false,
["heroic_charge"] = false,
},
["aoe"] = 2,
["enhancedRecheck"] = false,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["damage"] = true,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["package"] = "Fury",
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_phantom_fire",
["buffPadding"] = 0,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["debuffPadding"] = 0,
["damageRange"] = 0,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["packs"] = {
["Arms"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210719,
["author"] = "SimulationCraft",
["desc"] = "Arms Warrior\nJuly 19, 2021\n\nChanges:\n- Added Pummel.\n- Added Victory Rush/Impending Victory.\n- Added Battle Shout to precombat APL.\n- Executioner's Precision is deleted.\n- Added Use Items.\n- Tweak entry for Bladestorm.",
["lists"] = {
["single_target"] = {
{
["enabled"] = true,
["criteria"] = "remains <= gcd",
["action"] = "rend",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "fight_remains > 140",
["action"] = "conquerors_banner",
}, -- [2]
{
["action"] = "avatar",
["enabled"] = true,
}, -- [3]
{
["action"] = "ravager",
["enabled"] = true,
}, -- [4]
{
["action"] = "warbreaker",
["enabled"] = true,
}, -- [5]
{
["action"] = "colossus_smash",
["enabled"] = true,
}, -- [6]
{
["action"] = "ancient_aftershock",
["enabled"] = true,
}, -- [7]
{
["action"] = "spear_of_bastion",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "charges = 2",
["action"] = "overpower",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "runeforge.enduring_blow.enabled || runeforge.battlelord.enabled || buff.overpower.stack >= 2",
["action"] = "mortal_strike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.react",
["action"] = "condemn",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.react",
["action"] = "execute",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "rage.deficit > 45 & buff.deadly_calm.down",
["action"] = "skullsplitter",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.deadly_calm.down & rage < 30",
["action"] = "bladestorm",
}, -- [14]
{
["action"] = "deadly_calm",
["enabled"] = true,
}, -- [15]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [16]
{
["action"] = "mortal_strike",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "remains < duration * 0.3",
["action"] = "rend",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1",
["action"] = "cleave",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled || spell_targets.whirlwind > 4 || spell_targets.whirlwind > 2 & buff.sweeping_strikes.down",
["action"] = "whirlwind",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "! talent.fervor_of_battle.enabled & ( rage > 50 || debuff.colossus_smash.up || ! runeforge.enduring_blow.enabled )",
["action"] = "slam",
}, -- [21]
},
["default"] = {
{
["action"] = "charge",
["enabled"] = true,
}, -- [1]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25",
["action"] = "potion",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "blood_fury",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.remains > 6",
["action"] = "berserking",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50",
["action"] = "arcane_torrent",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
["action"] = "lights_judgment",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "fireblood",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "ancestral_call",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
["action"] = "bag_of_tricks",
}, -- [10]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1 & ( cooldown.bladestorm.remains > 15 || talent.ravager.enabled )",
["action"] = "sweeping_strikes",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( talent.massacre.enabled & target.health.pct < 35 ) || target.health.pct < 20 || ( target.health.pct > 80 & covenant.venthyr )",
["list_name"] = "execute",
}, -- [13]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "single_target",
}, -- [14]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [15]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [16]
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [1]
},
["execute"] = {
{
["action"] = "deadly_calm",
["enabled"] = true,
}, -- [1]
{
["action"] = "conquerors_banner",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["buff_name"] = "bladestorm",
["action"] = "cancel_buff",
["criteria"] = "spell_targets.whirlwind = 1 & gcd.remains = 0 & ( rage > 75 || rage > 50 & buff.recklessness.up )",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 || target.time_to_die < 20",
["action"] = "avatar",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.ashen_juggernaut.up & buff.ashen_juggernaut.remains < gcd & conduit.ashen_juggernaut.rank > 1",
["action"] = "condemn",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.ashen_juggernaut.up & buff.ashen_juggernaut.remains < gcd & conduit.ashen_juggernaut.rank > 1",
["action"] = "execute",
}, -- [6]
{
["action"] = "ravager",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "remains <= gcd & ( ! talent.warbreaker.enabled & cooldown.colossus_smash.remains < 4 || talent.warbreaker.enabled & cooldown.warbreaker.remains < 4 ) & target.time_to_die > 12",
["action"] = "rend",
}, -- [8]
{
["action"] = "warbreaker",
["enabled"] = true,
}, -- [9]
{
["action"] = "colossus_smash",
["enabled"] = true,
}, -- [10]
{
["action"] = "ancient_aftershock",
["enabled"] = true,
}, -- [11]
{
["action"] = "spear_of_bastion",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "runeforge.signet_of_tormented_kings.enabled & ( rage.deficit < 25 || debuff.colossus_smash.up & rage > 40 || buff.sudden_death.react || buff.deadly_calm.up )",
["action"] = "condemn",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "charges = 2",
["action"] = "overpower",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1 & dot.deep_wounds.remains < gcd",
["action"] = "cleave",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "dot.deep_wounds.remains <= gcd || runeforge.enduring_blow.enabled || buff.overpower.stack = 2 & debuff.exploiter.stack = 2 || buff.battlelord.up",
["action"] = "mortal_strike",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 25 || buff.deadly_calm.up",
["action"] = "condemn",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "rage < 45",
["action"] = "skullsplitter",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.deadly_calm.down & ( rage < 20 || ! runeforge.sinful_surge.enabled & rage < 50 )",
["action"] = "bladestorm",
}, -- [19]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [20]
{
["action"] = "condemn",
["enabled"] = true,
}, -- [21]
{
["action"] = "execute",
["enabled"] = true,
}, -- [22]
},
["hac"] = {
{
["enabled"] = true,
["criteria"] = "rage < 60 & buff.deadly_calm.down",
["action"] = "skullsplitter",
}, -- [1]
{
["action"] = "conquerors_banner",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains < 1",
["action"] = "avatar",
}, -- [3]
{
["action"] = "warbreaker",
["enabled"] = true,
}, -- [4]
{
["action"] = "colossus_smash",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.deep_wounds.remains <= gcd",
["action"] = "cleave",
}, -- [6]
{
["action"] = "ancient_aftershock",
["enabled"] = true,
}, -- [7]
{
["action"] = "spear_of_bastion",
["enabled"] = true,
}, -- [8]
{
["action"] = "bladestorm",
["enabled"] = true,
}, -- [9]
{
["action"] = "ravager",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "remains <= duration * 0.3 & buff.sweeping_strikes.up",
["action"] = "rend",
}, -- [11]
{
["action"] = "cleave",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up || dot.deep_wounds.remains < gcd & ! talent.cleave.enabled",
["action"] = "mortal_strike",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.dreadnaught.enabled",
["action"] = "overpower",
}, -- [14]
{
["action"] = "condemn",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "execute",
}, -- [16]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [17]
{
["action"] = "whirlwind",
["enabled"] = true,
}, -- [18]
},
},
["version"] = 20210719,
["warnings"] = "WARNING: The import for 'single_target' required some automated changes.\nLine 10: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 10: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 21: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'execute' required some automated changes.\nLine 13: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 16: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 19: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nImported 5 action lists.\n",
["spec"] = 71,
["profile"] = "## Arms Warrior\n## July 19, 2021\n\n## Changes:\n## - Added Pummel.\n## - Added Victory Rush/Impending Victory.\n## - Added Battle Shout to precombat APL.\n## - Executioner's Precision is deleted.\n## - Added Use Items.\n## - Tweak entry for Bladestorm.\n\n## Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat+=/battle_shout\n\n## Executed every time the actor is available.\nactions=charge\nactions+=/pummel\nactions+=/potion,if=gcd.remains=0&debuff.colossus_smash.remains>8||boss&fight_remains<25\nactions+=/blood_fury,if=debuff.colossus_smash.up\nactions+=/berserking,if=debuff.colossus_smash.remains>6\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+=/fireblood,if=debuff.colossus_smash.up\nactions+=/ancestral_call,if=debuff.colossus_smash.up\nactions+=/bag_of_tricks,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains\nactions+=/use_items\nactions+=/sweeping_strikes,if=spell_targets.whirlwind>1&(cooldown.bladestorm.remains>15||talent.ravager.enabled)\nactions+=/call_action_list,name=execute,strict=1,if=(talent.massacre.enabled&target.health.pct<35)||target.health.pct<20||(target.health.pct>80&covenant.venthyr)\n## Hectic Add Cleave doesn't translate in-game, because how do you differentiate adds vs. sustained multi-target?\n## actions+=/call_action_list,name=hac,strict=1,if=spell_targets.whirlwind>1\nactions+=/call_action_list,name=single_target\nactions+=/victory_rush\nactions+=/impending_victory\n\nactions.execute=deadly_calm\nactions.execute+=/conquerors_banner\nactions.execute+=/cancel_buff,name=bladestorm,if=spell_targets.whirlwind=1&gcd.remains=0&(rage>75||rage>50&buff.recklessness.up)\nactions.execute+=/avatar,if=gcd.remains=0||target.time_to_die<20\nactions.execute+=/condemn,if=buff.ashen_juggernaut.up&buff.ashen_juggernaut.remains<gcd&conduit.ashen_juggernaut.rank>1\nactions.execute+=/execute,if=buff.ashen_juggernaut.up&buff.ashen_juggernaut.remains<gcd&conduit.ashen_juggernaut.rank>1\nactions.execute+=/ravager\nactions.execute+=/rend,if=remains<=gcd&(!talent.warbreaker.enabled&cooldown.colossus_smash.remains<4||talent.warbreaker.enabled&cooldown.warbreaker.remains<4)&target.time_to_die>12\nactions.execute+=/warbreaker\nactions.execute+=/colossus_smash\nactions.execute+=/ancient_aftershock\nactions.execute+=/spear_of_bastion\nactions.execute+=/condemn,if=runeforge.signet_of_tormented_kings&(rage.deficit<25||debuff.colossus_smash.up&rage>40||buff.sudden_death.react||buff.deadly_calm.up)\nactions.execute+=/overpower,if=charges=2\nactions.execute+=/cleave,if=spell_targets.whirlwind>1&dot.deep_wounds.remains<gcd\nactions.execute+=/mortal_strike,if=dot.deep_wounds.remains<=gcd||runeforge.enduring_blow||buff.overpower.stack=2&debuff.exploiter.stack=2||buff.battlelord.up\nactions.execute+=/condemn,if=rage.deficit<25||buff.deadly_calm.up\nactions.execute+=/skullsplitter,if=rage<45\nactions.execute+=/bladestorm,if=buff.deadly_calm.down&(rage<20||!runeforge.sinful_surge&rage<50)\nactions.execute+=/overpower\nactions.execute+=/condemn\nactions.execute+=/execute\n\nactions.hac=skullsplitter,if=rage<60&buff.deadly_calm.down\nactions.hac+=/conquerors_banner\nactions.hac+=/avatar,if=cooldown.colossus_smash.remains<1\nactions.hac+=/warbreaker\nactions.hac+=/colossus_smash\nactions.hac+=/cleave,if=dot.deep_wounds.remains<=gcd\nactions.hac+=/ancient_aftershock\nactions.hac+=/spear_of_bastion\nactions.hac+=/bladestorm\nactions.hac+=/ravager\nactions.hac+=/rend,if=remains<=duration*0.3&buff.sweeping_strikes.up\nactions.hac+=/cleave\nactions.hac+=/mortal_strike,if=buff.sweeping_strikes.up||dot.deep_wounds.remains<gcd&!talent.cleave.enabled\nactions.hac+=/overpower,if=talent.dreadnaught.enabled\nactions.hac+=/condemn\nactions.hac+=/execute,if=buff.sweeping_strikes.up\nactions.hac+=/overpower\nactions.hac+=/whirlwind\n\nactions.single_target=rend,if=remains<=gcd\nactions.single_target+=/conquerors_banner,if=fight_remains>140\nactions.single_target+=/avatar\nactions.single_target+=/ravager\nactions.single_target+=/warbreaker\nactions.single_target+=/colossus_smash\nactions.single_target+=/ancient_aftershock\nactions.single_target+=/spear_of_bastion\nactions.single_target+=/overpower,if=charges=2\nactions.single_target+=/mortal_strike,if=runeforge.enduring_blow||runeforge.battlelord||buff.overpower.stack>=2\nactions.single_target+=/condemn,if=buff.sudden_death.react\nactions.single_target+=/execute,if=buff.sudden_death.react\nactions.single_target+=/skullsplitter,if=rage.deficit>45&buff.deadly_calm.down\nactions.single_target+=/bladestorm,if=buff.deadly_calm.down&rage<30\nactions.single_target+=/deadly_calm\nactions.single_target+=/overpower\nactions.single_target+=/mortal_strike\nactions.single_target+=/rend,if=remains<duration*0.3\nactions.single_target+=/cleave,if=spell_targets.whirlwind>1\nactions.single_target+=/whirlwind,if=talent.fervor_of_battle.enabled||spell_targets.whirlwind>4||spell_targets.whirlwind>2&buff.sweeping_strikes.down\nactions.single_target+=/slam,if=!talent.fervor_of_battle.enabled&(rage>50||debuff.colossus_smash.up||!runeforge.enduring_blow)",
},
["Protection Warrior"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210627,
["spec"] = 73,
["desc"] = "Protection Warrior\nJune 27, 2021\n\nChanges\n- Add Mitigation logic to new SimC APL.\n- Lighten Shield Block and Ignore Pain damage intake requirements.\n- Remove rotational usage of Last Stand.\n- Respect \"Free Revenge\" setting and remove other restrictions.\n- Fall back to single-target priority if the AOE action list has nothing to do.",
["profile"] = "## Protection Warrior\n## June 27, 2021\n\n## Changes\n## - Add Mitigation logic to new SimC APL.\n## - Lighten Shield Block and Ignore Pain damage intake requirements.\n## - Remove rotational usage of Last Stand.\n## - Respect \"Free Revenge\" setting and remove other restrictions.\n## - Fall back to single-target priority if the AOE action list has nothing to do.\n\nactions.precombat+=/battle_shout\nactions.precombat+=/potion\n\n## Executed every time the actor is available.\nactions=charge\n# Default APL's \"Heroic Charge\" is a Heroic Leap followed by Charge to do some damage and generate Rage.\nactions+=/heroic_leap,if=settings.heroic_charge&runeforge.reprisal&cooldown.charge.remains<gcd\nactions+=/charge,if=settings.heroic_charge&runeforge.reprisal&prev.1.heroic_leap\nactions+=/pummel\nactions+=/shockwave,if=debuff.casting.up&!target.is_boss\nactions+=/use_items,if=cooldown.avatar.remains<=gcd||buff.avatar.up\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||fight_remains<25\nactions+=/call_action_list,name=mitigation,if=incoming_damage_5s>0\nactions+=/conquerors_banner,if=runeforge.glory\nactions+=/avatar\nactions+=/ancient_aftershock\nactions+=/spear_of_bastion\nactions+=/conquerors_banner\nactions+=/shield_block,if=buff.shield_block.down\nactions+=/call_action_list,name=aoe,if=spell_targets.thunder_clap>=3\nactions+=/call_action_list,name=generic\n\nactions.mitigation=ignore_pain,if=rage>50&buff.ignore_pain.down\nactions.mitigation+=/shield_block,if=(!talent.bolster.enabled||!buff.last_stand.up)&(charges_fractional>1.8||incoming_damage_5s)\nactions.mitigation+=/demoralizing_shout,line_cd=6,if=(target.within10||active_enemies>1)&((incoming_damage_5s>0.15*health.max||health.pct<30)||(!talent.booming_voice.enabled||rage.max-rage<40))\nactions.mitigation+=/last_stand,if=incoming_damage_3s>health&cooldown.anima_of_death.remains<=2\nactions.mitigation+=/shield_wall,if=incoming_damage_5s>health||health.pct<20\n\nactions.aoe=ravager\nactions.aoe+=/dragon_roar\nactions.aoe+=/thunder_clap\nactions.aoe+=/revenge\nactions.aoe+=/shield_slam\n\nactions.generic=ravager\nactions.generic+=/dragon_roar\nactions.generic+=/shield_slam,if=buff.shield_block.up\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>1||cooldown.shield_slam.remains)&talent.unstoppable_force.enabled&buff.avatar.up\nactions.generic+=/shield_slam\nactions.generic+=/condemn\nactions.generic+=/execute\nactions.generic+=/revenge,if=rage>80&target.health.pct>20||buff.revenge.up\nactions.generic+=/thunder_clap\nactions.generic+=/revenge\nactions.generic+=/victory_rush\nactions.generic+=/impending_victory\nactions.generic+=/devastate",
["version"] = 20210627,
["warnings"] = "WARNING: The import for 'default' required some automated changes.\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 16: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\n\nImported 5 action lists.\n",
["author"] = "SimulationCraft",
["lists"] = {
["generic"] = {
{
["action"] = "ravager",
["enabled"] = true,
}, -- [1]
{
["action"] = "dragon_roar",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.shield_block.up",
["action"] = "shield_slam",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap > 1 || cooldown.shield_slam.remains ) & talent.unstoppable_force.enabled & buff.avatar.up",
["action"] = "thunder_clap",
}, -- [4]
{
["action"] = "shield_slam",
["enabled"] = true,
}, -- [5]
{
["action"] = "condemn",
["enabled"] = true,
}, -- [6]
{
["action"] = "execute",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "rage > 80 & target.health.pct > 20 || buff.revenge.up",
["action"] = "revenge",
}, -- [8]
{
["action"] = "thunder_clap",
["enabled"] = true,
}, -- [9]
{
["action"] = "revenge",
["enabled"] = true,
}, -- [10]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [11]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [12]
{
["action"] = "devastate",
["enabled"] = true,
}, -- [13]
},
["default"] = {
{
["action"] = "charge",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "heroic_leap",
["description"] = "Default APL's Heroic Charge is a Heroic Leap followed by Charge to do some damage and generate Rage.",
["criteria"] = "settings.heroic_charge & runeforge.reprisal.enabled & cooldown.charge.remains < gcd",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "settings.heroic_charge & runeforge.reprisal.enabled & prev.1.heroic_leap",
["action"] = "charge",
}, -- [3]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "debuff.casting.up & ! target.is_boss",
["action"] = "shockwave",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains <= gcd || buff.avatar.up",
["action"] = "use_items",
}, -- [6]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [7]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [8]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [9]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [10]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [11]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [12]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.avatar.up || fight_remains < 25",
["action"] = "potion",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "incoming_damage_5s > 0",
["list_name"] = "mitigation",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "runeforge.glory.enabled",
["action"] = "conquerors_banner",
}, -- [16]
{
["action"] = "avatar",
["enabled"] = true,
}, -- [17]
{
["action"] = "ancient_aftershock",
["enabled"] = true,
}, -- [18]
{
["action"] = "spear_of_bastion",
["enabled"] = true,
}, -- [19]
{
["action"] = "conquerors_banner",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.shield_block.down",
["action"] = "shield_block",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "spell_targets.thunder_clap >= 3",
["list_name"] = "aoe",
}, -- [22]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "generic",
}, -- [23]
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [1]
{
["action"] = "potion",
["enabled"] = true,
}, -- [2]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "rage > 50 & buff.ignore_pain.down",
["action"] = "ignore_pain",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! talent.bolster.enabled || ! buff.last_stand.up ) & ( charges_fractional > 1.8 || incoming_damage_5s )",
["action"] = "shield_block",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( target.within10 || active_enemies > 1 ) & ( ( incoming_damage_5s > 0.15 * health.max || health.pct < 30 ) || ( ! talent.booming_voice.enabled || rage.max - rage < 40 ) )",
["action"] = "demoralizing_shout",
["line_cd"] = "6",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "incoming_damage_3s > health & cooldown.anima_of_death.remains <= 2",
["action"] = "last_stand",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s > health || health.pct < 20",
["action"] = "shield_wall",
}, -- [5]
},
["aoe"] = {
{
["action"] = "ravager",
["enabled"] = true,
}, -- [1]
{
["action"] = "dragon_roar",
["enabled"] = true,
}, -- [2]
{
["action"] = "thunder_clap",
["enabled"] = true,
}, -- [3]
{
["action"] = "revenge",
["enabled"] = true,
}, -- [4]
{
["action"] = "shield_slam",
["enabled"] = true,
}, -- [5]
},
},
},
["Fury"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210705,
["author"] = "SimC / Archimtiros",
["desc"] = "Fury Warrior\nJuly 5, 2021\n\nChanges:\n- Added Pummel.\n- Disabled movement / Heroic Leap call (not needed for in-game context).\n- Moved Bladestorm and Dragon Roar above Bloodthirst to improve frequency of recommendations (sims roughly equal).\n- Added Battle Shout to precombat APL.\n- Added Use Items.\n- Tweak for Whirlwind before level 37.\n- Removed Essences.\n- Don't use Siegebreaker if it's already up (Deathmaker).\n- Setup fake sequences for Signet opener.",
["lists"] = {
["single_target"] = {
{
["enabled"] = true,
["criteria"] = "runeforge.will_of_the_berserker.equipped & buff.will_of_the_berserker.remains < gcd",
["action"] = "raging_blow",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "runeforge.will_of_the_berserker.equipped & buff.will_of_the_berserker.remains < gcd",
["action"] = "raging_blow",
}, -- [2]
{
["enabled"] = true,
["buff_name"] = "bladestorm",
["action"] = "cancel_buff",
["criteria"] = "spell_targets.whirlwind = 1 & gcd.remains = 0 & ( talent.massacre.enabled || covenant.venthyr ) & variable.execute_phase & ( rage > 90 || ! cooldown.condemn.remains )",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( buff.enrage.up || buff.recklessness.up & runeforge.sinful_surge.enabled ) & variable.execute_phase",
["action"] = "condemn",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & variable.execute_phase",
["action"] = "condemn",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "debuff.siegebreaker.down & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 )",
["action"] = "siegebreaker",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( buff.recklessness.up || buff.memory_of_lucid_dreams.up ) || ( buff.enrage.remains < gcd || rage > 90 ) || buff.frenzy.remains < 1.5",
["action"] = "rampage",
}, -- [7]
{
["action"] = "condemn",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 75 )",
["action"] = "ancient_aftershock",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 45 )",
["action"] = "spear_of_bastion",
}, -- [10]
{
["action"] = "execute",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( ! buff.recklessness.remains || rage < 50 ) & ( spell_targets.whirlwind = 1 & raid_event.adds.in > 45 || spell_targets.whirlwind = 2 )",
["action"] = "bladestorm",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || conduit.vicious_contempt.rank > 5 & target.health.pct < 35",
["action"] = "bloodthirst",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || conduit.vicious_contempt.rank > 5 & target.health.pct < 35 & ! talent.cruelty.enabled",
["action"] = "bloodthirst",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( spell_targets.whirlwind > 1 || raid_event.adds.in > 15 )",
["action"] = "dragon_roar",
}, -- [15]
{
["action"] = "onslaught",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.merciless_bonegrinder.up & spell_targets.whirlwind > 3",
["action"] = "whirlwind",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "charges = 2 || buff.recklessness.up & variable.execute_phase & talent.massacre.enabled",
["action"] = "raging_blow",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "charges = 2 || buff.recklessness.up & variable.execute_phase & talent.massacre.enabled",
["action"] = "raging_blow",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down",
["action"] = "bloodthirst",
["cycle_targets"] = 1,
}, -- [20]
{
["action"] = "bloodthirst",
["enabled"] = true,
}, -- [21]
{
["action"] = "bloodthirst",
["enabled"] = true,
}, -- [22]
{
["action"] = "raging_blow",
["enabled"] = true,
}, -- [23]
{
["action"] = "raging_blow",
["enabled"] = true,
}, -- [24]
{
["action"] = "whirlwind",
["enabled"] = true,
}, -- [25]
},
["aoe"] = {
{
["enabled"] = true,
["buff_name"] = "bladestorm",
["action"] = "cancel_buff",
["criteria"] = "gcd.remains = 0 & soulbind.first_strike.enabled & buff.first_strike.remains & buff.enrage.remains < gcd",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & cooldown.recklessness.remains > 5",
["action"] = "ancient_aftershock",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & rage < 40",
["action"] = "spear_of_bastion",
}, -- [3]
{
["enabled"] = true,
["interrupt_if"] = "gcd.remains=0&soulbind.first_strike&buff.first_strike.remains&buff.enrage.remains<gcd",
["action"] = "bladestorm",
["criteria"] = "buff.enrage.up & spell_targets.whirlwind > 2",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.enrage.up || buff.recklessness.up & runeforge.sinful_surge.enabled ) & variable.execute_phase",
["action"] = "condemn",
}, -- [5]
{
["action"] = "siegebreaker",
["enabled"] = true,
}, -- [6]
{
["action"] = "rampage",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & cooldown.recklessness.remains > 5",
["action"] = "spear_of_bastion",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.enrage.remains > gcd * 2.5",
["action"] = "bladestorm",
}, -- [9]
},
["default"] = {
{
["enabled"] = true,
["action"] = "charge",
["description"] = "Charge if we're long past our opener, or we don't need the opener combo for Signet (non-Venthyr).",
["criteria"] = "time > 8 || talent.double_time.enabled || active_enemies > 1 || covenant.venthyr || ! runeforge.signet_of_tormented_kings.equipped || cooldown.recklessness.remains > gcd",
}, -- [1]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.massacre.enabled & target.health.pct < 35 || target.health.pct < 20 || target.health.pct > 80 & covenant.venthyr",
["var_name"] = "execute_phase",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "runeforge.signet_of_tormented_kings.enabled || runeforge.sinful_surge.enabled || runeforge.elysian_might.enabled",
["var_name"] = "unique_legendaries",
}, -- [4]
{
["enabled"] = true,
["action"] = "bloodthirst",
["line_cd"] = "10",
["description"] = "Emulates initial Bloodthirst sequence for single-target + Signet.",
["criteria"] = "time < 8 & active_enemies = 1 & runeforge.signet_of_tormented_kings.equipped & ( ! covenant.venthyr || cooldown.recklessness.remains <= gcd )",
}, -- [5]
{
["enabled"] = true,
["action"] = "recklessness",
["line_cd"] = "10",
["description"] = "Emulates initial Recklessness sequence for single-target + Venthyr + Signet.",
["criteria"] = "time < 8 & active_enemies = 1 & covenant.venthyr & runeforge.signet_of_tormented_kings.equipped & prev.bloodthirst",
}, -- [6]
{
["enabled"] = true,
["action"] = "heroic_leap",
["line_cd"] = "10",
["description"] = "Emulates initial Heroic Leap > Charge sequence for single-target + non-Venthyr + Signet.",
["criteria"] = "settings.heroic_charge & time < 5 & active_enemies = 1 & ! covenant.venthyr & runeforge.signet_of_tormented_kings.equipped & prev.bloodthirst & cooldown.charge.remains < 0.5",
}, -- [7]
{
["enabled"] = true,
["action"] = "charge",
["line_cd"] = "10",
["description"] = "Emulates initial Heroic Leap > Charge sequence for single-target + non-Venthyr + Signet.",
["criteria"] = "settings.heroic_charge & time < 5 & active_enemies = 1 & ! covenant.venthyr & runeforge.signet_of_tormented_kings.equipped & prev.heroic_leap",
}, -- [8]
{
["action"] = "potion",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "cooldown.recklessness.remains < 3 & talent.reckless_abandon.enabled",
["action"] = "rampage",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & debuff.siegebreaker.down || fight_remains < 50",
["action"] = "conquerors_banner",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "runeforge.sinful_surge.enabled & gcd.remains = 0 & ( variable.execute_phase || ( target.time_to_pct_35 > 40 & talent.anger_management.enabled || target.time_to_pct_35 > 70 & ! talent.anger_management.enabled ) ) & ( spell_targets.whirlwind = 1 || buff.meat_cleaver.up )",
["action"] = "recklessness",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "runeforge.elysian_might.enabled & gcd.remains = 0 & ( cooldown.spear_of_bastion.remains < 5 || cooldown.spear_of_bastion.remains > 20 ) & ( ( buff.bloodlust.up || talent.anger_management.enabled || raid_event.adds.in > 10 ) || target.time_to_die > 100 || variable.execute_phase || target.time_to_die < 15 & raid_event.adds.in > 10 ) & ( spell_targets.whirlwind = 1 || buff.meat_cleaver.up )",
["action"] = "recklessness",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! variable.unique_legendaries & gcd.remains = 0 & ( ( buff.bloodlust.up || talent.anger_management.enabled || raid_event.adds.in > 10 ) || target.time_to_die > 100 || variable.execute_phase || target.time_to_die < 15 & raid_event.adds.in > 10 ) & ( spell_targets.whirlwind = 1 || buff.meat_cleaver.up )",
["action"] = "recklessness",
}, -- [14]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["action"] = "recklessness",
["criteria"] = "runeforge.signet_of_tormented_kings.equipped & prev_gcd.1.rampage & ( ( buff.bloodlust.up || talent.anger_management.enabled || raid_event.adds.in > 10 ) || target.time_to_die > 100 || variable.execute_phase || target.time_to_die < 15 & raid_event.adds.in > 10 ) & ( spell_targets.whirlwind = 1 || buff.meat_cleaver.up )",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "level > 36 & ( spell_targets.whirlwind > 1 & ! buff.meat_cleaver.up || raid_event.adds.in < gcd & ! buff.meat_cleaver.up )",
["action"] = "whirlwind",
}, -- [16]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [17]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "berserking",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & debuff.siegebreaker.down",
["action"] = "lights_judgment",
}, -- [20]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [21]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & debuff.siegebreaker.down & buff.enrage.up",
["action"] = "bag_of_tricks",
}, -- [23]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.whirlwind > 1",
["list_name"] = "aoe",
}, -- [24]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "single_target",
}, -- [25]
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! runeforge.signet_of_tormented_kings.equipped",
["action"] = "recklessness",
}, -- [2]
},
},
["version"] = 20210705,
["warnings"] = "WARNING: The import for 'aoe' required some automated changes.\nLine 1: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'single_target' required some automated changes.\nLine 3: Converted 'covenant.X.enabled' to 'covenant.X' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 6: Converted 'covenant.X.enabled' to 'covenant.X' (1x).\nLine 7: Converted 'covenant.X.enabled' to 'covenant.X' (1x).\nLine 8: Converted 'covenant.X.enabled' to 'covenant.X' (1x).\nLine 12: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 12: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 13: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nImported 4 action lists.\n",
["profile"] = "## Fury Warrior\n## July 5, 2021\n\n## Changes:\n## - Added Pummel.\n## - Disabled movement / Heroic Leap call (not needed for in-game context).\n## - Moved Bladestorm and Dragon Roar above Bloodthirst to improve frequency of recommendations (sims roughly equal).\n## - Added Battle Shout to precombat APL.\n## - Added Use Items.\n## - Tweak for Whirlwind before level 37.\n## - Removed Essences.\n## - Don't use Siegebreaker if it's already up (Deathmaker).\n## - Setup fake sequences for Signet opener.\n\n## Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat+=/battle_shout\nactions.precombat+=/recklessness,if=!runeforge.signet_of_tormented_kings.equipped\n\n## Executed every time the actor is available.\n# Charge if we're long past our opener, or we don't need the opener combo for Signet (non-Venthyr).\nactions=charge,if=time>8||talent.double_time.enabled||active_enemies>1||covenant.venthyr||!runeforge.signet_of_tormented_kings.equipped||cooldown.recklessness.remains>gcd\nactions+=/pummel\nactions+=/variable,name=execute_phase,value=talent.massacre&target.health.pct<35||target.health.pct<20||target.health.pct>80&covenant.venthyr\nactions+=/variable,name=unique_legendaries,value=runeforge.signet_of_tormented_kings||runeforge.sinful_surge||runeforge.elysian_might\n## This is mostly to prevent cooldowns from being accidentally used during movement.\n## actions+=/run_action_list,name=movement,if=movement.distance>5\n## actions+=/heroic_leap,if=(raid_event.movement.distance>25&raid_event.movement.in>45)\n## actions+=/sequence,if=active_enemies=1&covenant.venthyr.enabled&runeforge.signet_of_tormented_kings.equipped,name=BT&Reck:bloodthirst:recklessness\n# Emulates initial Bloodthirst sequence for single-target + Signet.\nactions+=/bloodthirst,line_cd=10,if=time<8&active_enemies=1&runeforge.signet_of_tormented_kings.equipped&(!covenant.venthyr||cooldown.recklessness.remains<=gcd)\n# Emulates initial Recklessness sequence for single-target + Venthyr + Signet.\nactions+=/recklessness,line_cd=10,if=time<8&active_enemies=1&covenant.venthyr.enabled&runeforge.signet_of_tormented_kings.equipped&prev.bloodthirst\n## actions+=/sequence,if=active_enemies=1&!covenant.venthyr.enabled&runeforge.signet_of_tormented_kings.equipped,name=BT&Charge:bloodthirst:heroic_charge\n# Emulates initial Heroic Leap > Charge sequence for single-target + non-Venthyr + Signet.\nactions+=/heroic_leap,line_cd=10,if=settings.heroic_charge&time<5&active_enemies=1&!covenant.venthyr.enabled&runeforge.signet_of_tormented_kings.equipped&prev.bloodthirst&cooldown.charge.remains<0.5\n# Emulates initial Heroic Leap > Charge sequence for single-target + non-Venthyr + Signet.\nactions+=/charge,line_cd=10,if=settings.heroic_charge&time<5&active_enemies=1&!covenant.venthyr.enabled&runeforge.signet_of_tormented_kings.equipped&prev.heroic_leap\nactions+=/potion\nactions+=/rampage,if=cooldown.recklessness.remains<3&talent.reckless_abandon.enabled\nactions+=/conquerors_banner,if=buff.recklessness.down&debuff.siegebreaker.down||fight_remains<50\nactions+=/recklessness,if=runeforge.sinful_surge&gcd.remains=0&(variable.execute_phase||(target.time_to_pct_35>40&talent.anger_management||target.time_to_pct_35>70&!talent.anger_management))&(spell_targets.whirlwind=1||buff.meat_cleaver.up)\nactions+=/recklessness,if=runeforge.elysian_might&gcd.remains=0&(cooldown.spear_of_bastion.remains<5||cooldown.spear_of_bastion.remains>20)&((buff.bloodlust.up||talent.anger_management.enabled||raid_event.adds.in>10)||target.time_to_die>100||variable.execute_phase||target.time_to_die<15&raid_event.adds.in>10)&(spell_targets.whirlwind=1||buff.meat_cleaver.up)\nactions+=/recklessness,if=!variable.unique_legendaries&gcd.remains=0&((buff.bloodlust.up||talent.anger_management.enabled||raid_event.adds.in>10)||target.time_to_die>100||variable.execute_phase||target.time_to_die<15&raid_event.adds.in>10)&(spell_targets.whirlwind=1||buff.meat_cleaver.up)\nactions+=/recklessness,use_off_gcd=1,if=runeforge.signet_of_tormented_kings.equipped&prev_gcd.1.rampage&((buff.bloodlust.up||talent.anger_management.enabled||raid_event.adds.in>10)||target.time_to_die>100||variable.execute_phase||target.time_to_die<15&raid_event.adds.in>10)&(spell_targets.whirlwind=1||buff.meat_cleaver.up)\nactions+=/whirlwind,if=level>36&(spell_targets.whirlwind>1&!buff.meat_cleaver.up||raid_event.adds.in<gcd&!buff.meat_cleaver.up)\nactions+=/use_items\nactions+=/blood_fury\nactions+=/berserking,if=buff.recklessness.up\nactions+=/lights_judgment,if=buff.recklessness.down&debuff.siegebreaker.down\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks,if=buff.recklessness.down&debuff.siegebreaker.down&buff.enrage.up\nactions+=/call_action_list,strict=1,name=aoe,if=spell_targets.whirlwind>1\nactions+=/run_action_list,name=single_target\n\nactions.aoe=cancel_buff,name=bladestorm,if=gcd.remains=0&soulbind.first_strike&buff.first_strike.remains&buff.enrage.remains<gcd\nactions.aoe+=/ancient_aftershock,if=buff.enrage.up&cooldown.recklessness.remains>5\nactions.aoe+=/spear_of_bastion,if=buff.enrage.up&rage<40\nactions.aoe+=/bladestorm,interrupt_if=gcd.remains=0&soulbind.first_strike&buff.first_strike.remains&buff.enrage.remains<gcd,if=buff.enrage.up&spell_targets.whirlwind>2\nactions.aoe+=/condemn,if=(buff.enrage.up||buff.recklessness.up&runeforge.sinful_surge)&variable.execute_phase\nactions.aoe+=/siegebreaker\nactions.aoe+=/rampage\nactions.aoe+=/spear_of_bastion,if=buff.enrage.up&cooldown.recklessness.remains>5\nactions.aoe+=/bladestorm,if=buff.enrage.remains>gcd*2.5\n\nactions.single_target+=/raging_blow,if=runeforge.will_of_the_berserker.equipped&buff.will_of_the_berserker.remains<gcd\nactions.single_target+=/crushing_blow,if=runeforge.will_of_the_berserker.equipped&buff.will_of_the_berserker.remains<gcd\nactions.single_target+=/cancel_buff,name=bladestorm,if=spell_targets.whirlwind=1&gcd.remains=0&(talent.massacre.enabled||covenant.venthyr.enabled)&variable.execute_phase&(rage>90||!cooldown.condemn.remains)\nactions.single_target+=/condemn,if=(buff.enrage.up||buff.recklessness.up&runeforge.sinful_surge)&variable.execute_phase\nactions.single_target+=/condemn,if=buff.enrage.up&variable.execute_phase\nactions.single_target+=/siegebreaker,if=debuff.siegebreaker.down&(spell_targets.whirlwind>1||raid_event.adds.in>15)\nactions.single_target+=/rampage,if=(buff.recklessness.up||buff.memory_of_lucid_dreams.up)||(buff.enrage.remains<gcd||rage>90)||buff.frenzy.remains<1.5\nactions.single_target+=/condemn\nactions.single_target+=/ancient_aftershock,if=buff.enrage.up&(spell_targets.whirlwind>1||raid_event.adds.in>75)\nactions.single_target+=/spear_of_bastion,if=buff.enrage.up&(spell_targets.whirlwind>1||raid_event.adds.in>45)\nactions.single_target+=/execute\nactions.single_target+=/bladestorm,if=buff.enrage.up&(!buff.recklessness.remains||rage<50)&(spell_targets.whirlwind=1&raid_event.adds.in>45||spell_targets.whirlwind=2)\nactions.single_target+=/bloodthirst,cycle_targets=1,if=buff.enrage.down||conduit.vicious_contempt.rank>5&target.health.pct<35\nactions.single_target+=/bloodbath,if=buff.enrage.down||conduit.vicious_contempt.rank>5&target.health.pct<35&!talent.cruelty.enabled\nactions.single_target+=/dragon_roar,if=buff.enrage.up&(spell_targets.whirlwind>1||raid_event.adds.in>15)\nactions.single_target+=/onslaught\nactions.single_target+=/whirlwind,if=buff.merciless_bonegrinder.up&spell_targets.whirlwind>3\nactions.single_target+=/raging_blow,if=charges=2||buff.recklessness.up&variable.execute_phase&talent.massacre.enabled\nactions.single_target+=/crushing_blow,if=charges=2||buff.recklessness.up&variable.execute_phase&talent.massacre.enabled\nactions.single_target+=/bloodthirst,cycle_targets=1,if=buff.enrage.down\nactions.single_target+=/bloodthirst\nactions.single_target+=/bloodbath\nactions.single_target+=/raging_blow\nactions.single_target+=/crushing_blow\nactions.single_target+=/whirlwind",
["spec"] = 72,
},
},
},
["Quillspeth - Thunderhorn"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetAllPotions_20201209"] = true,
["resetRogueMfDOption_20200226"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[103] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["brutal_charges"] = 2,
["owlweave_cat"] = false,
},
["debuffPadding"] = 0,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["buffPadding"] = 0,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["damage"] = true,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_agility",
["package"] = "Feral",
["potionsReset"] = 20180919.1,
["damageExpiration"] = 3,
["enhancedRecheck"] = false,
["damageRange"] = 0,
},
[104] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["catweave_bear"] = false,
["ironfur_damage_threshold"] = 5,
["maul_rage"] = 20,
["mangle_more"] = false,
["owlweave_bear"] = false,
["shift_for_convoke"] = false,
},
["debuffPadding"] = 0,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["buffPadding"] = 0,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["damage"] = true,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_agility",
["package"] = "Guardian",
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["enhancedRecheck"] = false,
["damageRange"] = 0,
},
[102] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["package"] = "Balance",
["damagePets"] = false,
["settings"] = {
["starlord_cancel"] = false,
},
["debuffPadding"] = 0,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["buffPadding"] = 0,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["throttleRefresh"] = false,
["custom1Name"] = "Custom 1",
["nameplates"] = false,
["damage"] = true,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_intellect",
["throttleTime"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["enhancedRecheck"] = true,
["damageRange"] = 0,
},
},
["packs"] = {
["Feral"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210824,
["author"] = "SimC",
["desc"] = "Feral Druid\nAugust 23, 2021\n\nFeral APL can also be found at https://gist.github.com/Xanzara/6896c8996f5afce5ce115daa3a08daff\n\nChanges:\n- druid.owlweave_cat=1 checks to druid.owlweave_cat.\n- Convert BT pool_resource to wait expression.\n- Add interruptible Fleshcraft if you have nothing else to do.\n- Don't hold Convoke for Rip unless you'll really Rip.",
["lists"] = {
["filler"] = {
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "variable.filler = 1 & refreshable & dot.rake.pmultiplier <= 1.2 * persistent_multiplier",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.filler = 2",
["action"] = "rake",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.filler = 3",
["action"] = "lunar_inspiration",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.filler = 4",
["action"] = "swipe_cat",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.sudden_ambush.down",
["action"] = "shred",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled",
["interrupt_if"] = "soulbind.volatile_solvent",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [6]
},
["finisher"] = {
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.savage_roar.remains < 3",
["action"] = "savage_roar",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( druid.primal_wrath.ticks_gained_on_refresh > 3 * ( spell_targets.primal_wrath + 1 ) & spell_targets.primal_wrath > 1 ) || spell_targets.primal_wrath > ( 3 + 1 * talent.sabertooth.enabled )",
["action"] = "primal_wrath",
}, -- [3]
{
["enabled"] = true,
["action"] = "rip",
["criteria"] = "refreshable & druid.rip.ticks_gained_on_refresh > variable.rip_ticks & ( ( buff.tigers_fury.up || ! ticking ) & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) || ! talent.sabertooth.enabled ) & ( spell_targets.primal_wrath = 1 || ! talent.primal_wrath.enabled ) & ( active_dot.rip = 0 || ticking & active_dot.rip = 1 || ! runeforge.draught_of_deep_focus.enabled || ! talent.sabertooth.enabled )",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.savage_roar.remains < ( combo_points + 1 ) * 6 * 0.3",
["action"] = "savage_roar",
}, -- [5]
{
["max_energy"] = 1,
["enabled"] = true,
["action"] = "ferocious_bite",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["action"] = "ferocious_bite",
["criteria"] = "buff.bs_inc.up & talent.soul_of_the_forest.enabled || cooldown.convoke_the_spirits.remains < 1 & covenant.night_fae",
["cycle_targets"] = 1,
}, -- [7]
},
["balance"] = {
{
["enabled"] = true,
["criteria"] = "buff.eclipse_solar.down & buff.eclipse_lunar.down & ( refreshable || ( active_enemies > 1 & active_dot.sunfire < active_enemies ) )",
["action"] = "sunfire",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.eclipse_solar.remains > 10 + cast_time || buff.eclipse_lunar.remains > 10 + cast_time",
["action"] = "starsurge",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.eclipse_lunar.remains > cast_time || buff.eclipse_solar.down & solar_eclipse > 0 || buff.eclipse_solar.down & lunar_eclipse - action.wrath.in_flight < 1",
["action"] = "starfire",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.eclipse_solar.remains > cast_time || buff.eclipse_lunar.down & lunar_eclipse - action.wrath.in_flight > 0",
["action"] = "wrath",
}, -- [4]
},
["setup"] = {
{
["enabled"] = true,
["criteria"] = "covenant.necrolord & spell_targets.thrash_cat < 4 & combo_points < 5 & ! ticking & ! buff.bs_inc.up",
["action"] = "lunar_inspiration",
}, -- [1]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.feral_frenzy.enabled & cooldown.feral_frenzy.up & ! buff.savage_roar.up & combo_points > 1 & dot.rake.ticking & ( dot.lunar_inspiration.ticking || ! talent.lunar_inspiration.enabled )",
["action"] = "savage_roar",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.down & ( energy + 3.5 * energy.regen + ( 40 * buff.clearcasting.up ) ) < ( 115 - 23 * buff.incarnation_king_of_the_jungle.up ) & active_bt_triggers = 0",
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.down & ( combo_points < 5 || spell_targets.thrash_cat = 1 )",
["action"] = "call_action_list",
["list_name"] = "bloodtalons",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldown",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "combo_points > 3 & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled )",
["action"] = "call_action_list",
["list_name"] = "finisher",
}, -- [7]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.up & ! druid.owlweave_cat",
["action"] = "run_action_list",
["list_name"] = "balance",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "druid.owlweave_cat",
["action"] = "call_action_list",
["list_name"] = "owlweave",
}, -- [2]
{
["enabled"] = true,
["description"] = "Prowl whenever possible",
["action"] = "prowl",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.cat_form.down",
["action"] = "tigers_fury",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.cat_form.down",
["action"] = "cat_form",
}, -- [5]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "One shot stealth",
["criteria"] = "buff.shadowmeld.up || buff.prowl.up",
["list_name"] = "stealth",
}, -- [6]
{
["action"] = "skull_bash",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_dot.rip = 0",
["action"] = "call_action_list",
["list_name"] = "setup",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldown",
}, -- [9]
{
["enabled"] = true,
["action"] = "rip",
["description"] = "Necrolord: Cast 3 or 4 combo point rips on single target outside of berserk or during berserk if feral frenzy is up OR apply a 5cp Rip when TF is up and will soon fall off.",
["criteria"] = "covenant.necrolord & ( ! talent.bloodtalons.enabled || buff.bloodtalons.up ) & spell_targets.thrash_cat = 1 & ( combo_points > 2 & refreshable & druid.rip.ticks_gained_on_refresh > variable.rip_ticks & ( ! buff.bs_inc.up || cooldown.bs_inc.up || ( buff.bs_inc.up & cooldown.feral_frenzy.up ) ) || combo_points = 5 & buff.tigers_fury.up & buff.tigers_fury.remains < 4 & druid.rip.ticks_gained_on_refresh > 5 )",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "combo_points >= ( 5 - variable.fourcp_bite )",
["action"] = "run_action_list",
["list_name"] = "finisher",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "druid.primal_wrath.ticks_gained_on_refresh >= 20 & combo_points >= 2",
["action"] = "primal_wrath",
["line_cd"] = "5",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Multi-gcd stealth",
["criteria"] = "buff.bs_inc.up",
["list_name"] = "stealth",
}, -- [13]
{
["enabled"] = true,
["action"] = "wait",
["sec"] = "( ( 115 - 23 * buff.incarnation_king_of_the_jungle.up ) - ( energy.current + 3.5 * energy.regen + ( 40 * buff.clearcasting.up ) ) ) / energy.regen",
["description"] = "The most expensive BT cycle (Thresh Shred Swipe cost 115 energy, make sure we can make that in 4 globals)",
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.down & active_bt_triggers = 0",
}, -- [14]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "actions.default+=/pool_resource,if=talent.bloodtalons.enabled&buff.bloodtalons.down&(energy+3.5*energy.regen+(40*buff.clearcasting.up))<(115-23*buff.incarnation_king_of_the_jungle.up)&active_bt_triggers=0",
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.down",
["list_name"] = "bloodtalons",
}, -- [15]
{
["enabled"] = true,
["action"] = "ferocious_bite",
["criteria"] = "buff.apex_predators_craving.up",
["cycle_targets"] = 1,
}, -- [16]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [17]
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "( refreshable || persistent_multiplier > dot.rake.pmultiplier ) & druid.rake.ticks_gained_on_refresh > spell_targets.swipe_cat * 2 - 2",
["cycle_targets"] = 1,
}, -- [18]
{
["enabled"] = true,
["action"] = "lunar_inspiration",
["criteria"] = "( refreshable || persistent_multiplier > dot.lunar_inspiration.pmultiplier ) & druid.lunar_inspiration.ticks_gained_on_refresh > spell_targets.swipe_cat * 2 - 2",
["cycle_targets"] = 1,
}, -- [19]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [20]
{
["enabled"] = true,
["action"] = "thrash_cat",
["criteria"] = "refreshable & druid.thrash_cat.ticks_gained_on_refresh > ( 4 + spell_targets.thrash_cat * 4 ) / ( 1 + mastery_value ) - conduit.taste_for_blood.enabled - covenant.necrolord & ( ! buff.bs_inc.up || spell_targets.thrash_cat > 1 )",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( raid_event.adds.in > ( 1 + max_charges - charges_fractional ) * recharge_time ) & ( spell_targets.brutal_slash * action.brutal_slash.damage / action.brutal_slash.cost ) > ( action.shred.damage / action.shred.cost )",
["action"] = "brutal_slash",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1 + buff.bs_inc.up * 2",
["action"] = "swipe_cat",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "spell_targets.thrash_cat > 3",
["action"] = "thrash_cat",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.clearcasting.up & ( buff.sudden_ambush.down & buff.shadowmeld.down || buff.bs_inc.up )",
["action"] = "shred",
}, -- [26]
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "buff.bs_inc.up & druid.rake.ticks_gained_on_refresh > 2",
["cycle_targets"] = 1,
}, -- [27]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "filler",
}, -- [28]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "fourcp_bite",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["description"] = "Shred = 0, Non-snapshot Rake = 1, Snapshot Rake = 2, LI = 3, Swipe = 4",
["var_name"] = "filler",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "7",
["description"] = "Scale with haste.",
["var_name"] = "rip_ticks",
}, -- [3]
{
["action"] = "kindred_spirits",
["enabled"] = true,
}, -- [4]
{
["action"] = "bottled_flayedwing_toxin",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled",
["action"] = "fleshcraft",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "prowl",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "cat_form",
}, -- [8]
},
["bloodtalons"] = {
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "( ! ticking || ( 1.2 * persistent_multiplier >= dot.rake.pmultiplier ) || ( active_bt_triggers = 2 & refreshable ) ) & buff.bt_rake.down",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["action"] = "lunar_inspiration",
["criteria"] = "refreshable & buff.bt_moonfire.down",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["action"] = "thrash_cat",
["criteria"] = "refreshable & buff.bt_thrash.down & druid.thrash_cat.ticks_gained_on_refresh > ( 4 + spell_targets.thrash_cat * 4 ) / ( 1 + mastery_value ) - conduit.taste_for_blood.enabled",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.bt_brutal_slash.down",
["action"] = "brutal_slash",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.bt_swipe.down & spell_targets.swipe_cat > 1",
["action"] = "swipe_cat",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bt_shred.down",
["action"] = "shred",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.bt_swipe.down",
["action"] = "swipe_cat",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.bt_thrash.down",
["action"] = "thrash_cat",
}, -- [8]
},
["stealth"] = {
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [1]
{
["enabled"] = true,
["action"] = "rake",
["cycle_targets"] = 1,
["criteria"] = "( dot.rake.pmultiplier < 1.5 || refreshable ) & druid.rake.ticks_gained_on_refresh > 2 || ( persistent_multiplier > dot.rake.pmultiplier & buff.bs_inc.up & spell_targets.thrash_cat < 3 & covenant.necrolord ) || buff.bs_inc.remains < 1",
["description"] = "Rake needs roughly 50% of its length at a minimum to surpass shreds dpe",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "spell_targets.thrash_cat < 3 & refreshable & druid.lunar_inspiration.ticks_gained_on_refresh > 5 & ( combo_points = 4 || dot.lunar_inspiration.remains < 5 || ! dot.lunar_inspiration.ticking )",
["action"] = "lunar_inspiration",
}, -- [3]
{
["enabled"] = true,
["action"] = "brutal_slash",
["description"] = "Brutal Slash is better than stealth Shred at 3 targets",
["criteria"] = "spell_targets.brutal_slash > 2",
}, -- [4]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "combo_points < 4 & spell_targets.thrash_cat < 5",
["action"] = "shred",
}, -- [6]
},
["cooldown"] = {
{
["enabled"] = true,
["action"] = "adaptive_swarm",
["criteria"] = "( ( ! dot.adaptive_swarm_damage.ticking || dot.adaptive_swarm_damage.remains < 2 ) & ( dot.adaptive_swarm_damage.stack < 3 || ! dot.adaptive_swarm_heal.stack > 1 ) & ! action.adaptive_swarm_heal.in_flight & ! action.adaptive_swarm_damage.in_flight & ! action.adaptive_swarm.in_flight ) & target.time_to_die > 5 || active_enemies > 2 & ! dot.adaptive_swarm_damage.ticking & energy < 35 & target.time_to_die > 5",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled )",
["interrupt_if"] = "soulbind.volatile_solvent",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [2]
{
["enabled"] = true,
["sync"] = "feral_frenzy",
["description"] = "Cast Tiger's Fury before (or immediatly after) casting Feral Frenzy if Berserk is NOT on cooldown.",
["criteria"] = "cooldown.bs_inc.up",
["action"] = "tigers_fury",
}, -- [3]
{
["enabled"] = true,
["action"] = "feral_frenzy",
["criteria"] = "combo_points < 3 & target.time_to_die > 7 & ( buff.savage_roar.up || ! talent.savage_roar.enabled ) & ( ! cooldown.tigers_fury.up || cooldown.bs_inc.up ) || fight_remains < 8 & fight_remains > 2",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "berserk",
["description"] = "TODO: Need to sync with with ravenous frenzy when we run frenzyband, or atleast check if its worth it",
["criteria"] = "combo_points >= 3",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "combo_points >= 3",
["action"] = "incarnation",
}, -- [6]
{
["enabled"] = true,
["action"] = "tigers_fury",
["description"] = "Try and not waste TF energy, but also just use it for zerk and incarns",
["criteria"] = "energy.deficit > 40 || buff.bs_inc.up || ( talent.predator.enabled & shortest_ttd < 3 )",
}, -- [7]
{
["enabled"] = true,
["action"] = "shadowmeld",
["description"] = "Might be wrong to use Smeld on Rake in very very niche situations, but very rarely",
["criteria"] = "buff.tigers_fury.up & buff.bs_inc.down & combo_points < 4 & buff.sudden_ambush.down & dot.rake.pmultiplier < 1.6 & energy > 40 & druid.rake.ticks_gained_on_refresh > spell_targets.swipe_cat * 2 - 2 & target.time_to_die > 5",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up || buff.bs_inc.up",
["action"] = "berserking",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.up || boss & fight_remains < cooldown.bs_inc.remains || boss & fight_remains < 25",
["action"] = "potion",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.up || fight_remains < 21",
["action"] = "ravenous_frenzy",
}, -- [11]
{
["enabled"] = true,
["action"] = "convoke_the_spirits",
["description"] = "TODO: Check moonkin hotw and stuff like this, and maybe better combat remain resync",
["criteria"] = "( ( dot.rip.remains > 4 || fight_remains < variable.rip_ticks & dot.rip.tick_time ) & combo_points < 5 & ( dot.rake.ticking || spell_targets.thrash_cat > 1 ) & energy.deficit >= 20 ) || boss & fight_remains < 5",
}, -- [12]
{
["enabled"] = true,
["action"] = "empower_bond",
["description"] = "Maybe there should be more conditions on the conduit",
["criteria"] = "buff.tigers_fury.up || ( conduit.deep_allegiance.enabled )",
}, -- [13]
{
["enabled"] = true,
["name"] = "jotungeirr_destinys_call",
["description"] = "Give priority to on-use weapon",
["criteria"] = "equipped.jotungeirr_destinys_call",
["action"] = "jotungeirr_destinys_call",
}, -- [14]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [15]
},
["owlweave"] = {
{
["enabled"] = true,
["criteria"] = "buff.heart_of_the_wild.up",
["action"] = "starsurge",
}, -- [1]
{
["enabled"] = true,
["action"] = "sunfire",
["line_cd"] = "4*gcd",
}, -- [2]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "buff.moonkin_form.up & spell_targets.thrash_cat < 2 & ! talent.lunar_inspiration.enabled",
["line_cd"] = "4*gcd",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "energy < 30 & dot.rip.remains > 4.5 & ( cooldown.tigers_fury.remains >= 6.5 || runeforge.cateye_curio.enabled ) & buff.clearcasting.stack < 1 & ! buff.apex_predators_craving.up & ! buff.bloodlust.up & ! buff.bs_inc.up & ( cooldown.convoke_the_spirits.remains > 6.5 || ! covenant.night_fae ) & ( ! covenant.necrolord || cooldown.adaptive_swarm.remains >= 5 || dot.adaptive_swarm_damage.remains > 7 )",
["action"] = "heart_of_the_wild",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "energy < 30 & dot.rip.remains > 4.5 & ( cooldown.tigers_fury.remains >= 4.5 || runeforge.cateye_curio.enabled ) & buff.clearcasting.stack < 1 & ! buff.apex_predators_craving.up & ! buff.bloodlust.up & ( ! buff.bs_inc.up || covenant.necrolord & talent.savage_roar.enabled & buff.bs_inc.remains > 6 ) & ( cooldown.convoke_the_spirits.remains > 6.5 || ! covenant.night_fae ) & ( ! covenant.necrolord || cooldown.adaptive_swarm.remains >= 5 || dot.adaptive_swarm_damage.remains > 7 ) & fight_remains > 7",
["action"] = "moonkin_form",
}, -- [5]
},
},
["version"] = 20210824,
["warnings"] = "WARNING: The import for 'finisher' required some automated changes.\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 21: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 23: Converted SimC syntax % to Lua division operator (/) (2x).\n\nWARNING: The import for 'bloodtalons' required some automated changes.\nLine 3: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'cooldown' required some automated changes.\nLine 2: Converted 'soulbind.X' to 'soulbind.X.enabled' (2x).\n\nWARNING: The import for 'owlweave' required some automated changes.\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nImported 10 action lists.\n",
["spec"] = 103,
["profile"] = "## Feral Druid\n## August 23, 2021\n\n## Feral APL can also be found at https://gist.github.com/Xanzara/6896c8996f5afce5ce115daa3a08daff\n\n## Changes:\n## - druid.owlweave_cat=1 checks to druid.owlweave_cat.\n## - Convert BT pool_resource to wait expression.\n## - Add interruptible Fleshcraft if you have nothing else to do.\n## - Don't hold Convoke for Rip unless you'll really Rip.\n\nactions.precombat+=/variable,name=fourcp_bite,value=0\n# Shred = 0, Non-snapshot Rake = 1, Snapshot Rake = 2, LI = 3, Swipe = 4\nactions.precombat+=/variable,name=filler,value=1\n# Scale with haste.\nactions.precombat+=/variable,name=rip_ticks,value=7\nactions.precombat+=/kindred_spirits\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/fleshcraft,if=soulbind.pustule_eruption.enabled||soulbind.volatile_solvent.enabled\nactions.precombat+=/prowl,if=buff.moonkin_form.down\nactions.precombat+=/cat_form,if=buff.moonkin_form.down\n\nactions=run_action_list,name=balance,if=buff.moonkin_form.up&!druid.owlweave_cat\nactions+=/call_action_list,name=owlweave,if=druid.owlweave_cat\n# Prowl whenever possible\nactions+=/prowl\nactions+=/tigers_fury,if=buff.cat_form.down\nactions+=/cat_form,if=buff.cat_form.down\n# One shot stealth\nactions+=/run_action_list,name=stealth,if=buff.shadowmeld.up||buff.prowl.up\nactions+=/skull_bash\nactions+=/call_action_list,name=setup,if=active_dot.rip=0\nactions+=/call_action_list,name=cooldown\n# Necrolord: Cast 3 or 4 combo point rips on single target outside of berserk or during berserk if feral frenzy is up OR apply a 5cp Rip when TF is up and will soon fall off.\nactions+=/rip,if=covenant.necrolord&(!talent.bloodtalons.enabled||buff.bloodtalons.up)&spell_targets.thrash_cat=1&(combo_points>2&refreshable&druid.rip.ticks_gained_on_refresh>variable.rip_ticks&(!buff.bs_inc.up||cooldown.bs_inc.up||(buff.bs_inc.up&cooldown.feral_frenzy.up))||combo_points=5&buff.tigers_fury.up&buff.tigers_fury.remains<4&druid.rip.ticks_gained_on_refresh>5)\nactions+=/run_action_list,name=finisher,if=combo_points>=(5-variable.fourcp_bite)\nactions+=/primal_wrath,if=druid.primal_wrath.ticks_gained_on_refresh>=20&combo_points>=2,line_cd=5\n# Multi-gcd stealth\nactions+=/call_action_list,name=stealth,if=buff.bs_inc.up\n# The most expensive BT cycle (Thresh Shred Swipe cost 115 energy, make sure we can make that in 4 globals)\nactions+=/wait,sec=((115-23*buff.incarnation_king_of_the_jungle.up)-(energy.current+3.5*energy.regen+(40*buff.clearcasting.up)))/energy.regen,if=talent.bloodtalons.enabled&buff.bloodtalons.down&active_bt_triggers=0\n# actions+=/pool_resource,if=talent.bloodtalons.enabled&buff.bloodtalons.down&(energy+3.5*energy.regen+(40*buff.clearcasting.up))<(115-23*buff.incarnation_king_of_the_jungle.up)&active_bt_triggers=0\nactions+=/run_action_list,name=bloodtalons,if=talent.bloodtalons.enabled&buff.bloodtalons.down\nactions+=/ferocious_bite,cycle_targets=1,if=buff.apex_predators_craving.up\nactions+=/pool_resource,for_next=1\nactions+=/rake,cycle_targets=1,if=(refreshable||persistent_multiplier>dot.rake.pmultiplier)&druid.rake.ticks_gained_on_refresh>spell_targets.swipe_cat*2-2\nactions+=/lunar_inspiration,cycle_targets=1,if=(refreshable||persistent_multiplier>dot.lunar_inspiration.pmultiplier)&druid.lunar_inspiration.ticks_gained_on_refresh>spell_targets.swipe_cat*2-2\nactions+=/pool_resource,for_next=1\nactions+=/thrash_cat,cycle_targets=1,if=refreshable&druid.thrash_cat.ticks_gained_on_refresh>(4+spell_targets.thrash_cat*4)%(1+mastery_value)-conduit.taste_for_blood.enabled-covenant.necrolord&(!buff.bs_inc.up||spell_targets.thrash_cat>1)\nactions+=/pool_resource,for_next=1\nactions+=/brutal_slash,if=(raid_event.adds.in>(1+max_charges-charges_fractional)*recharge_time)&(spell_targets.brutal_slash*action.brutal_slash.damage%action.brutal_slash.cost)>(action.shred.damage%action.shred.cost)\nactions+=/swipe_cat,if=spell_targets.swipe_cat>1+buff.bs_inc.up*2\nactions+=/thrash_cat,if=spell_targets.thrash_cat>3\nactions+=/shred,if=buff.clearcasting.up&(buff.sudden_ambush.down&buff.shadowmeld.down||buff.bs_inc.up)\nactions+=/rake,cycle_targets=1,if=buff.bs_inc.up&druid.rake.ticks_gained_on_refresh>2\nactions+=/call_action_list,name=filler\n\nactions.bloodtalons=rake,cycle_targets=1,if=(!ticking||(1.2*persistent_multiplier>=dot.rake.pmultiplier)||(active_bt_triggers=2&refreshable))&buff.bt_rake.down\nactions.bloodtalons+=/lunar_inspiration,cycle_targets=1,if=refreshable&buff.bt_moonfire.down\nactions.bloodtalons+=/thrash_cat,cycle_targets=1,if=refreshable&buff.bt_thrash.down&druid.thrash_cat.ticks_gained_on_refresh>(4+spell_targets.thrash_cat*4)%(1+mastery_value)-conduit.taste_for_blood.enabled\nactions.bloodtalons+=/brutal_slash,if=buff.bt_brutal_slash.down\nactions.bloodtalons+=/swipe_cat,if=buff.bt_swipe.down&spell_targets.swipe_cat>1\nactions.bloodtalons+=/shred,if=buff.bt_shred.down\nactions.bloodtalons+=/swipe_cat,if=buff.bt_swipe.down\nactions.bloodtalons+=/thrash_cat,if=buff.bt_thrash.down\n\nactions.cooldown=adaptive_swarm,cycle_targets=1,if=((!dot.adaptive_swarm_damage.ticking||dot.adaptive_swarm_damage.remains<2)&(dot.adaptive_swarm_damage.stack<3||!dot.adaptive_swarm_heal.stack>1)&!action.adaptive_swarm_heal.in_flight&!action.adaptive_swarm_damage.in_flight&!action.adaptive_swarm.in_flight)&target.time_to_die>5||active_enemies>2&!dot.adaptive_swarm_damage.ticking&energy<35&target.time_to_die>5\nactions.cooldown+=/fleshcraft,if=(soulbind.pustule_eruption||soulbind.volatile_solvent),interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent\n# Cast Tiger's Fury before (or immediatly after) casting Feral Frenzy if Berserk is NOT on cooldown.\nactions.cooldown+=/tigers_fury,sync=feral_frenzy,if=cooldown.bs_inc.up\nactions.cooldown+=/feral_frenzy,cycle_targets=1,if=combo_points<3&target.time_to_die>7&(buff.savage_roar.up||!talent.savage_roar.enabled)&(!cooldown.tigers_fury.up||cooldown.bs_inc.up)||fight_remains<8&fight_remains>2\n# TODO: Need to sync with with ravenous frenzy when we run frenzyband, or atleast check if its worth it\nactions.cooldown+=/berserk,if=combo_points>=3\nactions.cooldown+=/incarnation,if=combo_points>=3\n# Try and not waste TF energy, but also just use it for zerk and incarns\nactions.cooldown+=/tigers_fury,if=energy.deficit>40||buff.bs_inc.up||(talent.predator.enabled&shortest_ttd<3)\n# Might be wrong to use Smeld on Rake in very very niche situations, but very rarely\nactions.cooldown+=/shadowmeld,if=buff.tigers_fury.up&buff.bs_inc.down&combo_points<4&buff.sudden_ambush.down&dot.rake.pmultiplier<1.6&energy>40&druid.rake.ticks_gained_on_refresh>spell_targets.swipe_cat*2-2&target.time_to_die>5\nactions.cooldown+=/berserking,if=buff.tigers_fury.up||buff.bs_inc.up\nactions.cooldown+=/potion,if=buff.bs_inc.up||boss&fight_remains<cooldown.bs_inc.remains||boss&fight_remains<25\nactions.cooldown+=/ravenous_frenzy,if=buff.bs_inc.up||fight_remains<21\n# TODO: Check moonkin hotw and stuff like this, and maybe better combat remain resync\nactions.cooldown+=/convoke_the_spirits,if=((dot.rip.remains>4||fight_remains<variable.rip_ticks&dot.rip.tick_time)&combo_points<5&(dot.rake.ticking||spell_targets.thrash_cat>1)&energy.deficit>=20)||boss&fight_remains<5\n# Maybe there should be more conditions on the conduit\nactions.cooldown+=/empower_bond,if=buff.tigers_fury.up||(conduit.deep_allegiance.enabled)\n# Give priority to on-use weapon\nactions.cooldown+=/use_item,name=jotungeirr_destinys_call,if=equipped.jotungeirr_destinys_call\nactions.cooldown+=/use_items\n\nactions.filler=rake,cycle_targets=1,if=variable.filler=1&refreshable&dot.rake.pmultiplier<=1.2*persistent_multiplier\nactions.filler+=/rake,if=variable.filler=2\nactions.filler+=/lunar_inspiration,if=variable.filler=3\nactions.filler+=/swipe,if=variable.filler=4\nactions.filler+=/shred,if=buff.sudden_ambush.down\nactions.filler+=/fleshcraft,if=soulbind.pustule_eruption.enabled||soulbind.volatile_solvent.enabled,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent\n\nactions.finisher=pool_resource,for_next=1\nactions.finisher+=/savage_roar,if=buff.savage_roar.remains<3\nactions.finisher+=/primal_wrath,if=(druid.primal_wrath.ticks_gained_on_refresh>3*(spell_targets.primal_wrath+1)&spell_targets.primal_wrath>1)||spell_targets.primal_wrath>(3+1*talent.sabertooth.enabled)\nactions.finisher+=/rip,cycle_targets=1,if=refreshable&druid.rip.ticks_gained_on_refresh>variable.rip_ticks&((buff.tigers_fury.up||!ticking)&(buff.bloodtalons.up||!talent.bloodtalons.enabled)||!talent.sabertooth.enabled)&(spell_targets.primal_wrath=1||!talent.primal_wrath.enabled)&(active_dot.rip=0||ticking&active_dot.rip=1||!runeforge.draught_of_deep_focus||!talent.sabertooth.enabled)\nactions.finisher+=/savage_roar,if=buff.savage_roar.remains<(combo_points+1)*6*0.3\nactions.finisher+=/ferocious_bite,max_energy=1,cycle_targets=1\nactions.finisher+=/ferocious_bite,cycle_targets=1,if=buff.bs_inc.up&talent.soul_of_the_forest.enabled||cooldown.convoke_the_spirits.remains<1&covenant.night_fae\n\nactions.owlweave=starsurge,if=buff.heart_of_the_wild.up\nactions.owlweave+=/sunfire,line_cd=4*gcd\nactions.owlweave+=/moonfire,line_cd=4*gcd,if=buff.moonkin_form.up&spell_targets.thrash_cat<2&!talent.lunar_inspiration.enabled\nactions.owlweave+=/heart_of_the_wild,if=energy<30&dot.rip.remains>4.5&(cooldown.tigers_fury.remains>=6.5||runeforge.cateye_curio)&buff.clearcasting.stack<1&!buff.apex_predators_craving.up&!buff.bloodlust.up&!buff.bs_inc.up&(cooldown.convoke_the_spirits.remains>6.5||!covenant.night_fae)&(!covenant.necrolord||cooldown.adaptive_swarm.remains>=5||dot.adaptive_swarm_damage.remains>7)\nactions.owlweave+=/moonkin_form,if=energy<30&dot.rip.remains>4.5&(cooldown.tigers_fury.remains>=4.5||runeforge.cateye_curio)&buff.clearcasting.stack<1&!buff.apex_predators_craving.up&!buff.bloodlust.up&(!buff.bs_inc.up||covenant.necrolord&talent.savage_roar.enabled&buff.bs_inc.remains>6)&(cooldown.convoke_the_spirits.remains>6.5||!covenant.night_fae)&(!covenant.necrolord||cooldown.adaptive_swarm.remains>=5||dot.adaptive_swarm_damage.remains>7)&fight_remains>7\n\nactions.setup=lunar_inspiration,if=covenant.necrolord&spell_targets.thrash_cat<4&combo_points<5&!ticking&!buff.bs_inc.up\nactions.setup+=/pool_resource,for_next=1\nactions.setup+=/savage_roar,if=talent.feral_frenzy.enabled&cooldown.feral_frenzy.up&!buff.savage_roar.up&combo_points>1&dot.rake.ticking&(dot.lunar_inspiration.ticking||!talent.lunar_inspiration.enabled)\nactions.setup+=/pool_resource,if=talent.bloodtalons.enabled&buff.bloodtalons.down&(energy+3.5*energy.regen+(40*buff.clearcasting.up))<(115-23*buff.incarnation_king_of_the_jungle.up)&active_bt_triggers=0\nactions.setup+=/call_action_list,name=bloodtalons,if=talent.bloodtalons.enabled&buff.bloodtalons.down&(combo_points<5||spell_targets.thrash_cat=1)\nactions.setup+=/call_action_list,name=cooldown\nactions.setup+=/call_action_list,name=finisher,if=combo_points>3&(buff.bloodtalons.up||!talent.bloodtalons.enabled)\n\nactions.stealth=pool_resource,for_next=1\n# Rake needs roughly 50% of its length at a minimum to surpass shreds dpe\nactions.stealth+=/rake,cycle_targets=1,if=(dot.rake.pmultiplier<1.5||refreshable)&druid.rake.ticks_gained_on_refresh>2||(persistent_multiplier>dot.rake.pmultiplier&buff.bs_inc.up&spell_targets.thrash_cat<3&covenant.necrolord)||buff.bs_inc.remains<1\nactions.stealth+=/lunar_inspiration,if=spell_targets.thrash_cat<3&refreshable&druid.lunar_inspiration.ticks_gained_on_refresh>5&(combo_points=4||dot.lunar_inspiration.remains<5||!dot.lunar_inspiration.ticking)\n# Brutal Slash is better than stealth Shred at 3 targets\nactions.stealth+=/brutal_slash,if=spell_targets.brutal_slash>2\nactions.stealth+=/pool_resource,for_next=1\nactions.stealth+=/shred,if=combo_points<4&spell_targets.thrash_cat<5\n\nactions.balance=sunfire,if=buff.eclipse_solar.down&buff.eclipse_lunar.down&(refreshable||(active_enemies>1&active_dot.sunfire<active_enemies))\nactions.balance+=/starsurge,if=buff.eclipse_solar.remains>10+cast_time||buff.eclipse_lunar.remains>10+cast_time\nactions.balance+=/starfire,if=buff.eclipse_lunar.remains>cast_time||buff.eclipse_solar.down&solar_eclipse>0||buff.eclipse_solar.down&lunar_eclipse-action.wrath.in_flight<1\nactions.balance+=/wrath,if=buff.eclipse_solar.remains>cast_time||buff.eclipse_lunar.down&lunar_eclipse-action.wrath.in_flight>0",
},
["Balance"] = {
["source"] = "https://balance-simc.github.io/Balance-SimC/md.html?file=balance.txt",
["builtIn"] = true,
["date"] = 20211101,
["author"] = "SimC",
["desc"] = "Balance Druid\nSeptember 16, 2021\n\nChanges:\n- Added Solar Beam.\n- Changed target_if cases to cycle_targets.\n- Removed unnecessary variables (i.e., prev_starsurge -> prev.starsurge).\n- Avoid precasting Wrath if it's the wrong Eclipse.\n- Make Convoke the Spirits a little more flexible (if you hadn't hit it simultaneously with BOAT + Celestial Alignment, it'd skip).\n- Make most 'fight_remains' scenarios apply to boss fights only.\n- Treat Tome of Blah Blah Blah as a special trinket.\n- Opener (i.e., Wrath, Wrath, Starfire) made more resilient to earlier combat-start.\n\nAnnotated Balance APL can be found at https://balance-simc.github.io/Balance-SimC/md.html?file=balance.txt\n\nactions.precombat=kindred_spirits\nThe variable is set to 0 with no stat on use trinkets, 1 when the first one is on use, 2 if the second is and 3 if both are\nactions.precombat+=/variable,name=on_use_trinket,value=0\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=1,if=trinket.1.has_use_buff&trinket.1.cooldown.duration&!trinket.1.is.tome_of_monstrous_constructions\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=2,if=trinket.2.has_use_buff&trinket.2.cooldown.duration&!trinket.2.is.tome_of_monstrous_constructions\nThese trinkets are not automatically detected as on use stat trinkets. Set variable to 4 as they also need special handling.\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=4,if=equipped.inscrutable_quantum_device||equipped.empyreal_ordnance||equipped.soulletting_ruby\nactions.precombat+=/moonkin_form\nactions.precombat+=/wrath,line_cd=10,if=(eclipse.lunar_next||eclipse.in_solar||eclipse.in_both||eclipse.any_next)\n\nPrecast 2 Wrath and a Starsurge on ST with Night Fae and BoAT or Starfire otherwise\nactions.opener+=/wrath,if=(eclipse.lunar_next||eclipse.in_solar||eclipse.in_both||eclipse.any_next)&prev.1.wrath&!prev.2.wrath\nactions.opener+=/starfire,line_cd=5,if=!runeforge.balance_of_all_things||!covenant.night_fae||!spell_targets.starfall=1||!talent.natures_balance.enabled||(eclipse.solar_next||eclipse.in_lunar||eclipse.in_both||eclipse.any_next)\nactions.opener+=/starsurge,line_cd=5,if=runeforge.balance_of_all_things&covenant.night_fae&spell_targets.starfall=1\n\nExecuted every time the actor is available.\nactions=solar_beam\nactions+=/call_action_list,name=opener,if=time<(2*action.wrath.cast_time+action.starfire.cast_time)\nSets AoE on 3+ without drift and with Starlord and 2+ otherwise\nactions+=/variable,name=is_aoe,value=spell_targets.starfall>1&(!talent.starlord.enabled||talent.stellar_drift.enabled)||spell_targets.starfall>2\nSets cleave when Starfire can hit 2+ targets which is relevant for the Eclipse to be preferred and which filler to cast\nactions+=/variable,name=is_cleave,value=spell_targets.starfire>1\nVariable that checks if you are in a gcd to avoid the situation where a trinket etc is used in between casts\nactions+=/variable,name=in_gcd,value=prev.moonfire||prev.sunfire||prev.starsurge||prev.starfall||prev.fury_of_elune||buff.ca_inc.remains=buff.ca_inc.duration||prev.ravenous_frenzy||variable.is_aoe\nUse Berserking with CA/Inc or after Convoke in CA/Inc\nactions+=/berserking,if=((!covenant.night_fae||!cooldown.convoke_the_spirits.up)&buff.ca_inc.remains>15&buff.ravenous_frenzy.remains<4&!covenant.venthyr||covenant.venthyr&buff.ca_inc.up&buff.ravenous_frenzy.up&(buff.ravenous_frenzy.remains<11-5*runeforge.sinful_hysteria||buff.ca_inc.remains<11||1%spell_haste<1.55))&variable.in_gcd\nPot with a CA/Inc that isn't a Pulsar proc or when the fight is about to end\nactions+=/potion,if=buff.ca_inc.remains>15&(!runeforge.sinful_hysteria||buff.ravenous_frenzy.remains<17-2*buff.bloodlust.up&buff.ravenous_frenzy.up)||boss&fight_remains<25\nCalculates whether using Convoke now will allow you to still cast the same amount of Convoke+CA/Inc casts\nactions+=/variable,name=convoke_desync,value=ceil((fight_remains-15-cooldown.ca_inc.remains)%180)=ceil((fight_remains-15-cooldown.convoke_the_spirits.duration-cooldown.convoke_the_spirits.remains)%180)&!raid_event.adds.exists||cooldown.ca_inc.remains>interpolated_fight_remains||runeforge.celestial_spirits&cooldown.ca_inc.remains>30||cooldown.convoke_the_spirits.remains>interpolated_fight_remains-10||!covenant.night_fae\nUsed to delay the usage of CA/Inc when using double on use and prevent usage when an add event is about to die\nactions+=/variable,name=cd_condition,value=(fight_remains>15||raid_event.adds.in>50)&(((equipped.empyreal_ordnance&(cooldown.empyreal_ordnance.remains<160||covenant.venthyr&cooldown.empyreal_ordnance.remains<167+(11*runeforge.sinful_hysteria))&!cooldown.empyreal_ordnance.ready)||equipped.soulletting_ruby&(!covenant.night_fae||cooldown.soulletting_ruby_345801.remains<114)||(cooldown.berserking.ready||!race.troll)&((equipped.inscrutable_quantum_device&(cooldown.inscrutable_quantum_device.ready||action.inscrutable_quantum_device.disabled))||(equipped.shadowed_orb_of_torment&cooldown.tormented_insight_355321.remains)||((variable.on_use_trinket=1||variable.on_use_trinket=3)&(trinket.1.ready_cooldown||trinket.1.cooldown.remains>interpolated_fight_remains-10)||variable.on_use_trinket=2&(trinket.2.ready_cooldown||trinket.2.cooldown.remains>interpolated_fight_remains-10)||variable.on_use_trinket=0)))||covenant.kyrian)||boss&fight_remains<buff.ca_inc.duration\nVariable used to delay any trinkets and cds when waiting for an Euphoria proc\nactions+=/variable,name=thrill_seeker_wait,value=!soulbind.thrill_seeker.enabled||fight_remains>200||boss&fight_remains<25+(40-buff.thrill_seeker.stack*2)||buff.thrill_seeker.stack>38-(runeforge.sinful_hysteria*5)\nUse Empyreal Ordnance 20secs before a CA/Inc use.\nactions+=/use_item,name=empyreal_ordnance,if=cooldown.ca_inc.remains<20&cooldown.convoke_the_spirits.remains<20&(variable.thrill_seeker_wait||buff.thrill_seeker.stack>30+(runeforge.sinful_hysteria*6))&variable.in_gcd||boss&fight_remains<37\nUse Soulleting Ruby 6secs before a CA/Inc use.\nactions+=/use_item,name=soulletting_ruby,if=(cooldown.ca_inc.remains<6&!covenant.venthyr&!covenant.night_fae||covenant.night_fae&cooldown.convoke_the_spirits.remains<6&(variable.convoke_desync||cooldown.ca_inc.remains<6)||covenant.venthyr&(!runeforge.sinful_hysteria&cooldown.ca_inc.remains<6||buff.ravenous_frenzy.remains<14+(5*equipped.instructors_divine_bell)&buff.ravenous_frenzy.up)||boss&fight_remains<25||equipped.empyreal_ordnance&cooldown.empyreal_ordnance.remains>20)&variable.in_gcd&!equipped.inscrutable_quantum_device||cooldown.inscrutable_quantum_device.remains>20||boss&fight_remains<20\nAlways use IQD with CA/Inc\nactions+=/variable,name=iqd_condition,value=buff.ca_inc.remains>15&(!runeforge.sinful_hysteria||buff.ravenous_frenzy.remains<=12.2+(3*buff.bloodlust.up)+(8-5*buff.bloodlust.up)*equipped.instructors_divine_bell&buff.ravenous_frenzy.up)||boss&fight_remains<25||equipped.empyreal_ordnance&cooldown.empyreal_ordnance.remains\nactions+=/use_item,name=inscrutable_quantum_device,if=variable.iqd_condition&variable.in_gcd\nUse right before cds\nactions+=/use_item,name=shadowed_orb_of_torment,if=(cooldown.ca_inc.ready&!covenant.night_fae&variable.thrill_seeker_wait&(cooldown.berserking.ready||!race.troll)||covenant.night_fae&cooldown.convoke_the_spirits.ready&(variable.convoke_desync||cooldown.ca_inc.ready))&dot.sunfire.ticking&(dot.stellar_flare.ticking||!talent.stellar_flare.enabled||spell_targets.starfire>3)&dot.moonfire.ticking&(variable.is_aoe||runeforge.balance_of_all_things||astral_power>=90||variable.convoke_desync||buff.bloodlust.up)&!equipped.inscrutable_quantum_device||equipped.inscrutable_quantum_device&cooldown.inscrutable_quantum_device.remains>30&!buff.ca_inc.up||boss&fight_remains<40\nThis is a rather elaborate way to make all on use stat trinkets to be lined up with CA/Inc and Convoke and use the 2nd slot on cd if both trinkets are on use stat trinkets\nactions+=/use_items,slots=trinket1,if=(variable.on_use_trinket!=1&!trinket.2.ready_cooldown||(variable.on_use_trinket=1||variable.on_use_trinket=3)&(buff.ca_inc.up&(!covenant.venthyr||buff.ravenous_frenzy.remains+(5*runeforge.sinful_hysteria)<=trinket.1.buff_duration&buff.ravenous_frenzy.up||buff.ravenous_frenzy_sinful_hysteria.up)||cooldown.ca_inc.remains+2>trinket.1.cooldown.duration&!buff.ca_inc.up&(!covenant.night_fae||!variable.convoke_desync)&!covenant.kyrian||covenant.night_fae&variable.convoke_desync&cooldown.convoke_the_spirits.up&!cooldown.ca_inc.up&((buff.eclipse_lunar.remains>10||buff.eclipse_solar.remains>10)&!runeforge.balance_of_all_things||(buff.balance_of_all_things_nature.stack=5||buff.balance_of_all_things_arcane.stack=8))||buff.kindred_empowerment_energize.up)||boss&fight_remains<20||variable.on_use_trinket=0)&variable.in_gcd\nactions+=/use_items,slots=trinket2,if=(variable.on_use_trinket!=2&!trinket.1.ready_cooldown||variable.on_use_trinket=2&(buff.ca_inc.up&(!covenant.venthyr||buff.ravenous_frenzy.remains+(5*runeforge.sinful_hysteria)<=trinket.2.buff_duration&buff.ravenous_frenzy.up||buff.ravenous_frenzy_sinful_hysteria.up)||cooldown.ca_inc.remains+2>trinket.2.cooldown.duration&!buff.ca_inc.up&(!covenant.night_fae||!variable.convoke_desync)&!covenant.kyrian&(!buff.ca_inc.up||!covenant.venthyr)||covenant.night_fae&variable.convoke_desync&cooldown.convoke_the_spirits.up&!cooldown.ca_inc.up&((buff.eclipse_lunar.remains>10||buff.eclipse_solar.remains>10)&!runeforge.balance_of_all_things||(buff.balance_of_all_things_nature.stack=5||buff.balance_of_all_things_arcane.stack=8)))||buff.kindred_empowerment_energize.up||boss&fight_remains<20||variable.on_use_trinket=0)&variable.in_gcd\nUses all other on use items on cd\nactions+=/use_items\nDecide action list based on situation/legis\nactions+=/run_action_list,name=aoe,strict=1,if=variable.is_aoe\nactions+=/run_action_list,name=boat,strict=1,if=runeforge.balance_of_all_things.equipped\nactions+=/run_action_list,name=st\n\nCalculates whether the Dreamcatcher buff will fall off within the next cast\nactions.aoe=variable,name=dream_will_fall_off,value=(buff.timeworn_dreambinder.remains<gcd.max+0.1||buff.timeworn_dreambinder.remains<action.starfire.execute_time+0.1&(eclipse.in_lunar||eclipse.solar_next||eclipse.any_next))&buff.timeworn_dreambinder.up&runeforge.timeworn_dreambinder\nCalculates whether Starsurge is worth casting over Starfire in Lunar Eclipse\nactions.aoe+=/variable,name=ignore_starsurge,value=!eclipse.in_solar&(spell_targets.starfire>5&talent.soul_of_the_forest.enabled||spell_targets.starfire>7)\nUse Convoke when at less than 50 AsP and line up with CA/Inc\nactions.aoe+=/convoke_the_spirits,if=!druid.no_cds&((variable.convoke_desync&!cooldown.ca_inc.ready||buff.ca_inc.up)&(buff.eclipse_lunar.remains>6||buff.eclipse_solar.remains>6)&(!runeforge.balance_of_all_things||buff.balance_of_all_things_nature.stack>3||buff.balance_of_all_things_arcane.stack>3)||boss&fight_remains<10&!cooldown.ca_inc.ready)\nUse Frenzy with CA/Inc\nactions.aoe+=/ravenous_frenzy,if=buff.ca_inc.remains>15\nUse Sunfire in pandemic on anything that lives 14secs and less with more targets and at the end of a Solar Eclipse at 14 secs or less remaining as to not having to refresh during Lunar Eclipse\nactions.aoe+=/sunfire,cycle_targets=1,if=(refreshable||buff.eclipse_solar.remains<3&eclipse.in_solar&remains<14&talent.soul_of_the_forest.enabled)&target.time_to_die>14-spell_targets+remains&(eclipse.in_any||remains<gcd.max)\nUse Sunfire to have a global to use IQD\nactions.aoe+=/sunfire,if=variable.iqd_condition&cooldown.inscrutable_quantum_device.ready&equipped.inscrutable_quantum_device\nactions.aoe+=/starfall,if=!talent.stellar_drift.enabled&(buff.starfall.refreshable&(spell_targets.starfall<3||!runeforge.timeworn_dreambinder)||talent.soul_of_the_forest.enabled&buff.eclipse_solar.remains<3&eclipse.in_solar&buff.starfall.remains<7&spell_targets.starfall>=4)&(!runeforge.lycaras_fleeting_glimpse||time%%45>buff.starfall.remains+2)&target.time_to_die>5\nWith Stellar Drift use on cd when refreshable but still wait for Lycaras proc and don't use before CDs. Still use before Convoke since that will proc another Starfall\nactions.aoe+=/starfall,if=talent.stellar_drift.enabled&buff.starfall.refreshable&(!runeforge.lycaras_fleeting_glimpse||time%%45>4)&target.time_to_die>3\nWith Dreambinder use Starfall to keep up the buff by also using Starfall on 5 seconds or less remaining\nactions.aoe+=/starfall,if=runeforge.timeworn_dreambinder&spell_targets.starfall>=3&(!buff.timeworn_dreambinder.up&buff.starfall.refreshable||(variable.dream_will_fall_off&(buff.starfall.remains<3||spell_targets.starfall>2&talent.stellar_drift.enabled&buff.starfall.remains<5)))\nCalculates whether a Starsurge use will cause Starfall to fall off, and use Starsurge to keep Dreambinder stack up\nactions.aoe+=/variable,name=starfall_wont_fall_off,value=astral_power>80-(10*buff.timeworn_dreambinder.stack)-(buff.starfall.remains*3%spell_haste*!talent.stellar_drift.enabled)-(cooldown.starfall.remains*3%spell_haste*talent.stellar_drift.enabled)-(dot.fury_of_elune.remains*5)&(buff.starfall.up||cooldown.starfall.remains)\nUse Starsurge with Dreambinder to keep up the buff without losing Starfall uptime and use Starsurge on 4+ BoAT stacks until 4 targets\nactions.aoe+=/starsurge,if=variable.dream_will_fall_off&variable.starfall_wont_fall_off&!variable.ignore_starsurge||(buff.balance_of_all_things_nature.stack>3||buff.balance_of_all_things_arcane.stack>3)&spell_targets.starfall<4&variable.starfall_wont_fall_off\nUse swarm so that you get max uptime by using it as late as possible on less than 3 stacks or just when 3+ stacks expire\nactions.aoe+=/adaptive_swarm,cycle_targets=1,if=!ticking&!action.adaptive_swarm_damage.in_flight||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<3\nRefresh Moonfire if CA/Inc is ready, there are less than 5 targets in Lunar Eclipse with SotF, less than 10 otherwise in any Eclipse or up to 5 targets before a Lunar Eclipse. Don't refresh during Kindred Empowerment unless in Solar Eclipse\nactions.aoe+=/moonfire,cycle_targets=1,if=refreshable&target.time_to_die>((14+(spell_targets.starfire*2*buff.eclipse_lunar.up))+remains)%(1+talent.twin_moons.enabled)&(cooldown.ca_inc.ready&!druid.no_cds&(variable.convoke_desync||cooldown.convoke_the_spirits.ready||!covenant.night_fae)||spell_targets.starfire<((6-(buff.eclipse_lunar.up*2))*(1+talent.twin_moons.enabled))&!eclipse.solar_next||(eclipse.in_solar||(eclipse.in_both||eclipse.in_lunar)&!talent.soul_of_the_forest.enabled||buff.primordial_arcanic_pulsar.value>=250)&(spell_targets.starfire<10*(1+talent.twin_moons.enabled))&astral_power>50-buff.starfall.remains*6)&(!buff.kindred_empowerment_energize.up||eclipse.in_solar||!covenant.kyrian)&!buff.ravenous_frenzy_sinful_hysteria.up\nUse FoN on cd without capping\nactions.aoe+=/force_of_nature,if=ap_check\nactions.aoe+=/variable,name=cd_condition_aoe,value=!druid.no_cds&variable.cd_condition&((buff.starfall.up||talent.stellar_drift.enabled||covenant.night_fae)&(!buff.solstice.up&!buff.ca_inc.up&(!talent.fury_of_elune.enabled||buff.ca_inc.duration>cooldown.fury_of_elune.remains+8)&variable.thrill_seeker_wait&(!covenant.night_fae||cooldown.convoke_the_spirits.up&(buff.starfall.remains<2||!talent.stellar_drift.enabled))&target.time_to_die>buff.ca_inc.duration*0.7)||boss&fight_remains<buff.ca_inc.duration)\nUse CA/Inc on cd unless and line it up with Convoke\nactions.aoe+=/celestial_alignment,if=variable.cd_condition_aoe\nactions.aoe+=/incarnation,if=variable.cd_condition_aoe\nUse Empower Bond on cd with Starfall up and save for Pulsar and CA/Inc\nactions.aoe+=/empower_bond,if=boss&interpolated_fight_remains<15||(buff.primordial_arcanic_pulsar.value<250||buff.primordial_arcanic_pulsar.value>=250)&buff.starfall.up&(cooldown.ca_inc.remains>50||druid.no_cds)\nRefresh flare on up to 3 targets without CA/Inc being about to expire and not overcapping\nactions.aoe+=/stellar_flare,cycle_targets=1,if=refreshable&time_to_die>15&spell_targets.starfire<4&ap_check&(buff.ca_inc.remains>10||!buff.ca_inc.up)\nUse FoE if inside an Eclipse and line it up with a Pulsar proc and Adaptive Swarm\nactions.aoe+=/fury_of_elune,if=eclipse.in_any&ap_check&buff.primordial_arcanic_pulsar.value<250&(dot.adaptive_swarm_damage.ticking||!covenant.necrolord||spell_targets>2)&(buff.ravenous_frenzy.remains<9-(5*runeforge.sinful_hysteria)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up)&(!cooldown.ca_inc.up||buff.thrill_seeker.stack<15&fight_remains<200&fight_remains>100||!soulbind.thrill_seeker.enabled)&(soulbind.thrill_seeker.enabled||cooldown.ca_inc.remains>30)\nUse a Starfall Oneth proc unless Starfall is already up or you are about to overcap AsP\nactions.aoe+=/starfall,if=buff.oneths_perception.up&(buff.starfall.refreshable||astral_power>90)\nDump AsP before Convoke with Starfall and then Starsurge\nactions.aoe+=/starfall,if=covenant.night_fae&!talent.stellar_drift.enabled&(variable.convoke_desync||cooldown.ca_inc.up||buff.ca_inc.up)&cooldown.convoke_the_spirits.remains<gcd.max*ceil(astral_power%50)&buff.starfall.remains<4&!druid.no_cds\nactions.aoe+=/starsurge,if=covenant.night_fae&(variable.convoke_desync||cooldown.ca_inc.up||buff.ca_inc.up)&cooldown.convoke_the_spirits.remains<6&buff.starfall.up&eclipse.in_any&!variable.ignore_starsurge&!druid.no_cds\nUse Starsurge with an Oneth proc or if you'd overcap AsP with your next cast. Also dump AsP at the end of the Venthyr buff if Starfall wouldn't fall off or you are on 2 targets\nactions.aoe+=/starsurge,if=buff.oneths_clear_vision.up||(!starfire.ap_check&!variable.ignore_starsurge||(buff.ca_inc.remains<5&buff.ca_inc.up||((buff.ca_inc.remains<gcd.max*ceil(astral_power%30)&buff.ca_inc.up||buff.ravenous_frenzy_sinful_hysteria.remains<gcd.max*ceil(astral_power%30)&buff.ravenous_frenzy_sinful_hysteria.up)&covenant.venthyr))&(spell_targets.starfall<3||variable.starfall_wont_fall_off))&!variable.ignore_starsurge&(!runeforge.timeworn_dreambinder||spell_targets.starfall<3)\nUse Moons in Solar Eclipse and save Full Moon for CA/Inc\nactions.aoe+=/new_moon,if=(buff.eclipse_solar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check\nactions.aoe+=/half_moon,if=(buff.eclipse_solar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check&(buff.ravenous_frenzy.remains<5&buff.ravenous_frenzy.up&!runeforge.sinful_hysteria||!buff.ravenous_frenzy.up)\nactions.aoe+=/full_moon,if=(buff.eclipse_solar.remains>execute_time&(cooldown.ca_inc.remains>50||cooldown.convoke_the_spirits.remains>50)||(charges=2&recharge_time<5)||charges=3)&ap_check&(buff.ravenous_frenzy.remains<5&buff.ravenous_frenzy.up&!runeforge.sinful_hysteria||!buff.ravenous_frenzy.up)\nUse WoE on CD\nactions.aoe+=/warrior_of_elune\nCalculates whether to use Starfire in Solar which is at 5 targets+1 for every 20% mastery or 4 Starsurge Empowerment stacks\nactions.aoe+=/variable,name=starfire_in_solar,value=spell_targets.starfire>4+floor(mastery_value*100%20)+floor(buff.starsurge_empowerment_solar.stack%4)\nCalculates whether to Wrath during Frenzy\nactions.aoe+=/variable,name=wrath_in_frenzy,value=1%spell_haste<2-(0.2*(spell_targets.starfire-1)*(1+talent.soul_of_the_forest.enabled*1.5))+0.15*buff.ravenous_frenzy.remains\nUse Wrath in Solar Eclipse or if no Starfire will fit into CA/Inc anymore\nactions.aoe+=/wrath,if=(eclipse.lunar_next||eclipse.any_next&variable.is_cleave)&(target.time_to_die>4||eclipse.lunar_in_2||fight_remains<10)||buff.eclipse_solar.remains<action.starfire.execute_time&buff.eclipse_solar.up||eclipse.in_solar&!variable.starfire_in_solar||buff.ca_inc.remains<action.starfire.execute_time&!variable.is_cleave&buff.ca_inc.remains<execute_time&buff.ca_inc.up||buff.ravenous_frenzy.up&variable.wrath_in_frenzy||!variable.is_cleave&buff.ca_inc.remains>execute_time\nUse Starfire if in Lunar Eclipse, in Solar Eclipse on 4+ targets or to proc Solar Eclipse\nactions.aoe+=/starfire\nFallthru\nactions.aoe+=/run_action_list,name=fallthru\n\nFrenzy with CA/Inc\nactions.boat=ravenous_frenzy,if=buff.ca_inc.remains>15\nUse Adaptive Swarm when at less than 4 BoAT stacks and to refresh a <=2 stack as late as possible or time it so it arrives just after a 3+ stack expires\nactions.boat+=/adaptive_swarm,cycle_targets=1,if=buff.balance_of_all_things_nature.stack<8&buff.balance_of_all_things_arcane.stack<8&(!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>3)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<5&dot.adaptive_swarm_damage.ticking)\nUse Convoke with CA/Inc when possible and otherwise with a BoAT buff when desyncing\nactions.boat+=/convoke_the_spirits,if=!druid.no_cds&((variable.convoke_desync&!cooldown.ca_inc.ready||buff.ca_inc.up)&(buff.balance_of_all_things_nature.stack=8||buff.balance_of_all_things_arcane.stack=8)||boss&fight_remains<10&cooldown.ca_inc.remains>7)\nFoE as the first gcd in the a BoAT window or with the Kyrian buff or with a 8+sec Adaptive Swarm and wait for CA/Inc if it wont be up again before the cd is finished\nactions.boat+=/fury_of_elune,if=(((buff.balance_of_all_things_nature.stack>6||buff.balance_of_all_things_arcane.stack>6)&(!covenant.venthyr||!buff.ravenous_frenzy.up))&(druid.no_cds||cooldown.ca_inc.remains>50||(covenant.night_fae&cooldown.convoke_the_spirits.remains>50)))||(dot.adaptive_swarm_damage.remains>8&cooldown.ca_inc.remains>10&covenant.necrolord)||interpolated_fight_remains<8&!cooldown.ca_inc.ready||covenant.kyrian&buff.kindred_empowerment.up||covenant.venthyr&buff.ravenous_frenzy.remains<9&buff.ravenous_frenzy.up\nCancel Starlord with a new BoAT buff and CA/Inc isn't about to be used\nactions.boat+=/cancel_buff,name=starlord,if=(buff.balance_of_all_things_nature.remains>7.5||buff.balance_of_all_things_arcane.remains>7.5)&(cooldown.ca_inc.remains>7||(cooldown.empower_bond.remains>7&!buff.kindred_empowerment_energize.up&covenant.kyrian))&astral_power>=30\nDump Starsurges with a BoAT buff but not when pooling for CA/Inc or Kindred Spirits\nctions.boat+=/starsurge,if=(buff.balance_of_all_things_nature.stack>2||buff.balance_of_all_things_arcane.stack>2)&((!covenant.night_fae||astral_power>=40)&cooldown.ca_inc.remains>7||!variable.cd_condition&!covenant.kyrian||(cooldown.empower_bond.remains>7&!buff.kindred_empowerment_energize.up&covenant.kyrian))&(!dot.fury_of_elune.ticking||!cooldown.ca_inc.ready||!cooldown.convoke_the_spirits.ready)\nDump Starsurges before Convoke\nactions.boat+=/starsurge,if=(cooldown.convoke_the_spirits.remains<5&!druid.no_cds&(variable.convoke_desync||cooldown.ca_inc.remains<5)&variable.cd_condition)&!dot.fury_of_elune.ticking&covenant.night_fae&!druid.no_cds&eclipse.in_any&astral_power>40\nDon't dot during the end of Ravenous Frenzy, during kindred empowerment or in the last gcd of an Eclipse\nactions.boat+=/variable,name=dot_requirements,value=(buff.ravenous_frenzy.remains>5||!buff.ravenous_frenzy.up)&(buff.kindred_empowerment_energize.remains<gcd.max)&(buff.eclipse_solar.remains>gcd.max||buff.eclipse_lunar.remains>gcd.max)\nactions.boat+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>16&ap_check&variable.dot_requirements\nactions.boat+=/moonfire,cycle_targets=1,if=refreshable&target.time_to_die>13.5&ap_check&variable.dot_requirements\nactions.boat+=/stellar_flare,cycle_targets=1,if=refreshable&target.time_to_die>16+remains&ap_check&variable.dot_requirements\nFoN on cd without capping\nactions.boat+=/force_of_nature,if=ap_check\nEmpower Bond when about to enter a new BoAT window and save for CA/Inc\nactions.boat+=/empower_bond,if=(eclipse.lunar_next||eclipse.solar_next||eclipse.any_next||buff.balance_of_all_things_nature.remains>7.5||buff.balance_of_all_things_arcane.remains>7.5||astral_power>90&cooldown.ca_inc.ready&!druid.no_cds)&(cooldown.ca_inc.remains>30||cooldown.ca_inc.ready)||boss&interpolated_fight_remains<10\nFoE right before using CA\nactions.boat+=/fury_of_elune,if=cooldown.ca_inc.ready&variable.cd_condition&(astral_power>90&!covenant.night_fae||covenant.night_fae&astral_power<40)&!covenant.venthyr&(!covenant.night_fae||cooldown.convoke_the_spirits.ready)&!druid.no_cds\nCA/Inc when at 90+ AsP (orlower than 40 AsP with Convoke) without losing time in Bloodlust and line up with Convoke if it was desynced\nactions.boat+=/variable,name=cd_condition_boat,value=!druid.no_cds&variable.cd_condition&((astral_power>90&(buff.kindred_empowerment_energize.up||!covenant.kyrian)||buff.bloodlust.up&buff.bloodlust.remains<buff.ca_inc.duration)||boss&interpolated_fight_remains<buff.ca_inc.duration||covenant.night_fae)&(!covenant.night_fae||(astral_power<40||dot.fury_of_elune.ticking)&(variable.convoke_desync||cooldown.convoke_the_spirits.ready))\nactions.boat+=/celestial_alignment,if=variable.cd_condition_boat\nactions.boat+=/incarnation,if=variable.cd_condition_boat\nEstimates how much AsP are gained per second\nactions.boat+=/variable,name=aspPerSec,value=eclipse.in_lunar*8%action.starfire.execute_time+!eclipse.in_lunar*(6+talent.soul_of_the_forest.enabled*3)%action.wrath.execute_time+0.2%spell_haste\nDump Starsurges when the fight is about to end, frenzy is about to end, you are at 90+ AsP in an Eclipse, CA/Inc lasts another 8+secs or you would overcap more than ~10 AsP when you wouldn't Starsurge now\nactions.boat+=/starsurge,if=(boss&interpolated_fight_remains<4||(buff.ravenous_frenzy.remains<gcd.max*ceil(astral_power%30)&buff.ravenous_frenzy.up))||(astral_power+variable.aspPerSec*buff.eclipse_solar.remains+dot.fury_of_elune.ticks_remain*2.5>110||astral_power+variable.aspPerSec*buff.eclipse_lunar.remains+dot.fury_of_elune.ticks_remain*2.5>110)&eclipse.in_any&(!buff.ca_inc.up||!talent.starlord.enabled)&((!cooldown.ca_inc.up||covenant.kyrian&!cooldown.empower_bond.up)||covenant.night_fae)&(!covenant.venthyr||!buff.ca_inc.up||astral_power>90)||(talent.starlord.enabled&buff.ca_inc.up&(buff.starlord.stack<3||astral_power>90))||buff.ca_inc.up&!buff.ravenous_frenzy.up&!talent.starlord.enabled\nUse Moons in Lunar Eclipse and save Half+Full Moon for CA/Inc\nactions.boat+=/new_moon,if=(buff.eclipse_lunar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check\nactions.boat+=/half_moon,if=(buff.eclipse_lunar.remains>execute_time&(cooldown.ca_inc.remains>50||cooldown.convoke_the_spirits.remains>50)||(charges=2&recharge_time<5)||charges=3)&ap_check\nactions.boat+=/full_moon,if=(buff.eclipse_lunar.remains>execute_time&(cooldown.ca_inc.remains>50||cooldown.convoke_the_spirits.remains>50)||(charges=2&recharge_time<5)||charges=3)&ap_check\nWoE on cd\nactions.boat+=/warrior_of_elune\nUse Starfire to proc Solar Eclipse or when in only Lunar Eclipse and use WoE procs if in Lunar Eclipse\nactions.boat+=/starfire,if=eclipse.in_lunar||eclipse.solar_next||eclipse.any_next||buff.warrior_of_elune.up&buff.eclipse_lunar.up||(buff.ca_inc.remains<action.wrath.execute_time&buff.ca_inc.up)\nactions.boat+=/wrath\nactions.boat+=/run_action_list,name=fallthru\n\nStarsurge for movement unless using BoAT\nactions.fallthru=starsurge,if=!runeforge.balance_of_all_things.equipped\nCast the dot with the most time to add until the max duration is hit. Sunfire remains multiplied to match moonfire duration\nactions.fallthru+=/sunfire,cycle_targets=1,if=dot.moonfire.remains>remains*22%18\nactions.fallthru+=/moonfire\n\nUse Starsurge to keep up the Dreambinder buff if it would expire before finishing the next cast or to dump before Convoke\nactions.st=starsurge,if=runeforge.timeworn_dreambinder&(eclipse.in_any&!((buff.timeworn_dreambinder.remains>action.wrath.execute_time+0.1&(eclipse.in_both||eclipse.in_solar||eclipse.lunar_next)||buff.timeworn_dreambinder.remains>action.starfire.execute_time+0.1&(eclipse.in_lunar||eclipse.solar_next||eclipse.any_next))||!buff.timeworn_dreambinder.up)||(buff.ca_inc.up||variable.convoke_desync)&cooldown.convoke_the_spirits.ready&covenant.night_fae)&(!covenant.kyrian||cooldown.empower_bond.remains>8)&(buff.ca_inc.up||!cooldown.ca_inc.ready)\nUse Adaptive Swarm when there is no active swarm, as late as possible on swarm with 2 or fewer stacks or on a 3+ swarm so that the new swarm arrives just after that swarm expires\nactions.st+=/adaptive_swarm,cycle_targets=1,if=!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>5)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<3&dot.adaptive_swarm_damage.ticking\nUses Convoke if CA/Inc is up or you are desyncing CA/Inc with Convoke and you are below 40 AsP\nactions.st+=/convoke_the_spirits,if=!druid.no_cds&((variable.convoke_desync&!cooldown.ca_inc.ready&!runeforge.primordial_arcanic_pulsar||buff.ca_inc.up)&astral_power<=40&(buff.eclipse_lunar.remains>10||buff.eclipse_solar.remains>10)||boss&fight_remains<10&!cooldown.ca_inc.ready)\nCondition for all dots that makes sure they aren't refreshed when Ravenous Frenzy has less than 5 secs remaining or the kyrian buff is about to fall off or any Eclipse is about to expire\nactions.st+=/variable,name=dot_requirements,value=(buff.ravenous_frenzy.remains>5||!buff.ravenous_frenzy.up)&!buff.ravenous_frenzy_sinful_hysteria.up&(buff.kindred_empowerment_energize.remains<gcd.max)&(buff.eclipse_solar.remains>gcd.max||buff.eclipse_lunar.remains>gcd.max||(!buff.eclipse_lunar.up||!buff.eclipse_solar.up)&!talent.solstice.enabled)\nCondition that checks if you are outside eclipse to only dot there or ignore this with Solstice\nactions.st+=/variable,name=dot_outside_eclipse,value=(!buff.eclipse_solar.up&!buff.eclipse_lunar.up)||talent.solstice.enabled\nactions.st+=/moonfire,cycle_targets=1,if=refreshable&(buff.eclipse_solar.remains>remains||buff.eclipse_lunar.remains>remains||variable.dot_outside_eclipse)&refreshable&target.time_to_die>12&ap_check&variable.dot_requirements\nactions.st+=/sunfire,cycle_targets=1,if=refreshable&(buff.eclipse_solar.remains>remains||buff.eclipse_lunar.remains>remains||variable.dot_outside_eclipse)&refreshable&target.time_to_die>12&ap_check&variable.dot_requirements\nactions.st+=/stellar_flare,cycle_targets=1,if=refreshable&(buff.eclipse_solar.remains>remains||buff.eclipse_lunar.remains>remains||variable.dot_outside_eclipse)&refreshable&target.time_to_die>16&ap_check&variable.dot_requirements\nUse FoN on cd without capping\nactions.st+=/force_of_nature,if=ap_check\nUse Kindred Spirits with any long enough lasting Eclipse and try to line it up with Pulsar and CA/Inc\nactions.st+=/empower_bond,if=((buff.eclipse_solar.remains>10||buff.eclipse_lunar.remains>10)&cooldown.ca_inc.remains>30&(buff.primordial_arcanic_pulsar.value<240||!runeforge.primordial_arcanic_pulsar.equipped))||buff.primordial_arcanic_pulsar.value>=270||cooldown.ca_inc.ready&astral_power>90\nUse CA/Inc with Convoke/Kindred Spirits and don't overwrite Pulsar or when Bloodlust would expire before CA/Inc expires\nactions.st+=/variable,name=cd_condition_st,value=!druid.no_cds&variable.cd_condition&((cooldown.empyreal_ordnance.remains<167+(11*runeforge.sinful_hysteria)&equipped.empyreal_ordnance)||astral_power>=90&(!talent.fury_of_elune.enabled||buff.ca_inc.duration>cooldown.fury_of_elune.remains+8)&dot.sunfire.remains>12&dot.moonfire.remains>8&(dot.stellar_flare.remains>8||!talent.stellar_flare.enabled)&variable.thrill_seeker_wait&(buff.kindred_empowerment_energize.up||!covenant.kyrian)&target.time_to_die>buff.ca_inc.duration*0.7||boss&fight_remains<buff.ca_inc.duration||covenant.night_fae||buff.bloodlust.up&buff.bloodlust.remains<buff.ca_inc.duration+(9*runeforge.primordial_arcanic_pulsar.equipped))&!buff.ca_inc.up&(!covenant.night_fae||cooldown.convoke_the_spirits.up||boss&fight_remains<cooldown.convoke_the_spirits.remains+6||fight_remains%%180<buff.ca_inc.duration)\nactions.st+=/variable,name=cd_condition_st,value=!druid.no_cds&variable.cd_condition&((cooldown.empyreal_ordnance.remains<167+(11*runeforge.sinful_hysteria)&equipped.empyreal_ordnance)||astral_power>=90&(!talent.fury_of_elune.enabled||buff.ca_inc.duration>cooldown.fury_of_elune.remains+8)&dot.sunfire.remains>8&dot.moonfire.remains>9&(dot.stellar_flare.remains>10||!talent.stellar_flare.enabled)&variable.thrill_seeker_wait&(buff.kindred_empowerment_energize.up||!covenant.kyrian)&target.time_to_die>buff.ca_inc.duration*0.7||boss&fight_remains<buff.ca_inc.duration||covenant.night_fae||buff.bloodlust.up&buff.bloodlust.remains<buff.ca_inc.duration+(9*runeforge.primordial_arcanic_pulsar.equipped))&!buff.ca_inc.up&(!covenant.night_fae||cooldown.convoke_the_spirits.up||boss&fight_remains<cooldown.convoke_the_spirits.remains+6||boss&fight_remains%%180<buff.ca_inc.duration)\nUse the Venthyr with a CA/Inc that isn't from Pulsar\nactions.st+=/ravenous_frenzy,if=buff.ca_inc.remains>15||buff.ca_inc.duration<32&variable.cd_condition_st\nactions.st+=/celestial_alignment,if=variable.cd_condition_st&(buff.ca_inc.duration>=32||!covenant.venthyr)||buff.ravenous_frenzy.up&buff.ravenous_frenzy.remains<9+conduit.precise_alignment.time_value+(!buff.bloodlust.up&!talent.starlord.enabled)\nactions.st+=/incarnation,if=variable.cd_condition_st\nVariable used on abilities that want to be saved for CA/Inc so that they arent wasted just before them\nactions.st+=/variable,name=save_for_ca_inc,value=!cooldown.ca_inc.ready||!variable.convoke_desync&covenant.night_fae||druid.no_cds\nUses FoE if in an Eclipse and tries to line it up with Pulsar, CA/Inc and Adaptive Swarm\nactions.st+=/fury_of_elune,if=eclipse.in_any&ap_check&buff.primordial_arcanic_pulsar.value<240&(dot.adaptive_swarm_damage.ticking||!covenant.necrolord)&variable.save_for_ca_inc&(buff.ravenous_frenzy.remains<9-(5*runeforge.sinful_hysteria+!equipped.instructors_divine_bell)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up)\nUse Oneth Starfall procs if Starfall isn't up\nactions.st+=/starfall,if=buff.oneths_perception.up&buff.starfall.refreshable\nactions.st+=/cancel_buff,name=starlord,if=buff.starlord.remains<5&(buff.eclipse_solar.remains>5||buff.eclipse_lunar.remains>5)&astral_power>90\nDumps AsP before Convoke using the Convoke condition to check if Convoke is actually about to be cast\nactions.st+=/starsurge,if=covenant.night_fae&variable.convoke_desync&cooldown.convoke_the_spirits.remains<5&!druid.no_cds&eclipse.in_any&astral_power>40\nUse Starfall with Stellar Drift and no Starlord, when no Starfall is up, you are in Lunar Eclipse for 8+secs or to proc Pulsar when above 90 AsP or adpative swarm has 8+secs remaining or is in flight. Note that under the same conditions it's dps neutral to Starfall during Ravenous Frenzy, when you'd still end up with 90+asp for the last globals.\nactions.st+=/starfall,if=talent.stellar_drift.enabled&!talent.starlord.enabled&buff.starfall.refreshable&(buff.eclipse_lunar.remains>8&eclipse.in_lunar&buff.primordial_arcanic_pulsar.value<250||buff.primordial_arcanic_pulsar.value>=250&astral_power>90||dot.adaptive_swarm_damage.remains>8||action.adaptive_swarm_damage.in_flight)&cooldown.ca_inc.remains>10\nUse Starsurge Oneth procs and dump AsP when CA/Inc or the Venthyr buff is about to fall off or you'd cap AsP\nactions.st+=/starsurge,if=buff.oneths_clear_vision.up||buff.kindred_empowerment_energize.up||buff.ca_inc.up&(buff.ravenous_frenzy.remains<gcd.max*ceil(astral_power%30)+3*talent.new_moon.enabled&!runeforge.sinful_hysteria&buff.ravenous_frenzy.up||buff.ca_inc.remains<gcd.max*ceil(astral_power%30)||buff.ravenous_frenzy_sinful_hysteria.up||(buff.ravenous_frenzy.remains<action.starfire.execute_time&spell_haste<0.4||buff.ravenous_frenzy.remains<action.wrath.execute_time||variable.iqd_condition&cooldown.inscrutable_quantum_device.ready&equipped.inscrutable_quantum_device)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up&!cooldown.ravenous_frenzy.ready||!covenant.venthyr)||astral_power>90&eclipse.in_any\nTry to make the best of Starlord by stacking it up quickly in any Eclipse but Pulsar isnt about to be procced\nactions.st+=/starsurge,if=talent.starlord.enabled&!runeforge.timeworn_dreambinder&(buff.starlord.up||astral_power>90)&buff.starlord.stack<3&(buff.eclipse_solar.up||buff.eclipse_lunar.up)&buff.primordial_arcanic_pulsar.value<270&(cooldown.ca_inc.remains>10||!variable.convoke_desync&covenant.night_fae)\nEstimates how much AsP are gained per second\nactions.st+=/variable,name=aspPerSec,value=eclipse.in_lunar*8%action.starfire.execute_time+!eclipse.in_lunar*(6+talent.soul_of_the_forest.enabled*3)%action.wrath.execute_time+0.45%spell_haste+0.5*talent.natures_balance.enabled\nDump Starsurge in a 7+sec Solar Eclipse, don't let it proc Pulsar (that is handled by either the Starfall line or the AsP>90 line for Starsurge), don't overwrite an Oneth proc and let the above line handle Starlord\nactions.st+=/starsurge,if=!runeforge.timeworn_dreambinder&(buff.primordial_arcanic_pulsar.value<270||buff.primordial_arcanic_pulsar.value<250&talent.stellar_drift.enabled)&(eclipse.in_solar&astral_power+variable.aspPerSec*buff.eclipse_solar.remains+dot.fury_of_elune.ticks_remain*2.5>80||eclipse.in_lunar&astral_power+variable.aspPerSec*buff.eclipse_lunar.remains+dot.fury_of_elune.ticks_remain*2.5>90)&!buff.oneths_perception.up&!talent.starlord.enabled&(cooldown.ca_inc.remains>7||soulbind.thrill_seeker.enabled&buff.thrill_seeker.stack<33-(runeforge.sinful_hysteria*5)&fight_remains>100&fight_remains<200||druid.no_cds)&(cooldown.kindred_spirits.remains>7||!covenant.kyrian)\nUse Moons in Lunar Eclipse and save Half+Full Moon for CA/Inc and Kindred Empowerment\nactions.st+=/new_moon,if=(buff.eclipse_lunar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check&variable.save_for_ca_inc\nactions.st+=/half_moon,if=(buff.eclipse_lunar.remains>execute_time&!covenant.kyrian||(buff.kindred_empowerment_energize.up&covenant.kyrian)||(charges=2&recharge_time<5)||charges=3||buff.ca_inc.up)&ap_check&variable.save_for_ca_inc&(buff.ravenous_frenzy.remains<(5-2*runeforge.sinful_hysteria)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up)\nactions.st+=/full_moon,if=(buff.eclipse_lunar.remains>execute_time&!covenant.kyrian||(buff.kindred_empowerment_energize.up&covenant.kyrian)||(charges=2&recharge_time<5)||charges=3||buff.ca_inc.up)&ap_check&variable.save_for_ca_inc&(buff.ravenous_frenzy.remains<5&buff.ravenous_frenzy.up&!runeforge.sinful_hysteria||!buff.ravenous_frenzy.up)\nUse WoE on cd\nactions.st+=/warrior_of_elune\nUse Starfire to proc Solar Eclipse, CA/Inc has less time than a Wrath execute left or only Lunar Eclipse is up\nactions.st+=/starfire,if=eclipse.in_lunar&!buff.ravenous_frenzy.up||eclipse.solar_next||eclipse.any_next||(buff.warrior_of_elune.up||spell_haste<0.45&!covenant.venthyr||spell_haste<0.4&covenant.venthyr)&buff.eclipse_lunar.up||(buff.ca_inc.remains<action.wrath.execute_time&buff.ca_inc.up)\nUse Wrath otherwise which is in Solar Eclipse, CA/Inc or to proc Lunar Eclipse\nactions.st+=/wrath\nFallthru\nactions.st+=/run_action_list,name=fallthru",
["lists"] = {
["opener"] = {
{
["enabled"] = true,
["action"] = "wrath",
["description"] = "Precast 2 Wrath and a Starsurge on ST with Night Fae and BoAT or Starfire otherwise",
["criteria"] = "( eclipse.lunar_next || eclipse.in_solar || eclipse.in_both || eclipse.any_next ) & prev.1.wrath & ! prev.2.wrath",
}, -- [1]
{
["enabled"] = true,
["action"] = "starfire",
["criteria"] = "! runeforge.balance_of_all_things.enabled || ! covenant.night_fae || ! spell_targets.starfall = 1 || ! talent.natures_balance.enabled || ( eclipse.solar_next || eclipse.in_lunar || eclipse.in_both || eclipse.any_next )",
["line_cd"] = "5",
}, -- [2]
{
["enabled"] = true,
["action"] = "starsurge",
["criteria"] = "runeforge.balance_of_all_things.enabled & covenant.night_fae & spell_targets.starfall = 1",
["line_cd"] = "5",
}, -- [3]
},
["default"] = {
{
["action"] = "solar_beam",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "time < ( 2 * action.wrath.cast_time + action.starfire.cast_time )",
["action"] = "call_action_list",
["list_name"] = "opener",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.starfall > 1 & ( ! talent.starlord.enabled || talent.stellar_drift.enabled ) || spell_targets.starfall > 2",
["description"] = "Sets AoE on 3+ without drift and with Starlord and 2+ otherwise",
["var_name"] = "is_aoe",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.starfire > 1",
["description"] = "Sets cleave when Starfire can hit 2+ targets which is relevant for the Eclipse to be preferred and which filler to cast",
["var_name"] = "is_cleave",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "prev_gcd.1.moonfire || prev_gcd.1.sunfire || prev_gcd.1.starsurge || prev_gcd.1.starfall || prev_gcd.1.fury_of_elune || prev.ravenous_frenzy || buff.ca_inc.remains = buff.ca_inc.duration || variable.is_aoe",
["description"] = "Variable that checks if you are in a gcd to avoid the situation where a trinket etc is used in between casts",
["var_name"] = "in_gcd",
}, -- [5]
{
["enabled"] = true,
["action"] = "berserking",
["description"] = "Use Berserking with CA/Inc or after Convoke in CA/Inc",
["criteria"] = "( ( ! covenant.night_fae || ! cooldown.convoke_the_spirits.up ) & buff.ca_inc.remains > 15 & buff.ravenous_frenzy.remains < 4 & ! covenant.venthyr || covenant.venthyr & buff.ca_inc.up & buff.ravenous_frenzy.up & ( buff.ravenous_frenzy.remains < 11 - 5 * runeforge.sinful_hysteria.enabled || buff.ca_inc.remains < 11 || 1 / spell_haste < 1.55 ) ) & variable.in_gcd",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( buff.ca_inc.remains > 15 & ( ! runeforge.sinful_hysteria.enabled || buff.ravenous_frenzy.remains < 17 - 2 * buff.bloodlust.up & buff.ravenous_frenzy.up ) || boss & fight_remains < 25 ) & variable.in_gcd",
["description"] = "Pot with a CA/Inc that isn't a Pulsar proc or when the fight is about to end",
["action"] = "potion",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "ceil ( ( fight_remains - 15 - cooldown.ca_inc.remains ) / 180 ) = ceil ( ( fight_remains - 15 - cooldown.convoke_the_spirits.duration - cooldown.convoke_the_spirits.remains ) / 180 ) & ! raid_event.adds.exists || cooldown.ca_inc.remains > interpolated_fight_remains || runeforge.celestial_spirits.enabled & cooldown.ca_inc.remains > 30 || cooldown.convoke_the_spirits.remains > interpolated_fight_remains - 10 || ! covenant.night_fae",
["description"] = "Calculates whether using Convoke now will allow you to still cast the same amount of Convoke+CA/Inc casts",
["var_name"] = "convoke_desync",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( fight_remains > 15 || raid_event.adds.in > 50 ) & ( ( ( equipped.empyreal_ordnance & ( cooldown.empyreal_ordnance.remains < 160 || covenant.venthyr & cooldown.empyreal_ordnance.remains < 167 + ( 11 * runeforge.sinful_hysteria.enabled ) ) & ! cooldown.empyreal_ordnance.ready ) || equipped.soulletting_ruby & ( ! covenant.night_fae || cooldown.soulletting_ruby_345801.remains < 114 ) || ( cooldown.berserking.ready || ! race.troll ) & ( ( equipped.inscrutable_quantum_device & ( cooldown.inscrutable_quantum_device.ready || action.inscrutable_quantum_device.disabled ) ) || ( equipped.shadowed_orb_of_torment & cooldown.tormented_insight_355321.remains ) || ( ( variable.on_use_trinket = 1 || variable.on_use_trinket = 3 ) & ( trinket.t1.ready_cooldown || trinket.t1.cooldown.remains > interpolated_fight_remains - 10 ) || variable.on_use_trinket = 2 & ( trinket.t2.ready_cooldown || trinket.t2.cooldown.remains > interpolated_fight_remains - 10 ) || variable.on_use_trinket = 0 ) ) ) || covenant.kyrian ) || boss & fight_remains < buff.ca_inc.duration",
["description"] = "Used to delay the usage of CA/Inc when using double on use and prevent usage when an add event is about to die",
["var_name"] = "cd_condition",
}, -- [9]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! soulbind.thrill_seeker.enabled || fight_remains > 200 || boss & fight_remains < 25 + ( 40 - buff.thrill_seeker.stack * 2 ) || buff.thrill_seeker.stack > 38 - ( runeforge.sinful_hysteria.enabled * 5 )",
["description"] = "Variable used to delay any trinkets and cds when waiting for an Euphoria proc",
["var_name"] = "thrill_seeker_wait",
}, -- [10]
{
["enabled"] = true,
["name"] = "empyreal_ordnance",
["description"] = "Use Empyreal Ordnance 20secs before a CA/Inc use.",
["criteria"] = "cooldown.ca_inc.remains < 20 & cooldown.convoke_the_spirits.remains < 20 & ( variable.thrill_seeker_wait || buff.thrill_seeker.stack > 30 + ( runeforge.sinful_hysteria.enabled * 6 ) ) & variable.in_gcd || boss & fight_remains < 37",
["action"] = "empyreal_ordnance",
}, -- [11]
{
["enabled"] = true,
["name"] = "soulletting_ruby",
["description"] = "Use Soulleting Ruby 6secs before a CA/Inc use.",
["criteria"] = "( cooldown.ca_inc.remains < 6 & ! covenant.venthyr & ! covenant.night_fae || covenant.night_fae & cooldown.convoke_the_spirits.remains < 6 & ( variable.convoke_desync || cooldown.ca_inc.remains < 6 ) || covenant.venthyr & ( ! runeforge.sinful_hysteria.enabled & cooldown.ca_inc.remains < 6 || buff.ravenous_frenzy.remains < 14 + ( 5 * equipped.instructors_divine_bell ) & buff.ravenous_frenzy.up ) || boss & fight_remains < 25 || equipped.empyreal_ordnance & cooldown.empyreal_ordnance.remains > 20 ) & variable.in_gcd & ! equipped.inscrutable_quantum_device || cooldown.inscrutable_quantum_device.remains > 20 || boss & fight_remains < 20",
["action"] = "soulletting_ruby",
}, -- [12]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.ca_inc.remains > 15 & ( ! runeforge.sinful_hysteria.enabled || buff.ravenous_frenzy.remains <= 12.2 + ( 3 * buff.bloodlust.up ) + ( 8 - 5 * buff.bloodlust.up ) * equipped.instructors_divine_bell & buff.ravenous_frenzy.up ) || boss & fight_remains < 25 || equipped.empyreal_ordnance & cooldown.empyreal_ordnance.remains",
["description"] = "Always use IQD with CA/Inc",
["var_name"] = "iqd_condition",
}, -- [13]
{
["enabled"] = true,
["action"] = "inscrutable_quantum_device",
["criteria"] = "variable.iqd_condition & variable.in_gcd",
["name"] = "inscrutable_quantum_device",
}, -- [14]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["description"] = "Use right before cds",
["criteria"] = "( cooldown.ca_inc.ready & ! covenant.night_fae & variable.thrill_seeker_wait & ( cooldown.berserking.ready || ! race.troll ) || covenant.night_fae & cooldown.convoke_the_spirits.ready & ( variable.convoke_desync || cooldown.ca_inc.ready ) ) & dot.sunfire.ticking & ( dot.stellar_flare.ticking || ! talent.stellar_flare.enabled || spell_targets.starfire > 3 ) & dot.moonfire.ticking & ( variable.is_aoe || runeforge.balance_of_all_things.enabled || astral_power >= 90 || variable.convoke_desync || buff.bloodlust.up ) & ! equipped.inscrutable_quantum_device || equipped.inscrutable_quantum_device & cooldown.inscrutable_quantum_device.remains > 30 & ! buff.ca_inc.up || boss & fight_remains < 40",
["action"] = "shadowed_orb_of_torment",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( variable.on_use_trinket != 1 & ! trinket.t2.ready_cooldown || ( variable.on_use_trinket = 1 || variable.on_use_trinket = 3 ) & ( buff.ca_inc.up & ( ! covenant.venthyr || buff.ravenous_frenzy.remains + ( 5 * runeforge.sinful_hysteria.enabled ) <= trinket.t1.buff_duration & buff.ravenous_frenzy.up || buff.ravenous_frenzy_sinful_hysteria.up ) || cooldown.ca_inc.remains + 2 > trinket.t1.cooldown.duration & ! buff.ca_inc.up & ( ! covenant.night_fae || ! variable.convoke_desync ) & ! covenant.kyrian || covenant.night_fae & variable.convoke_desync & cooldown.convoke_the_spirits.up & ! cooldown.ca_inc.up & ( ( buff.eclipse_lunar.remains > 10 || buff.eclipse_solar.remains > 10 ) & ! runeforge.balance_of_all_things.enabled || ( buff.balance_of_all_things_nature.stack = 5 || buff.balance_of_all_things_arcane.stack = 8 ) ) || buff.kindred_empowerment_energize.up ) || boss & fight_remains < 20 || variable.on_use_trinket = 0 ) & variable.in_gcd",
["description"] = "This is a rather elaborate way to make all on use stat trinkets to be lined up with CA/Inc and Convoke and use the 2nd slot on cd if both trinkets are on use stat trinkets",
["slots"] = "trinket1",
["action"] = "trinket1",
}, -- [16]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( variable.on_use_trinket != 2 & ! trinket.t1.ready_cooldown || variable.on_use_trinket = 2 & ( buff.ca_inc.up & ( ! covenant.venthyr || buff.ravenous_frenzy.remains + ( 5 * runeforge.sinful_hysteria.enabled ) <= trinket.t2.buff_duration & buff.ravenous_frenzy.up || buff.ravenous_frenzy_sinful_hysteria.up ) || cooldown.ca_inc.remains + 2 > trinket.t2.cooldown.duration & ! buff.ca_inc.up & ( ! covenant.night_fae || ! variable.convoke_desync ) & ! covenant.kyrian & ( ! buff.ca_inc.up || ! covenant.venthyr ) || covenant.night_fae & variable.convoke_desync & cooldown.convoke_the_spirits.up & ! cooldown.ca_inc.up & ( ( buff.eclipse_lunar.remains > 10 || buff.eclipse_solar.remains > 10 ) & ! runeforge.balance_of_all_things.enabled || ( buff.balance_of_all_things_nature.stack = 5 || buff.balance_of_all_things_arcane.stack = 8 ) ) ) || buff.kindred_empowerment_energize.up || boss & fight_remains < 20 || variable.on_use_trinket = 0 ) & variable.in_gcd",
["slots"] = "trinket2",
}, -- [17]
{
["enabled"] = true,
["description"] = "Uses all other on use items on cd",
["action"] = "use_items",
}, -- [18]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "Decide action list based on situation/legis",
["strict"] = 1,
["criteria"] = "variable.is_aoe",
["list_name"] = "aoe",
}, -- [19]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "runeforge.balance_of_all_things.equipped",
["list_name"] = "boat",
}, -- [20]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "st",
}, -- [21]
},
["boat"] = {
{
["enabled"] = true,
["action"] = "ravenous_frenzy",
["description"] = "Frenzy with CA/Inc",
["criteria"] = "buff.ca_inc.remains > 15",
}, -- [1]
{
["enabled"] = true,
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
["criteria"] = "buff.balance_of_all_things_nature.stack < 8 & buff.balance_of_all_things_arcane.stack < 8 & ( ! dot.adaptive_swarm_damage.ticking & ! action.adaptive_swarm_damage.in_flight & ( ! dot.adaptive_swarm_heal.ticking || dot.adaptive_swarm_heal.remains > 3 ) || dot.adaptive_swarm_damage.stack < 3 & dot.adaptive_swarm_damage.remains < 5 & dot.adaptive_swarm_damage.ticking )",
["description"] = "Use Adaptive Swarm when at less than 4 BoAT stacks and to refresh a <=2 stack as late as possible or time it so it arrives just after a 3+ stack expires",
}, -- [2]
{
["enabled"] = true,
["action"] = "convoke_the_spirits",
["description"] = "Use Convoke with CA/Inc when possible and otherwise with a BoAT buff when desyncing",
["criteria"] = "! druid.no_cds & ( ( variable.convoke_desync & ! cooldown.ca_inc.ready || buff.ca_inc.up ) & ( buff.balance_of_all_things_nature.stack = 8 || buff.balance_of_all_things_arcane.stack = 8 ) || boss & fight_remains < 10 & cooldown.ca_inc.remains > 7 )",
}, -- [3]
{
["enabled"] = true,
["action"] = "fury_of_elune",
["description"] = "FoE as the first gcd in the a BoAT window or with the Kyrian buff or with a 8+sec Adaptive Swarm and wait for CA/Inc if it wont be up again before the cd is finished",
["criteria"] = "( ( ( buff.balance_of_all_things_nature.stack > 6 || buff.balance_of_all_things_arcane.stack > 6 ) & ( ! covenant.venthyr || ! buff.ravenous_frenzy.up ) ) & ( druid.no_cds || cooldown.ca_inc.remains > 50 || ( covenant.night_fae & cooldown.convoke_the_spirits.remains > 50 ) ) ) || ( dot.adaptive_swarm_damage.remains > 8 & cooldown.ca_inc.remains > 10 & covenant.necrolord ) || interpolated_fight_remains < 8 & ! cooldown.ca_inc.ready || covenant.kyrian & buff.kindred_empowerment.up || covenant.venthyr & buff.ravenous_frenzy.remains < 9 & buff.ravenous_frenzy.up",
}, -- [4]
{
["buff_name"] = "starlord",
["criteria"] = "( buff.balance_of_all_things_nature.remains > 7.5 || buff.balance_of_all_things_arcane.remains > 7.5 ) & ( cooldown.ca_inc.remains > 7 || ( cooldown.empower_bond.remains > 7 & ! buff.kindred_empowerment_energize.up & covenant.kyrian ) ) & astral_power >= 30",
["action"] = "cancel_buff",
["enabled"] = true,
["description"] = "Cancel Starlord with a new BoAT buff and CA/Inc isn't about to be used",
}, -- [5]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Dump Starsurges before Convoke",
["criteria"] = "( cooldown.convoke_the_spirits.remains < 5 & ! druid.no_cds & ( variable.convoke_desync || cooldown.ca_inc.remains < 5 ) & variable.cd_condition ) & ! dot.fury_of_elune.ticking & covenant.night_fae & ! druid.no_cds & eclipse.in_any & astral_power > 40",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( buff.ravenous_frenzy.remains > 5 || ! buff.ravenous_frenzy.up ) & ( buff.kindred_empowerment_energize.remains < gcd.max ) & ( buff.eclipse_solar.remains > gcd.max || buff.eclipse_lunar.remains > gcd.max )",
["description"] = "Don't dot during the end of Ravenous Frenzy, during kindred empowerment or in the last gcd of an Eclipse",
["var_name"] = "dot_requirements",
}, -- [7]
{
["enabled"] = true,
["action"] = "sunfire",
["criteria"] = "refreshable & target.time_to_die > 16 & ap_check & variable.dot_requirements",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "refreshable & target.time_to_die > 13.5 & ap_check & variable.dot_requirements",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["action"] = "stellar_flare",
["criteria"] = "refreshable & target.time_to_die > 16 + remains & ap_check & variable.dot_requirements",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["action"] = "force_of_nature",
["description"] = "FoN on cd without capping",
["criteria"] = "ap_check",
}, -- [11]
{
["enabled"] = true,
["action"] = "empower_bond",
["description"] = "Empower Bond when about to enter a new BoAT window and save for CA/Inc",
["criteria"] = "( eclipse.lunar_next || eclipse.solar_next || eclipse.any_next || buff.balance_of_all_things_nature.remains > 7.5 || buff.balance_of_all_things_arcane.remains > 7.5 || astral_power > 90 & cooldown.ca_inc.ready & ! druid.no_cds ) & ( cooldown.ca_inc.remains > 30 || cooldown.ca_inc.ready ) || boss & interpolated_fight_remains < 10",
}, -- [12]
{
["enabled"] = true,
["action"] = "fury_of_elune",
["description"] = "FoE right before using CA",
["criteria"] = "cooldown.ca_inc.ready & variable.cd_condition & ( astral_power > 90 & ! covenant.night_fae || covenant.night_fae & astral_power < 40 ) & ! covenant.venthyr & ( ! covenant.night_fae || cooldown.convoke_the_spirits.ready ) & ! druid.no_cds",
}, -- [13]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! druid.no_cds & variable.cd_condition & ( ( astral_power > 90 & ( buff.kindred_empowerment_energize.up || ! covenant.kyrian ) || buff.bloodlust.up & buff.bloodlust.remains < buff.ca_inc.duration ) || boss & interpolated_fight_remains < buff.ca_inc.duration || covenant.night_fae ) & ( ! covenant.night_fae || ( astral_power < 40 || dot.fury_of_elune.ticking ) & ( variable.convoke_desync || cooldown.convoke_the_spirits.ready ) )",
["description"] = "CA/Inc when at 90+ AsP (orlower than 40 AsP with Convoke) without losing time in Bloodlust and line up with Convoke if it was desynced",
["var_name"] = "cd_condition_boat",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_boat",
["action"] = "celestial_alignment",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_boat",
["action"] = "incarnation",
}, -- [16]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "eclipse.in_lunar * 8 / action.starfire.execute_time + ! eclipse.in_lunar * ( 6 + talent.soul_of_the_forest.enabled * 3 ) / action.wrath.execute_time + 0.2 / spell_haste",
["description"] = "Estimates how much AsP are gained per second",
["var_name"] = "aspPerSec",
}, -- [17]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Dump Starsurges when the fight is about to end, frenzy is about to end, you are at 90+ AsP in an Eclipse, CA/Inc lasts another 8+secs or you would overcap more than ~10 AsP when you wouldn't Starsurge now",
["criteria"] = "( boss & interpolated_fight_remains < 4 || ( buff.ravenous_frenzy.remains < gcd.max * ceil ( astral_power / 30 ) & buff.ravenous_frenzy.up ) ) || ( astral_power + variable.aspPerSec * buff.eclipse_solar.remains + dot.fury_of_elune.ticks_remain * 2.5 > 110 || astral_power + variable.aspPerSec * buff.eclipse_lunar.remains + dot.fury_of_elune.ticks_remain * 2.5 > 110 ) & eclipse.in_any & ( ! buff.ca_inc.up || ! talent.starlord.enabled ) & ( ( ! cooldown.ca_inc.up || covenant.kyrian & ! cooldown.empower_bond.up ) || covenant.night_fae ) & ( ! covenant.venthyr || ! buff.ca_inc.up || astral_power > 90 ) || ( talent.starlord.enabled & buff.ca_inc.up & ( buff.starlord.stack < 3 || astral_power > 90 ) ) || buff.ca_inc.up & ! buff.ravenous_frenzy.up & ! talent.starlord.enabled",
}, -- [18]
{
["enabled"] = true,
["action"] = "new_moon",
["description"] = "Use Moons in Lunar Eclipse and save Half+Full Moon for CA/Inc",
["criteria"] = "( buff.eclipse_lunar.remains > execute_time || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_lunar.remains > execute_time & ( cooldown.ca_inc.remains > 50 || cooldown.convoke_the_spirits.remains > 50 ) || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check",
["action"] = "half_moon",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_lunar.remains > execute_time & ( cooldown.ca_inc.remains > 50 || cooldown.convoke_the_spirits.remains > 50 ) || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check",
["action"] = "full_moon",
}, -- [21]
{
["enabled"] = true,
["description"] = "WoE on cd",
["action"] = "warrior_of_elune",
}, -- [22]
{
["enabled"] = true,
["action"] = "starfire",
["description"] = "Use Starfire to proc Solar Eclipse or when in only Lunar Eclipse and use WoE procs if in Lunar Eclipse",
["criteria"] = "eclipse.in_lunar || eclipse.solar_next || eclipse.any_next || buff.warrior_of_elune.up & buff.eclipse_lunar.up || ( buff.ca_inc.remains < action.wrath.execute_time & buff.ca_inc.up )",
}, -- [23]
{
["action"] = "wrath",
["enabled"] = true,
}, -- [24]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "fallthru",
}, -- [25]
},
["aoe"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( buff.timeworn_dreambinder.remains < gcd.max + 0.1 || buff.timeworn_dreambinder.remains < action.starfire.execute_time + 0.1 & ( eclipse.in_lunar || eclipse.solar_next || eclipse.any_next ) ) & buff.timeworn_dreambinder.up & runeforge.timeworn_dreambinder.enabled",
["description"] = "Calculates whether the Dreamcatcher buff will fall off within the next cast",
["var_name"] = "dream_will_fall_off",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! eclipse.in_solar & ( spell_targets.starfire > 5 & talent.soul_of_the_forest.enabled || spell_targets.starfire > 7 )",
["description"] = "Calculates whether Starsurge is worth casting over Starfire in Lunar Eclipse",
["var_name"] = "ignore_starsurge",
}, -- [2]
{
["enabled"] = true,
["action"] = "convoke_the_spirits",
["description"] = "Use Convoke when at less than 50 AsP and line up with CA/Inc",
["criteria"] = "! druid.no_cds & ( ( variable.convoke_desync & ! cooldown.ca_inc.ready || buff.ca_inc.up ) & ( buff.eclipse_lunar.remains > 6 || buff.eclipse_solar.remains > 6 ) & ( ! runeforge.balance_of_all_things.enabled || buff.balance_of_all_things_nature.stack > 3 || buff.balance_of_all_things_arcane.stack > 3 ) || boss & fight_remains < 10 & ! cooldown.ca_inc.ready )",
}, -- [3]
{
["enabled"] = true,
["action"] = "sunfire",
["cycle_targets"] = 1,
["criteria"] = "( refreshable || buff.eclipse_solar.remains < 3 & eclipse.in_solar & remains < 14 & talent.soul_of_the_forest.enabled ) & target.time_to_die > 14 - spell_targets + remains & ( eclipse.in_any || remains < gcd.max )",
["description"] = "Use Sunfire in pandemic on anything that lives 14secs and less with more targets and at the end of a Solar Eclipse at 14 secs or less remaining as to not having to refresh during Lunar Eclipse",
}, -- [4]
{
["enabled"] = true,
["action"] = "sunfire",
["description"] = "Use Sunfire to have a global to use IQD",
["criteria"] = "variable.iqd_condition & cooldown.inscrutable_quantum_device.ready & equipped.inscrutable_quantum_device",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! talent.stellar_drift.enabled & ( buff.starfall.refreshable & ( spell_targets.starfall < 3 || ! runeforge.timeworn_dreambinder.enabled ) || talent.soul_of_the_forest.enabled & buff.eclipse_solar.remains < 3 & eclipse.in_solar & buff.starfall.remains < 7 & spell_targets.starfall >= 4 ) & ( ! runeforge.lycaras_fleeting_glimpse.enabled || time % 45 > buff.starfall.remains + 2 ) & target.time_to_die > 5",
["action"] = "starfall",
}, -- [6]
{
["enabled"] = true,
["action"] = "starfall",
["description"] = "With Stellar Drift use on cd when refreshable but still wait for Lycaras proc and don't use before CDs. Still use before Convoke since that will proc another Starfall",
["criteria"] = "talent.stellar_drift.enabled & buff.starfall.refreshable & ( ! runeforge.lycaras_fleeting_glimpse.enabled || time % 45 > 4 ) & target.time_to_die > 3",
}, -- [7]
{
["enabled"] = true,
["action"] = "starfall",
["description"] = "With Dreambinder use Starfall to keep up the buff by also using Starfall on 5 seconds or less remaining",
["criteria"] = "runeforge.timeworn_dreambinder.enabled & spell_targets.starfall >= 3 & ( ! buff.timeworn_dreambinder.up & buff.starfall.refreshable || ( variable.dream_will_fall_off & ( buff.starfall.remains < 3 || spell_targets.starfall > 2 & talent.stellar_drift.enabled & buff.starfall.remains < 5 ) ) )",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "astral_power > 80 - ( 10 * buff.timeworn_dreambinder.stack ) - ( buff.starfall.remains * 3 / spell_haste * ! talent.stellar_drift.enabled ) - ( cooldown.starfall.remains * 3 / spell_haste * talent.stellar_drift.enabled ) - ( dot.fury_of_elune.remains * 5 ) & ( buff.starfall.up || cooldown.starfall.remains )",
["description"] = "Calculates whether a Starsurge use will cause Starfall to fall off, and use Starsurge to keep Dreambinder stack up",
["var_name"] = "starfall_wont_fall_off",
}, -- [9]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Use Starsurge with Dreambinder to keep up the buff without losing Starfall uptime and use Starsurge on 4+ BoAT stacks until 4 targets",
["criteria"] = "variable.dream_will_fall_off & variable.starfall_wont_fall_off & ! variable.ignore_starsurge || ( buff.balance_of_all_things_nature.stack > 3 || buff.balance_of_all_things_arcane.stack > 3 ) & spell_targets.starfall < 4 & variable.starfall_wont_fall_off",
}, -- [10]
{
["enabled"] = true,
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
["criteria"] = "! ticking & ! action.adaptive_swarm_damage.in_flight || dot.adaptive_swarm_damage.stack < 3 & dot.adaptive_swarm_damage.remains < 3",
["description"] = "Use swarm so that you get max uptime by using it as late as possible on less than 3 stacks or just when 3+ stacks expire",
}, -- [11]
{
["enabled"] = true,
["action"] = "moonfire",
["cycle_targets"] = 1,
["criteria"] = "refreshable & target.time_to_die > ( ( 14 + ( spell_targets.starfire * 2 * buff.eclipse_lunar.up ) ) + remains ) / ( 1 + talent.twin_moons.enabled ) & ( cooldown.ca_inc.ready & ! druid.no_cds & ( variable.convoke_desync || cooldown.convoke_the_spirits.ready || ! covenant.night_fae ) || spell_targets.starfire < ( ( 6 - ( buff.eclipse_lunar.up * 2 ) ) * ( 1 + talent.twin_moons.enabled ) ) & ! eclipse.solar_next || ( eclipse.in_solar || ( eclipse.in_both || eclipse.in_lunar ) & ! talent.soul_of_the_forest.enabled || buff.primordial_arcanic_pulsar.value >= 250 ) & ( spell_targets.starfire < 10 * ( 1 + talent.twin_moons.enabled ) ) & astral_power > 50 - buff.starfall.remains * 6 ) & ( ! buff.kindred_empowerment_energize.up || eclipse.in_solar || ! covenant.kyrian ) & ! buff.ravenous_frenzy_sinful_hysteria.up",
["description"] = "Refresh Moonfire if CA/Inc is ready, there are less than 5 targets in Lunar Eclipse with SotF, less than 10 otherwise in any Eclipse or up to 5 targets before a Lunar Eclipse. Don't refresh during Kindred Empowerment unless in Solar Eclipse",
}, -- [12]
{
["enabled"] = true,
["action"] = "force_of_nature",
["description"] = "Use FoN on cd without capping",
["criteria"] = "ap_check",
}, -- [13]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! druid.no_cds & variable.cd_condition & ( ( buff.starfall.up || talent.stellar_drift.enabled || covenant.night_fae ) & ( ! buff.solstice.up & ! buff.ca_inc.up & ( ! talent.fury_of_elune.enabled || buff.ca_inc.duration > cooldown.fury_of_elune.remains + 8 ) & variable.thrill_seeker_wait & ( ! covenant.night_fae || cooldown.convoke_the_spirits.up & ( buff.starfall.remains < 2 || ! talent.stellar_drift.enabled ) ) & target.time_to_die > buff.ca_inc.duration * 0.7 ) || boss & fight_remains < buff.ca_inc.duration )",
["var_name"] = "cd_condition_aoe",
}, -- [14]
{
["enabled"] = true,
["action"] = "ravenous_frenzy",
["description"] = "Use Frenzy with CA/Inc",
["criteria"] = "buff.ca_inc.remains > 15 || buff.ca_inc.duration < 30 & variable.cd_condition_aoe",
}, -- [15]
{
["enabled"] = true,
["action"] = "celestial_alignment",
["description"] = "Use CA/Inc on cd unless and line it up with Convoke",
["criteria"] = "variable.cd_condition_aoe & ( buff.ca_inc.duration >= 30 || ! covenant.venthyr ) || buff.ravenous_frenzy.up & buff.ravenous_frenzy.remains < 9 + conduit.precise_alignment.time_value + ( ! buff.bloodlust.up & ! talent.starlord.enabled )",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_aoe",
["action"] = "incarnation",
}, -- [17]
{
["enabled"] = true,
["action"] = "empower_bond",
["description"] = "Use Empower Bond on cd with Starfall up and save for Pulsar and CA/Inc",
["criteria"] = "boss & interpolated_fight_remains < 15 || ( buff.primordial_arcanic_pulsar.value < 250 || buff.primordial_arcanic_pulsar.value >= 250 ) & buff.starfall.up & ( cooldown.ca_inc.remains > 40 || druid.no_cds )",
}, -- [18]
{
["enabled"] = true,
["action"] = "stellar_flare",
["cycle_targets"] = 1,
["criteria"] = "refreshable & time_to_die > 15 & spell_targets.starfire < 4 & ap_check & ( buff.ca_inc.remains > 10 || ! buff.ca_inc.up )",
["description"] = "Refresh flare on up to 3 targets without CA/Inc being about to expire and not overcapping",
}, -- [19]
{
["enabled"] = true,
["action"] = "fury_of_elune",
["description"] = "Use FoE if inside an Eclipse and line it up with a Pulsar proc and Adaptive Swarm",
["criteria"] = "eclipse.in_any & buff.primordial_arcanic_pulsar.value < 250 & ( dot.adaptive_swarm_damage.ticking || ! covenant.necrolord || spell_targets > 2 ) & ( buff.ravenous_frenzy.remains < 9 - ( 5 * runeforge.sinful_hysteria.enabled ) & buff.ravenous_frenzy.up || ! buff.ravenous_frenzy.up ) & ( ! cooldown.ca_inc.up || buff.thrill_seeker.stack < 15 & fight_remains < 200 & fight_remains > 100 || ! soulbind.thrill_seeker.enabled ) & ( soulbind.thrill_seeker.enabled || cooldown.ca_inc.remains > 30 )",
}, -- [20]
{
["enabled"] = true,
["action"] = "starfall",
["description"] = "Use a Starfall Oneth proc unless Starfall is already up or you are about to overcap AsP",
["criteria"] = "buff.oneths_perception.up & ( buff.starfall.refreshable || astral_power > 90 )",
}, -- [21]
{
["enabled"] = true,
["action"] = "starfall",
["description"] = "Dump AsP before Convoke with Starfall and then Starsurge",
["criteria"] = "covenant.night_fae & ! talent.stellar_drift.enabled & ( variable.convoke_desync || cooldown.ca_inc.up || buff.ca_inc.up ) & cooldown.convoke_the_spirits.remains < gcd.max * ceil ( astral_power / 50 ) & buff.starfall.remains < 4 & ! druid.no_cds",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "covenant.night_fae & ( variable.convoke_desync || cooldown.ca_inc.up || buff.ca_inc.up ) & cooldown.convoke_the_spirits.remains < 6 & buff.starfall.up & eclipse.in_any & ! variable.ignore_starsurge & ! druid.no_cds",
["action"] = "starsurge",
}, -- [23]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Use Starsurge with an Oneth proc or if you'd overcap AsP with your next cast. Also dump AsP at the end of the Venthyr buff if Starfall wouldn't fall off or you are on 2 targets",
["criteria"] = "buff.oneths_clear_vision.up || ( ! starfire.ap_check & ! variable.ignore_starsurge || ( buff.ca_inc.remains < 5 & buff.ca_inc.up || ( ( buff.ca_inc.remains < gcd.max * ceil ( astral_power / 30 ) & buff.ca_inc.up || buff.ravenous_frenzy_sinful_hysteria.remains < gcd.max * ceil ( astral_power / 30 ) & buff.ravenous_frenzy_sinful_hysteria.up ) & covenant.venthyr ) ) & ( spell_targets.starfall < 3 || variable.starfall_wont_fall_off ) ) & ! variable.ignore_starsurge & ( ! runeforge.timeworn_dreambinder.enabled || spell_targets.starfall < 3 )",
}, -- [24]
{
["enabled"] = true,
["action"] = "new_moon",
["description"] = "Use Moons in Solar Eclipse and save Full Moon for CA/Inc",
["criteria"] = "( buff.eclipse_solar.remains > execute_time || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_solar.remains > execute_time || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check & ( buff.ravenous_frenzy.remains < 5 & buff.ravenous_frenzy.up & ! runeforge.sinful_hysteria.enabled || ! buff.ravenous_frenzy.up )",
["action"] = "half_moon",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_solar.remains > execute_time & ( cooldown.ca_inc.remains > 50 || cooldown.convoke_the_spirits.remains > 50 ) || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check & ( buff.ravenous_frenzy.remains < 5 & buff.ravenous_frenzy.up & ! runeforge.sinful_hysteria.enabled || ! buff.ravenous_frenzy.up )",
["action"] = "full_moon",
}, -- [27]
{
["enabled"] = true,
["description"] = "Use WoE on CD",
["action"] = "warrior_of_elune",
}, -- [28]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.starfire > 4 + floor ( mastery_value * 100 / 20 ) + floor ( buff.starsurge_empowerment_solar.stack / 4 )",
["description"] = "Calculates whether to use Starfire in Solar which is at 5 targets+1 for every 20% mastery or 4 Starsurge Empowerment stacks",
["var_name"] = "starfire_in_solar",
}, -- [29]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1 / spell_haste < 2 - ( 0.2 * ( spell_targets.starfire - 1 ) * ( 1 + talent.soul_of_the_forest.enabled * 1.5 ) ) + 0.15 * buff.ravenous_frenzy.remains",
["description"] = "Calculates whether to Wrath during Frenzy",
["var_name"] = "wrath_in_frenzy",
}, -- [30]
{
["enabled"] = true,
["action"] = "wrath",
["description"] = "Use Wrath in Solar Eclipse or if no Starfire will fit into CA/Inc anymore",
["criteria"] = "( eclipse.lunar_next || eclipse.any_next & variable.is_cleave ) & ( target.time_to_die > 4 || eclipse.lunar_in_2 || fight_remains < 10 ) || buff.eclipse_solar.remains < action.starfire.execute_time & buff.eclipse_solar.up || eclipse.in_solar & ! variable.starfire_in_solar || buff.ca_inc.remains < action.starfire.execute_time & ! variable.is_cleave & buff.ca_inc.remains < execute_time & buff.ca_inc.up || buff.ravenous_frenzy.up & variable.wrath_in_frenzy || ! variable.is_cleave & buff.ca_inc.remains > execute_time",
}, -- [31]
{
["enabled"] = true,
["description"] = "Use Starfire if in Lunar Eclipse, in Solar Eclipse on 4+ targets or to proc Solar Eclipse",
["action"] = "starfire",
}, -- [32]
{
["enabled"] = true,
["description"] = "Fallthru",
["action"] = "run_action_list",
["list_name"] = "fallthru",
}, -- [33]
},
["fallthru"] = {
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Starsurge for movement unless using BoAT",
["criteria"] = "! runeforge.balance_of_all_things.equipped",
}, -- [1]
{
["enabled"] = true,
["action"] = "sunfire",
["cycle_targets"] = 1,
["criteria"] = "dot.moonfire.remains > remains * 22 / 18",
["description"] = "Cast the dot with the most time to add until the max duration is hit. Sunfire remains multiplied to match moonfire duration",
}, -- [2]
{
["action"] = "moonfire",
["enabled"] = true,
}, -- [3]
},
["st"] = {
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Use Starsurge to keep up the Dreambinder buff if it would expire before finishing the next cast or to dump before Convoke",
["criteria"] = "runeforge.timeworn_dreambinder.enabled & ( eclipse.in_any & ! ( ( buff.timeworn_dreambinder.remains > action.wrath.execute_time + 0.1 & ( eclipse.in_both || eclipse.in_solar || eclipse.lunar_next ) || buff.timeworn_dreambinder.remains > action.starfire.execute_time + 0.1 & ( eclipse.in_lunar || eclipse.solar_next || eclipse.any_next ) ) || ! buff.timeworn_dreambinder.up ) || ( buff.ca_inc.up || variable.convoke_desync ) & cooldown.convoke_the_spirits.ready & covenant.night_fae ) & ( ! covenant.kyrian || cooldown.empower_bond.remains > 8 ) & ( buff.ca_inc.up || ! cooldown.ca_inc.ready )",
}, -- [1]
{
["enabled"] = true,
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
["criteria"] = "! dot.adaptive_swarm_damage.ticking & ! action.adaptive_swarm_damage.in_flight & ( ! dot.adaptive_swarm_heal.ticking || dot.adaptive_swarm_heal.remains > 5 ) || dot.adaptive_swarm_damage.stack < 3 & dot.adaptive_swarm_damage.remains < 3 & dot.adaptive_swarm_damage.ticking",
["description"] = "Use Adaptive Swarm when there is no active swarm, as late as possible on swarm with 2 or fewer stacks or on a 3+ swarm so that the new swarm arrives just after that swarm expires",
}, -- [2]
{
["enabled"] = true,
["action"] = "convoke_the_spirits",
["description"] = "Uses Convoke if CA/Inc is up or you are desyncing CA/Inc with Convoke and you are below 40 AsP",
["criteria"] = "! druid.no_cds & ( ( variable.convoke_desync & ! cooldown.ca_inc.ready & ! runeforge.primordial_arcanic_pulsar.enabled || buff.ca_inc.up ) & astral_power <= 40 & ( buff.eclipse_lunar.remains > 10 || buff.eclipse_solar.remains > 10 ) || boss & fight_remains < 10 & ! cooldown.ca_inc.ready )",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( buff.ravenous_frenzy.remains > 5 || ! buff.ravenous_frenzy.up ) & ! buff.ravenous_frenzy_sinful_hysteria.up & ( buff.kindred_empowerment_energize.remains < gcd.max ) & ( buff.eclipse_solar.remains > gcd.max || buff.eclipse_lunar.remains > gcd.max || ( ! buff.eclipse_lunar.up || ! buff.eclipse_solar.up ) & ! talent.solstice.enabled )",
["description"] = "Condition for all dots that makes sure they aren't refreshed when Ravenous Frenzy has less than 5 secs remaining or the kyrian buff is about to fall off or any Eclipse is about to expire",
["var_name"] = "dot_requirements",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! buff.eclipse_solar.up & ! buff.eclipse_lunar.up ) || talent.solstice.enabled",
["description"] = "Condition that checks if you are outside eclipse to only dot there or ignore this with Solstice",
["var_name"] = "dot_outside_eclipse",
}, -- [5]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "refreshable & ( buff.eclipse_solar.remains > remains || buff.eclipse_lunar.remains > remains || variable.dot_outside_eclipse ) & refreshable & target.time_to_die > 12 & ap_check & variable.dot_requirements",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["action"] = "sunfire",
["criteria"] = "refreshable & ( buff.eclipse_solar.remains > remains || buff.eclipse_lunar.remains > remains || variable.dot_outside_eclipse ) & refreshable & target.time_to_die > 12 & ap_check & variable.dot_requirements",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "stellar_flare",
["criteria"] = "refreshable & ( buff.eclipse_solar.remains > remains || buff.eclipse_lunar.remains > remains || variable.dot_outside_eclipse ) & refreshable & target.time_to_die > 16 & ap_check & variable.dot_requirements",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["action"] = "force_of_nature",
["description"] = "Use FoN on cd without capping",
["criteria"] = "ap_check",
}, -- [9]
{
["enabled"] = true,
["action"] = "empower_bond",
["description"] = "Use Kindred Spirits with any long enough lasting Eclipse and try to line it up with Pulsar and CA/Inc",
["criteria"] = "( ( buff.eclipse_solar.remains > 10 || buff.eclipse_lunar.remains > 10 ) & cooldown.ca_inc.remains > 30 & ( buff.primordial_arcanic_pulsar.value < 240 || ! runeforge.primordial_arcanic_pulsar.equipped ) ) || buff.primordial_arcanic_pulsar.value >= 270 || buff.ca_inc.remains > 10",
}, -- [10]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! druid.no_cds & variable.cd_condition & ( ( cooldown.empyreal_ordnance.remains < 167 + ( 11 * runeforge.sinful_hysteria.enabled ) & equipped.empyreal_ordnance ) || astral_power >= 90 & ( ! talent.fury_of_elune.enabled || buff.ca_inc.duration > cooldown.fury_of_elune.remains + 8 ) & dot.sunfire.remains > 12 & dot.moonfire.remains > 8 & ( dot.stellar_flare.remains > 8 || ! talent.stellar_flare.enabled ) & variable.thrill_seeker_wait & ( cooldown.empower_bond.up || ! covenant.kyrian ) & target.time_to_die > buff.ca_inc.duration * 0.7 || boss & fight_remains < buff.ca_inc.duration || covenant.night_fae || buff.bloodlust.up & buff.bloodlust.remains < buff.ca_inc.duration + ( 9 * runeforge.primordial_arcanic_pulsar.equipped ) ) & ! buff.ca_inc.up & ( ! covenant.night_fae || cooldown.convoke_the_spirits.up || boss & fight_remains < cooldown.convoke_the_spirits.remains + 6 || fight_remains % 180 < buff.ca_inc.duration )",
["description"] = "Use CA/Inc with Convoke/Kindred Spirits and don't overwrite Pulsar or when Bloodlust would expire before CA/Inc expires",
["var_name"] = "cd_condition_st",
}, -- [11]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! druid.no_cds & variable.cd_condition & ( ( cooldown.empyreal_ordnance.remains < 167 + ( 11 * runeforge.sinful_hysteria.enabled ) & equipped.empyreal_ordnance ) || astral_power >= 90 & ( ! talent.fury_of_elune.enabled || buff.ca_inc.duration > cooldown.fury_of_elune.remains + 8 ) & dot.sunfire.remains > 8 & dot.moonfire.remains > 9 & ( dot.stellar_flare.remains > 10 || ! talent.stellar_flare.enabled ) & variable.thrill_seeker_wait & ( buff.kindred_empowerment_energize.up || ! covenant.kyrian ) & target.time_to_die > buff.ca_inc.duration * 0.7 || boss & fight_remains < buff.ca_inc.duration || covenant.night_fae || buff.bloodlust.up & buff.bloodlust.remains < buff.ca_inc.duration + ( 9 * runeforge.primordial_arcanic_pulsar.equipped ) ) & ! buff.ca_inc.up & ( ! covenant.night_fae || cooldown.convoke_the_spirits.up || boss & fight_remains < cooldown.convoke_the_spirits.remains + 6 || boss & fight_remains % 180 < buff.ca_inc.duration )",
["var_name"] = "cd_condition_st",
}, -- [12]
{
["enabled"] = true,
["action"] = "ravenous_frenzy",
["description"] = "Use the Venthyr with a CA/Inc that isn't from Pulsar",
["criteria"] = "buff.ca_inc.remains > 15 || buff.ca_inc.duration < 32 & variable.cd_condition_st",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_st & ( buff.ca_inc.duration >= 32 || ! covenant.venthyr ) || buff.ravenous_frenzy.up & buff.ravenous_frenzy.remains < 9 + conduit.precise_alignment.time_value + ( ! buff.bloodlust.up & ! talent.starlord.enabled )",
["action"] = "celestial_alignment",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_st",
["action"] = "incarnation",
}, -- [15]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! cooldown.ca_inc.ready || ! variable.convoke_desync & covenant.night_fae || druid.no_cds",
["description"] = "Variable used on abilities that want to be saved for CA/Inc so that they arent wasted just before them",
["var_name"] = "save_for_ca_inc",
}, -- [16]
{
["enabled"] = true,
["action"] = "fury_of_elune",
["description"] = "Uses FoE if in an Eclipse and tries to line it up with Pulsar, CA/Inc and Adaptive Swarm",
["criteria"] = "eclipse.in_any & ap_check & buff.primordial_arcanic_pulsar.value < 240 & ( dot.adaptive_swarm_damage.ticking || ! covenant.necrolord ) & variable.save_for_ca_inc & ( buff.ravenous_frenzy.remains < 9 - ( 5 * runeforge.sinful_hysteria.enabled + ! equipped.instructors_divine_bell ) & buff.ravenous_frenzy.up || ! buff.ravenous_frenzy.up ) & ( ! covenant.kyrian || cooldown.empower_bond.remains > 20 )",
}, -- [17]
{
["enabled"] = true,
["action"] = "starfall",
["description"] = "Use Oneth Starfall procs if Starfall isn't up",
["criteria"] = "buff.oneths_perception.up & buff.starfall.refreshable",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.starlord.remains < 5 & ( buff.eclipse_solar.remains > 5 || buff.eclipse_lunar.remains > 5 ) & astral_power > 90",
["action"] = "cancel_buff",
["buff_name"] = "starlord",
}, -- [19]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Dumps AsP before Convoke using the Convoke condition to check if Convoke is actually about to be cast",
["criteria"] = "covenant.night_fae & variable.convoke_desync & cooldown.convoke_the_spirits.remains < 5 & ! druid.no_cds & eclipse.in_any & astral_power > 40",
}, -- [20]
{
["enabled"] = true,
["action"] = "starfall",
["description"] = "Use Starfall with Stellar Drift and no Starlord, when no Starfall is up, you are in Lunar Eclipse for 8+secs or to proc Pulsar when above 90 AsP or adpative swarm has 8+secs remaining or is in flight. Note that under the same conditions it's dps neutral to Starfall during Ravenous Frenzy, when you'd still end up with 90+asp for the last globals.",
["criteria"] = "talent.stellar_drift.enabled & ! talent.starlord.enabled & buff.starfall.refreshable & ( buff.eclipse_lunar.remains > 8 & eclipse.in_lunar & buff.primordial_arcanic_pulsar.value < 250 || buff.primordial_arcanic_pulsar.value >= 250 & astral_power > 90 || dot.adaptive_swarm_damage.remains > 8 || action.adaptive_swarm_damage.in_flight ) & cooldown.ca_inc.remains > 10",
}, -- [21]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Use Starsurge Oneth procs and dump AsP when CA/Inc or the Venthyr buff is about to fall off or you'd cap AsP",
["criteria"] = "buff.oneths_clear_vision.up || buff.kindred_empowerment_energize.up || buff.ca_inc.up & ( buff.ravenous_frenzy.remains < gcd.max * ceil ( astral_power / 30 ) + 3 * talent.new_moon.enabled & ! runeforge.sinful_hysteria.enabled & buff.ravenous_frenzy.up || buff.ca_inc.remains < gcd.max * ceil ( astral_power / 30 ) || buff.ravenous_frenzy_sinful_hysteria.up || ( buff.ravenous_frenzy.remains < action.starfire.execute_time & spell_haste < 0.4 || buff.ravenous_frenzy.remains < action.wrath.execute_time || variable.iqd_condition & cooldown.inscrutable_quantum_device.ready & equipped.inscrutable_quantum_device ) & buff.ravenous_frenzy.up || ! buff.ravenous_frenzy.up & ! cooldown.ravenous_frenzy.ready || ! covenant.venthyr ) || astral_power > 90 & eclipse.in_any",
}, -- [22]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Try to make the best of Starlord by stacking it up quickly in any Eclipse but Pulsar isnt about to be procced",
["criteria"] = "talent.starlord.enabled & ! runeforge.timeworn_dreambinder.enabled & ( buff.starlord.up || astral_power > 90 ) & buff.starlord.stack < 3 & ( buff.eclipse_solar.up || buff.eclipse_lunar.up ) & buff.primordial_arcanic_pulsar.value < 270 & ( cooldown.ca_inc.remains > 10 || ! variable.convoke_desync & covenant.night_fae )",
}, -- [23]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "eclipse.in_lunar * 8 / action.starfire.execute_time + ! eclipse.in_lunar * ( 6 + talent.soul_of_the_forest.enabled * 3 ) / action.wrath.execute_time + 0.45 / spell_haste + 0.5 * talent.natures_balance.enabled",
["description"] = "Estimates how much AsP are gained per second",
["var_name"] = "aspPerSec",
}, -- [24]
{
["enabled"] = true,
["action"] = "starsurge",
["description"] = "Dump Starsurge in a 7+sec Solar Eclipse, don't let it proc Pulsar (that is handled by either the Starfall line or the AsP>90 line for Starsurge), don't overwrite an Oneth proc and let the above line handle Starlord",
["criteria"] = "! runeforge.timeworn_dreambinder.enabled & ( buff.primordial_arcanic_pulsar.value < 270 || buff.primordial_arcanic_pulsar.value < 250 & talent.stellar_drift.enabled ) & ( eclipse.in_solar & astral_power + variable.aspPerSec * buff.eclipse_solar.remains + dot.fury_of_elune.ticks_remain * 2.5 > 80 || eclipse.in_lunar & astral_power + variable.aspPerSec * buff.eclipse_lunar.remains + dot.fury_of_elune.ticks_remain * 2.5 > 90 ) & ! buff.oneths_perception.up & ! talent.starlord.enabled & ( cooldown.ca_inc.remains > 7 || soulbind.thrill_seeker.enabled & buff.thrill_seeker.stack < 33 - ( runeforge.sinful_hysteria.enabled * 5 ) & fight_remains > 100 & fight_remains < 200 || druid.no_cds ) & ( cooldown.kindred_spirits.remains > 7 || ! covenant.kyrian )",
}, -- [25]
{
["enabled"] = true,
["action"] = "new_moon",
["description"] = "Use Moons in Lunar Eclipse and save Half+Full Moon for CA/Inc and Kindred Empowerment",
["criteria"] = "( buff.eclipse_lunar.remains > execute_time || ( charges = 2 & recharge_time < 5 ) || charges = 3 ) & ap_check & variable.save_for_ca_inc",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_lunar.remains > execute_time & ! covenant.kyrian || ( buff.kindred_empowerment_energize.up & covenant.kyrian ) || ( charges = 2 & recharge_time < 5 ) || charges = 3 || buff.ca_inc.up ) & ap_check & variable.save_for_ca_inc & ( buff.ravenous_frenzy.remains < ( 5 - 2 * runeforge.sinful_hysteria.enabled ) & buff.ravenous_frenzy.up || ! buff.ravenous_frenzy.up )",
["action"] = "half_moon",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_lunar.remains > execute_time & ! covenant.kyrian || ( buff.kindred_empowerment_energize.up & covenant.kyrian ) || ( charges = 2 & recharge_time < 5 ) || charges = 3 || buff.ca_inc.up ) & ap_check & variable.save_for_ca_inc & ( buff.ravenous_frenzy.remains < 5 & buff.ravenous_frenzy.up & ! runeforge.sinful_hysteria.enabled || ! buff.ravenous_frenzy.up )",
["action"] = "full_moon",
}, -- [28]
{
["enabled"] = true,
["description"] = "Use WoE on cd",
["action"] = "warrior_of_elune",
}, -- [29]
{
["enabled"] = true,
["action"] = "starfire",
["description"] = "Use Starfire to proc Solar Eclipse, CA/Inc has less time than a Wrath execute left or only Lunar Eclipse is up",
["criteria"] = "eclipse.in_lunar & ! buff.ravenous_frenzy.up || eclipse.solar_next || eclipse.any_next || ( buff.warrior_of_elune.up || spell_haste < 0.45 & ! covenant.venthyr || spell_haste < 0.4 & covenant.venthyr ) & buff.eclipse_lunar.up || ( buff.ca_inc.remains < action.wrath.execute_time & buff.ca_inc.up )",
}, -- [30]
{
["enabled"] = true,
["description"] = "Use Wrath otherwise which is in Solar Eclipse, CA/Inc or to proc Lunar Eclipse",
["action"] = "wrath",
}, -- [31]
{
["enabled"] = true,
["description"] = "Fallthru",
["action"] = "run_action_list",
["list_name"] = "fallthru",
}, -- [32]
},
["precombat"] = {
{
["action"] = "kindred_spirits",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["description"] = "The variable is set to 0 with no stat on use trinkets, 1 when the first one is on use, 2 if the second is and 3 if both are",
["var_name"] = "on_use_trinket",
}, -- [2]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "trinket.t1.has_use_buff & trinket.t1.cooldown.duration & ! trinket.t1.is.tome_of_monstrous_constructions",
["var_name"] = "on_use_trinket",
}, -- [3]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "2",
["criteria"] = "trinket.t2.has_use_buff & trinket.t2.cooldown.duration & ! trinket.t2.is.tome_of_monstrous_constructions",
["var_name"] = "on_use_trinket",
}, -- [4]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "on_use_trinket",
["criteria"] = "equipped.inscrutable_quantum_device || equipped.empyreal_ordnance || equipped.soulletting_ruby",
["description"] = "These trinkets are not automatically detected as on use stat trinkets. Set variable to 4 as they also need special handling.",
["value"] = "4",
}, -- [5]
{
["action"] = "moonkin_form",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "wrath",
["criteria"] = "( eclipse.lunar_next || eclipse.in_solar || eclipse.in_both || eclipse.any_next )",
["line_cd"] = "10",
}, -- [7]
},
},
["version"] = 20211101,
["warnings"] = "WARNING: The import for 'opener' required some automated changes.\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 6: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 6: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 7: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 8: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 8: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 9: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 9: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 9: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\nLine 10: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 11: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 12: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 13: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 15: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 16: Converted 'runeforge.X' to 'runeforge.X.enabled' (2x).\nLine 16: Converted 'trinket.1.X' to 'trinket.t1.X' (2x).\nLine 16: Converted 'trinket.2.X' to 'trinket.t2.X' (1x).\nLine 17: Converted 'runeforge.X' to 'runeforge.X.enabled' (2x).\nLine 17: Converted 'trinket.1.X' to 'trinket.t1.X' (1x).\nLine 17: Converted 'trinket.2.X' to 'trinket.t2.X' (2x).\n\nWARNING: The import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.X' to 'trinket.t1.X' (3x).\nLine 4: Converted 'trinket.2.X' to 'trinket.t2.X' (3x).\n\nWARNING: The import for 'aoe' required some automated changes.\nLine 1: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 6: Converted SimC syntax %% to Lua modulus operator (%) (1x).\nLine 6: Converted 'runeforge.X' to 'runeforge.X.enabled' (2x).\nLine 7: Converted SimC syntax %% to Lua modulus operator (%) (1x).\nLine 7: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 8: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 9: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 12: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 20: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 22: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 24: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 24: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 26: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 27: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 29: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 30: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'fallthru' required some automated changes.\nLine 2: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 1: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 11: Converted SimC syntax %% to Lua modulus operator (%) (1x).\nLine 11: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 12: Converted SimC syntax %% to Lua modulus operator (%) (1x).\nLine 12: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 17: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 22: Converted SimC syntax % to Lua division operator (/) (2x).\nLine 22: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 23: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 24: Converted SimC syntax % to Lua division operator (/) (3x).\nLine 25: Converted 'runeforge.X' to 'runeforge.X.enabled' (2x).\nLine 27: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 28: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'boat' required some automated changes.\nLine 17: Converted SimC syntax % to Lua division operator (/) (3x).\nLine 18: Converted SimC syntax % to Lua division operator (/) (1x).\n\nImported 7 action lists.\n",
["spec"] = 102,
["profile"] = "## Balance Druid\n## October 26, 2021\n\n## Changes:\n## - Added Solar Beam.\n## - Changed target_if cases to cycle_targets.\n## - Removed unnecessary variables (i.e., prev_starsurge -> prev.starsurge).\n## - Avoid precasting Wrath if it's the wrong Eclipse.\n## - Make Convoke the Spirits a little more flexible (if you hadn't hit it simultaneously with BOAT + Celestial Alignment, it'd skip).\n## - Make most 'fight_remains' scenarios apply to boss fights only.\n## - Treat Tome of Blah Blah Blah as a special trinket.\n## - Opener (i.e., Wrath, Wrath, Starfire) made more resilient to earlier combat-start.\n\n## Annotated Balance APL can be found at https://balance-simc.github.io/Balance-SimC/md.html?file=balance.txt\n\nactions.precombat=kindred_spirits\n# The variable is set to 0 with no stat on use trinkets, 1 when the first one is on use, 2 if the second is and 3 if both are\nactions.precombat+=/variable,name=on_use_trinket,value=0\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=1,if=trinket.1.has_use_buff&trinket.1.cooldown.duration&!trinket.1.is.tome_of_monstrous_constructions\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=2,if=trinket.2.has_use_buff&trinket.2.cooldown.duration&!trinket.2.is.tome_of_monstrous_constructions\n# These trinkets are not automatically detected as on use stat trinkets. Set variable to 4 as they also need special handling.\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=4,if=equipped.inscrutable_quantum_device||equipped.empyreal_ordnance||equipped.soulletting_ruby\nactions.precombat+=/moonkin_form\nactions.precombat+=/wrath,line_cd=10,if=(eclipse.lunar_next||eclipse.in_solar||eclipse.in_both||eclipse.any_next)\n\n# Precast 2 Wrath and a Starsurge on ST with Night Fae and BoAT or Starfire otherwise\nactions.opener+=/wrath,if=(eclipse.lunar_next||eclipse.in_solar||eclipse.in_both||eclipse.any_next)&prev.1.wrath&!prev.2.wrath\nactions.opener+=/starfire,line_cd=5,if=!runeforge.balance_of_all_things||!covenant.night_fae||!spell_targets.starfall=1||!talent.natures_balance.enabled||(eclipse.solar_next||eclipse.in_lunar||eclipse.in_both||eclipse.any_next)\nactions.opener+=/starsurge,line_cd=5,if=runeforge.balance_of_all_things&covenant.night_fae&spell_targets.starfall=1\n\n## Executed every time the actor is available.\nactions=solar_beam\nactions+=/call_action_list,name=opener,if=time<(2*action.wrath.cast_time+action.starfire.cast_time)\n# Sets AoE on 3+ without drift and with Starlord and 2+ otherwise\nactions+=/variable,name=is_aoe,value=spell_targets.starfall>1&(!talent.starlord.enabled||talent.stellar_drift.enabled)||spell_targets.starfall>2\n# Sets cleave when Starfire can hit 2+ targets which is relevant for the Eclipse to be preferred and which filler to cast\nactions+=/variable,name=is_cleave,value=spell_targets.starfire>1\n# Variable that checks if you are in a gcd to avoid the situation where a trinket etc is used in between casts\nactions+=/variable,name=in_gcd,value=prev_gcd.1.moonfire||prev_gcd.1.sunfire||prev_gcd.1.starsurge||prev_gcd.1.starfall||prev_gcd.1.fury_of_elune||prev.ravenous_frenzy||buff.ca_inc.remains=buff.ca_inc.duration||variable.is_aoe\n# Use Berserking with CA/Inc or after Convoke in CA/Inc\nactions+=/berserking,if=((!covenant.night_fae||!cooldown.convoke_the_spirits.up)&buff.ca_inc.remains>15&buff.ravenous_frenzy.remains<4&!covenant.venthyr||covenant.venthyr&buff.ca_inc.up&buff.ravenous_frenzy.up&(buff.ravenous_frenzy.remains<11-5*runeforge.sinful_hysteria||buff.ca_inc.remains<11||1%spell_haste<1.55))&variable.in_gcd\n# Pot with a CA/Inc that isn't a Pulsar proc or when the fight is about to end\nactions+=/potion,if=(buff.ca_inc.remains>15&(!runeforge.sinful_hysteria||buff.ravenous_frenzy.remains<17-2*buff.bloodlust.up&buff.ravenous_frenzy.up)||boss&fight_remains<25)&variable.in_gcd\n# Calculates whether using Convoke now will allow you to still cast the same amount of Convoke+CA/Inc casts\nactions+=/variable,name=convoke_desync,value=ceil((fight_remains-15-cooldown.ca_inc.remains)%180)=ceil((fight_remains-15-cooldown.convoke_the_spirits.duration-cooldown.convoke_the_spirits.remains)%180)&!raid_event.adds.exists||cooldown.ca_inc.remains>interpolated_fight_remains||runeforge.celestial_spirits&cooldown.ca_inc.remains>30||cooldown.convoke_the_spirits.remains>interpolated_fight_remains-10||!covenant.night_fae\n# Used to delay the usage of CA/Inc when using double on use and prevent usage when an add event is about to die\nactions+=/variable,name=cd_condition,value=(fight_remains>15||raid_event.adds.in>50)&(((equipped.empyreal_ordnance&(cooldown.empyreal_ordnance.remains<160||covenant.venthyr&cooldown.empyreal_ordnance.remains<167+(11*runeforge.sinful_hysteria))&!cooldown.empyreal_ordnance.ready)||equipped.soulletting_ruby&(!covenant.night_fae||cooldown.soulletting_ruby_345801.remains<114)||(cooldown.berserking.ready||!race.troll)&((equipped.inscrutable_quantum_device&(cooldown.inscrutable_quantum_device.ready||action.inscrutable_quantum_device.disabled))||(equipped.shadowed_orb_of_torment&cooldown.tormented_insight_355321.remains)||((variable.on_use_trinket=1||variable.on_use_trinket=3)&(trinket.1.ready_cooldown||trinket.1.cooldown.remains>interpolated_fight_remains-10)||variable.on_use_trinket=2&(trinket.2.ready_cooldown||trinket.2.cooldown.remains>interpolated_fight_remains-10)||variable.on_use_trinket=0)))||covenant.kyrian)||boss&fight_remains<buff.ca_inc.duration\n# Variable used to delay any trinkets and cds when waiting for an Euphoria proc\nactions+=/variable,name=thrill_seeker_wait,value=!soulbind.thrill_seeker.enabled||fight_remains>200||boss&fight_remains<25+(40-buff.thrill_seeker.stack*2)||buff.thrill_seeker.stack>38-(runeforge.sinful_hysteria*5)\n# Use Empyreal Ordnance 20secs before a CA/Inc use.\nactions+=/use_item,name=empyreal_ordnance,if=cooldown.ca_inc.remains<20&cooldown.convoke_the_spirits.remains<20&(variable.thrill_seeker_wait||buff.thrill_seeker.stack>30+(runeforge.sinful_hysteria*6))&variable.in_gcd||boss&fight_remains<37\n# Use Soulleting Ruby 6secs before a CA/Inc use.\nactions+=/use_item,name=soulletting_ruby,if=(cooldown.ca_inc.remains<6&!covenant.venthyr&!covenant.night_fae||covenant.night_fae&cooldown.convoke_the_spirits.remains<6&(variable.convoke_desync||cooldown.ca_inc.remains<6)||covenant.venthyr&(!runeforge.sinful_hysteria&cooldown.ca_inc.remains<6||buff.ravenous_frenzy.remains<14+(5*equipped.instructors_divine_bell)&buff.ravenous_frenzy.up)||boss&fight_remains<25||equipped.empyreal_ordnance&cooldown.empyreal_ordnance.remains>20)&variable.in_gcd&!equipped.inscrutable_quantum_device||cooldown.inscrutable_quantum_device.remains>20||boss&fight_remains<20\n# Always use IQD with CA/Inc\nactions+=/variable,name=iqd_condition,value=buff.ca_inc.remains>15&(!runeforge.sinful_hysteria||buff.ravenous_frenzy.remains<=12.2+(3*buff.bloodlust.up)+(8-5*buff.bloodlust.up)*equipped.instructors_divine_bell&buff.ravenous_frenzy.up)||boss&fight_remains<25||equipped.empyreal_ordnance&cooldown.empyreal_ordnance.remains\nactions+=/use_item,name=inscrutable_quantum_device,if=variable.iqd_condition&variable.in_gcd\n# Use right before cds\nactions+=/use_item,name=shadowed_orb_of_torment,if=(cooldown.ca_inc.ready&!covenant.night_fae&variable.thrill_seeker_wait&(cooldown.berserking.ready||!race.troll)||covenant.night_fae&cooldown.convoke_the_spirits.ready&(variable.convoke_desync||cooldown.ca_inc.ready))&dot.sunfire.ticking&(dot.stellar_flare.ticking||!talent.stellar_flare.enabled||spell_targets.starfire>3)&dot.moonfire.ticking&(variable.is_aoe||runeforge.balance_of_all_things||astral_power>=90||variable.convoke_desync||buff.bloodlust.up)&!equipped.inscrutable_quantum_device||equipped.inscrutable_quantum_device&cooldown.inscrutable_quantum_device.remains>30&!buff.ca_inc.up||boss&fight_remains<40\n# This is a rather elaborate way to make all on use stat trinkets to be lined up with CA/Inc and Convoke and use the 2nd slot on cd if both trinkets are on use stat trinkets\nactions+=/use_items,slots=trinket1,if=(variable.on_use_trinket!=1&!trinket.2.ready_cooldown||(variable.on_use_trinket=1||variable.on_use_trinket=3)&(buff.ca_inc.up&(!covenant.venthyr||buff.ravenous_frenzy.remains+(5*runeforge.sinful_hysteria)<=trinket.1.buff_duration&buff.ravenous_frenzy.up||buff.ravenous_frenzy_sinful_hysteria.up)||cooldown.ca_inc.remains+2>trinket.1.cooldown.duration&!buff.ca_inc.up&(!covenant.night_fae||!variable.convoke_desync)&!covenant.kyrian||covenant.night_fae&variable.convoke_desync&cooldown.convoke_the_spirits.up&!cooldown.ca_inc.up&((buff.eclipse_lunar.remains>10||buff.eclipse_solar.remains>10)&!runeforge.balance_of_all_things||(buff.balance_of_all_things_nature.stack=5||buff.balance_of_all_things_arcane.stack=8))||buff.kindred_empowerment_energize.up)||boss&fight_remains<20||variable.on_use_trinket=0)&variable.in_gcd\nactions+=/use_items,slots=trinket2,if=(variable.on_use_trinket!=2&!trinket.1.ready_cooldown||variable.on_use_trinket=2&(buff.ca_inc.up&(!covenant.venthyr||buff.ravenous_frenzy.remains+(5*runeforge.sinful_hysteria)<=trinket.2.buff_duration&buff.ravenous_frenzy.up||buff.ravenous_frenzy_sinful_hysteria.up)||cooldown.ca_inc.remains+2>trinket.2.cooldown.duration&!buff.ca_inc.up&(!covenant.night_fae||!variable.convoke_desync)&!covenant.kyrian&(!buff.ca_inc.up||!covenant.venthyr)||covenant.night_fae&variable.convoke_desync&cooldown.convoke_the_spirits.up&!cooldown.ca_inc.up&((buff.eclipse_lunar.remains>10||buff.eclipse_solar.remains>10)&!runeforge.balance_of_all_things||(buff.balance_of_all_things_nature.stack=5||buff.balance_of_all_things_arcane.stack=8)))||buff.kindred_empowerment_energize.up||boss&fight_remains<20||variable.on_use_trinket=0)&variable.in_gcd\n# Uses all other on use items on cd\nactions+=/use_items\n# Decide action list based on situation/legis\nactions+=/run_action_list,name=aoe,strict=1,if=variable.is_aoe\nactions+=/run_action_list,name=boat,strict=1,if=runeforge.balance_of_all_things.equipped\nactions+=/run_action_list,name=st\n\n# Calculates whether the Dreamcatcher buff will fall off within the next cast\nactions.aoe=variable,name=dream_will_fall_off,value=(buff.timeworn_dreambinder.remains<gcd.max+0.1||buff.timeworn_dreambinder.remains<action.starfire.execute_time+0.1&(eclipse.in_lunar||eclipse.solar_next||eclipse.any_next))&buff.timeworn_dreambinder.up&runeforge.timeworn_dreambinder\n# Calculates whether Starsurge is worth casting over Starfire in Lunar Eclipse\nactions.aoe+=/variable,name=ignore_starsurge,value=!eclipse.in_solar&(spell_targets.starfire>5&talent.soul_of_the_forest.enabled||spell_targets.starfire>7)\n# Use Convoke when at less than 50 AsP and line up with CA/Inc\nactions.aoe+=/convoke_the_spirits,if=!druid.no_cds&((variable.convoke_desync&!cooldown.ca_inc.ready||buff.ca_inc.up)&(buff.eclipse_lunar.remains>6||buff.eclipse_solar.remains>6)&(!runeforge.balance_of_all_things||buff.balance_of_all_things_nature.stack>3||buff.balance_of_all_things_arcane.stack>3)||boss&fight_remains<10&!cooldown.ca_inc.ready)\n# Use Sunfire in pandemic on anything that lives 14secs and less with more targets and at the end of a Solar Eclipse at 14 secs or less remaining as to not having to refresh during Lunar Eclipse\nactions.aoe+=/sunfire,cycle_targets=1,if=(refreshable||buff.eclipse_solar.remains<3&eclipse.in_solar&remains<14&talent.soul_of_the_forest.enabled)&target.time_to_die>14-spell_targets+remains&(eclipse.in_any||remains<gcd.max)\n# Use Sunfire to have a global to use IQD\nactions.aoe+=/sunfire,if=variable.iqd_condition&cooldown.inscrutable_quantum_device.ready&equipped.inscrutable_quantum_device\nactions.aoe+=/starfall,if=!talent.stellar_drift.enabled&(buff.starfall.refreshable&(spell_targets.starfall<3||!runeforge.timeworn_dreambinder)||talent.soul_of_the_forest.enabled&buff.eclipse_solar.remains<3&eclipse.in_solar&buff.starfall.remains<7&spell_targets.starfall>=4)&(!runeforge.lycaras_fleeting_glimpse||time%%45>buff.starfall.remains+2)&target.time_to_die>5\n# With Stellar Drift use on cd when refreshable but still wait for Lycaras proc and don't use before CDs. Still use before Convoke since that will proc another Starfall\nactions.aoe+=/starfall,if=talent.stellar_drift.enabled&buff.starfall.refreshable&(!runeforge.lycaras_fleeting_glimpse||time%%45>4)&target.time_to_die>3\n# With Dreambinder use Starfall to keep up the buff by also using Starfall on 5 seconds or less remaining\nactions.aoe+=/starfall,if=runeforge.timeworn_dreambinder&spell_targets.starfall>=3&(!buff.timeworn_dreambinder.up&buff.starfall.refreshable||(variable.dream_will_fall_off&(buff.starfall.remains<3||spell_targets.starfall>2&talent.stellar_drift.enabled&buff.starfall.remains<5)))\n# Calculates whether a Starsurge use will cause Starfall to fall off, and use Starsurge to keep Dreambinder stack up\nactions.aoe+=/variable,name=starfall_wont_fall_off,value=astral_power>80-(10*buff.timeworn_dreambinder.stack)-(buff.starfall.remains*3%spell_haste*!talent.stellar_drift.enabled)-(cooldown.starfall.remains*3%spell_haste*talent.stellar_drift.enabled)-(dot.fury_of_elune.remains*5)&(buff.starfall.up||cooldown.starfall.remains)\n# Use Starsurge with Dreambinder to keep up the buff without losing Starfall uptime and use Starsurge on 4+ BoAT stacks until 4 targets\nactions.aoe+=/starsurge,if=variable.dream_will_fall_off&variable.starfall_wont_fall_off&!variable.ignore_starsurge||(buff.balance_of_all_things_nature.stack>3||buff.balance_of_all_things_arcane.stack>3)&spell_targets.starfall<4&variable.starfall_wont_fall_off\n# Use swarm so that you get max uptime by using it as late as possible on less than 3 stacks or just when 3+ stacks expire\nactions.aoe+=/adaptive_swarm,cycle_targets=1,if=!ticking&!action.adaptive_swarm_damage.in_flight||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<3\n# Refresh Moonfire if CA/Inc is ready, there are less than 5 targets in Lunar Eclipse with SotF, less than 10 otherwise in any Eclipse or up to 5 targets before a Lunar Eclipse. Don't refresh during Kindred Empowerment unless in Solar Eclipse\nactions.aoe+=/moonfire,cycle_targets=1,if=refreshable&target.time_to_die>((14+(spell_targets.starfire*2*buff.eclipse_lunar.up))+remains)%(1+talent.twin_moons.enabled)&(cooldown.ca_inc.ready&!druid.no_cds&(variable.convoke_desync||cooldown.convoke_the_spirits.ready||!covenant.night_fae)||spell_targets.starfire<((6-(buff.eclipse_lunar.up*2))*(1+talent.twin_moons.enabled))&!eclipse.solar_next||(eclipse.in_solar||(eclipse.in_both||eclipse.in_lunar)&!talent.soul_of_the_forest.enabled||buff.primordial_arcanic_pulsar.value>=250)&(spell_targets.starfire<10*(1+talent.twin_moons.enabled))&astral_power>50-buff.starfall.remains*6)&(!buff.kindred_empowerment_energize.up||eclipse.in_solar||!covenant.kyrian)&!buff.ravenous_frenzy_sinful_hysteria.up\n# Use FoN on cd without capping\nactions.aoe+=/force_of_nature,if=ap_check\nactions.aoe+=/variable,name=cd_condition_aoe,value=!druid.no_cds&variable.cd_condition&((buff.starfall.up||talent.stellar_drift.enabled||covenant.night_fae)&(!buff.solstice.up&!buff.ca_inc.up&(!talent.fury_of_elune.enabled||buff.ca_inc.duration>cooldown.fury_of_elune.remains+8)&variable.thrill_seeker_wait&(!covenant.night_fae||cooldown.convoke_the_spirits.up&(buff.starfall.remains<2||!talent.stellar_drift.enabled))&target.time_to_die>buff.ca_inc.duration*0.7)||boss&fight_remains<buff.ca_inc.duration)\n# Use Frenzy with CA/Inc\nactions.aoe+=/ravenous_frenzy,if=buff.ca_inc.remains>15||buff.ca_inc.duration<30&variable.cd_condition_aoe\n# Use CA/Inc on cd unless and line it up with Convoke\nactions.aoe+=/celestial_alignment,if=variable.cd_condition_aoe&(buff.ca_inc.duration>=30||!covenant.venthyr)||buff.ravenous_frenzy.up&buff.ravenous_frenzy.remains<9+conduit.precise_alignment.time_value+(!buff.bloodlust.up&!talent.starlord.enabled)\nactions.aoe+=/incarnation,if=variable.cd_condition_aoe\n# Use Empower Bond on cd with Starfall up and save for Pulsar and CA/Inc\nactions.aoe+=/empower_bond,if=boss&interpolated_fight_remains<15||(buff.primordial_arcanic_pulsar.value<250||buff.primordial_arcanic_pulsar.value>=250)&buff.starfall.up&(cooldown.ca_inc.remains>40||druid.no_cds)\n# Refresh flare on up to 3 targets without CA/Inc being about to expire and not overcapping\nactions.aoe+=/stellar_flare,cycle_targets=1,if=refreshable&time_to_die>15&spell_targets.starfire<4&ap_check&(buff.ca_inc.remains>10||!buff.ca_inc.up)\n# Use FoE if inside an Eclipse and line it up with a Pulsar proc and Adaptive Swarm\nactions.aoe+=/fury_of_elune,if=eclipse.in_any&buff.primordial_arcanic_pulsar.value<250&(dot.adaptive_swarm_damage.ticking||!covenant.necrolord||spell_targets>2)&(buff.ravenous_frenzy.remains<9-(5*runeforge.sinful_hysteria)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up)&(!cooldown.ca_inc.up||buff.thrill_seeker.stack<15&fight_remains<200&fight_remains>100||!soulbind.thrill_seeker.enabled)&(soulbind.thrill_seeker.enabled||cooldown.ca_inc.remains>30)\n# Use a Starfall Oneth proc unless Starfall is already up or you are about to overcap AsP\nactions.aoe+=/starfall,if=buff.oneths_perception.up&(buff.starfall.refreshable||astral_power>90)\n# Dump AsP before Convoke with Starfall and then Starsurge\nactions.aoe+=/starfall,if=covenant.night_fae&!talent.stellar_drift.enabled&(variable.convoke_desync||cooldown.ca_inc.up||buff.ca_inc.up)&cooldown.convoke_the_spirits.remains<gcd.max*ceil(astral_power%50)&buff.starfall.remains<4&!druid.no_cds\nactions.aoe+=/starsurge,if=covenant.night_fae&(variable.convoke_desync||cooldown.ca_inc.up||buff.ca_inc.up)&cooldown.convoke_the_spirits.remains<6&buff.starfall.up&eclipse.in_any&!variable.ignore_starsurge&!druid.no_cds\n# Use Starsurge with an Oneth proc or if you'd overcap AsP with your next cast. Also dump AsP at the end of the Venthyr buff if Starfall wouldn't fall off or you are on 2 targets\nactions.aoe+=/starsurge,if=buff.oneths_clear_vision.up||(!starfire.ap_check&!variable.ignore_starsurge||(buff.ca_inc.remains<5&buff.ca_inc.up||((buff.ca_inc.remains<gcd.max*ceil(astral_power%30)&buff.ca_inc.up||buff.ravenous_frenzy_sinful_hysteria.remains<gcd.max*ceil(astral_power%30)&buff.ravenous_frenzy_sinful_hysteria.up)&covenant.venthyr))&(spell_targets.starfall<3||variable.starfall_wont_fall_off))&!variable.ignore_starsurge&(!runeforge.timeworn_dreambinder||spell_targets.starfall<3)\n# Use Moons in Solar Eclipse and save Full Moon for CA/Inc\nactions.aoe+=/new_moon,if=(buff.eclipse_solar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check\nactions.aoe+=/half_moon,if=(buff.eclipse_solar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check&(buff.ravenous_frenzy.remains<5&buff.ravenous_frenzy.up&!runeforge.sinful_hysteria||!buff.ravenous_frenzy.up)\nactions.aoe+=/full_moon,if=(buff.eclipse_solar.remains>execute_time&(cooldown.ca_inc.remains>50||cooldown.convoke_the_spirits.remains>50)||(charges=2&recharge_time<5)||charges=3)&ap_check&(buff.ravenous_frenzy.remains<5&buff.ravenous_frenzy.up&!runeforge.sinful_hysteria||!buff.ravenous_frenzy.up)\n# Use WoE on CD\nactions.aoe+=/warrior_of_elune\n# Calculates whether to use Starfire in Solar which is at 5 targets+1 for every 20% mastery or 4 Starsurge Empowerment stacks\nactions.aoe+=/variable,name=starfire_in_solar,value=spell_targets.starfire>4+floor(mastery_value*100%20)+floor(buff.starsurge_empowerment_solar.stack%4)\n# Calculates whether to Wrath during Frenzy\nactions.aoe+=/variable,name=wrath_in_frenzy,value=1%spell_haste<2-(0.2*(spell_targets.starfire-1)*(1+talent.soul_of_the_forest.enabled*1.5))+0.15*buff.ravenous_frenzy.remains\n# Use Wrath in Solar Eclipse or if no Starfire will fit into CA/Inc anymore\nactions.aoe+=/wrath,if=(eclipse.lunar_next||eclipse.any_next&variable.is_cleave)&(target.time_to_die>4||eclipse.lunar_in_2||fight_remains<10)||buff.eclipse_solar.remains<action.starfire.execute_time&buff.eclipse_solar.up||eclipse.in_solar&!variable.starfire_in_solar||buff.ca_inc.remains<action.starfire.execute_time&!variable.is_cleave&buff.ca_inc.remains<execute_time&buff.ca_inc.up||buff.ravenous_frenzy.up&variable.wrath_in_frenzy||!variable.is_cleave&buff.ca_inc.remains>execute_time\n# Use Starfire if in Lunar Eclipse, in Solar Eclipse on 4+ targets or to proc Solar Eclipse\nactions.aoe+=/starfire\n# Fallthru\nactions.aoe+=/run_action_list,name=fallthru\n\n# Frenzy with CA/Inc\nactions.boat=ravenous_frenzy,if=buff.ca_inc.remains>15\n# Use Adaptive Swarm when at less than 4 BoAT stacks and to refresh a <=2 stack as late as possible or time it so it arrives just after a 3+ stack expires\nactions.boat+=/adaptive_swarm,cycle_targets=1,if=buff.balance_of_all_things_nature.stack<8&buff.balance_of_all_things_arcane.stack<8&(!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>3)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<5&dot.adaptive_swarm_damage.ticking)\n# Use Convoke with CA/Inc when possible and otherwise with a BoAT buff when desyncing\nactions.boat+=/convoke_the_spirits,if=!druid.no_cds&((variable.convoke_desync&!cooldown.ca_inc.ready||buff.ca_inc.up)&(buff.balance_of_all_things_nature.stack=8||buff.balance_of_all_things_arcane.stack=8)||boss&fight_remains<10&cooldown.ca_inc.remains>7)\n# FoE as the first gcd in the a BoAT window or with the Kyrian buff or with a 8+sec Adaptive Swarm and wait for CA/Inc if it wont be up again before the cd is finished\nactions.boat+=/fury_of_elune,if=(((buff.balance_of_all_things_nature.stack>6||buff.balance_of_all_things_arcane.stack>6)&(!covenant.venthyr||!buff.ravenous_frenzy.up))&(druid.no_cds||cooldown.ca_inc.remains>50||(covenant.night_fae&cooldown.convoke_the_spirits.remains>50)))||(dot.adaptive_swarm_damage.remains>8&cooldown.ca_inc.remains>10&covenant.necrolord)||interpolated_fight_remains<8&!cooldown.ca_inc.ready||covenant.kyrian&buff.kindred_empowerment.up||covenant.venthyr&buff.ravenous_frenzy.remains<9&buff.ravenous_frenzy.up\n# Cancel Starlord with a new BoAT buff and CA/Inc isn't about to be used\nactions.boat+=/cancel_buff,name=starlord,if=(buff.balance_of_all_things_nature.remains>7.5||buff.balance_of_all_things_arcane.remains>7.5)&(cooldown.ca_inc.remains>7||(cooldown.empower_bond.remains>7&!buff.kindred_empowerment_energize.up&covenant.kyrian))&astral_power>=30\n# Dump Starsurges with a BoAT buff but not when pooling for CA/Inc or Kindred Spirits\nctions.boat+=/starsurge,if=(buff.balance_of_all_things_nature.stack>2||buff.balance_of_all_things_arcane.stack>2)&((!covenant.night_fae||astral_power>=40)&cooldown.ca_inc.remains>7||!variable.cd_condition&!covenant.kyrian||(cooldown.empower_bond.remains>7&!buff.kindred_empowerment_energize.up&covenant.kyrian))&(!dot.fury_of_elune.ticking||!cooldown.ca_inc.ready||!cooldown.convoke_the_spirits.ready)\n# Dump Starsurges before Convoke\nactions.boat+=/starsurge,if=(cooldown.convoke_the_spirits.remains<5&!druid.no_cds&(variable.convoke_desync||cooldown.ca_inc.remains<5)&variable.cd_condition)&!dot.fury_of_elune.ticking&covenant.night_fae&!druid.no_cds&eclipse.in_any&astral_power>40\n# Don't dot during the end of Ravenous Frenzy, during kindred empowerment or in the last gcd of an Eclipse\nactions.boat+=/variable,name=dot_requirements,value=(buff.ravenous_frenzy.remains>5||!buff.ravenous_frenzy.up)&(buff.kindred_empowerment_energize.remains<gcd.max)&(buff.eclipse_solar.remains>gcd.max||buff.eclipse_lunar.remains>gcd.max)\nactions.boat+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>16&ap_check&variable.dot_requirements\nactions.boat+=/moonfire,cycle_targets=1,if=refreshable&target.time_to_die>13.5&ap_check&variable.dot_requirements\nactions.boat+=/stellar_flare,cycle_targets=1,if=refreshable&target.time_to_die>16+remains&ap_check&variable.dot_requirements\n# FoN on cd without capping\nactions.boat+=/force_of_nature,if=ap_check\n# Empower Bond when about to enter a new BoAT window and save for CA/Inc\nactions.boat+=/empower_bond,if=(eclipse.lunar_next||eclipse.solar_next||eclipse.any_next||buff.balance_of_all_things_nature.remains>7.5||buff.balance_of_all_things_arcane.remains>7.5||astral_power>90&cooldown.ca_inc.ready&!druid.no_cds)&(cooldown.ca_inc.remains>30||cooldown.ca_inc.ready)||boss&interpolated_fight_remains<10\n# FoE right before using CA\nactions.boat+=/fury_of_elune,if=cooldown.ca_inc.ready&variable.cd_condition&(astral_power>90&!covenant.night_fae||covenant.night_fae&astral_power<40)&!covenant.venthyr&(!covenant.night_fae||cooldown.convoke_the_spirits.ready)&!druid.no_cds\n# CA/Inc when at 90+ AsP (orlower than 40 AsP with Convoke) without losing time in Bloodlust and line up with Convoke if it was desynced\nactions.boat+=/variable,name=cd_condition_boat,value=!druid.no_cds&variable.cd_condition&((astral_power>90&(buff.kindred_empowerment_energize.up||!covenant.kyrian)||buff.bloodlust.up&buff.bloodlust.remains<buff.ca_inc.duration)||boss&interpolated_fight_remains<buff.ca_inc.duration||covenant.night_fae)&(!covenant.night_fae||(astral_power<40||dot.fury_of_elune.ticking)&(variable.convoke_desync||cooldown.convoke_the_spirits.ready))\nactions.boat+=/celestial_alignment,if=variable.cd_condition_boat\nactions.boat+=/incarnation,if=variable.cd_condition_boat\n# Estimates how much AsP are gained per second\nactions.boat+=/variable,name=aspPerSec,value=eclipse.in_lunar*8%action.starfire.execute_time+!eclipse.in_lunar*(6+talent.soul_of_the_forest.enabled*3)%action.wrath.execute_time+0.2%spell_haste\n# Dump Starsurges when the fight is about to end, frenzy is about to end, you are at 90+ AsP in an Eclipse, CA/Inc lasts another 8+secs or you would overcap more than ~10 AsP when you wouldn't Starsurge now\nactions.boat+=/starsurge,if=(boss&interpolated_fight_remains<4||(buff.ravenous_frenzy.remains<gcd.max*ceil(astral_power%30)&buff.ravenous_frenzy.up))||(astral_power+variable.aspPerSec*buff.eclipse_solar.remains+dot.fury_of_elune.ticks_remain*2.5>110||astral_power+variable.aspPerSec*buff.eclipse_lunar.remains+dot.fury_of_elune.ticks_remain*2.5>110)&eclipse.in_any&(!buff.ca_inc.up||!talent.starlord.enabled)&((!cooldown.ca_inc.up||covenant.kyrian&!cooldown.empower_bond.up)||covenant.night_fae)&(!covenant.venthyr||!buff.ca_inc.up||astral_power>90)||(talent.starlord.enabled&buff.ca_inc.up&(buff.starlord.stack<3||astral_power>90))||buff.ca_inc.up&!buff.ravenous_frenzy.up&!talent.starlord.enabled\n# Use Moons in Lunar Eclipse and save Half+Full Moon for CA/Inc\nactions.boat+=/new_moon,if=(buff.eclipse_lunar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check\nactions.boat+=/half_moon,if=(buff.eclipse_lunar.remains>execute_time&(cooldown.ca_inc.remains>50||cooldown.convoke_the_spirits.remains>50)||(charges=2&recharge_time<5)||charges=3)&ap_check\nactions.boat+=/full_moon,if=(buff.eclipse_lunar.remains>execute_time&(cooldown.ca_inc.remains>50||cooldown.convoke_the_spirits.remains>50)||(charges=2&recharge_time<5)||charges=3)&ap_check\n# WoE on cd\nactions.boat+=/warrior_of_elune\n# Use Starfire to proc Solar Eclipse or when in only Lunar Eclipse and use WoE procs if in Lunar Eclipse\nactions.boat+=/starfire,if=eclipse.in_lunar||eclipse.solar_next||eclipse.any_next||buff.warrior_of_elune.up&buff.eclipse_lunar.up||(buff.ca_inc.remains<action.wrath.execute_time&buff.ca_inc.up)\nactions.boat+=/wrath\nactions.boat+=/run_action_list,name=fallthru\n\n# Starsurge for movement unless using BoAT\nactions.fallthru=starsurge,if=!runeforge.balance_of_all_things.equipped\n# Cast the dot with the most time to add until the max duration is hit. Sunfire remains multiplied to match moonfire duration\nactions.fallthru+=/sunfire,cycle_targets=1,if=dot.moonfire.remains>remains*22%18\nactions.fallthru+=/moonfire\n\n# Use Starsurge to keep up the Dreambinder buff if it would expire before finishing the next cast or to dump before Convoke\nactions.st=starsurge,if=runeforge.timeworn_dreambinder&(eclipse.in_any&!((buff.timeworn_dreambinder.remains>action.wrath.execute_time+0.1&(eclipse.in_both||eclipse.in_solar||eclipse.lunar_next)||buff.timeworn_dreambinder.remains>action.starfire.execute_time+0.1&(eclipse.in_lunar||eclipse.solar_next||eclipse.any_next))||!buff.timeworn_dreambinder.up)||(buff.ca_inc.up||variable.convoke_desync)&cooldown.convoke_the_spirits.ready&covenant.night_fae)&(!covenant.kyrian||cooldown.empower_bond.remains>8)&(buff.ca_inc.up||!cooldown.ca_inc.ready)\n# Use Adaptive Swarm when there is no active swarm, as late as possible on swarm with 2 or fewer stacks or on a 3+ swarm so that the new swarm arrives just after that swarm expires\nactions.st+=/adaptive_swarm,cycle_targets=1,if=!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>5)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<3&dot.adaptive_swarm_damage.ticking\n# Uses Convoke if CA/Inc is up or you are desyncing CA/Inc with Convoke and you are below 40 AsP\nactions.st+=/convoke_the_spirits,if=!druid.no_cds&((variable.convoke_desync&!cooldown.ca_inc.ready&!runeforge.primordial_arcanic_pulsar||buff.ca_inc.up)&astral_power<=40&(buff.eclipse_lunar.remains>10||buff.eclipse_solar.remains>10)||boss&fight_remains<10&!cooldown.ca_inc.ready)\n# Condition for all dots that makes sure they aren't refreshed when Ravenous Frenzy has less than 5 secs remaining or the kyrian buff is about to fall off or any Eclipse is about to expire\nactions.st+=/variable,name=dot_requirements,value=(buff.ravenous_frenzy.remains>5||!buff.ravenous_frenzy.up)&!buff.ravenous_frenzy_sinful_hysteria.up&(buff.kindred_empowerment_energize.remains<gcd.max)&(buff.eclipse_solar.remains>gcd.max||buff.eclipse_lunar.remains>gcd.max||(!buff.eclipse_lunar.up||!buff.eclipse_solar.up)&!talent.solstice.enabled)\n# Condition that checks if you are outside eclipse to only dot there or ignore this with Solstice\nactions.st+=/variable,name=dot_outside_eclipse,value=(!buff.eclipse_solar.up&!buff.eclipse_lunar.up)||talent.solstice.enabled\nactions.st+=/moonfire,cycle_targets=1,if=refreshable&(buff.eclipse_solar.remains>remains||buff.eclipse_lunar.remains>remains||variable.dot_outside_eclipse)&refreshable&target.time_to_die>12&ap_check&variable.dot_requirements\nactions.st+=/sunfire,cycle_targets=1,if=refreshable&(buff.eclipse_solar.remains>remains||buff.eclipse_lunar.remains>remains||variable.dot_outside_eclipse)&refreshable&target.time_to_die>12&ap_check&variable.dot_requirements\nactions.st+=/stellar_flare,cycle_targets=1,if=refreshable&(buff.eclipse_solar.remains>remains||buff.eclipse_lunar.remains>remains||variable.dot_outside_eclipse)&refreshable&target.time_to_die>16&ap_check&variable.dot_requirements\n# Use FoN on cd without capping\nactions.st+=/force_of_nature,if=ap_check\n# Use Kindred Spirits with any long enough lasting Eclipse and try to line it up with Pulsar and CA/Inc\nactions.st+=/empower_bond,if=((buff.eclipse_solar.remains>10||buff.eclipse_lunar.remains>10)&cooldown.ca_inc.remains>30&(buff.primordial_arcanic_pulsar.value<240||!runeforge.primordial_arcanic_pulsar.equipped))||buff.primordial_arcanic_pulsar.value>=270||buff.ca_inc.remains>10\n# Use CA/Inc with Convoke/Kindred Spirits and don't overwrite Pulsar or when Bloodlust would expire before CA/Inc expires\nactions.st+=/variable,name=cd_condition_st,value=!druid.no_cds&variable.cd_condition&((cooldown.empyreal_ordnance.remains<167+(11*runeforge.sinful_hysteria)&equipped.empyreal_ordnance)||astral_power>=90&(!talent.fury_of_elune.enabled||buff.ca_inc.duration>cooldown.fury_of_elune.remains+8)&dot.sunfire.remains>12&dot.moonfire.remains>8&(dot.stellar_flare.remains>8||!talent.stellar_flare.enabled)&variable.thrill_seeker_wait&(cooldown.empower_bond.up||!covenant.kyrian)&target.time_to_die>buff.ca_inc.duration*0.7||boss&fight_remains<buff.ca_inc.duration||covenant.night_fae||buff.bloodlust.up&buff.bloodlust.remains<buff.ca_inc.duration+(9*runeforge.primordial_arcanic_pulsar.equipped))&!buff.ca_inc.up&(!covenant.night_fae||cooldown.convoke_the_spirits.up||boss&fight_remains<cooldown.convoke_the_spirits.remains+6||fight_remains%%180<buff.ca_inc.duration)\nactions.st+=/variable,name=cd_condition_st,value=!druid.no_cds&variable.cd_condition&((cooldown.empyreal_ordnance.remains<167+(11*runeforge.sinful_hysteria)&equipped.empyreal_ordnance)||astral_power>=90&(!talent.fury_of_elune.enabled||buff.ca_inc.duration>cooldown.fury_of_elune.remains+8)&dot.sunfire.remains>8&dot.moonfire.remains>9&(dot.stellar_flare.remains>10||!talent.stellar_flare.enabled)&variable.thrill_seeker_wait&(buff.kindred_empowerment_energize.up||!covenant.kyrian)&target.time_to_die>buff.ca_inc.duration*0.7||boss&fight_remains<buff.ca_inc.duration||covenant.night_fae||buff.bloodlust.up&buff.bloodlust.remains<buff.ca_inc.duration+(9*runeforge.primordial_arcanic_pulsar.equipped))&!buff.ca_inc.up&(!covenant.night_fae||cooldown.convoke_the_spirits.up||boss&fight_remains<cooldown.convoke_the_spirits.remains+6||boss&fight_remains%%180<buff.ca_inc.duration)\n# Use the Venthyr with a CA/Inc that isn't from Pulsar\nactions.st+=/ravenous_frenzy,if=buff.ca_inc.remains>15||buff.ca_inc.duration<32&variable.cd_condition_st\nactions.st+=/celestial_alignment,if=variable.cd_condition_st&(buff.ca_inc.duration>=32||!covenant.venthyr)||buff.ravenous_frenzy.up&buff.ravenous_frenzy.remains<9+conduit.precise_alignment.time_value+(!buff.bloodlust.up&!talent.starlord.enabled)\nactions.st+=/incarnation,if=variable.cd_condition_st\n# Variable used on abilities that want to be saved for CA/Inc so that they arent wasted just before them\nactions.st+=/variable,name=save_for_ca_inc,value=!cooldown.ca_inc.ready||!variable.convoke_desync&covenant.night_fae||druid.no_cds\n# Uses FoE if in an Eclipse and tries to line it up with Pulsar, CA/Inc and Adaptive Swarm\nactions.st+=/fury_of_elune,if=eclipse.in_any&ap_check&buff.primordial_arcanic_pulsar.value<240&(dot.adaptive_swarm_damage.ticking||!covenant.necrolord)&variable.save_for_ca_inc&(buff.ravenous_frenzy.remains<9-(5*runeforge.sinful_hysteria+!equipped.instructors_divine_bell)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up)&(!covenant.kyrian||cooldown.empower_bond.remains>20)\n# Use Oneth Starfall procs if Starfall isn't up\nactions.st+=/starfall,if=buff.oneths_perception.up&buff.starfall.refreshable\nactions.st+=/cancel_buff,name=starlord,if=buff.starlord.remains<5&(buff.eclipse_solar.remains>5||buff.eclipse_lunar.remains>5)&astral_power>90\n# Dumps AsP before Convoke using the Convoke condition to check if Convoke is actually about to be cast\nactions.st+=/starsurge,if=covenant.night_fae&variable.convoke_desync&cooldown.convoke_the_spirits.remains<5&!druid.no_cds&eclipse.in_any&astral_power>40\n# Use Starfall with Stellar Drift and no Starlord, when no Starfall is up, you are in Lunar Eclipse for 8+secs or to proc Pulsar when above 90 AsP or adpative swarm has 8+secs remaining or is in flight. Note that under the same conditions it's dps neutral to Starfall during Ravenous Frenzy, when you'd still end up with 90+asp for the last globals.\nactions.st+=/starfall,if=talent.stellar_drift.enabled&!talent.starlord.enabled&buff.starfall.refreshable&(buff.eclipse_lunar.remains>8&eclipse.in_lunar&buff.primordial_arcanic_pulsar.value<250||buff.primordial_arcanic_pulsar.value>=250&astral_power>90||dot.adaptive_swarm_damage.remains>8||action.adaptive_swarm_damage.in_flight)&cooldown.ca_inc.remains>10\n# Use Starsurge Oneth procs and dump AsP when CA/Inc or the Venthyr buff is about to fall off or you'd cap AsP\nactions.st+=/starsurge,if=buff.oneths_clear_vision.up||buff.kindred_empowerment_energize.up||buff.ca_inc.up&(buff.ravenous_frenzy.remains<gcd.max*ceil(astral_power%30)+3*talent.new_moon.enabled&!runeforge.sinful_hysteria&buff.ravenous_frenzy.up||buff.ca_inc.remains<gcd.max*ceil(astral_power%30)||buff.ravenous_frenzy_sinful_hysteria.up||(buff.ravenous_frenzy.remains<action.starfire.execute_time&spell_haste<0.4||buff.ravenous_frenzy.remains<action.wrath.execute_time||variable.iqd_condition&cooldown.inscrutable_quantum_device.ready&equipped.inscrutable_quantum_device)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up&!cooldown.ravenous_frenzy.ready||!covenant.venthyr)||astral_power>90&eclipse.in_any\n# Try to make the best of Starlord by stacking it up quickly in any Eclipse but Pulsar isnt about to be procced\nactions.st+=/starsurge,if=talent.starlord.enabled&!runeforge.timeworn_dreambinder&(buff.starlord.up||astral_power>90)&buff.starlord.stack<3&(buff.eclipse_solar.up||buff.eclipse_lunar.up)&buff.primordial_arcanic_pulsar.value<270&(cooldown.ca_inc.remains>10||!variable.convoke_desync&covenant.night_fae)\n# Estimates how much AsP are gained per second\nactions.st+=/variable,name=aspPerSec,value=eclipse.in_lunar*8%action.starfire.execute_time+!eclipse.in_lunar*(6+talent.soul_of_the_forest.enabled*3)%action.wrath.execute_time+0.45%spell_haste+0.5*talent.natures_balance.enabled\n# Dump Starsurge in a 7+sec Solar Eclipse, don't let it proc Pulsar (that is handled by either the Starfall line or the AsP>90 line for Starsurge), don't overwrite an Oneth proc and let the above line handle Starlord\nactions.st+=/starsurge,if=!runeforge.timeworn_dreambinder&(buff.primordial_arcanic_pulsar.value<270||buff.primordial_arcanic_pulsar.value<250&talent.stellar_drift.enabled)&(eclipse.in_solar&astral_power+variable.aspPerSec*buff.eclipse_solar.remains+dot.fury_of_elune.ticks_remain*2.5>80||eclipse.in_lunar&astral_power+variable.aspPerSec*buff.eclipse_lunar.remains+dot.fury_of_elune.ticks_remain*2.5>90)&!buff.oneths_perception.up&!talent.starlord.enabled&(cooldown.ca_inc.remains>7||soulbind.thrill_seeker.enabled&buff.thrill_seeker.stack<33-(runeforge.sinful_hysteria*5)&fight_remains>100&fight_remains<200||druid.no_cds)&(cooldown.kindred_spirits.remains>7||!covenant.kyrian)\n# Use Moons in Lunar Eclipse and save Half+Full Moon for CA/Inc and Kindred Empowerment\nactions.st+=/new_moon,if=(buff.eclipse_lunar.remains>execute_time||(charges=2&recharge_time<5)||charges=3)&ap_check&variable.save_for_ca_inc\nactions.st+=/half_moon,if=(buff.eclipse_lunar.remains>execute_time&!covenant.kyrian||(buff.kindred_empowerment_energize.up&covenant.kyrian)||(charges=2&recharge_time<5)||charges=3||buff.ca_inc.up)&ap_check&variable.save_for_ca_inc&(buff.ravenous_frenzy.remains<(5-2*runeforge.sinful_hysteria)&buff.ravenous_frenzy.up||!buff.ravenous_frenzy.up)\nactions.st+=/full_moon,if=(buff.eclipse_lunar.remains>execute_time&!covenant.kyrian||(buff.kindred_empowerment_energize.up&covenant.kyrian)||(charges=2&recharge_time<5)||charges=3||buff.ca_inc.up)&ap_check&variable.save_for_ca_inc&(buff.ravenous_frenzy.remains<5&buff.ravenous_frenzy.up&!runeforge.sinful_hysteria||!buff.ravenous_frenzy.up)\n# Use WoE on cd\nactions.st+=/warrior_of_elune\n# Use Starfire to proc Solar Eclipse, CA/Inc has less time than a Wrath execute left or only Lunar Eclipse is up\nactions.st+=/starfire,if=eclipse.in_lunar&!buff.ravenous_frenzy.up||eclipse.solar_next||eclipse.any_next||(buff.warrior_of_elune.up||spell_haste<0.45&!covenant.venthyr||spell_haste<0.4&covenant.venthyr)&buff.eclipse_lunar.up||(buff.ca_inc.remains<action.wrath.execute_time&buff.ca_inc.up)\n# Use Wrath otherwise which is in Solar Eclipse, CA/Inc or to proc Lunar Eclipse\nactions.st+=/wrath\n# Fallthru\nactions.st+=/run_action_list,name=fallthru",
},
["Guardian"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210916,
["author"] = "SimC",
["desc"] = "Guardian Druid\nSeptember 16, 2021\n\nChanges:\n- Incorporate Cat/Moonkin priorities (if setting is checked).\n- Incorporate option to shift (or not) before Convoke.",
["lists"] = {
["lycarao"] = {
{
["action"] = "moonkin_form",
["enabled"] = true,
}, -- [1]
},
["bear"] = {
{
["enabled"] = true,
["criteria"] = "! buff.bear_form.up",
["action"] = "bear_form",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ( talent.balance_affinity.enabled ) & covenant.venthyr",
["action"] = "heart_of_the_wild",
}, -- [2]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "( ( ! ticking & time_to_die > 12 & buff.galactic_guardian.up ) || ( refreshable & time_to_die > 12 & buff.galactic_guardian.up ) )",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "( ( ! ticking & time_to_die > 12 ) || ( refreshable & time_to_die > 12 ) )",
["cycle_targets"] = 1,
}, -- [4]
{
["action"] = "ravenous_frenzy",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["action"] = "jotungeirr_destinys_call",
["criteria"] = "covenant.venthyr",
["name"] = "jotungeirr_destinys_call",
}, -- [6]
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! buff.prowl.up & covenant.venthyr",
["slot"] = "trinket1",
}, -- [7]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! buff.prowl.up & covenant.venthyr",
["slot"] = "trinket2",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "covenant.venthyr & buff.incarnation.remains >= 24 & buff.incarnation.remains <= 25",
["action"] = "potion",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! druid.catweave_bear & ! druid.owlweave_bear",
["action"] = "convoke_the_spirits",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( buff.ravenous_frenzy.up || ! covenant.venthyr )",
["action"] = "berserk",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( buff.ravenous_frenzy.up || ! covenant.venthyr )",
["action"] = "incarnation",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( buff.berserk_bear.up || buff.incarnation_guardian_of_ursoc.up )",
["action"] = "berserking",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( ! dot.adaptive_swarm_damage.ticking & ! action.adaptive_swarm_damage.in_flight & ( ! dot.adaptive_swarm_heal.ticking || dot.adaptive_swarm_heal.remains > 3 ) || dot.adaptive_swarm_damage.stack < 3 & dot.adaptive_swarm_damage.remains < 5 & dot.adaptive_swarm_damage.ticking )",
["action"] = "adaptive_swarm",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.galactic_guardian.up & active_enemies < 3",
["action"] = "moonfire",
}, -- [15]
{
["enabled"] = true,
["action"] = "thrash_bear",
["criteria"] = "refreshable || dot.thrash_bear.stack < 3 || ( dot.thrash_bear.stack < 4 & runeforge.luffainfused_embrace.equipped ) || active_enemies >= 4 || buff.berserk_bear.up & buff.berserk_bear.remains <= gcd + 0.5",
["cycle_targets"] = 1,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "rage.deficit > 10 & settings.mangle_more",
["action"] = "mangle",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled & ( ( cooldown.thrash_bear.remains > 0 & cooldown.mangle.remains > 0 ) & ( dot.moonfire.remains >= 3 ) & ( buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & buff.galactic_guardian.down ) ) || soulbind.volatile_solvent.enabled",
["interrupt_if"] = "soulbind.volatile_solvent&(cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0)",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & active_enemies >= 4",
["action"] = "swipe_bear",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.incarnation.up & active_enemies < 3 & ( buff.tooth_and_claw.stack >= 2 ) || ( buff.tooth_and_claw.up & buff.tooth_and_claw.remains < 1.5 ) || ( buff.savage_combatant.stack >= 3 ) || buff.berserk_bear.up & active_enemies < 3",
["action"] = "maul",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( buff.savage_combatant.stack >= 1 ) & ( buff.tooth_and_claw.up ) & buff.incarnation.up & active_enemies = 2",
["action"] = "maul",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.incarnation.up & active_enemies <= 3",
["action"] = "mangle",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( ( ( buff.tooth_and_claw.stack >= 2 ) || ( buff.tooth_and_claw.up & buff.tooth_and_claw.remains < 1.5 ) || ( buff.savage_combatant.stack >= 3 ) ) & active_enemies < 3 )",
["action"] = "maul",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "thrash_bear",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( ( rage < 90 ) & active_enemies < 3 ) || ( ( rage < 85 ) & active_enemies < 3 & talent.soul_of_the_forest.enabled )",
["action"] = "mangle",
}, -- [25]
{
["enabled"] = true,
["action"] = "pulverize",
["criteria"] = "dot.thrash_bear.stack > 2",
["cycle_targets"] = 1,
}, -- [26]
{
["action"] = "thrash_bear",
["enabled"] = true,
}, -- [27]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "maul",
}, -- [28]
{
["action"] = "swipe_bear",
["enabled"] = true,
}, -- [29]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 40 & buff.ironfur.remains < 0.5",
["action"] = "ironfur",
}, -- [30]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s > ironfur_damage_threshold & buff.ironfur.remains < 3 * haste",
["action"] = "ironfur",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 65",
["action"] = "renewal",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 65",
["action"] = "frenzied_regeneration",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ! druid.catweave_bear & ! druid.owlweave_bear ) || active_enemies >= 2",
["action"] = "empower_bond",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 75 & incoming_damage_5s > 0.1 * health.max",
["action"] = "barkskin",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.survival_instincts.down & buff.barkskin.down & health.pct < 60 & incoming_damage_5s > 0.25 * health.max",
["action"] = "survival_instincts",
}, -- [6]
},
["precombat"] = {
{
["enabled"] = true,
["description"] = "Executed before combat begins. Accepts non-harmful actions only.",
["action"] = "kindred_spirits",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ( druid.catweave_bear & buff.cat_form.up || druid.owlweave_bear & buff.moonkin_form.up || buff.moonkin_form.up & talent.balance_affinity.enabled )",
["action"] = "heart_of_the_wild",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.cat_form.up & druid.catweave_bear",
["action"] = "prowl",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.any_form.up & ( ( ! druid.owlweave_bear & ! druid.catweave_bear ) & ( ! covenant.night_fae ) ) || ( ( ! druid.owlweave_bear & ! druid.catweave_bear ) & ( covenant.night_fae & talent.restoration_affinity.enabled ) )",
["action"] = "bear_form",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.up & druid.owlweave_bear & ! covenant.night_fae",
["action"] = "wrath",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.up & druid.owlweave_bear & covenant.night_fae",
["action"] = "starfire",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled",
["interrupt_if"] = "soulbind.volatile_solvent",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [7]
},
["lycarac"] = {
{
["action"] = "cat_form",
["enabled"] = true,
}, -- [1]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "skull_bash",
}, -- [1]
{
["enabled"] = true,
["action"] = "jotungeirr_destinys_call",
["criteria"] = "! buff.prowl.up & ! covenant.venthyr",
["name"] = "jotungeirr_destinys_call",
}, -- [2]
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! buff.prowl.up & ! covenant.venthyr",
["slot"] = "trinket1",
}, -- [3]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! buff.prowl.up & ! covenant.venthyr",
["slot"] = "trinket2",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! covenant.venthyr & ( ( ( talent.heart_of_the_wild.enabled & buff.heart_of_the_wild.up ) & ( druid.catweave_bear || druid.owlweave_bear ) & ! buff.prowl.up ) || ( ( buff.berserk_bear.up || buff.incarnation_guardian_of_ursoc.up ) & ( ! druid.catweave_bear & ! druid.owlweave_bear ) ) )",
["action"] = "potion",
}, -- [5]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "druid.catweave_bear & ! covenant.venthyr & buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & ( ( cooldown.thrash_bear.remains > 0 & cooldown.mangle.remains > 0 & dot.moonfire.remains >= gcd + 0.5 & rage < 40 & buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & buff.galactic_guardian.down ) || ( buff.cat_form.up & energy > 25 ) || ( dot.rake.refreshable & dot.rip.refreshable ) || ( runeforge.oath_of_the_elder_druid.equipped & ! buff.oath_of_the_elder_druid.up & ( buff.cat_form.up & energy > 20 ) & buff.heart_of_the_wild.remains <= 10 ) || ( covenant.kyrian & cooldown.empower_bond.remains <= 1 & active_enemies < 2 ) || ( buff.heart_of_the_wild.up & energy > 90 ) )",
["list_name"] = "catweave",
}, -- [6]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "druid.catweave_bear & covenant.venthyr & ( ( cooldown.thrash_bear.remains > 0 & cooldown.mangle.remains > 0 & dot.moonfire.remains >= gcd + 0.5 & rage < 40 & buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & buff.galactic_guardian.down & rage < 40 & buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & buff.galactic_guardian.down ) || ( buff.cat_form.up & energy > 25 ) || ( dot.rake.refreshable & dot.rip.refreshable & rage < 40 & buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & buff.galactic_guardian.down ) )",
["list_name"] = "catweave",
}, -- [7]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! druid.catweave_bear & buff.cat_form.up",
["list_name"] = "catweave",
}, -- [8]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "druid.owlweave_bear & ( ( cooldown.thrash_bear.remains > 0 & cooldown.mangle.remains > 0 & rage < 15 & buff.incarnation.down & buff.berserk_bear.down & buff.galactic_guardian.down ) || ( buff.moonkin_form.up & dot.sunfire.refreshable ) || ( buff.moonkin_form.up & buff.heart_of_the_wild.up ) || ( runeforge.oath_of_the_elder_druid.equipped & ! buff.oath_of_the_elder_druid.up ) || ( covenant.night_fae & cooldown.convoke_the_spirits.remains <= 1 ) || ( covenant.kyrian & cooldown.empower_bond.remains <= 1 & active_enemies < 2 ) )",
["list_name"] = "owlweave",
}, -- [9]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! druid.owlweave_bear & buff.moonkin_form.up",
["list_name"] = "owlweave",
}, -- [10]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "druid.owlweave_bear & buff.moonkin_form.up",
["list_name"] = "owlweave",
}, -- [11]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "If we have Lycara legendary equipped and balance affinity as a talent we switch into moonkin form whenever the lycara buff is at or below 2 sec",
["criteria"] = "( ( runeforge.lycaras_fleeting_glimpse.equipped ) & ( talent.balance_affinity.enabled ) & ( buff.lycaras_fleeting_glimpse.up ) & ( buff.lycaras_fleeting_glimpse.remains <= 2 ) )",
["list_name"] = "lycarao",
}, -- [12]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "If we have Lycara legendary equipped and feral affinity as a talent we switch into feral form whenever the lycara buff is at or below 2 sec",
["criteria"] = "( ( runeforge.lycaras_fleeting_glimpse.equipped ) & ( talent.feral_affinity.enabled ) & ( buff.lycaras_fleeting_glimpse.up ) & ( buff.lycaras_fleeting_glimpse.remains <= 2 ) )",
["list_name"] = "lycarac",
}, -- [13]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "If we're a nightfae and we don't want to catweave/owlweave, and we have balance/feral affinity talented, Whenever convoke cd is up we switch into affinity form to cast it, here moonkin form.",
["criteria"] = "settings.shift_for_convoke & ( ( talent.balance_affinity.enabled ) & ( ! druid.catweave_bear ) & ( ! druid.owlweave_bear ) & ( covenant.night_fae & cooldown.convoke_the_spirits.remains <= 1 ) )",
["list_name"] = "oconvoke",
}, -- [14]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "If we're a nightfae and we don't want to catweave/owlweave, and we have balance/feral affinity talented, Whenever convoke cd is up we switch into affinity form to cast it, here catform form.",
["criteria"] = "settings.shift_for_convoke & ( ( talent.feral_affinity.enabled ) & ( ! druid.catweave_bear ) & ( ! druid.owlweave_bear ) & ( covenant.night_fae & cooldown.convoke_the_spirits.remains <= 1 ) )",
["list_name"] = "cconvoke",
}, -- [15]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [16]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "bear",
}, -- [17]
},
["catweave"] = {
{
["action"] = "prowl",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.prowl.up",
["action"] = "rake",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "druid.catweave_bear",
["action"] = "empower_bond",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.rake.refreshable || energy < 45",
["action"] = "rake",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "dot.rip.refreshable & combo_points >= 4",
["action"] = "rip",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "druid.catweave_bear",
["action"] = "convoke_the_spirits",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "combo_points >= 4",
["action"] = "ferocious_bite",
["max_energy"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( ! dot.adaptive_swarm_damage.ticking & ! action.adaptive_swarm_damage.in_flight & ( ! dot.adaptive_swarm_heal.ticking || dot.adaptive_swarm_heal.remains > 3 ) || dot.adaptive_swarm_damage.stack < 3 & dot.adaptive_swarm_damage.remains < 5 & dot.adaptive_swarm_damage.ticking )",
["action"] = "adaptive_swarm",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled & energy < 35 || soulbind.volatile_solvent.enabled",
["interrupt_if"] = "soulbind.volatile_solvent&energy<35",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "swipe_bear",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "refreshable & combo_points < 5",
["action"] = "rake",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "combo_points < 5",
["action"] = "shred",
}, -- [14]
},
["cooldowns"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [2]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [3]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [6]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "bristling_fur",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( dot.moonfire.ticking || active_enemies > 1 ) & dot.thrash_bear.ticking",
["action"] = "incarnation",
}, -- [9]
{
["action"] = "berserk",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [11]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [12]
},
["oconvoke"] = {
{
["action"] = "moonkin_form",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "soulbind.first_strike.enabled & buff.first_strike.up",
["action"] = "convoke_the_spirits",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "eclipse.any_next || eclipse.solar_next",
["action"] = "starfire",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "eclipse.any_next || eclipse.lunar_next",
["action"] = "wrath",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & buff.heart_of_the_wild.up",
["action"] = "convoke_the_spirits",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & cooldown.heart_of_the_wild.remains > 15",
["action"] = "convoke_the_spirits",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! talent.heart_of_the_wild.enabled",
["action"] = "convoke_the_spirits",
}, -- [8]
},
["cconvoke"] = {
{
["action"] = "cat_form",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "soulbind.first_strike.enabled & buff.first_strike.up",
["action"] = "convoke_the_spirits",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & buff.heart_of_the_wild.up",
["action"] = "convoke_the_spirits",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & cooldown.heart_of_the_wild.remains > 15",
["action"] = "convoke_the_spirits",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! talent.heart_of_the_wild.enabled",
["action"] = "convoke_the_spirits",
}, -- [6]
},
["owlweave"] = {
{
["enabled"] = true,
["criteria"] = "! buff.moonkin_form.up",
["action"] = "moonkin_form",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [2]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "soulbind.first_strike.enabled",
["action"] = "convoke_the_spirits",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "druid.owlweave_bear",
["action"] = "empower_bond",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( ! dot.adaptive_swarm_damage.ticking & ! action.adaptive_swarm_damage.in_flight & ( ! dot.adaptive_swarm_heal.ticking || dot.adaptive_swarm_heal.remains > 3 ) || dot.adaptive_swarm_damage.stack < 3 & dot.adaptive_swarm_damage.remains < 5 & dot.adaptive_swarm_damage.ticking )",
["action"] = "adaptive_swarm",
}, -- [6]
{
["enabled"] = true,
["action"] = "sunfire",
["criteria"] = "refreshable",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "refreshable || buff.galactic_guardian.up",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "covenant.night_fae & eclipse.any_next",
["action"] = "starfire",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! covenant.night_fae & eclipse.any_next",
["action"] = "wrath",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( buff.eclipse_lunar.up || buff.eclipse_solar.up )",
["action"] = "convoke_the_spirits",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( eclipse.in_lunar || eclipse.solar_next ) || ( eclipse.in_lunar & buff.starsurge_empowerment_lunar.up )",
["action"] = "starfire",
}, -- [12]
{
["action"] = "wrath",
["enabled"] = true,
}, -- [13]
},
},
["version"] = 20210916,
["warnings"] = "Imported 11 action lists.\n",
["spec"] = 104,
["profile"] = "## Guardian Druid\n## September 16, 2021\n\n## Changes:\n## - Incorporate Cat/Moonkin priorities (if setting is checked).\n## - Incorporate option to shift (or not) before Convoke.\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat+=/kindred_spirits\nactions.precombat+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&(druid.catweave_bear&buff.cat_form.up||druid.owlweave_bear&buff.moonkin_form.up||buff.moonkin_form.up&talent.balance_affinity.enabled)\nactions.precombat+=/prowl,if=buff.cat_form.up&druid.catweave_bear\nactions.precombat+=/bear_form,if=!buff.any_form.up&((!druid.owlweave_bear&!druid.catweave_bear)&(!covenant.night_fae))||((!druid.owlweave_bear&!druid.catweave_bear)&(covenant.night_fae&talent.restoration_affinity.enabled))\nactions.precombat+=/wrath,if=buff.moonkin_form.up&druid.owlweave_bear&!covenant.night_fae\nactions.precombat+=/starfire,if=buff.moonkin_form.up&druid.owlweave_bear&covenant.night_fae\nactions.precombat+=/fleshcraft,if=soulbind.pustule_eruption.enabled||soulbind.volatile_solvent.enabled,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent\n\n# Executed every time the actor is available.\nactions=skull_bash\nactions+=/use_item,name=jotungeirr_destinys_call,if=!buff.prowl.up&!covenant.venthyr\nactions+=/use_item,slot=trinket1,if=!buff.prowl.up&!covenant.venthyr\nactions+=/use_item,slot=trinket2,if=!buff.prowl.up&!covenant.venthyr\nactions+=/potion,if=!covenant.venthyr&(((talent.heart_of_the_wild.enabled&buff.heart_of_the_wild.up)&(druid.catweave_bear||druid.owlweave_bear)&!buff.prowl.up)||((buff.berserk_bear.up||buff.incarnation_guardian_of_ursoc.up)&(!druid.catweave_bear&!druid.owlweave_bear)))\n## Catweaving action list will be ran if, mangle/thrash are on cd, rage is below 40, zerk and incarnation are down and Gualactic guardian buff is not active, or if, we're in catform and energy is above 25, Or if we have the Oath legendary equipped, the debuff linked to it is not up and energy is above 20,Or if we're kyrian and Empower bond cooldown is up and enemies are inferior to 2.\nactions+=/run_action_list,strict=1,name=catweave,if=druid.catweave_bear&!covenant.venthyr&buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&((cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0&dot.moonfire.remains>=gcd+0.5&rage<40&buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&buff.galactic_guardian.down)||(buff.cat_form.up&energy>25)||(dot.rake.refreshable&dot.rip.refreshable)||(runeforge.oath_of_the_elder_druid.equipped&!buff.oath_of_the_elder_druid.up&(buff.cat_form.up&energy>20)&buff.heart_of_the_wild.remains<=10)||(covenant.kyrian&cooldown.empower_bond.remains<=1&active_enemies<2)||(buff.heart_of_the_wild.up&energy>90))\nactions+=/run_action_list,strict=1,name=catweave,if=druid.catweave_bear&covenant.venthyr&((cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0&dot.moonfire.remains>=gcd+0.5&rage<40&buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&buff.galactic_guardian.down&rage<40&buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&buff.galactic_guardian.down)||(buff.cat_form.up&energy>25)||(dot.rake.refreshable&dot.rip.refreshable&rage<40&buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&buff.galactic_guardian.down))\nactions+=/run_action_list,strict=1,name=catweave,if=!druid.catweave_bear&buff.cat_form.up\n## Owlweaving action list will be ran if, mangle/thrash are on cd, rage is below 15, zerk and incarnation are down and Gualactic guardian buff is not active. Or if, we're in moonkin form and sunfire is refreshable, Or if we have the Oath legendary equipped, the debuff linked to it is not up.Or if we're kyrian and Empower bond cooldown is up and enemies are below 2, or if we're Night fae and Convoke cd is up.\nactions+=/run_action_list,strict=1,name=owlweave,if=druid.owlweave_bear&((cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0&rage<15&buff.incarnation.down&buff.berserk_bear.down&buff.galactic_guardian.down)||(buff.moonkin_form.up&dot.sunfire.refreshable)||(buff.moonkin_form.up&buff.heart_of_the_wild.up)||(runeforge.oath_of_the_elder_druid.equipped&!buff.oath_of_the_elder_druid.up)||(covenant.night_fae&cooldown.convoke_the_spirits.remains<=1)||(covenant.kyrian&cooldown.empower_bond.remains<=1&active_enemies<2))\nactions+=/run_action_list,strict=1,name=owlweave,if=!druid.owlweave_bear&buff.moonkin_form.up\nactions+=/run_action_list,name=owlweave,strict=1,if=druid.owlweave_bear&buff.moonkin_form.up\n# If we have Lycara legendary equipped and balance affinity as a talent we switch into moonkin form whenever the lycara buff is at or below 2 sec\nactions+=/run_action_list,name=lycarao,if=((runeforge.lycaras_fleeting_glimpse.equipped)&(talent.balance_affinity.enabled)&(buff.lycaras_fleeting_glimpse.up)&(buff.lycaras_fleeting_glimpse.remains<=2))\n# If we have Lycara legendary equipped and feral affinity as a talent we switch into feral form whenever the lycara buff is at or below 2 sec\nactions+=/run_action_list,name=lycarac,if=((runeforge.lycaras_fleeting_glimpse.equipped)&(talent.feral_affinity.enabled)&(buff.lycaras_fleeting_glimpse.up)&(buff.lycaras_fleeting_glimpse.remains<=2))\n# If we're a nightfae and we don't want to catweave/owlweave, and we have balance/feral affinity talented, Whenever convoke cd is up we switch into affinity form to cast it, here moonkin form.\nactions+=/run_action_list,name=oconvoke,if=settings.shift_for_convoke&((talent.balance_affinity.enabled)&(!druid.catweave_bear)&(!druid.owlweave_bear)&(covenant.night_fae&cooldown.convoke_the_spirits.remains<=1))\n# If we're a nightfae and we don't want to catweave/owlweave, and we have balance/feral affinity talented, Whenever convoke cd is up we switch into affinity form to cast it, here catform form.\nactions+=/run_action_list,name=cconvoke,if=settings.shift_for_convoke&((talent.feral_affinity.enabled)&(!druid.catweave_bear)&(!druid.owlweave_bear)&(covenant.night_fae&cooldown.convoke_the_spirits.remains<=1))\nactions+=/call_action_list,name=mitigation\nactions+=/run_action_list,name=bear\n\nactions.bear=bear_form,if=!buff.bear_form.up\nactions.bear+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&(talent.balance_affinity.enabled)&covenant.venthyr\nactions.bear+=/moonfire,cycle_targets=1,if=((!ticking&time_to_die>12&buff.galactic_guardian.up)||(refreshable&time_to_die>12&buff.galactic_guardian.up))\nactions.bear+=/moonfire,cycle_targets=1,if=((!ticking&time_to_die>12)||(refreshable&time_to_die>12))\nactions.bear+=/ravenous_frenzy\nactions.bear+=/use_item,name=jotungeirr_destinys_call,if=covenant.venthyr\nactions.bear+=/use_item,slot=trinket1,if=!buff.prowl.up&covenant.venthyr\nactions.bear+=/use_item,slot=trinket2,if=!buff.prowl.up&covenant.venthyr\nactions.bear+=/potion,if=covenant.venthyr&buff.incarnation.remains>=24&buff.incarnation.remains<=25\nactions.bear+=/convoke_the_spirits,if=!druid.catweave_bear&!druid.owlweave_bear\nactions.bear+=/berserk_bear,if=(buff.ravenous_frenzy.up||!covenant.venthyr)\nactions.bear+=/incarnation,if=(buff.ravenous_frenzy.up||!covenant.venthyr)\nactions.bear+=/berserking,if=(buff.berserk_bear.up||buff.incarnation_guardian_of_ursoc.up)\nactions.bear+=/adaptive_swarm,if=(!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>3)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<5&dot.adaptive_swarm_damage.ticking)\nactions.bear+=/moonfire,if=buff.galactic_guardian.up&active_enemies<3\nactions.bear+=/thrash_bear,cycle_targets=1,if=refreshable||dot.thrash_bear.stack<3||(dot.thrash_bear.stack<4&runeforge.luffainfused_embrace.equipped)||active_enemies>=4||buff.berserk_bear.up&buff.berserk_bear.remains<=gcd+0.5\nactions.bear+=/mangle,if=rage.deficit>10&settings.mangle_more\nactions.bear+=/fleshcraft,if=soulbind.pustule_eruption.enabled&((cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0)&(dot.moonfire.remains>=3)&(buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&buff.galactic_guardian.down))||soulbind.volatile_solvent.enabled,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent&(cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0)\nactions.bear+=/swipe,if=buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&active_enemies>=4\nactions.bear+=/maul,if=buff.incarnation.up&active_enemies<3&(buff.tooth_and_claw.stack>=2)||(buff.tooth_and_claw.up&buff.tooth_and_claw.remains<1.5)||(buff.savage_combatant.stack>=3)||buff.berserk_bear.up&active_enemies<3\nactions.bear+=/maul,if=(buff.savage_combatant.stack>=1)&(buff.tooth_and_claw.up)&buff.incarnation.up&active_enemies=2\nactions.bear+=/mangle,if=buff.incarnation.up&active_enemies<=3\nactions.bear+=/maul,if=(((buff.tooth_and_claw.stack>=2)||(buff.tooth_and_claw.up&buff.tooth_and_claw.remains<1.5)||(buff.savage_combatant.stack>=3))&active_enemies<3)\nactions.bear+=/thrash_bear,if=active_enemies>1\nactions.bear+=/mangle,if=((rage<90)&active_enemies<3)||((rage<85)&active_enemies<3&talent.soul_of_the_forest.enabled)\nactions.bear+=/pulverize,cycle_targets=1,if=dot.thrash_bear.stack>2\nactions.bear+=/thrash_bear\nactions.bear+=/maul,if=active_enemies<3\nactions.bear+=/swipe_bear\nactions.bear+=/ironfur,if=rage.deficit<40&buff.ironfur.remains<0.5\n\nactions.mitigation=ironfur,if=incoming_damage_5s>ironfur_damage_threshold&buff.ironfur.remains<3*haste\nactions.mitigation+=/renewal,if=tanking&health.pct<65\nactions.mitigation+=/frenzied_regeneration,if=tanking&health.pct<65\nactions.mitigation+=/empower_bond,if=(!druid.catweave_bear&!druid.owlweave_bear)||active_enemies>=2\nactions.mitigation+=/barkskin,if=tanking&health.pct<75&incoming_damage_5s>0.1*health.max\nactions.mitigation+=/survival_instincts,if=buff.survival_instincts.down&buff.barkskin.down&health.pct<60&incoming_damage_5s>0.25*health.max\n\nactions.cooldowns=potion\nactions.cooldowns+=/blood_fury\nactions.cooldowns+=/berserking\nactions.cooldowns+=/arcane_torrent\nactions.cooldowns+=/lights_judgment\nactions.cooldowns+=/fireblood\nactions.cooldowns+=/ancestral_call\nactions.cooldowns+=/bristling_fur,if=buff.bear_form.up\nactions.cooldowns+=/incarnation,if=(dot.moonfire.ticking||active_enemies>1)&dot.thrash_bear.ticking\nactions.cooldowns+=/berserk\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast\nactions.cooldowns+=/use_items\n\nactions.catweave=prowl\nactions.catweave+=/cat_form,if=!buff.cat_form.up\nactions.catweave+=/rake,if=buff.prowl.up\nactions.catweave+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up\nactions.catweave+=/empower_bond,if=druid.catweave_bear\nactions.catweave+=/rake,if=dot.rake.refreshable||energy<45\nactions.catweave+=/rip,if=dot.rip.refreshable&combo_points>=4\nactions.catweave+=/convoke_the_spirits,if=druid.catweave_bear\nactions.catweave+=/ferocious_bite,max_energy=1,if=combo_points>=4\nactions.catweave+=/adaptive_swarm,if=(!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>3)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<5&dot.adaptive_swarm_damage.ticking)\nactions.catweave+=/fleshcraft,if=soulbind.pustule_eruption.enabled&energy<35||soulbind.volatile_solvent.enabled,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent&energy<35\nactions.catweave+=/swipe,if=active_enemies>1\nactions.catweave+=/rake,if=refreshable&combo_points<5\nactions.catweave+=/shred,if=combo_points<5\n\nactions.cconvoke=cat_form\nactions.cconvoke+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up\nactions.cconvoke+=/convoke_the_spirits,if=soulbind.first_strike.enabled&buff.first_strike.up\nactions.cconvoke+=/convoke_the_spirits,if=talent.heart_of_the_wild.enabled&buff.heart_of_the_wild.up\nactions.cconvoke+=/convoke_the_spirits,if=talent.heart_of_the_wild.enabled&cooldown.heart_of_the_wild.remains>15\nactions.cconvoke+=/convoke_the_spirits,if=!talent.heart_of_the_wild.enabled\n\nactions.lycarac=cat_form\n\nactions.lycarao=moonkin_form\n\nactions.oconvoke=moonkin_form\nactions.oconvoke+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up\nactions.oconvoke+=/convoke_the_spirits,if=soulbind.first_strike.enabled&buff.first_strike.up\nactions.oconvoke+=/starfire,if=eclipse.any_next||eclipse.solar_next\nactions.oconvoke+=/wrath,if=eclipse.any_next||eclipse.lunar_next\nactions.oconvoke+=/convoke_the_spirits,if=talent.heart_of_the_wild.enabled&buff.heart_of_the_wild.up\nactions.oconvoke+=/convoke_the_spirits,if=talent.heart_of_the_wild.enabled&cooldown.heart_of_the_wild.remains>15\nactions.oconvoke+=/convoke_the_spirits,if=!talent.heart_of_the_wild.enabled\n\nactions.owlweave=moonkin_form,if=!buff.moonkin_form.up\nactions.owlweave+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up\nactions.owlweave+=/starsurge\nactions.owlweave+=/convoke_the_spirits,if=soulbind.first_strike.enabled\nactions.owlweave+=/empower_bond,if=druid.owlweave_bear\nactions.owlweave+=/adaptive_swarm,if=(!dot.adaptive_swarm_damage.ticking&!action.adaptive_swarm_damage.in_flight&(!dot.adaptive_swarm_heal.ticking||dot.adaptive_swarm_heal.remains>3)||dot.adaptive_swarm_damage.stack<3&dot.adaptive_swarm_damage.remains<5&dot.adaptive_swarm_damage.ticking)\nactions.owlweave+=/sunfire,cycle_targets=1,if=refreshable\nactions.owlweave+=/moonfire,cycle_targets=1,if=refreshable||buff.galactic_guardian.up\nactions.owlweave+=/starfire,if=covenant.night_fae&eclipse.any_next\nactions.owlweave+=/wrath,if=!covenant.night_fae&eclipse.any_next\nactions.owlweave+=/convoke_the_spirits,if=(buff.eclipse_lunar.up||buff.eclipse_solar.up)\nactions.owlweave+=/starfire,if=(eclipse.in_lunar||eclipse.solar_next)||(eclipse.in_lunar&buff.starsurge_empowerment_lunar.up)\nactions.owlweave+=/wrath",
},
},
},
["Quillum - Deathwing"] = {
["toggles"] = {
["mode"] = {
["value"] = "single",
},
},
["specs"] = {
[269] = {
["maxRefresh"] = 10,
["abilities"] = {
["flying_serpent_kick"] = {
["disabled"] = true,
},
},
["potionsReset"] = 20180919.1,
["settings"] = {
["sef_one_charge"] = false,
["tok_damage"] = 1,
["check_wdp_range"] = false,
["allow_fsk"] = true,
["check_sck_range"] = false,
["optimize_reverse_harm"] = false,
["use_diffuse"] = false,
},
["maxTime"] = 33,
},
[270] = {
["potionsReset"] = 20180919.1,
},
[102] = {
["enhancedRecheck"] = true,
},
[268] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["bof_percent"] = 50,
["purify_for_celestial"] = true,
["isb_overlap"] = 1,
["purify_for_niuzao"] = true,
["purify_stagger"] = 33,
["brew_charges"] = 2,
["purify_stagger_maxhp"] = 6,
["ox_walker"] = true,
["eh_percent"] = 65,
["purify_stagger_currhp"] = 12,
},
["maxTime"] = 33,
},
},
["displays"] = {
["Interrupts"] = {
["rel"] = "CENTER",
["y"] = -224.9999847412109,
},
["Cooldowns"] = {
["rel"] = "CENTER",
["x"] = -0.8332518935203552,
["y"] = -361.6665954589844,
},
["Primary"] = {
["y"] = -364.9996337890625,
["x"] = 85.8330078125,
["rel"] = "CENTER",
},
["AOE"] = {
["rel"] = "CENTER",
["x"] = 304.16650390625,
["y"] = -354.1666259765625,
},
["Defensives"] = {
["rel"] = "CENTER",
["y"] = -224.9999847412109,
},
},
["packs"] = {
["Windwalker"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/dragonflight/profiles/PreRaids/PR_Monk_Windwalker.simc",
["builtIn"] = true,
["date"] = 20230208,
["spec"] = 269,
["desc"] = "",
["lists"] = {
["opener"] = {
{
["enabled"] = true,
["description"] = "Opener",
["criteria"] = "talent.chi_burst.enabled & chi.max - chi >= 3",
["action"] = "expel_harm",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "combo_strike & chi.max - chi >= ( 2 + buff.power_strikes.up )",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "chi.max - chi = 2",
["action"] = "chi_wave",
}, -- [3]
{
["action"] = "expel_harm",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "chi.max - chi >= ( 2 + buff.power_strikes.up )",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
}, -- [5]
},
["serenity"] = {
{
["enabled"] = true,
["description"] = "Serenity Priority",
["criteria"] = "active_enemies < 3",
["action"] = "strike_of_the_windlord",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.serenity.remains < 1",
["action"] = "fists_of_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.teachings_of_the_monastery.stack = 3 & buff.teachings_of_the_monastery.remains < 1",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [3]
{
["interrupt_if"] = "buff.serenity.remains>1",
["action"] = "fists_of_fury",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "combo_strike & active_enemies = 3 & buff.teachings_of_the_monastery.stack = 2",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "combo_strike & ( active_enemies > 3 || active_enemies > 2 & spinning_crane_kick.modifier >= 2.3 )",
["action"] = "spinning_crane_kick",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "strike_of_the_windlord",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "combo_strike & active_enemies > 1",
["action"] = "spinning_crane_kick",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "whirling_dragon_punch",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & cooldown.fists_of_fury.remains & talent.shadowboxing_treads.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.rushing_jade_wind.up & active_enemies >= 3",
["action"] = "rushing_jade_wind",
}, -- [11]
{
["enabled"] = true,
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up",
["action"] = "spinning_crane_kick",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "combo_strike",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [14]
{
["action"] = "whirling_dragon_punch",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "talent.teachings_of_the_monastery.enabled & buff.teachings_of_the_monastery.stack < 3",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
}, -- [16]
},
["cd_serenity"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Serenity Cooldowns",
["list_name"] = "serenity_trinkets",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "pet.xuen_the_white_tiger.active",
["action"] = "summon_white_tiger_statue",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.hold_xuen & talent.bonedust_brew.enabled & cooldown.bonedust_brew.remains <= 5 || boss & fight_remains < 25",
["action"] = "invoke_xuen",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! variable.hold_xuen & ! talent.bonedust_brew.enabled & ( cooldown.rising_sun_kick.remains < 2 ) || boss & fight_remains < 25",
["action"] = "invoke_xuen",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & ( cooldown.serenity.up || cooldown.serenity.remains > 15 || fight_remains < 30 & fight_remains > 10 ) || fight_remains < 10",
["action"] = "bonedust_brew",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > 10 || ! talent.invoke_xuen_the_white_tiger.enabled || fight_remains < 15",
["action"] = "serenity",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! boss & combo_strike & target.health < health",
["action"] = "touch_of_death",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! boss & combo_strike & ( target.time_to_die > 60 || debuff.bonedust_brew_debuff.up || fight_remains < 10 )",
["action"] = "touch_of_death",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "boss & combo_strike",
["action"] = "touch_of_death",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "fight_remains > 90 || boss & fight_remains < 10",
["action"] = "touch_of_karma",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.serenity.up || boss & fight_remains < 20",
["action"] = "blood_fury",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.serenity.up || boss & fight_remains < 20",
["action"] = "berserking",
}, -- [12]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.serenity.up || boss & fight_remains < 20",
["action"] = "fireblood",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.serenity.up || boss & fight_remains < 20",
["action"] = "ancestral_call",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.serenity.up || boss & fight_remains < 20",
["action"] = "bag_of_tricks",
}, -- [16]
},
["sef_trinkets"] = {
{
["enabled"] = true,
["description"] = "SEF Trinkets",
["criteria"] = "pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled & buff.storm_earth_and_fire.up || boss & fight_remains < 30",
["action"] = "horn_of_valor",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! pet.xuen_the_white_tiger.active & ! buff.storm_earth_and_fire.up || boss & fight_remains < 5",
["action"] = "manic_grieftorch",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled ) & ! buff.storm_earth_and_fire.up || boss & fight_remains < 25",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || action_cooldown <= 60 & buff.storm_earth_and_fire.remains > 10 || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || action_cooldown <= 60 & buff.storm_earth_and_fire.remains > 10 || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [7]
},
["cd_sef"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Storm, Earth and Fire Cooldowns",
["list_name"] = "sef_trinkets",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "pet.xuen_the_white_tiger.active",
["action"] = "summon_white_tiger_statue",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.hold_xuen & talent.bonedust_brew.enabled & cooldown.bonedust_brew.remains <= 5 & ( active_enemies < 3 & chi >= 3 || active_enemies >= 3 & chi >= 2 ) || fight_remains < 25",
["action"] = "invoke_xuen",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! variable.hold_xuen & ! talent.bonedust_brew.enabled & ( cooldown.rising_sun_kick.remains < 2 ) & chi >= 3",
["action"] = "invoke_xuen",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.bonedust_brew.enabled & ( fight_remains < 30 & cooldown.bonedust_brew.remains < 4 & chi >= 4 || buff.bonedust_brew.up || ! spinning_crane_kick.max & active_enemies >= 3 & cooldown.bonedust_brew.remains <= 2 & chi >= 2 ) & ( pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > cooldown.storm_earth_and_fire.full_recharge_time )",
["action"] = "storm_earth_and_fire",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( ! buff.bonedust_brew.up & buff.storm_earth_and_fire.up & buff.storm_earth_and_fire.remains < 11 & spinning_crane_kick.max ) || ( ! buff.bonedust_brew.up & fight_remains < 30 & fight_remains > 10 & spinning_crane_kick.max & chi >= 4 ) || fight_remains < 10",
["action"] = "bonedust_brew",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "! buff.bonedust_brew.up & talent.bonedust_brew.enabled & cooldown.bonedust_brew.remains <= 2 & ( fight_remains > 60 & ( cooldown.storm_earth_and_fire.charges > 0 || cooldown.storm_earth_and_fire.remains > 10 ) & ( pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > 10 || variable.hold_xuen ) || ( ( pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > 13 ) & ( cooldown.storm_earth_and_fire.charges > 0 || cooldown.storm_earth_and_fire.remains > 13 || buff.storm_earth_and_fire.up ) ) )",
["list_name"] = "bdb_setup",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 20 || ( cooldown.storm_earth_and_fire.charges = 2 & cooldown.invoke_xuen_the_white_tiger.remains > cooldown.storm_earth_and_fire.full_recharge_time ) & cooldown.fists_of_fury.remains <= 9 & chi >= 2 & cooldown.whirling_dragon_punch.remains <= 12",
["action"] = "storm_earth_and_fire",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! boss & combo_strike & target.health < health",
["action"] = "touch_of_death",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! boss & combo_strike & ( target.time_to_die > 60 || debuff.bonedust_brew_debuff.up || fight_remains < 10 )",
["action"] = "touch_of_death",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "boss & combo_strike",
["action"] = "touch_of_death",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "fight_remains > 90 || pet.xuen_the_white_tiger.active || variable.hold_xuen || boss & fight_remains < 16",
["action"] = "touch_of_karma",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "fight_remains > 159 || variable.hold_xuen",
["action"] = "touch_of_karma",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 20",
["action"] = "blood_fury",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 15",
["action"] = "berserking",
}, -- [15]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 10",
["action"] = "fireblood",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 20",
["action"] = "ancestral_call",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.storm_earth_and_fire.down",
["action"] = "bag_of_tricks",
}, -- [19]
},
["serenity_trinkets"] = {
{
["enabled"] = true,
["description"] = "Serenity Trinkets",
["criteria"] = "pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled & buff.storm_earth_and_fire.up || boss & fight_remains < 30",
["action"] = "horn_of_valor",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! pet.xuen_the_white_tiger.active & ! buff.storm_earth_and_fire.up || boss & fight_remains < 5",
["action"] = "manic_grieftorch",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled ) & ! buff.storm_earth_and_fire.up || boss & fight_remains < 25",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & buff.serenity.remains > 10 || boss & fight_remains < 30",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & buff.serenity.remains > 10 || boss & fight_remains < 30",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled",
["action"] = "use_items",
}, -- [8]
},
["st_cleave"] = {
{
["enabled"] = true,
["action"] = "blackout_kick",
["cycle_targets"] = 1,
["description"] = "ST Priority (<3 Targets)",
["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up",
["action"] = "spinning_crane_kick",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.thunderfist.enabled",
["action"] = "strike_of_the_windlord",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & buff.kicks_of_flowing_momentum.up || buff.pressure_point.up",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 2 & talent.shadowboxing_treads.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [5]
{
["action"] = "strike_of_the_windlord",
["enabled"] = true,
}, -- [6]
{
["action"] = "fists_of_fury",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.up & ( talent.shadowboxing_treads.enabled & active_enemies > 1 || cooldown.rising_sun_kick.remains > 1 )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies = 2",
["action"] = "whirling_dragon_punch",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 3",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( active_enemies = 1 || ! talent.shadowboxing_treads.enabled ) & cooldown.fists_of_fury.remains > 4 & talent.xuens_battlegear.enabled",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "combo_strike & active_enemies = 2 & cooldown.rising_sun_kick.remains & cooldown.fists_of_fury.remains & ( ! buff.bonedust_brew.up || spinning_crane_kick.modifier < 1.5 )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.rushing_jade_wind.up & active_enemies = 2",
["action"] = "rushing_jade_wind",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.bonedust_brew.up & combo_strike & ( active_enemies > 1 || spinning_crane_kick.modifier >= 2.7 )",
["action"] = "spinning_crane_kick",
}, -- [14]
{
["enabled"] = true,
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [15]
{
["action"] = "whirling_dragon_punch",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! buff.rushing_jade_wind.up",
["action"] = "rushing_jade_wind",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "combo_strike",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [18]
},
["precombat"] = {
{
["action"] = "summon_white_tiger_statue",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "chi < chi.max",
["action"] = "expel_harm",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.faeline_stomp.enabled",
["action"] = "chi_burst",
}, -- [3]
{
["action"] = "chi_wave",
["enabled"] = true,
}, -- [4]
},
["aoe"] = {
{
["enabled"] = true,
["description"] = "AoE Priority (3+ Targets)",
["criteria"] = "combo_strike & buff.dance_of_chiji.up & active_enemies > 3",
["action"] = "spinning_crane_kick",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.thunderfist.enabled & active_enemies > 3",
["action"] = "strike_of_the_windlord",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 8",
["action"] = "whirling_dragon_punch",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.bonedust_brew.up & combo_strike & active_enemies > 5 & spinning_crane_kick.modifier >= 3.2",
["action"] = "spinning_crane_kick",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up",
["action"] = "spinning_crane_kick",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.thunderfist.enabled",
["action"] = "strike_of_the_windlord",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 5",
["action"] = "whirling_dragon_punch",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.up & ( buff.teachings_of_the_monastery.stack = 2 || active_enemies < 5 ) & talent.shadowboxing_treads.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [9]
{
["action"] = "whirling_dragon_punch",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.bonedust_brew.up & combo_strike",
["action"] = "spinning_crane_kick",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies > 3",
["action"] = "fists_of_fury",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 3",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! buff.rushing_jade_wind.up & active_enemies > 3",
["action"] = "rushing_jade_wind",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.up & active_enemies >= 5 & talent.shadowboxing_treads.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "combo_strike & ( active_enemies >= 7 || active_enemies = 6 & spinning_crane_kick.modifier >= 2.7 || active_enemies = 5 & spinning_crane_kick.modifier >= 2.9 )",
["action"] = "spinning_crane_kick",
}, -- [16]
{
["action"] = "strike_of_the_windlord",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "combo_strike & ( active_enemies >= 5 || active_enemies = 4 & spinning_crane_kick.modifier >= 2.5 || ! talent.shadowboxing_treads.enabled )",
["action"] = "spinning_crane_kick",
}, -- [18]
{
["action"] = "fists_of_fury",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "combo_strike",
["action"] = "faeline_stomp",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "combo_strike",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "! buff.rushing_jade_wind.up",
["action"] = "rushing_jade_wind",
}, -- [22]
{
["enabled"] = true,
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [23]
{
["action"] = "whirling_dragon_punch",
["enabled"] = true,
}, -- [24]
},
["fallthru"] = {
{
["enabled"] = true,
["description"] = "Fallthru",
["criteria"] = "buff.the_emperors_capacitor.stack > 19 & energy.time_to_max > execute_time - 1 & cooldown.rising_sun_kick.remains > execute_time || buff.the_emperors_capacitor.stack > 14 & ( cooldown.serenity.remains < 5 & talent.serenity.enabled || boss & fight_remains < 5 )",
["action"] = "crackling_jade_lightning",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "combo_strike",
["action"] = "faeline_stomp",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "combo_strike & chi.max - chi >= ( 2 + buff.power_strikes.up )",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "chi.max - chi >= 1 & active_enemies > 2",
["action"] = "expel_harm",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "chi.max - chi >= 1 & active_enemies = 1 & raid_event.adds.in > 20 || chi.max - chi >= 2 & active_enemies >= 2",
["action"] = "chi_burst",
}, -- [5]
{
["action"] = "chi_wave",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "chi.max - chi >= 1",
["action"] = "expel_harm",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.chi_energy.stack > 30 - 5 * active_enemies & buff.storm_earth_and_fire.down & ( cooldown.rising_sun_kick.remains > 2 & cooldown.fists_of_fury.remains > 2 || cooldown.rising_sun_kick.remains < 3 & cooldown.fists_of_fury.remains > 3 & chi > 3 || cooldown.rising_sun_kick.remains > 3 & cooldown.fists_of_fury.remains < 3 & chi > 4 || chi.max - chi <= 1 & energy.time_to_max < 2 ) || buff.chi_energy.stack > 10 & fight_remains < 7",
["action"] = "spinning_crane_kick",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "chi.max - chi >= 1",
["action"] = "arcane_torrent",
}, -- [9]
{
["interrupt"] = "1",
["action"] = "flying_serpent_kick",
["enabled"] = true,
}, -- [10]
{
["action"] = "tiger_palm",
["enabled"] = true,
}, -- [11]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "spear_hand_strike",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.invoke_xuen_the_white_tiger.enabled || cooldown.invoke_xuen_the_white_tiger.remains > fight_remains || fight_remains - cooldown.invoke_xuen_the_white_tiger.remains < 120 & ( ( talent.serenity.enabled & fight_remains > cooldown.serenity.remains & cooldown.serenity.remains > 10 ) || ( cooldown.storm_earth_and_fire.full_recharge_time < fight_remains & cooldown.storm_earth_and_fire.full_recharge_time > 15 ) || ( cooldown.storm_earth_and_fire.charges = 0 & cooldown.storm_earth_and_fire.remains < fight_remains ) )",
["var_name"] = "hold_xuen",
}, -- [2]
{
["enabled"] = true,
["description"] = "Potion",
["criteria"] = "( buff.serenity.up || buff.storm_earth_and_fire.up ) & ( ! talent.xuen_the_white_tiger.enabled || pet.xuen_the_white_tiger.active ) || boss & fight_remains <= 60",
["action"] = "potion",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Build Chi at the start of combat",
["criteria"] = "time < 4 & chi < 5 & ! pet.xuen_the_white_tiger.active & ! talent.serenity.enabled",
["list_name"] = "opener",
}, -- [4]
{
["enabled"] = true,
["action"] = "faeline_stomp",
["cycle_targets"] = 1,
["description"] = "Prioritize Faeline Stomp if playing with Faeline Harmony",
["criteria"] = "combo_strike & talent.faeline_harmony.enabled & debuff.fae_exposure_damage.remains < 1",
}, -- [5]
{
["enabled"] = true,
["action"] = "tiger_palm",
["cycle_targets"] = 1,
["description"] = "TP if not overcapping Chi or TotM",
["criteria"] = "! buff.serenity.up & buff.teachings_of_the_monastery.stack < 3 & combo_strike & chi.max - chi >= ( 2 + buff.power_strikes.up ) & ( ! talent.invoke_xuen_the_white_tiger.enabled & ! talent.serenity.enabled || ( ! talent.skyreach.enabled || time > 5 || pet.xuen_the_white_tiger.active ) )",
}, -- [6]
{
["enabled"] = true,
["description"] = "Use Chi Burst to reset Faeline Stomp",
["criteria"] = "talent.faeline_stomp.enabled & cooldown.faeline_stomp.remains & ( chi.max - chi >= 1 & active_enemies = 1 || chi.max - chi >= 2 & active_enemies >= 2 )",
["action"] = "chi_burst",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Use Cooldowns",
["strict"] = 1,
["criteria"] = "! talent.serenity.enabled",
["list_name"] = "cd_sef",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.serenity.enabled",
["list_name"] = "cd_serenity",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Serenity / Default Priority",
["strict"] = 1,
["criteria"] = "buff.serenity.up",
["list_name"] = "serenity",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 3",
["list_name"] = "aoe",
}, -- [11]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3",
["list_name"] = "st_cleave",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "fallthru",
}, -- [13]
},
["bdb_setup"] = {
{
["enabled"] = true,
["description"] = "Bonedust Brew Setup",
["criteria"] = "spinning_crane_kick.max & chi >= 4",
["action"] = "bonedust_brew",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "combo_strike & ! talent.whirling_dragon_punch.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "combo_strike & chi >= 5",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "combo_strike & chi.max - chi >= 2",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "combo_strike & active_enemies >= 2",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
}, -- [5]
},
},
["version"] = 20230208,
["warnings"] = "The import for 'serenity' required some automated changes.\nLine 10: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 16: Converted 'talent.teachings_of_the_monastery' to 'talent.teachings_of_the_monastery.enabled' (1x).\n\nThe import for 'cd_serenity' required some automated changes.\nLine 3: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 4: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 6: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\n\nThe import for 'serenity_trinkets' required some automated changes.\nLine 1: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 3: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 4: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 4: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 5: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 5: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 5: Converted operations in '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 6: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 6: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 7: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 7: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 7: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 7: Converted operations in '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 8: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 8: Converted operations in 'cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled' to 'cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled'.\n\nThe import for 'cd_sef' required some automated changes.\nLine 3: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 4: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 5: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 7: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\n\nThe import for 'sef_trinkets' required some automated changes.\nLine 1: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 3: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 4: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 4: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 4: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted operations in 'trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to 'trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 5: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 5: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 5: Converted operations in '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 6: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 6: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 6: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 6: Converted operations in 'trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to 'trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 7: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 7: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 7: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 7: Converted operations in '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 2: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 3: Converted 'talent.xuen_the_white_tiger' to 'talent.xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 5: Converted 'talent.faeline_harmony' to 'talent.faeline_harmony.enabled' (1x).\nLine 6: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 6: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 6: Converted 'talent.skyreach' to 'talent.skyreach.enabled' (1x).\nLine 7: Converted 'talent.faeline_stomp' to 'talent.faeline_stomp.enabled' (1x).\nLine 8: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 9: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.faeline_stomp' to 'talent.faeline_stomp.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 5: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 7: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 9: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 15: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 18: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\n\nThe import for 'fallthru' required some automated changes.\nLine 1: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\n\nThe import for 'st_cleave' required some automated changes.\nLine 1: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 3: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 5: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 8: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 11: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 11: Converted 'talent.xuens_battlegear' to 'talent.xuens_battlegear.enabled' (1x).\n\nThe import for 'bdb_setup' required some automated changes.\nLine 2: Converted 'talent.whirling_dragon_punch' to 'talent.whirling_dragon_punch.enabled' (1x).\n\nImported 12 action lists.\n",
["profile"] = "actions.precombat+=/summon_white_tiger_statue\nactions.precombat+=/expel_harm,if=chi<chi.max\nactions.precombat+=/chi_burst,if=!talent.faeline_stomp\nactions.precombat+=/chi_wave\n\n# Executed every time the actor is available.\nactions=spear_hand_strike\nactions+=/variable,name=hold_xuen,op=set,value=!talent.invoke_xuen_the_white_tiger||cooldown.invoke_xuen_the_white_tiger.remains>fight_remains||fight_remains-cooldown.invoke_xuen_the_white_tiger.remains<120&((talent.serenity&fight_remains>cooldown.serenity.remains&cooldown.serenity.remains>10)||(cooldown.storm_earth_and_fire.full_recharge_time<fight_remains&cooldown.storm_earth_and_fire.full_recharge_time>15)||(cooldown.storm_earth_and_fire.charges=0&cooldown.storm_earth_and_fire.remains<fight_remains))\n# Potion\nactions+=/potion,if=(buff.serenity.up||buff.storm_earth_and_fire.up)&(!talent.xuen_the_white_tiger||pet.xuen_the_white_tiger.active)||boss&fight_remains<=60\n# Build Chi at the start of combat\nactions+=/call_action_list,name=opener,if=time<4&chi<5&!pet.xuen_the_white_tiger.active&!talent.serenity\n# Prioritize Faeline Stomp if playing with Faeline Harmony\nactions+=/faeline_stomp,cycle_targets=1,if=combo_strike&talent.faeline_harmony&debuff.fae_exposure_damage.remains<1\n# TP if not overcapping Chi or TotM\nactions+=/tiger_palm,cycle_targets=1,if=!buff.serenity.up&buff.teachings_of_the_monastery.stack<3&combo_strike&chi.max-chi>=(2+buff.power_strikes.up)&(!talent.invoke_xuen_the_white_tiger&!talent.serenity||(!talent.skyreach||time>5||pet.xuen_the_white_tiger.active))\n# Use Chi Burst to reset Faeline Stomp\nactions+=/chi_burst,if=talent.faeline_stomp&cooldown.faeline_stomp.remains&(chi.max-chi>=1&active_enemies=1||chi.max-chi>=2&active_enemies>=2)\n# Use Cooldowns\nactions+=/call_action_list,name=cd_sef,strict=1,if=!talent.serenity\nactions+=/call_action_list,name=cd_serenity,strict=1,if=talent.serenity\n# Serenity / Default Priority\nactions+=/call_action_list,name=serenity,strict=1,if=buff.serenity.up\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>=3\nactions+=/call_action_list,name=st_cleave,strict=1,if=active_enemies<3\nactions+=/call_action_list,name=fallthru\n\n# AoE Priority (3+ Targets)\nactions.aoe+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up&active_enemies>3\nactions.aoe+=/strike_of_the_windlord,if=talent.thunderfist&active_enemies>3\nactions.aoe+=/whirling_dragon_punch,if=active_enemies>8\nactions.aoe+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&active_enemies>5&spinning_crane_kick.modifier>=3.2\nactions.aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.aoe+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.aoe+=/strike_of_the_windlord,if=talent.thunderfist\nactions.aoe+=/whirling_dragon_punch,if=active_enemies>5\nactions.aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&(buff.teachings_of_the_monastery.stack=2||active_enemies<5)&talent.shadowboxing_treads\nactions.aoe+=/whirling_dragon_punch\nactions.aoe+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike\nactions.aoe+=/fists_of_fury,if=active_enemies>3\nactions.aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.aoe+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up&active_enemies>3\nactions.aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&active_enemies>=5&talent.shadowboxing_treads\nactions.aoe+=/spinning_crane_kick,if=combo_strike&(active_enemies>=7||active_enemies=6&spinning_crane_kick.modifier>=2.7||active_enemies=5&spinning_crane_kick.modifier>=2.9)\nactions.aoe+=/strike_of_the_windlord\nactions.aoe+=/spinning_crane_kick,if=combo_strike&(active_enemies>=5||active_enemies=4&spinning_crane_kick.modifier>=2.5||!talent.shadowboxing_treads)\nactions.aoe+=/fists_of_fury\nactions.aoe+=/faeline_stomp,if=combo_strike\nactions.aoe+=/blackout_kick,cycle_targets=1,if=combo_strike\nactions.aoe+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.aoe+=/rising_sun_kick,cycle_targets=1\nactions.aoe+=/whirling_dragon_punch\n\n# Bonedust Brew Setup\nactions.bdb_setup+=/bonedust_brew,if=spinning_crane_kick.max&chi>=4\nactions.bdb_setup+=/blackout_kick,cycle_targets=1,if=combo_strike&!talent.whirling_dragon_punch\nactions.bdb_setup+=/rising_sun_kick,cycle_targets=1,if=combo_strike&chi>=5\nactions.bdb_setup+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.max-chi>=2\nactions.bdb_setup+=/rising_sun_kick,cycle_targets=1,if=combo_strike&active_enemies>=2\n\n# Storm, Earth and Fire Cooldowns\nactions.cd_sef+=/call_action_list,name=sef_trinkets\nactions.cd_sef+=/summon_white_tiger_statue,if=pet.xuen_the_white_tiger.active\nactions.cd_sef+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&talent.bonedust_brew&cooldown.bonedust_brew.remains<=5&(active_enemies<3&chi>=3||active_enemies>=3&chi>=2)||fight_remains<25\nactions.cd_sef+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&!talent.bonedust_brew&(cooldown.rising_sun_kick.remains<2)&chi>=3\nactions.cd_sef+=/storm_earth_and_fire,if=talent.bonedust_brew&(fight_remains<30&cooldown.bonedust_brew.remains<4&chi>=4||buff.bonedust_brew.up||!spinning_crane_kick.max&active_enemies>=3&cooldown.bonedust_brew.remains<=2&chi>=2)&(pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>cooldown.storm_earth_and_fire.full_recharge_time)\nactions.cd_sef+=/bonedust_brew,if=(!buff.bonedust_brew.up&buff.storm_earth_and_fire.up&buff.storm_earth_and_fire.remains<11&spinning_crane_kick.max)||(!buff.bonedust_brew.up&fight_remains<30&fight_remains>10&spinning_crane_kick.max&chi>=4)||fight_remains<10\nactions.cd_sef+=/call_action_list,name=bdb_setup,if=!buff.bonedust_brew.up&talent.bonedust_brew&cooldown.bonedust_brew.remains<=2&(fight_remains>60&(cooldown.storm_earth_and_fire.charges>0||cooldown.storm_earth_and_fire.remains>10)&(pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>10||variable.hold_xuen)||((pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>13)&(cooldown.storm_earth_and_fire.charges>0||cooldown.storm_earth_and_fire.remains>13||buff.storm_earth_and_fire.up)))\nactions.cd_sef+=/storm_earth_and_fire,if=boss&fight_remains<20||(cooldown.storm_earth_and_fire.charges=2&cooldown.invoke_xuen_the_white_tiger.remains>cooldown.storm_earth_and_fire.full_recharge_time)&cooldown.fists_of_fury.remains<=9&chi>=2&cooldown.whirling_dragon_punch.remains<=12\nactions.cd_sef+=/touch_of_death,cycle_targets=1,if=!boss&combo_strike&target.health<health\nactions.cd_sef+=/touch_of_death,cycle_targets=1,if=!boss&combo_strike&(target.time_to_die>60||debuff.bonedust_brew_debuff.up||fight_remains<10)\nactions.cd_sef+=/touch_of_death,cycle_targets=1,if=boss&combo_strike\nactions.cd_sef+=/touch_of_karma,cycle_targets=1,if=fight_remains>90||pet.xuen_the_white_tiger.active||variable.hold_xuen||boss&fight_remains<16\nactions.cd_sef+=/touch_of_karma,if=fight_remains>159||variable.hold_xuen\nactions.cd_sef+=/blood_fury,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<20\nactions.cd_sef+=/berserking,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<15\nactions.cd_sef+=/lights_judgment\nactions.cd_sef+=/fireblood,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<10\nactions.cd_sef+=/ancestral_call,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<20\nactions.cd_sef+=/bag_of_tricks,if=buff.storm_earth_and_fire.down\n\n# Serenity Cooldowns\nactions.cd_serenity+=/call_action_list,name=serenity_trinkets\nactions.cd_serenity+=/summon_white_tiger_statue,if=pet.xuen_the_white_tiger.active\nactions.cd_serenity+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&talent.bonedust_brew&cooldown.bonedust_brew.remains<=5||boss&fight_remains<25\nactions.cd_serenity+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&!talent.bonedust_brew&(cooldown.rising_sun_kick.remains<2)||boss&fight_remains<25\nactions.cd_serenity+=/bonedust_brew,if=!buff.bonedust_brew.up&(cooldown.serenity.up||cooldown.serenity.remains>15||fight_remains<30&fight_remains>10)||fight_remains<10\nactions.cd_serenity+=/serenity,if=pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>10||!talent.invoke_xuen_the_white_tiger||fight_remains<15\nactions.cd_serenity+=/touch_of_death,cycle_targets=1,if=!boss&combo_strike&target.health<health\nactions.cd_serenity+=/touch_of_death,cycle_targets=1,if=!boss&combo_strike&(target.time_to_die>60||debuff.bonedust_brew_debuff.up||fight_remains<10)\nactions.cd_serenity+=/touch_of_death,cycle_targets=1,if=boss&combo_strike\nactions.cd_serenity+=/touch_of_karma,if=fight_remains>90||boss&fight_remains<10\nactions.cd_serenity+=/blood_fury,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/berserking,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/lights_judgment\nactions.cd_serenity+=/fireblood,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/ancestral_call,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/bag_of_tricks,if=buff.serenity.up||boss&fight_remains<20\n\n# Fallthru\nactions.fallthru+=/crackling_jade_lightning,if=buff.the_emperors_capacitor.stack>19&energy.time_to_max>execute_time-1&cooldown.rising_sun_kick.remains>execute_time||buff.the_emperors_capacitor.stack>14&(cooldown.serenity.remains<5&talent.serenity||boss&fight_remains<5)\nactions.fallthru+=/faeline_stomp,if=combo_strike\nactions.fallthru+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.max-chi>=(2+buff.power_strikes.up)\nactions.fallthru+=/expel_harm,if=chi.max-chi>=1&active_enemies>2\nactions.fallthru+=/chi_burst,if=chi.max-chi>=1&active_enemies=1&raid_event.adds.in>20||chi.max-chi>=2&active_enemies>=2\nactions.fallthru+=/chi_wave\nactions.fallthru+=/expel_harm,if=chi.max-chi>=1\nactions.fallthru+=/spinning_crane_kick,if=combo_strike&buff.chi_energy.stack>30-5*active_enemies&buff.storm_earth_and_fire.down&(cooldown.rising_sun_kick.remains>2&cooldown.fists_of_fury.remains>2||cooldown.rising_sun_kick.remains<3&cooldown.fists_of_fury.remains>3&chi>3||cooldown.rising_sun_kick.remains>3&cooldown.fists_of_fury.remains<3&chi>4||chi.max-chi<=1&energy.time_to_max<2)||buff.chi_energy.stack>10&fight_remains<7\nactions.fallthru+=/arcane_torrent,if=chi.max-chi>=1\nactions.fallthru+=/flying_serpent_kick,interrupt=1\nactions.fallthru+=/tiger_palm\n\n# Opener\nactions.opener+=/expel_harm,if=talent.chi_burst.enabled&chi.max-chi>=3\nactions.opener+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.max-chi>=(2+buff.power_strikes.up)\nactions.opener+=/chi_wave,if=chi.max-chi=2\nactions.opener+=/expel_harm\nactions.opener+=/tiger_palm,cycle_targets=1,if=chi.max-chi>=(2+buff.power_strikes.up)\n\n# Serenity Priority\nactions.serenity=strike_of_the_windlord,if=active_enemies<3\nactions.serenity+=/fists_of_fury,if=buff.serenity.remains<1\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike&buff.teachings_of_the_monastery.stack=3&buff.teachings_of_the_monastery.remains<1\nactions.serenity+=/fists_of_fury,interrupt_if=buff.serenity.remains>1\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike&active_enemies=3&buff.teachings_of_the_monastery.stack=2\nactions.serenity+=/spinning_crane_kick,if=combo_strike&(active_enemies>3||active_enemies>2&spinning_crane_kick.modifier>=2.3)\nactions.serenity+=/strike_of_the_windlord,if=active_enemies>=3\nactions.serenity+=/spinning_crane_kick,if=combo_strike&active_enemies>1\nactions.serenity+=/whirling_dragon_punch,if=active_enemies>1\nactions.serenity+=/blackout_kick,cycle_targets=1,if=active_enemies>=3&cooldown.fists_of_fury.remains&talent.shadowboxing_treads\nactions.serenity+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up&active_enemies>=3\nactions.serenity+=/rising_sun_kick,cycle_targets=1\nactions.serenity+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike\nactions.serenity+=/whirling_dragon_punch\nactions.serenity+=/tiger_palm,cycle_targets=1,if=talent.teachings_of_the_monastery&buff.teachings_of_the_monastery.stack<3\n\n# ST Priority (<3 Targets)\nactions.st_cleave=blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.st_cleave+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.st_cleave+=/strike_of_the_windlord,if=talent.thunderfist\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=active_enemies=1&buff.kicks_of_flowing_momentum.up||buff.pressure_point.up\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=2&talent.shadowboxing_treads\nactions.st_cleave+=/strike_of_the_windlord\nactions.st_cleave+=/fists_of_fury\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&(talent.shadowboxing_treads&active_enemies>1||cooldown.rising_sun_kick.remains>1)\nactions.st_cleave+=/whirling_dragon_punch,if=active_enemies=2\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=(active_enemies=1||!talent.shadowboxing_treads)&cooldown.fists_of_fury.remains>4&talent.xuens_battlegear\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&active_enemies=2&cooldown.rising_sun_kick.remains&cooldown.fists_of_fury.remains&(!buff.bonedust_brew.up||spinning_crane_kick.modifier<1.5)\nactions.st_cleave+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up&active_enemies=2\nactions.st_cleave+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&(active_enemies>1||spinning_crane_kick.modifier>=2.7)\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1\nactions.st_cleave+=/whirling_dragon_punch\nactions.st_cleave+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike\n\n# SEF Trinkets\nactions.sef_trinkets+=/horn_of_valor,if=pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger&buff.storm_earth_and_fire.up||boss&fight_remains<30\nactions.sef_trinkets+=/manic_grieftorch,if=!pet.xuen_the_white_tiger.active&!buff.storm_earth_and_fire.up||boss&fight_remains<5\nactions.sef_trinkets+=/algethar_puzzle_box,if=(pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger)&!buff.storm_earth_and_fire.up||boss&fight_remains<25\nactions.sef_trinkets+=/use_item,slot=trinket1,if=trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.sef_trinkets+=/use_item,slot=trinket1,if=!trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.sef_trinkets+=/use_item,slot=trinket2,if=trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.sef_trinkets+=/use_item,slot=trinket2,if=!trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\n\n# Serenity Trinkets\nactions.serenity_trinkets+=/horn_of_valor,if=pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger&buff.storm_earth_and_fire.up||boss&fight_remains<30\nactions.serenity_trinkets+=/manic_grieftorch,if=!pet.xuen_the_white_tiger.active&!buff.storm_earth_and_fire.up||boss&fight_remains<5\nactions.serenity_trinkets+=/algethar_puzzle_box,if=(pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger)&!buff.storm_earth_and_fire.up||boss&fight_remains<25\nactions.serenity_trinkets+=/use_item,slot=trinket1,if=trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&buff.serenity.remains>10||boss&fight_remains<30\nactions.serenity_trinkets+=/use_item,slot=trinket1,if=!trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.serenity_trinkets+=/use_item,slot=trinket2,if=trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&buff.serenity.remains>10||boss&fight_remains<30\nactions.serenity_trinkets+=/use_item,slot=trinket2,if=!trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.serenity_trinkets+=/use_items,if=cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger",
["author"] = "SimC",
},
["Brewmaster"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230205,
["author"] = "SimC",
["desc"] = "The SimC Brewmaster priority uses Purifying Brew and Celestial Brew aggressively for DPS. The addon has pared this back to support survivability.",
["lists"] = {
["cooldowns_niuzao_woo"] = {
{
["enabled"] = true,
["criteria"] = "talent.weapons_of_order.enabled",
["action"] = "weapons_of_order",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & debuff.weapons_of_order_debuff.stack = 4",
["action"] = "bonedust_brew",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & ! buff.weapons_of_order.up & cooldown.weapons_of_order.remains > 10",
["action"] = "bonedust_brew",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.bonedust_brew.up",
["action"] = "exploding_keg",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.weapons_of_order.remains <= 16 & talent.weapons_of_order.enabled",
["action"] = "invoke_niuzao_the_black_ox",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! talent.weapons_of_order.enabled",
["action"] = "invoke_niuzao_the_black_ox",
}, -- [6]
},
["cooldowns_improved_niuzao_cta"] = {
{
["enabled"] = true,
["criteria"] = "time - action.purifying_brew.last_used <= 5",
["action"] = "weapons_of_order",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & debuff.weapons_of_order_debuff.stack = 4",
["action"] = "bonedust_brew",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & ! buff.weapons_of_order.up & cooldown.weapons_of_order.remains > 10",
["action"] = "bonedust_brew",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.bonedust_brew.up",
["action"] = "exploding_keg",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.weapons_of_order.remains <= 30 - 17 & action.purifying_brew.last_used > action.weapons_of_order.last_used + 10 + 2 * 0.05",
["action"] = "invoke_niuzao_the_black_ox",
}, -- [5]
},
["rotation_boc_dfb"] = {
{
["action"] = "blackout_kick",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.rising_sun_kick.enabled",
["action"] = "rising_sun_kick",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled & buff.rushing_jade_wind.remains < 1",
["action"] = "rushing_jade_wind",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.blackout_combo.up",
["action"] = "breath_of_fire",
}, -- [4]
{
["action"] = "keg_smash",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65 & talent.black_ox_brew.enabled",
["action"] = "black_ox_brew",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled",
["action"] = "rushing_jade_wind",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "spinning_crane_kick",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "expel_harm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "tiger_palm",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.celestial_brew.enabled & ! buff.blackout_combo.up",
["action"] = "celestial_brew",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.chi_wave.enabled",
["action"] = "chi_wave",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.chi_burst.enabled",
["action"] = "chi_burst",
}, -- [13]
},
["rotation_chp"] = {
{
["enabled"] = true,
["criteria"] = "! buff.charred_passions.up",
["action"] = "breath_of_fire",
}, -- [1]
{
["action"] = "blackout_kick",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.rising_sun_kick.enabled",
["action"] = "rising_sun_kick",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled & buff.rushing_jade_wind.remains < 1",
["action"] = "rushing_jade_wind",
}, -- [4]
{
["action"] = "keg_smash",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65 & talent.black_ox_brew.enabled",
["action"] = "black_ox_brew",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled",
["action"] = "rushing_jade_wind",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "spinning_crane_kick",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "expel_harm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "tiger_palm",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.celestial_brew.enabled & ! buff.blackout_combo.up",
["action"] = "celestial_brew",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.chi_wave.enabled",
["action"] = "chi_wave",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.chi_burst.enabled",
["action"] = "chi_burst",
}, -- [13]
},
["default"] = {
{
["action"] = "spear_hand_strike",
["enabled"] = true,
}, -- [1]
{
["action"] = "diffuse_magic",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "settings.purify_for_celestial & ( time_to_max_charges < gcd.max || buff.purified_chi.up & buff.purified_chi.remains < 1.5 * gcd.max ) || cooldown.celestial_brew.remains < 2 * gcd.max & charges_fractional > 1.5",
["action"] = "purifying_brew",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "tanking & ( ! talent.improved_celestial_brew.enabled || buff.purified_chi.up ) & buff.blackout_combo.down",
["action"] = "celestial_brew",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.improved_invoke_niuzao_the_black_ox.enabled & settings.purify_for_niuzao & pet.niuzao_the_black_ox.active",
["action"] = "purifying_brew",
["line_cd"] = "5",
}, -- [5]
{
["enabled"] = true,
["description"] = "Use configured purify_stagger_currhp from Brewmaster options.",
["criteria"] = "group & buff.blackout_combo.down & settings.purify_stagger_currhp > 0 & stagger.pct >= settings.purify_stagger_currhp",
["action"] = "purifying_brew",
}, -- [6]
{
["enabled"] = true,
["description"] = "Use configured purify_stagger_currhp from Brewmaster options.",
["criteria"] = "solo & buff.blackout_combo.down & settings.purify_stagger_currhp > 0 & stagger.pct >= settings.purify_stagger_currhp * 0.5",
["action"] = "purifying_brew",
}, -- [7]
{
["enabled"] = true,
["description"] = "Use configured purify_stagger_maxhp from Brewmaster options.",
["criteria"] = "group & buff.blackout_combo.down & settings.purify_stagger_maxhp > 0 & stagger.pct >= settings.purify_stagger_maxhp",
["action"] = "purifying_brew",
}, -- [8]
{
["enabled"] = true,
["description"] = "Use configured purify_stagger_maxhp from Brewmaster options.",
["criteria"] = "solo & buff.blackout_combo.down & settings.purify_stagger_maxhp > 0 & stagger.pct >= settings.purify_stagger_maxhp * 0.5",
["action"] = "purifying_brew",
}, -- [9]
{
["enabled"] = true,
["description"] = "Stagger % of 20 will kill you in 2.5 seconds without healing or purifying. Used when purify_stagger_currhp and maxhp are disabled.",
["criteria"] = "group & buff.blackout_combo.down & settings.purify_stagger_currhp = 0 & settings.purify_stagger_maxhp = 0 & stagger.pct > 20",
["action"] = "purifying_brew",
}, -- [10]
{
["enabled"] = true,
["description"] = "Stagger % of 10 will kill you in 5 seconds without healing or purifying. Used when purify_stagger_currhp and maxhp are disabled.",
["criteria"] = "solo & buff.blackout_combo.down & settings.purify_stagger_currhp = 0 & settings.purify_stagger_maxhp = 0 & stagger.pct > 10",
["action"] = "purifying_brew",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "health.pct < 75 & incoming_damage_3s > health.max * ( 0.2 + ( 0.2 * group ) ) & buff.fortifying_brew.down",
["action"] = "dampen_harm",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "health.pct < 50 & incoming_damage_3s > health.max * ( 0.2 + ( 0.2 * group ) ) & ( buff.dampen_harm.down )",
["action"] = "fortifying_brew",
}, -- [13]
{
["action"] = "potion",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.summon_white_tiger_statue.enabled",
["action"] = "summon_white_tiger_statue",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "debuff.weapons_of_order_debuff.stack > 3 || talent.weapons_of_order.enabled || boss & fight_remains < 25",
["action"] = "use_items",
}, -- [16]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [17]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [18]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [19]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [20]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [21]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( talent.invoke_niuzao_the_black_ox.rank + talent.improved_invoke_niuzao_the_black_ox.rank ) = 2 & ( talent.weapons_of_order.rank + talent.call_to_arms.rank ) <= 1",
["list_name"] = "cooldowns_improved_niuzao_woo",
}, -- [23]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( talent.invoke_niuzao_the_black_ox.rank + talent.improved_invoke_niuzao_the_black_ox.rank ) = 2 & ( talent.weapons_of_order.rank + talent.call_to_arms.rank ) = 2",
["list_name"] = "cooldowns_improved_niuzao_cta",
}, -- [24]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( talent.invoke_niuzao_the_black_ox.rank + talent.improved_invoke_niuzao_the_black_ox.rank ) <= 1",
["list_name"] = "cooldowns_niuzao_woo",
}, -- [25]
{
["enabled"] = true,
["op"] = "set",
["description"] = "Rotation Selection",
["value"] = "0",
["var_name"] = "rotation_selection",
["action"] = "variable",
}, -- [26]
{
["enabled"] = true,
["op"] = "set",
["criteria"] = "talent.charred_passions.enabled & talent.salsalabims_strength.enabled",
["value"] = "1",
["var_name"] = "rotation_selection",
["action"] = "variable",
}, -- [27]
{
["enabled"] = true,
["op"] = "set",
["criteria"] = "talent.dragonfire_brew.enabled & talent.salsalabims_strength.enabled",
["value"] = "2",
["var_name"] = "rotation_selection",
["action"] = "variable",
}, -- [28]
{
["enabled"] = true,
["op"] = "set",
["criteria"] = "talent.dragonfire_brew.enabled & talent.salsalabims_strength.enabled & talent.blackout_combo.enabled",
["value"] = "3",
["var_name"] = "rotation_selection",
["action"] = "variable",
}, -- [29]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "4 - variable.rotation_selection",
["var_name"] = "rotation_selection",
}, -- [30]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.rotation_selection = 1",
["list_name"] = "rotation_boc_dfb",
}, -- [31]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.rotation_selection = 2",
["list_name"] = "rotation_dfb",
}, -- [32]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.rotation_selection = 3",
["list_name"] = "rotation_chp",
}, -- [33]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.rotation_selection = 4",
["list_name"] = "rotation_fallback",
}, -- [34]
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.chi_burst.enabled",
["action"] = "chi_burst",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.chi_wave.enabled",
["action"] = "chi_wave",
}, -- [3]
},
["rotation_fallback"] = {
{
["enabled"] = true,
["criteria"] = "talent.rising_sun_kick.enabled",
["action"] = "rising_sun_kick",
}, -- [1]
{
["action"] = "keg_smash",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_fire.enabled",
["action"] = "breath_of_fire",
}, -- [3]
{
["action"] = "blackout_kick",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.remains + execute_time ) >= 65 & talent.black_ox_brew.enabled",
["action"] = "black_ox_brew",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled",
["action"] = "rushing_jade_wind",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "spinning_crane_kick",
}, -- [7]
{
["action"] = "expel_harm",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1",
["action"] = "tiger_palm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.blackout_combo.up & talent.celestial_brew.enabled",
["action"] = "celestial_brew",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.chi_wave.enabled",
["action"] = "chi_wave",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.chi_burst.enabled",
["action"] = "chi_burst",
}, -- [12]
},
["cooldowns_improved_niuzao_woo"] = {
{
["action"] = "weapons_of_order",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & debuff.weapons_of_order_debuff.stack = 4",
["action"] = "bonedust_brew",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! buff.bonedust_brew.up & ! buff.weapons_of_order.up & cooldown.weapons_of_order.remains > 10",
["action"] = "bonedust_brew",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.bonedust_brew.up",
["action"] = "exploding_keg",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "time - action.purifying_brew.last_used <= 5",
["action"] = "invoke_niuzao_the_black_ox",
}, -- [5]
},
["rotation_dfb"] = {
{
["action"] = "blackout_kick",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.rising_sun_kick.enabled",
["action"] = "rising_sun_kick",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled & buff.rushing_jade_wind.remains < 1",
["action"] = "rushing_jade_wind",
}, -- [3]
{
["action"] = "breath_of_fire",
["enabled"] = true,
}, -- [4]
{
["action"] = "keg_smash",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65 & talent.black_ox_brew.enabled",
["action"] = "black_ox_brew",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.rushing_jade_wind.enabled",
["action"] = "rushing_jade_wind",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "spinning_crane_kick",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "expel_harm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & energy + energy.regen * ( cooldown.keg_smash.full_recharge_time * ( 1 - cooldown.keg_smash.charges_fractional ) ) >= 65",
["action"] = "tiger_palm",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.celestial_brew.enabled",
["action"] = "celestial_brew",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.chi_wave.enabled",
["action"] = "chi_wave",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.chi_burst.enabled",
["action"] = "chi_burst",
}, -- [13]
},
},
["version"] = 20230205,
["warnings"] = "The import for 'default' required some automated changes.\nLine 4: Converted 'talent.improved_celestial_brew' to 'talent.improved_celestial_brew.enabled' (1x).\nLine 5: Converted 'talent.improved_invoke_niuzao_the_black_ox' to 'talent.improved_invoke_niuzao_the_black_ox.enabled' (1x).\nLine 16: Converted 'talent.weapons_of_order' to 'talent.weapons_of_order.enabled' (1x).\n\nImported 9 action lists.\n",
["profile"] = "actions.precombat+=/potion\nactions.precombat+=/chi_burst,if=talent.chi_burst.enabled\nactions.precombat+=/chi_wave,if=talent.chi_wave.enabled\n## Blackout Combo\n## actions.precombat+=/variable,name=boc_count,op=set,value=0\n\nactions+=/spear_hand_strike\nactions+=/diffuse_magic\nactions+=/purifying_brew,if=settings.purify_for_celestial&(time_to_max_charges<gcd.max||buff.purified_chi.up&buff.purified_chi.remains<1.5*gcd.max)||cooldown.celestial_brew.remains<2*gcd.max&charges_fractional>1.5\nactions+=/celestial_brew,if=tanking&(!talent.improved_celestial_brew||buff.purified_chi.up)&buff.blackout_combo.down\nactions+=/purifying_brew,line_cd=5,if=talent.improved_invoke_niuzao_the_black_ox&settings.purify_for_niuzao&pet.niuzao_the_black_ox.active\n# Use configured purify_stagger_currhp from Brewmaster options.\nactions+=/purifying_brew,if=group&buff.blackout_combo.down&settings.purify_stagger_currhp>0&stagger.pct>=settings.purify_stagger_currhp\n# Use configured purify_stagger_currhp from Brewmaster options.\nactions+=/purifying_brew,if=solo&buff.blackout_combo.down&settings.purify_stagger_currhp>0&stagger.pct>=settings.purify_stagger_currhp*0.5\n# Use configured purify_stagger_maxhp from Brewmaster options.\nactions+=/purifying_brew,if=group&buff.blackout_combo.down&settings.purify_stagger_maxhp>0&stagger.pct>=settings.purify_stagger_maxhp\n# Use configured purify_stagger_maxhp from Brewmaster options.\nactions+=/purifying_brew,if=solo&buff.blackout_combo.down&settings.purify_stagger_maxhp>0&stagger.pct>=settings.purify_stagger_maxhp*0.5\n# Stagger % of 20 will kill you in 2.5 seconds without healing or purifying. Used when purify_stagger_currhp and maxhp are disabled.\nactions+=/purifying_brew,if=group&buff.blackout_combo.down&settings.purify_stagger_currhp=0&settings.purify_stagger_maxhp=0&stagger.pct>20\n# Stagger % of 10 will kill you in 5 seconds without healing or purifying. Used when purify_stagger_currhp and maxhp are disabled.\nactions+=/purifying_brew,if=solo&buff.blackout_combo.down&settings.purify_stagger_currhp=0&settings.purify_stagger_maxhp=0&stagger.pct>10\nactions+=/dampen_harm,if=health.pct<75&incoming_damage_3s>health.max*(0.2+(0.2*group))&buff.fortifying_brew.down\nactions+=/fortifying_brew,if=health.pct<50&incoming_damage_3s>health.max*(0.2+(0.2*group))&(buff.dampen_harm.down)\nactions+=/potion\nactions+=/summon_white_tiger_statue,if=talent.summon_white_tiger_statue.enabled\nactions+=/use_items,if=debuff.weapons_of_order_debuff.stack>3||talent.weapons_of_order||boss&fight_remains<25\nactions+=/blood_fury\nactions+=/berserking\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/call_action_list,name=cooldowns_improved_niuzao_woo,strict=1,if=(talent.invoke_niuzao_the_black_ox.rank+talent.improved_invoke_niuzao_the_black_ox.rank)=2&(talent.weapons_of_order.rank+talent.call_to_arms.rank)<=1\nactions+=/call_action_list,name=cooldowns_improved_niuzao_cta,strict=1,if=(talent.invoke_niuzao_the_black_ox.rank+talent.improved_invoke_niuzao_the_black_ox.rank)=2&(talent.weapons_of_order.rank+talent.call_to_arms.rank)=2\nactions+=/call_action_list,name=cooldowns_niuzao_woo,strict=1,if=(talent.invoke_niuzao_the_black_ox.rank+talent.improved_invoke_niuzao_the_black_ox.rank)<=1\n# Rotation Selection\nactions+=/variable,op=set,name=rotation_selection,value=0\nactions+=/variable,op=set,name=rotation_selection,value=1,if=talent.charred_passions.enabled&talent.salsalabims_strength.enabled\nactions+=/variable,op=set,name=rotation_selection,value=2,if=talent.dragonfire_brew.enabled&talent.salsalabims_strength.enabled\nactions+=/variable,op=set,name=rotation_selection,value=3,if=talent.dragonfire_brew.enabled&talent.salsalabims_strength.enabled&talent.blackout_combo.enabled\nactions+=/variable,op=set,name=rotation_selection,value=4-variable.rotation_selection\nactions+=/call_action_list,name=rotation_boc_dfb,if=variable.rotation_selection=1\nactions+=/call_action_list,name=rotation_dfb,if=variable.rotation_selection=2\nactions+=/call_action_list,name=rotation_chp,if=variable.rotation_selection=3\nactions+=/call_action_list,name=rotation_fallback,if=variable.rotation_selection=4\n\n## Use <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> when <a href='https://www.wowhead.com/spell=387184/weapons-of-order'>Weapons of Order</a> reaches 4 stacks.\n## actions.cooldowns_niuzao_woo+=/invoke_external_buff,name=power_infusion,if=buff.weapons_of_order.remains<=20\nactions.cooldowns_niuzao_woo+=/weapons_of_order,if=talent.weapons_of_order.enabled\nactions.cooldowns_niuzao_woo+=/bonedust_brew,if=!buff.bonedust_brew.up&debuff.weapons_of_order_debuff.stack=4\nactions.cooldowns_niuzao_woo+=/bonedust_brew,if=!buff.bonedust_brew.up&!buff.weapons_of_order.up&cooldown.weapons_of_order.remains>10\nactions.cooldowns_niuzao_woo+=/exploding_keg,if=buff.bonedust_brew.up\nactions.cooldowns_niuzao_woo+=/invoke_niuzao_the_black_ox,if=buff.weapons_of_order.remains<=16&talent.weapons_of_order.enabled\nactions.cooldowns_niuzao_woo+=/invoke_niuzao_the_black_ox,if=!talent.weapons_of_order.enabled\n## actions.cooldowns_niuzao_woo+=/purifying_brew,if=stagger.amounttototalpct>=0.7&!buff.blackout_combo.up\n## actions.cooldowns_niuzao_woo+=/purifying_brew,if=cooldown.purifying_brew.remains_expected<5&!buff.blackout_combo.up\n\n## Use <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> when <a href='https://www.wowhead.com/spell=387184/weapons-of-order'>Weapons of Order</a> reaches 4 stacks.\n## actions.cooldowns_improved_niuzao_woo+=/invoke_external_buff,name=power_infusion,if=buff.weapons_of_order.remains<=20\n## actions.cooldowns_improved_niuzao_woo+=/variable,name=pb_in_window,op=set,value=floor(cooldown.purifying_brew.charges_fractional+(20+4*0.05)%cooldown.purifying_brew.duration%0.65),if=prev.invoke_niuzao_the_black_ox\n## actions.cooldowns_improved_niuzao_woo+=/variable,name=pb_in_window,op=sub,value=1,if=prev.purifying_brew&time-action.invoke_niuzao_the_black_ox.last_used<=20+4*0.05\n## actions.cooldowns_improved_niuzao_woo+=/purifying_brew,if=(time-action.purifying_brew.last_used>=20+4*0.05-time+action.invoke_niuzao_the_black_ox.last_used%variable.pb_in_window&time-action.invoke_niuzao_the_black_ox.last_used<=20+4*0.05)\n## actions.cooldowns_improved_niuzao_woo+=/purifying_brew,use_off_gcd=1,if=(variable.pb_in_window=0&20+4*0.05-time+action.invoke_niuzao_the_black_ox.last_used<1&20+4*0.05-time+action.invoke_niuzao_the_black_ox.last_used>0)\nactions.cooldowns_improved_niuzao_woo+=/weapons_of_order\nactions.cooldowns_improved_niuzao_woo+=/bonedust_brew,if=!buff.bonedust_brew.up&debuff.weapons_of_order_debuff.stack=4\nactions.cooldowns_improved_niuzao_woo+=/bonedust_brew,if=!buff.bonedust_brew.up&!buff.weapons_of_order.up&cooldown.weapons_of_order.remains>10\nactions.cooldowns_improved_niuzao_woo+=/exploding_keg,if=buff.bonedust_brew.up\n## actions.cooldowns_improved_niuzao_woo+=/purifying_brew,if=cooldown.invoke_niuzao_the_black_ox.remains<=3.5&time-action.purifying_brew.last_used>=3.5+cooldown.invoke_niuzao_the_black_ox.remains\nactions.cooldowns_improved_niuzao_woo+=/invoke_niuzao_the_black_ox,if=time-action.purifying_brew.last_used<=5\n## actions.cooldowns_improved_niuzao_woo+=/purifying_brew,if=cooldown.purifying_brew.full_recharge_time*2<=cooldown.invoke_niuzao_the_black_ox.remains-3.5\n\n## Use <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> when <a href='https://www.wowhead.com/spell=387184/weapons-of-order'>Weapons of Order</a> reaches 4 stacks.\n## actions.cooldowns_improved_niuzao_cta+=/invoke_external_buff,name=power_infusion,if=buff.weapons_of_order.remains<=20\n## actions.cooldowns_improved_niuzao_cta+=/variable,name=pb_in_window,op=set,value=floor(cooldown.purifying_brew.charges_fractional+(10+2*0.05)%cooldown.purifying_brew.duration%0.65),if=prev.weapons_of_order\n## actions.cooldowns_improved_niuzao_cta+=/variable,name=pb_in_window,op=set,value=floor(cooldown.purifying_brew.charges_fractional+(20+4*0.05)%cooldown.purifying_brew.duration%0.65),if=prev.invoke_niuzao_the_black_ox\n## actions.cooldowns_improved_niuzao_cta+=/variable,name=pb_in_window,op=sub,value=1,if=prev.purifying_brew&(time-action.weapons_of_order.last_used<=10+2*0.05||time-action.invoke_niuzao_the_black_ox.last_used<=20+4*0.05)\n## actions.cooldowns_improved_niuzao_cta+=/purifying_brew,if=(time-action.purifying_brew.last_used>=10+2*0.05-time+action.weapons_of_order.last_used%variable.pb_in_window&time-action.weapons_of_order.last_used<=10+2*0.05)\n## actions.cooldowns_improved_niuzao_cta+=/purifying_brew,if=(time-action.purifying_brew.last_used>=20+4*0.05-time+action.invoke_niuzao_the_black_ox.last_used%variable.pb_in_window&time-action.invoke_niuzao_the_black_ox.last_used<=20+4*0.05)\n## actions.cooldowns_improved_niuzao_cta+=/purifying_brew,use_off_gcd=1,if=(variable.pb_in_window=0&20+4*0.05-time+action.invoke_niuzao_the_black_ox.last_used<1&20+4*0.05-time+action.invoke_niuzao_the_black_ox.last_used>0)\n## actions.cooldowns_improved_niuzao_cta+=/purifying_brew,if=cooldown.weapons_of_order.remains<=3.5&time-action.purifying_brew.last_used>=3.5+cooldown.weapons_of_order.remains\nactions.cooldowns_improved_niuzao_cta+=/weapons_of_order,if=time-action.purifying_brew.last_used<=5\nactions.cooldowns_improved_niuzao_cta+=/bonedust_brew,if=!buff.bonedust_brew.up&debuff.weapons_of_order_debuff.stack=4\nactions.cooldowns_improved_niuzao_cta+=/bonedust_brew,if=!buff.bonedust_brew.up&!buff.weapons_of_order.up&cooldown.weapons_of_order.remains>10\nactions.cooldowns_improved_niuzao_cta+=/exploding_keg,if=buff.bonedust_brew.up\n## actions.cooldowns_improved_niuzao_cta+=/purifying_brew,if=cooldown.invoke_niuzao_the_black_ox.remains<=3.5&time-action.purifying_brew.last_used>=3.5+cooldown.invoke_niuzao_the_black_ox.remains&buff.weapons_of_order.remains<=30-17\nactions.cooldowns_improved_niuzao_cta+=/invoke_niuzao_the_black_ox,if=buff.weapons_of_order.remains<=30-17&action.purifying_brew.last_used>action.weapons_of_order.last_used+10+2*0.05\n## actions.cooldowns_improved_niuzao_cta+=/purifying_brew,if=cooldown.purifying_brew.full_recharge_time*2<=cooldown.weapons_of_order.remains-3.5&cooldown.purifying_brew.full_recharge_time*2<=cooldown.invoke_niuzao_the_black_ox.remains-3.5\n\nactions.rotation_boc_dfb+=/blackout_kick\nactions.rotation_boc_dfb+=/rising_sun_kick,if=talent.rising_sun_kick.enabled\nactions.rotation_boc_dfb+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled&buff.rushing_jade_wind.remains<1\nactions.rotation_boc_dfb+=/breath_of_fire,if=buff.blackout_combo.up\nactions.rotation_boc_dfb+=/keg_smash\nactions.rotation_boc_dfb+=/black_ox_brew,if=energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65&talent.black_ox_brew.enabled\nactions.rotation_boc_dfb+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled\nactions.rotation_boc_dfb+=/spinning_crane_kick,if=active_enemies>1&energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_boc_dfb+=/expel_harm,if=energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_boc_dfb+=/tiger_palm,if=active_enemies=1&energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_boc_dfb+=/celestial_brew,if=talent.celestial_brew.enabled&!buff.blackout_combo.up\nactions.rotation_boc_dfb+=/chi_wave,if=talent.chi_wave.enabled\nactions.rotation_boc_dfb+=/chi_burst,if=talent.chi_burst.enabled\n\nactions.rotation_dfb+=/blackout_kick\nactions.rotation_dfb+=/rising_sun_kick,if=talent.rising_sun_kick.enabled\nactions.rotation_dfb+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled&buff.rushing_jade_wind.remains<1\nactions.rotation_dfb+=/breath_of_fire\nactions.rotation_dfb+=/keg_smash\nactions.rotation_dfb+=/black_ox_brew,if=energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65&talent.black_ox_brew.enabled\nactions.rotation_dfb+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled\nactions.rotation_dfb+=/spinning_crane_kick,if=active_enemies>1&energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_dfb+=/expel_harm,if=energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_dfb+=/tiger_palm,if=active_enemies=1&energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_dfb+=/celestial_brew,if=talent.celestial_brew.enabled\nactions.rotation_dfb+=/chi_wave,if=talent.chi_wave.enabled\nactions.rotation_dfb+=/chi_burst,if=talent.chi_burst.enabled\n\nactions.rotation_chp+=/breath_of_fire,if=!buff.charred_passions.up\nactions.rotation_chp+=/blackout_kick\nactions.rotation_chp+=/rising_sun_kick,if=talent.rising_sun_kick.enabled\nactions.rotation_chp+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled&buff.rushing_jade_wind.remains<1\nactions.rotation_chp+=/keg_smash\nactions.rotation_chp+=/black_ox_brew,if=energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65&talent.black_ox_brew.enabled\nactions.rotation_chp+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled\nactions.rotation_chp+=/spinning_crane_kick,if=active_enemies>1&energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_chp+=/expel_harm,if=energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_chp+=/tiger_palm,if=active_enemies=1&energy+energy.regen*(cooldown.keg_smash.full_recharge_time*(1-cooldown.keg_smash.charges_fractional))>=65\nactions.rotation_chp+=/celestial_brew,if=talent.celestial_brew.enabled&!buff.blackout_combo.up\nactions.rotation_chp+=/chi_wave,if=talent.chi_wave.enabled\nactions.rotation_chp+=/chi_burst,if=talent.chi_burst.enabled\n\nactions.rotation_fallback+=/rising_sun_kick,if=talent.rising_sun_kick.enabled\nactions.rotation_fallback+=/keg_smash\nactions.rotation_fallback+=/breath_of_fire,if=talent.breath_of_fire.enabled\nactions.rotation_fallback+=/blackout_kick\nactions.rotation_fallback+=/black_ox_brew,if=energy+energy.regen*(cooldown.keg_smash.remains+execute_time)>=65&talent.black_ox_brew.enabled\nactions.rotation_fallback+=/rushing_jade_wind,if=talent.rushing_jade_wind.enabled\nactions.rotation_fallback+=/spinning_crane_kick,if=active_enemies>1\nactions.rotation_fallback+=/expel_harm\nactions.rotation_fallback+=/tiger_palm,if=active_enemies=1\nactions.rotation_fallback+=/celestial_brew,if=!buff.blackout_combo.up&talent.celestial_brew.enabled\nactions.rotation_fallback+=/chi_wave,if=talent.chi_wave.enabled\nactions.rotation_fallback+=/chi_burst,if=talent.chi_burst.enabled",
["spec"] = 268,
},
["Mistweaver"] = {
["profile"] = "actions.precombat+=/potion\nactions.precombat+=/chi_burst\nactions.precombat+=/chi_wave\n\nactions+=/spear_hand_strike\nactions+=/use_items\nactions+=/blood_fury\nactions+=/berserking\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/potion\nactions+=/faeline_stomp\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>=3\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<3\n\nactions.st+=/thunder_focus_tea\nactions.st+=/rising_sun_kick\nactions.st+=/blackout_kick,if=!talent.teachings_of_the_monastery||buff.teachings_of_the_monastery.up&cooldown.rising_sun_kick.remains>gcd.max\nactions.st+=/chi_wave\nactions.st+=/chi_burst\nactions.st+=/tiger_palm,if=!talent.teachings_of_the_monastery||buff.teachings_of_the_monastery.stack<3||buff.teachings_of_the_monastery.remains<2\n\nactions.aoe+=/thunder_focus_tea,if=active_enemies<=3\nactions.aoe+=/rising_sun_kick,if=active_enemies<=3\nactions.aoe+=/blackout_kick,if=!talent.teachings_of_the_monastery||buff.teachings_of_the_monastery.up&active_enemies<=3\nactions.aoe+=/chi_wave\nactions.aoe+=/chi_burst\nactions.aoe+=/spinning_crane_kick",
["warnings"] = "The import for 'aoe' required some automated changes.\nLine 3: Converted 'talent.teachings_of_the_monastery' to 'talent.teachings_of_the_monastery.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 3: Converted 'talent.teachings_of_the_monastery' to 'talent.teachings_of_the_monastery.enabled' (1x).\nLine 6: Converted 'talent.teachings_of_the_monastery' to 'talent.teachings_of_the_monastery.enabled' (1x).\n\nImported 4 action lists.\n",
["version"] = 20230209,
["builtIn"] = true,
["date"] = 20230209,
["spec"] = 270,
["author"] = "Aikanaka",
["lists"] = {
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies <= 3",
["action"] = "thunder_focus_tea",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies <= 3",
["action"] = "rising_sun_kick",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.teachings_of_the_monastery.enabled || buff.teachings_of_the_monastery.up & active_enemies <= 3",
["action"] = "blackout_kick",
}, -- [3]
{
["action"] = "chi_wave",
["enabled"] = true,
}, -- [4]
{
["action"] = "chi_burst",
["enabled"] = true,
}, -- [5]
{
["action"] = "spinning_crane_kick",
["enabled"] = true,
}, -- [6]
},
["default"] = {
{
["action"] = "spear_hand_strike",
["enabled"] = true,
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [3]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [6]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [7]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [8]
{
["action"] = "potion",
["enabled"] = true,
}, -- [9]
{
["action"] = "faeline_stomp",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 3",
["list_name"] = "aoe",
}, -- [11]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3",
["list_name"] = "st",
}, -- [12]
},
["st"] = {
{
["action"] = "thunder_focus_tea",
["enabled"] = true,
}, -- [1]
{
["action"] = "rising_sun_kick",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.teachings_of_the_monastery.enabled || buff.teachings_of_the_monastery.up & cooldown.rising_sun_kick.remains > gcd.max",
["action"] = "blackout_kick",
}, -- [3]
{
["action"] = "chi_wave",
["enabled"] = true,
}, -- [4]
{
["action"] = "chi_burst",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! talent.teachings_of_the_monastery.enabled || buff.teachings_of_the_monastery.stack < 3 || buff.teachings_of_the_monastery.remains < 2",
["action"] = "tiger_palm",
}, -- [6]
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "chi_burst",
["enabled"] = true,
}, -- [2]
{
["action"] = "chi_wave",
["enabled"] = true,
}, -- [3]
},
},
},
},
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["forceReloadClassDefaultOptions_20220306_269"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["forceReloadClassDefaultOptions_20220306_268"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["forceSpellFlashBrightness_20221030"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["resetRogueMfDOption_20200226"] = true,
["forceReloadClassDefaultOptions_20220306_270"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
},
["Quilkin - Thunderhorn"] = {
["runOnce"] = {
["resetRogueMfDOption_20200226"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[260] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["mfd_waste"] = true,
},
["damagePets"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["package"] = "Outlaw",
["custom1Name"] = "Custom 1",
["damage"] = true,
["potionsReset"] = 20180919.1,
["buffPadding"] = 0,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplateRange"] = 8,
["nameplates"] = true,
["damageExpiration"] = 6,
["debuffPadding"] = 0,
["damageRange"] = 0,
},
[261] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["mfd_waste"] = true,
},
["damagePets"] = false,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["package"] = "Subtlety",
["custom1Name"] = "Custom 1",
["damage"] = true,
["potionsReset"] = 20180919.1,
["buffPadding"] = 0,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplateRange"] = 8,
["nameplates"] = true,
["damageExpiration"] = 6,
["debuffPadding"] = 0,
["damageRange"] = 0,
},
[259] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["mfd_waste"] = true,
["priority_rotation"] = false,
["envenom_pool_pct"] = 50,
},
["damagePets"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["package"] = "Assassination",
["custom1Name"] = "Custom 1",
["damage"] = true,
["potionsReset"] = 20180919.1,
["buffPadding"] = 0,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplateRange"] = 8,
["nameplates"] = true,
["damageExpiration"] = 6,
["debuffPadding"] = 0,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Outlaw"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20201014,
["spec"] = 260,
["desc"] = "# Outlaw Rogue\n# October 14, 2020",
["profile"] = "# Outlaw Rogue\n# October 14, 2020\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat=apply_poison\nactions.precombat+=/marked_for_death,precombat_seconds=5,if=raid_event.adds.in>40\nactions.precombat+=/stealth,if=(!equipped.pocketsized_computation_device||!cooldown.cyclotronic_blast.duration||raid_event.invulnerable.exists)\nactions.precombat+=/roll_the_bones,precombat_seconds=2,if=refreshable\nactions.precombat+=/slice_and_dice,precombat_seconds=2,if=refreshable\nactions.precombat+=/adrenaline_rush,precombat_seconds=1,if=(!equipped.pocketsized_computation_device||!cooldown.cyclotronic_blast.duration||raid_event.invulnerable.exists)\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists\n\n# Executed every time the actor is available.\nactions=kick\n# Restealth if possible (no vulnerable enemies in combat)\nactions+=/stealth\n# Currently not worth rerolling in SL in any known situation\nactions+=/variable,name=rtb_reroll,value=0\nactions+=/variable,name=ambush_condition,value=combo_points.deficit>=2+2*(talent.ghostly_strike.enabled&cooldown.ghostly_strike.remains<1)+buff.broadside.up&energy>60&!buff.skull_and_crossbones.up&!buff.keep_your_wits_about_you.up\n# With multiple targets, this variable is checked to decide whether some CDs should be synced with Blade Flurry\nactions+=/variable,name=blade_flurry_sync,value=spell_targets.blade_flurry<2&raid_event.adds.in>20||buff.blade_flurry.up\nactions+=/call_action_list,name=stealth,if=stealthed.all\nactions+=/call_action_list,name=cds\n# Finish at maximum CP. Substract one for each Broadside and Opportunity when Quick Draw is selected and MfD is not ready after the next second. Always max BtE with 2+ Ace.\nactions+=/run_action_list,name=finish,if=combo_points>=cp_max_spend-(buff.broadside.up+buff.opportunity.up)*(talent.quick_draw.enabled&(!talent.marked_for_death.enabled||cooldown.marked_for_death.remains>1))*(azerite.ace_up_your_sleeve.rank<2||!cooldown.between_the_eyes.up)||combo_points=animacharged_cp\nactions+=/call_action_list,name=build\nactions+=/arcane_torrent,if=energy.deficit>=15+energy.regen\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# Builders\nactions.build=echoing_reprimand\nactions.build+=/serrated_bone_spike,cycle_targets=1,if=!dot.serrated_bone_spike.ticking||active_enemies=1&raid_event.adds.in>full_recharge_time||charges>2&fight_remains<5\n# Use Pistol Shot if it won't cap combo points and the Opportunity buff is up. Avoid using when Keep Your Wits stacks are high or when using Weaponmaster, unless the Deadshot buff is up.\nactions.build+=/pistol_shot,if=(talent.quick_draw.enabled||azerite.keep_your_wits_about_you.rank<2)&buff.opportunity.up&(buff.keep_your_wits_about_you.stack<14||energy<45)\nactions.build+=/pistol_shot,if=buff.opportunity.up&(buff.deadshot.up||buff.greenskins_wickers.up||buff.concealed_blunderbuss.up)\nactions.build+=/sinister_strike\n\n# Cooldowns\nactions.cds=call_action_list,name=essences,if=!stealthed.all\nactions.cds+=/flagellation\nactions.cds+=/flagellation_cleanse,if=debuff.flagellation.remains<2||debuff.flagellation.stack>=40\nactions.cds+=/adrenaline_rush,if=!buff.adrenaline_rush.up&(!equipped.azsharas_font_of_power||cooldown.latent_arcana.remains>20)\nactions.cds+=/pool_resource,for_next=1\nactions.cds+=/roll_the_bones,if=buff.roll_the_bones.remains<=3||variable.rtb_reroll\n# If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.\nactions.cds+=/marked_for_death,cycle_targets=1,if=raid_event.adds.up&(fight_remains<combo_points.deficit||!stealthed.rogue&combo_points.deficit>=cp_max_spend-1)\n# If no adds will die within the next 30s, use MfD on boss without any CP.\nactions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&!stealthed.rogue&combo_points.deficit>=cp_max_spend-1\n# Blade Flurry on 2+ enemies. With adds: Use if they stay for 8+ seconds or if your next charge will be ready in time for the next wave.\nactions.cds+=/blade_flurry,if=spell_targets>=2&!buff.blade_flurry.up&(!raid_event.adds.exists||raid_event.adds.remains>8||raid_event.adds.in>(2-cooldown.blade_flurry.charges_fractional)*25)\n# Blade Flurry on 1T if your next charge will be ready in time for the next wave.\nactions.cds+=/blade_flurry,if=spell_targets=1&level>=52&raid_event.adds.in>(2-cooldown.blade_flurry.charges_fractional)*25\nactions.cds+=/ghostly_strike,if=combo_points.deficit>=1+buff.broadside.up\nactions.cds+=/killing_spree,if=variable.blade_flurry_sync&spell_targets.blade_flurry>1&energy.time_to_max>2\nactions.cds+=/blade_rush,if=variable.blade_flurry_sync&energy.time_to_max>2\n# Using Vanish/Ambush is only a very tiny increase, so in reality, you're absolutely fine to use it as a utility spell.\nactions.cds+=/vanish,if=!stealthed.all&variable.ambush_condition\nactions.cds+=/dreadblades,if=!stealthed.all&combo_points<=1\nactions.cds+=/shadowmeld,if=!stealthed.all&variable.ambush_condition\nactions.cds+=/sepsis,if=!stealthed.all\nactions.cds+=/potion,if=buff.bloodlust.react||buff.adrenaline_rush.up\nactions.cds+=/blood_fury\nactions.cds+=/berserking\nactions.cds+=/fireblood\nactions.cds+=/ancestral_call\nactions.cds+=/use_item,effect_name=cyclotronic_blast,if=!stealthed.all&buff.adrenaline_rush.down&buff.memory_of_lucid_dreams.down&energy.time_to_max>4&rtb_buffs<5\nactions.cds+=/use_item,name=azsharas_font_of_power,if=!buff.adrenaline_rush.up&!buff.blade_flurry.up&cooldown.adrenaline_rush.remains<15\n# Very roughly rule of thumbified maths below: Use for Inkpod crit, otherwise with AR at 20+ stacks or 10+ with also Blood up.\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.down||debuff.conductive_ink_debuff.up&target.health.pct<32&target.health.pct>=30||!debuff.conductive_ink_debuff.up&(debuff.razor_coral_debuff.stack>=20-10*debuff.blood_of_the_enemy.up||fight_remains<60)&buff.adrenaline_rush.remains>18\n# Default fallback for usable items.\nactions.cds+=/use_items,if=buff.bloodlust.react||fight_remains<=20||combo_points.deficit<=2\n\n# Essences\nactions.essences=concentrated_flame,if=energy.time_to_max>1&!buff.blade_flurry.up&(!dot.concentrated_flame_burn.ticking&!action.concentrated_flame.in_flight||full_recharge_time<gcd.max)\nactions.essences+=/blood_of_the_enemy,if=variable.blade_flurry_sync&cooldown.between_the_eyes.up&(spell_targets.blade_flurry>=2||raid_event.adds.in>45)\nactions.essences+=/guardian_of_azeroth\nactions.essences+=/focused_azerite_beam,if=spell_targets.blade_flurry>=2||raid_event.adds.in>60&!buff.adrenaline_rush.up\nactions.essences+=/purifying_blast,if=spell_targets.blade_flurry>=2||raid_event.adds.in>60\nactions.essences+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.essences+=/ripple_in_space\nactions.essences+=/worldvein_resonance\nactions.essences+=/memory_of_lucid_dreams,if=energy<45\n# Hold Reaping Flames for execute range or kill buffs, if possible. Always try to get the lowest cooldown based on available enemies.\nactions.essences+=/reaping_flames,cycle_targets=1,if=target.time_to_die<1.5||((target.health.pct>80||target.health.pct<=20)&(active_enemies=1||variable.reaping_delay>29))||(target.time_to_pct_20>30&(active_enemies=1||variable.reaping_delay>44))\n\n# Finishers\n# BtE on cooldown to keep the Crit debuff up\nactions.finish=between_the_eyes\nactions.finish+=/slice_and_dice,if=buff.slice_and_dice.remains<fight_remains&buff.slice_and_dice.remains<(1+combo_points)*1.8\nactions.finish+=/dispatch\n\n# Stealth\nactions.stealth=cheap_shot,cycle_targets=1,if=talent.prey_on_the_weak.enabled&!target.is_boss\nactions.stealth+=/ambush",
["version"] = 20201014,
["warnings"] = "Imported 7 action lists.\n",
["author"] = "SimC",
["lists"] = {
["essences"] = {
{
["enabled"] = true,
["criteria"] = "energy.time_to_max > 1 & ! buff.blade_flurry.up & ( ! dot.concentrated_flame_burn.ticking & ! action.concentrated_flame.in_flight || full_recharge_time < gcd.max )",
["action"] = "concentrated_flame",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.blade_flurry_sync & cooldown.between_the_eyes.up & ( spell_targets.blade_flurry >= 2 || raid_event.adds.in > 45 )",
["action"] = "blood_of_the_enemy",
}, -- [2]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "spell_targets.blade_flurry >= 2 || raid_event.adds.in > 60 & ! buff.adrenaline_rush.up",
["action"] = "focused_azerite_beam",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.blade_flurry >= 2 || raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [6]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [7]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "energy < 45",
["action"] = "memory_of_lucid_dreams",
}, -- [9]
{
["enabled"] = true,
["action"] = "reaping_flames",
["criteria"] = "target.time_to_die < 1.5 || ( ( target.health.pct > 80 || target.health.pct <= 20 ) & ( active_enemies = 1 || variable.reaping_delay > 29 ) ) || ( target.time_to_pct_20 > 30 & ( active_enemies = 1 || variable.reaping_delay > 44 ) )",
["cycle_targets"] = 1,
}, -- [10]
},
["default"] = {
{
["action"] = "kick",
["enabled"] = true,
}, -- [1]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "rtb_reroll",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points.deficit >= 2 + 2 * ( talent.ghostly_strike.enabled & cooldown.ghostly_strike.remains < 1 ) + buff.broadside.up & energy > 60 & ! buff.skull_and_crossbones.up & ! buff.keep_your_wits_about_you.up",
["var_name"] = "ambush_condition",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.blade_flurry < 2 & raid_event.adds.in > 20 || buff.blade_flurry.up",
["var_name"] = "blade_flurry_sync",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "stealthed.all",
["action"] = "call_action_list",
["list_name"] = "stealth",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "combo_points >= cp_max_spend - ( buff.broadside.up + buff.opportunity.up ) * ( talent.quick_draw.enabled & ( ! talent.marked_for_death.enabled || cooldown.marked_for_death.remains > 1 ) ) * ( azerite.ace_up_your_sleeve.rank < 2 || ! cooldown.between_the_eyes.up ) || combo_points = animacharged_cp",
["action"] = "run_action_list",
["list_name"] = "finish",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "build",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 15 + energy.regen",
["action"] = "arcane_torrent",
}, -- [10]
{
["action"] = "arcane_pulse",
["enabled"] = true,
}, -- [11]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [12]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [13]
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.in > 40",
["precombat_seconds"] = "5",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( ! equipped.pocketsized_computation_device || ! cooldown.cyclotronic_blast.duration || raid_event.invulnerable.exists )",
["action"] = "stealth",
}, -- [3]
{
["enabled"] = true,
["action"] = "roll_the_bones",
["criteria"] = "refreshable",
["precombat_seconds"] = "2",
}, -- [4]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["criteria"] = "refreshable",
["precombat_seconds"] = "2",
}, -- [5]
{
["enabled"] = true,
["action"] = "adrenaline_rush",
["criteria"] = "( ! equipped.pocketsized_computation_device || ! cooldown.cyclotronic_blast.duration || raid_event.invulnerable.exists )",
["precombat_seconds"] = "1",
}, -- [6]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [7]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "! raid_event.invulnerable.exists",
["effect_name"] = "cyclotronic_blast",
}, -- [8]
},
["finish"] = {
{
["action"] = "between_the_eyes",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.slice_and_dice.remains < fight_remains & buff.slice_and_dice.remains < ( 1 + combo_points ) * 1.8",
["action"] = "slice_and_dice",
}, -- [2]
{
["action"] = "dispatch",
["enabled"] = true,
}, -- [3]
},
["stealth"] = {
{
["enabled"] = true,
["action"] = "cheap_shot",
["criteria"] = "talent.prey_on_the_weak.enabled & ! target.is_boss",
["cycle_targets"] = 1,
}, -- [1]
{
["action"] = "ambush",
["enabled"] = true,
}, -- [2]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "! stealthed.all",
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [1]
{
["action"] = "flagellation",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "debuff.flagellation.remains < 2 || debuff.flagellation.stack >= 40",
["action"] = "flagellation_cleanse",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.adrenaline_rush.up & ( ! equipped.azsharas_font_of_power || cooldown.latent_arcana.remains > 20 )",
["action"] = "adrenaline_rush",
}, -- [4]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.roll_the_bones.remains <= 3 || variable.rtb_reroll",
["action"] = "roll_the_bones",
}, -- [6]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.up & ( fight_remains < combo_points.deficit || ! stealthed.rogue & combo_points.deficit >= cp_max_spend - 1 )",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 30 - raid_event.adds.duration & ! stealthed.rogue & combo_points.deficit >= cp_max_spend - 1",
["action"] = "marked_for_death",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets >= 2 & ! buff.blade_flurry.up & ( ! raid_event.adds.exists || raid_event.adds.remains > 8 || raid_event.adds.in > ( 2 - cooldown.blade_flurry.charges_fractional ) * 25 )",
["action"] = "blade_flurry",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "spell_targets = 1 & level >= 52 & raid_event.adds.in > ( 2 - cooldown.blade_flurry.charges_fractional ) * 25",
["action"] = "blade_flurry",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "combo_points.deficit >= 1 + buff.broadside.up",
["action"] = "ghostly_strike",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "variable.blade_flurry_sync & spell_targets.blade_flurry > 1 & energy.time_to_max > 2",
["action"] = "killing_spree",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "variable.blade_flurry_sync & energy.time_to_max > 2",
["action"] = "blade_rush",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & variable.ambush_condition",
["action"] = "vanish",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & combo_points <= 1",
["action"] = "dreadblades",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & variable.ambush_condition",
["action"] = "shadowmeld",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! stealthed.all",
["action"] = "sepsis",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || buff.adrenaline_rush.up",
["action"] = "potion",
}, -- [18]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [19]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [20]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [21]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "! stealthed.all & buff.adrenaline_rush.down & buff.memory_of_lucid_dreams.down & energy.time_to_max > 4 & rtb_buffs < 5",
["effect_name"] = "cyclotronic_blast",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "! buff.adrenaline_rush.up & ! buff.blade_flurry.up & cooldown.adrenaline_rush.remains < 15",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.down || debuff.conductive_ink_debuff.up & target.health.pct < 32 & target.health.pct >= 30 || ! debuff.conductive_ink_debuff.up & ( debuff.razor_coral_debuff.stack >= 20 - 10 * debuff.blood_of_the_enemy.up || fight_remains < 60 ) & buff.adrenaline_rush.remains > 18",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || fight_remains <= 20 || combo_points.deficit <= 2",
["action"] = "use_items",
}, -- [26]
},
["build"] = {
{
["action"] = "echoing_reprimand",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["criteria"] = "! dot.serrated_bone_spike.ticking || active_enemies = 1 & raid_event.adds.in > full_recharge_time || charges > 2 & fight_remains < 5",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( talent.quick_draw.enabled || azerite.keep_your_wits_about_you.rank < 2 ) & buff.opportunity.up & ( buff.keep_your_wits_about_you.stack < 14 || energy < 45 )",
["action"] = "pistol_shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.opportunity.up & ( buff.deadshot.up || buff.greenskins_wickers.up || buff.concealed_blunderbuss.up )",
["action"] = "pistol_shot",
}, -- [4]
{
["action"] = "sinister_strike",
["enabled"] = true,
}, -- [5]
},
},
},
["Subtlety"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20201015,
["author"] = "SimC",
["desc"] = "# Subtlety Rogue\n# October 15, 2020",
["lists"] = {
["stealthed"] = {
{
["enabled"] = true,
["criteria"] = "( buff.stealth.up || buff.vanish.up )",
["action"] = "shadowstrike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.shuriken_tornado.up & combo_points.deficit <= 2",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "spell_targets.shuriken_storm = 4 & combo_points >= 4",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "combo_points.deficit <= 1 - ( talent.deeper_stratagem.enabled & buff.vanish.up )",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "level < 52 & debuff.find_weakness.remains < 1 & target.time_to_die - remains > 6",
["action"] = "shadowstrike",
}, -- [5]
{
["enabled"] = true,
["action"] = "shadowstrike",
["criteria"] = "debuff.find_weakness.remains < 1 & spell_targets.shuriken_storm <= 3 & target.time_to_die - remains > 6",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.deeper_stratagem.enabled & azerite.blade_in_the_shadows.rank = 3 & spell_targets.shuriken_storm = 3",
["action"] = "shadowstrike",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.use_priority_rotation & ( debuff.find_weakness.remains < 1 || talent.weaponmaster.enabled & spell_targets.shuriken_storm <= 4 || azerite.inevitability.enabled & buff.symbols_of_death.up & spell_targets.shuriken_storm <= 3 + azerite.blade_in_the_shadows.enabled )",
["action"] = "shadowstrike",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets >= 3 + ( buff.premeditation.up || buff.the_rotten.up || runeforge.akaaris_soul_fragment.equipped & conduit.deeper_daggers.rank >= 7 )",
["action"] = "shuriken_storm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "debuff.find_weakness.remains <= 1 || cooldown.symbols_of_death.remains < 18 & debuff.find_weakness.remains < cooldown.symbols_of_death.remains",
["action"] = "shadowstrike",
}, -- [10]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! runeforge.akaaris_soul_fragment.equipped & buff.perforated_veins.stack >= 3 & conduit.perforated_veins.rank >= 13 - ( 9 * conduit.deeper_dagger.enabled + conduit.deeper_dagger.rank )",
["action"] = "gloomblade",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "runeforge.akaaris_soul_fragment.equipped & buff.perforated_veins.stack >= 3 & ( conduit.perforated_veins.rank + conduit.deeper_dagger.rank ) >= 16",
["action"] = "gloomblade",
}, -- [13]
{
["action"] = "shadowstrike",
["enabled"] = true,
}, -- [14]
},
["essences"] = {
{
["enabled"] = true,
["criteria"] = "energy.time_to_max > 1 & ! buff.symbols_of_death.up & ( ! dot.concentrated_flame_burn.ticking & ! action.concentrated_flame.in_flight || full_recharge_time < gcd.max )",
["action"] = "concentrated_flame",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! cooldown.shadow_blades.up & cooldown.symbols_of_death.up || fight_remains <= 10",
["action"] = "blood_of_the_enemy",
}, -- [2]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( spell_targets.shuriken_storm >= 2 || raid_event.adds.in > 60 ) & ! cooldown.symbols_of_death.up & ! buff.symbols_of_death.up & energy.deficit >= 30",
["action"] = "focused_azerite_beam",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.shuriken_storm >= 2 || raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [6]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "cooldown.symbols_of_death.remains < 5 || fight_remains < 18",
["action"] = "worldvein_resonance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "energy < 40 & buff.symbols_of_death.up",
["action"] = "memory_of_lucid_dreams",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "fight_remains < 1.5 || ( ( target.health.pct > 80 || target.health.pct <= 20 ) & ( active_enemies = 1 || fight_remains > 29 ) ) || ( target.time_to_pct_20 > 30 & ( active_enemies = 1 || fight_remains > 44 ) )",
["action"] = "reaping_flames",
}, -- [10]
},
["default"] = {
{
["action"] = "kick",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.slice_and_dice.up || spell_targets.shuriken_storm >= 6",
["var_name"] = "snd_condition",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "stealthed.all",
["action"] = "run_action_list",
["list_name"] = "stealthed",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.shuriken_storm < 6 & fight_remains > 6 & buff.slice_and_dice.remains < gcd.max & combo_points >= 4 - ( time < 10 ) * 2",
["action"] = "slice_and_dice",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "priority_rotation & spell_targets.shuriken_storm >= 2",
["var_name"] = "use_priority_rotation",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.use_priority_rotation",
["action"] = "call_action_list",
["list_name"] = "stealth_cds",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "25 + talent.vigor.enabled * 20 + talent.master_of_shadows.enabled * 20 + talent.shadow_focus.enabled * 25 + talent.alacrity.enabled * 20 + 25 * ( spell_targets.shuriken_storm >= 4 )",
["var_name"] = "stealth_threshold",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "energy.deficit <= variable.stealth_threshold",
["action"] = "call_action_list",
["list_name"] = "stealth_cds",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "azerite.nights_vengeance.enabled & ! buff.nights_vengeance.up & combo_points.deficit > 1 & ( spell_targets.shuriken_storm < 2 || variable.use_priority_rotation ) & ( cooldown.symbols_of_death.remains <= 3 || ( azerite.nights_vengeance.rank >= 2 & buff.symbols_of_death.remains > 3 & ! stealthed.all & cooldown.shadow_dance.charges_fractional >= 0.9 ) )",
["action"] = "rupture",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "runeforge.deathly_shadows.equipped & dot.sepsis.ticking & dot.sepsis.remains <= 2 & combo_points >= 2",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "cooldown.symbols_of_death.remains <= 2 & combo_points >= 2 & runeforge.the_rotten.equipped",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "combo_points = animacharged_cp",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "combo_points.deficit <= 1 || fight_remains <= 1 & combo_points >= 3",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "spell_targets.shuriken_storm = 4 & combo_points >= 4",
["action"] = "call_action_list",
["list_name"] = "finish",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "energy.deficit <= variable.stealth_threshold",
["action"] = "call_action_list",
["list_name"] = "build",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 15 + energy.regen",
["action"] = "arcane_torrent",
}, -- [17]
{
["action"] = "arcane_pulse",
["enabled"] = true,
}, -- [18]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [19]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [20]
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
}, -- [1]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "marked_for_death",
["precombat_seconds"] = "15",
}, -- [3]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["precombat_seconds"] = "1",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runeforge.mark_of_the_master_assassin.equipped",
["action"] = "shadow_blades",
}, -- [5]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [6]
},
["build"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets >= 2 + ( talent.gloomblade.enabled & azerite.perforate.rank >= 2 )",
["action"] = "shuriken_storm",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.serrated_bone_spike.charges_fractional >= 2.75",
["action"] = "serrated_bone_spike",
}, -- [2]
{
["action"] = "gloomblade",
["enabled"] = true,
}, -- [3]
{
["action"] = "backstab",
["enabled"] = true,
}, -- [4]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "! buff.shadow_dance.up & buff.shuriken_tornado.up & buff.shuriken_tornado.remains <= 3.5",
["action"] = "shadow_dance",
["use_off_gcd"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.shuriken_tornado.up & buff.shuriken_tornado.remains <= 3.5",
["action"] = "symbols_of_death",
["use_off_gcd"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & ! stealthed.mantle",
["action"] = "flagellation",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "debuff.flagellation.remains < 2 || debuff.flagellation.stack >= 40",
["action"] = "flagellation_cleanse",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( runeforge.mark_of_the_master_assassin.equipped & combo_points.deficit <= 3 || runeforge.deathly_shadows.equipped & combo_points < 1 ) & buff.symbols_of_death.up & buff.shadow_dance.up & master_assassin_remains = 0 & buff.deathly_shadows.down",
["action"] = "vanish",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & variable.snd_condition || essence.breath_of_the_dying.major & time >= 2",
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.shadow_focus.enabled",
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "energy >= 60 & variable.snd_condition & cooldown.symbols_of_death.up & cooldown.shadow_dance.charges >= 1",
["action"] = "shuriken_tornado",
}, -- [8]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["criteria"] = "variable.snd_condition & ! dot.serrated_bone_spike_dot.ticking || fight_remains <= 5",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & ! cooldown.shadow_blades.up & ( talent.enveloping_shadows.enabled || cooldown.shadow_dance.charges >= 1 ) & ( ! talent.shuriken_tornado.enabled || talent.shadow_focus.enabled || cooldown.shuriken_tornado.remains > 2 ) & ( ! runeforge.the_rotten.equipped || combo_points <= 2 ) & ( ! essence.blood_of_the_enemy.major || cooldown.blood_of_the_enemy.remains > 2 )",
["action"] = "symbols_of_death",
}, -- [10]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.up & ( target.time_to_die < combo_points.deficit || ! stealthed.all & combo_points.deficit >= cp_max_spend )",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 30 - raid_event.adds.duration & combo_points.deficit >= cp_max_spend",
["action"] = "marked_for_death",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & combo_points.deficit >= 2",
["action"] = "shadow_blades",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & combo_points.deficit >= 3 & spell_targets.shuriken_storm <= 4",
["action"] = "echoing_reprimand",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.shadow_focus.enabled & variable.snd_condition & buff.symbols_of_death.up",
["action"] = "shuriken_tornado",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! buff.shadow_dance.up & fight_remains <= 8 + talent.subterfuge.enabled",
["action"] = "shadow_dance",
}, -- [16]
{
["action"] = "potion",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "blood_fury",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "berserking",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "fireblood",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "ancestral_call",
}, -- [21]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "! stealthed.all & variable.snd_condition & ! buff.symbols_of_death.up & energy.deficit >= 30",
["effect_name"] = "cyclotronic_blast",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "! buff.shadow_dance.up & cooldown.symbols_of_death.remains < 10",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.down || debuff.conductive_ink_debuff.up & target.health.pct < 32 & target.health.pct >= 30 || ! debuff.conductive_ink_debuff.up & ( debuff.razor_coral_debuff.stack >= 25 - 10 * debuff.blood_of_the_enemy.up || fight_remains < 40 ) & buff.symbols_of_death.remains > 8",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [24]
{
["enabled"] = true,
["name"] = "mydas_talisman",
["action"] = "mydas_talisman",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up || fight_remains < 20",
["action"] = "use_items",
}, -- [26]
},
["stealth_cds"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.shadow_dance.charges_fractional >= 1.75",
["var_name"] = "shd_threshold",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! variable.shd_threshold || ! talent.nightstalker.enabled & talent.dark_shadow.enabled ) & combo_points.deficit > 1 & ! runeforge.mark_of_the_master_assassin.equipped",
["action"] = "vanish",
}, -- [2]
{
["action"] = "sepsis",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["extra_amount"] = "40",
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "energy >= 40 & energy.deficit >= 10 & ! variable.shd_threshold & combo_points.deficit > 1 & debuff.find_weakness.remains < 1",
["action"] = "shadowmeld",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points.deficit >= 4",
["var_name"] = "shd_combo_points",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points.deficit <= 1",
["criteria"] = "variable.use_priority_rotation",
["var_name"] = "shd_combo_points",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.shd_combo_points & ( variable.shd_threshold || buff.symbols_of_death.remains >= 1.2 || spell_targets.shuriken_storm >= 4 & cooldown.symbols_of_death.remains > 10 )",
["action"] = "shadow_dance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "variable.shd_combo_points & fight_remains < cooldown.symbols_of_death.remains",
["action"] = "shadow_dance",
}, -- [9]
},
["finish"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.shuriken_storm < 6 & ! buff.shadow_dance.up & buff.slice_and_dice.remains < fight_remains & buff.slice_and_dice.remains < ( 1 + combo_points ) * 1.8",
["action"] = "slice_and_dice",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "master_assassin_remains > 0 || ! talent.nightstalker.enabled & talent.dark_shadow.enabled & buff.shadow_dance.up || spell_targets.shuriken_storm >= 6",
["var_name"] = "skip_rupture",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.skip_rupture & target.time_to_die - remains > 6 & refreshable",
["action"] = "rupture",
}, -- [3]
{
["action"] = "secret_technique",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["action"] = "rupture",
["criteria"] = "! variable.skip_rupture & ! variable.use_priority_rotation & spell_targets.shuriken_storm >= 2 & target.time_to_die >= ( 5 + ( 2 * combo_points ) ) & refreshable",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! variable.skip_rupture & remains < cooldown.symbols_of_death.remains + 10 & cooldown.symbols_of_death.remains <= 5 & target.time_to_die - remains > cooldown.symbols_of_death.remains + 5",
["action"] = "rupture",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! variable.use_priority_rotation & spell_targets >= 3",
["action"] = "black_powder",
}, -- [7]
{
["action"] = "eviscerate",
["enabled"] = true,
}, -- [8]
},
},
["version"] = 20201015,
["warnings"] = "WARNING: The import for 'build' required some automated changes.\nLine 1: Removed position_back check (not available in emulation) (1x).\n\nImported 8 action lists.\n",
["spec"] = 261,
["profile"] = "# Subtlety Rogue\n# October 15, 2020\n\n# Pre-Combat\nactions.precombat+=/apply_poison\nactions.precombat+=/stealth\nactions.precombat+=/marked_for_death,precombat_seconds=15\nactions.precombat+=/slice_and_dice,precombat_seconds=1\nactions.precombat+=/shadow_blades,if=runeforge.mark_of_the_master_assassin.equipped\nactions.precombat+=/use_item,name=azsharas_font_of_power\n\n# Main Rotation\nactions=kick\nactions+=/variable,name=snd_condition,value=buff.slice_and_dice.up||spell_targets.shuriken_storm>=6,Used to determine whether cooldowns wait for SnD based on targets.\n# Check CDs at first\nactions+=/call_action_list,name=cds\n# Run fully switches to the Stealthed Rotation (by doing so,it forces pooling if nothing is available).\nactions+=/run_action_list,name=stealthed,if=stealthed.all\n# Apply slice_and_dice at 2+ CP during the first 10 seconds,after that 4+ CP if it expires within the next GCD or is not up\nactions+=/slice_and_dice,if=spell_targets.shuriken_storm<6&fight_remains>6&buff.slice_and_dice.remains<gcd.max&combo_points>=4-(time<10)*2\n# Only change rotation if we have priority_rotation set and multiple targets up.\nactions+=/variable,name=use_priority_rotation,value=priority_rotation&spell_targets.shuriken_storm>=2\n# Priority Rotation? Let's give a crap about energy for the stealth CDs (builder still respect it). Yup,it can be that simple.\nactions+=/call_action_list,name=stealth_cds,if=variable.use_priority_rotation\n# Used to define when to use stealth CDs or builders\nactions+=/variable,name=stealth_threshold,value=25+talent.vigor.enabled*20+talent.master_of_shadows.enabled*20+talent.shadow_focus.enabled*25+talent.alacrity.enabled*20+25*(spell_targets.shuriken_storm>=4)\n# Consider using a Stealth CD when reaching the energy threshold\nactions+=/call_action_list,name=stealth_cds,if=energy.deficit<=variable.stealth_threshold\n# Night's Vengeance: Rupture before Symbols at low CP to combine early refresh with getting the buff up. Also low CP during Symbols between Dances with 2+ NV.\nactions+=/rupture,if=azerite.nights_vengeance.enabled&!buff.nights_vengeance.up&combo_points.deficit>1&(spell_targets.shuriken_storm<2||variable.use_priority_rotation)&(cooldown.symbols_of_death.remains<=3||(azerite.nights_vengeance.rank>=2&buff.symbols_of_death.remains>3&!stealthed.all&cooldown.shadow_dance.charges_fractional>=0.9))\nactions+=/call_action_list,name=finish,if=runeforge.deathly_shadows.equipped&dot.sepsis.ticking&dot.sepsis.remains<=2&combo_points>=2\nactions+=/call_action_list,name=finish,if=cooldown.symbols_of_death.remains<=2&combo_points>=2&runeforge.the_rotten.equipped\nactions+=/call_action_list,name=finish,if=combo_points=animacharged_cp\n# 5+ with DS (outside stealth)\nactions+=/call_action_list,name=finish,if=combo_points.deficit<=1||fight_remains<=1&combo_points>=3\n# Finish at 4+ without DS\n# With DS also finish at 4+ against exactly 4 targets (outside stealth)\nactions+=/call_action_list,name=finish,if=spell_targets.shuriken_storm=4&combo_points>=4\n# Use a builder when reaching the energy threshold\nactions+=/call_action_list,name=build,if=energy.deficit<=variable.stealth_threshold\n# Lowest priority in all of the APL because it causes a GCD\nactions+=/arcane_torrent,if=energy.deficit>=15+energy.regen\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# Cooldowns\n# Use Dance off-gcd before the first shuriken_storm from Tornado comes in.\nactions.cds+=/shadow_dance,use_off_gcd=1,if=!buff.shadow_dance.up&buff.shuriken_tornado.up&buff.shuriken_tornado.remains<=3.5\n# (Unless already up because we took Shadow Focus) use Symbols off-gcd before the first shuriken_storm from Tornado comes in.\nactions.cds+=/symbols_of_death,use_off_gcd=1,if=buff.shuriken_tornado.up&buff.shuriken_tornado.remains<=3.5\nactions.cds+=/flagellation,if=variable.snd_condition&!stealthed.mantle\nactions.cds+=/flagellation_cleanse,if=debuff.flagellation.remains<2||debuff.flagellation.stack>=40\nactions.cds+=/vanish,if=(runeforge.mark_of_the_master_assassin.equipped&combo_points.deficit<=3||runeforge.deathly_shadows.equipped&combo_points<1)&buff.symbols_of_death.up&buff.shadow_dance.up&master_assassin_remains=0&buff.deathly_shadows.down\nactions.cds+=/call_action_list,name=essences,if=!stealthed.all&variable.snd_condition||essence.breath_of_the_dying.major&time>=2\n# Pool for Tornado pre-SoD with ShD ready when not running SF.\nactions.cds+=/pool_resource,for_next=1,if=!talent.shadow_focus.enabled\n# Use Tornado pre SoD when we have the energy whether from pooling without SF or just generally.\nactions.cds+=/shuriken_tornado,if=energy>=60&variable.snd_condition&cooldown.symbols_of_death.up&cooldown.shadow_dance.charges>=1\nactions.cds+=/serrated_bone_spike,cycle_targets=1,if=variable.snd_condition&!dot.serrated_bone_spike_dot.ticking||fight_remains<=5\n# Use Symbols on cooldown (after first SnD) unless we are going to pop Tornado and do not have Shadow Focus. Low CP for The Rotten.\nactions.cds+=/symbols_of_death,if=variable.snd_condition&!cooldown.shadow_blades.up&(talent.enveloping_shadows.enabled||cooldown.shadow_dance.charges>=1)&(!talent.shuriken_tornado.enabled||talent.shadow_focus.enabled||cooldown.shuriken_tornado.remains>2)&(!runeforge.the_rotten.equipped||combo_points<=2)&(!essence.blood_of_the_enemy.major||cooldown.blood_of_the_enemy.remains>2)\n# If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or not stealthed without any CP.\nactions.cds+=/marked_for_death,cycle_targets=1,if=raid_event.adds.up&(target.time_to_die<combo_points.deficit||!stealthed.all&combo_points.deficit>=cp_max_spend)\n# If no adds will die within the next 30s, use MfD on boss without any CP.\nactions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend\nactions.cds+=/shadow_blades,if=variable.snd_condition&combo_points.deficit>=2\nactions.cds+=/echoing_reprimand,if=variable.snd_condition&combo_points.deficit>=3&spell_targets.shuriken_storm<=4\n# With SF, if not already done, use Tornado with SoD up.\nactions.cds+=/shuriken_tornado,if=talent.shadow_focus.enabled&variable.snd_condition&buff.symbols_of_death.up\nactions.cds+=/shadow_dance,if=!buff.shadow_dance.up&fight_remains<=8+talent.subterfuge.enabled\n\n# Non-spec stuff with lower prio\nactions.cds+=/potion\nactions.cds+=/blood_fury,if=buff.symbols_of_death.up\nactions.cds+=/berserking,if=buff.symbols_of_death.up\nactions.cds+=/fireblood,if=buff.symbols_of_death.up\nactions.cds+=/ancestral_call,if=buff.symbols_of_death.up\n\nactions.cds+=/use_item,effect_name=cyclotronic_blast,if=!stealthed.all&variable.snd_condition&!buff.symbols_of_death.up&energy.deficit>=30\nactions.cds+=/use_item,name=azsharas_font_of_power,if=!buff.shadow_dance.up&cooldown.symbols_of_death.remains<10\n# otherwise with SoD at 25+ stacks or 15+ with also Blood up.\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.down||debuff.conductive_ink_debuff.up&target.health.pct<32&target.health.pct>=30||!debuff.conductive_ink_debuff.up&(debuff.razor_coral_debuff.stack>=25-10*debuff.blood_of_the_enemy.up||fight_remains<40)&buff.symbols_of_death.remains>8\n# Very roughly rule of thumbified maths below: Use for Inkpod crit\nactions.cds+=/use_item,name=mydas_talisman\n# Default fallback for usable items: Use with Symbols of Death.\nactions.cds+=/use_items,if=buff.symbols_of_death.up||fight_remains<20\n\n# Azerite Essences\nactions.essences+=/concentrated_flame,if=energy.time_to_max>1&!buff.symbols_of_death.up&(!dot.concentrated_flame_burn.ticking&!action.concentrated_flame.in_flight||full_recharge_time<gcd.max)\nactions.essences+=/blood_of_the_enemy,if=!cooldown.shadow_blades.up&cooldown.symbols_of_death.up||fight_remains<=10\nactions.essences+=/guardian_of_azeroth\nactions.essences+=/focused_azerite_beam,if=(spell_targets.shuriken_storm>=2||raid_event.adds.in>60)&!cooldown.symbols_of_death.up&!buff.symbols_of_death.up&energy.deficit>=30\nactions.essences+=/purifying_blast,if=spell_targets.shuriken_storm>=2||raid_event.adds.in>60\nactions.essences+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.essences+=/ripple_in_space\nactions.essences+=/worldvein_resonance,if=cooldown.symbols_of_death.remains<5||fight_remains<18\nactions.essences+=/memory_of_lucid_dreams,if=energy<40&buff.symbols_of_death.up\n# Hold Reaping Flames for execute range or kill buffs, if possible. Always try to get the lowest cooldown based on available enemies.\nactions.essences+=/reaping_flames,if=fight_remains<1.5||((target.health.pct>80||target.health.pct<=20)&(active_enemies=1||fight_remains>29))||(target.time_to_pct_20>30&(active_enemies=1||fight_remains>44))\n\n# Stealth Cooldowns\nactions.stealth_cds+=/variable,name=shd_threshold,value=cooldown.shadow_dance.charges_fractional>=1.75,Helper Variable\n# Vanish if we are capping on Dance charges. Early before first dance if we have no Nightstalker but Dark Shadow in order to get Rupture up (no Master Assassin).\nactions.stealth_cds+=/vanish,if=(!variable.shd_threshold||!talent.nightstalker.enabled&talent.dark_shadow.enabled)&combo_points.deficit>1&!runeforge.mark_of_the_master_assassin.equipped\nactions.stealth_cds+=/sepsis\nactions.stealth_cds+=/pool_resource,for_next=1,extra_amount=40,Pool for Shadowmeld + Shadowstrike unless we are about to cap on Dance charges. Only when Find Weakness is about to run out.\nactions.stealth_cds+=/shadowmeld,if=energy>=40&energy.deficit>=10&!variable.shd_threshold&combo_points.deficit>1&debuff.find_weakness.remains<1\nactions.stealth_cds+=/variable,name=shd_combo_points,value=combo_points.deficit>=4,CP requirement: Dance at low CP by default.\n# CP requirement: Dance only before finishers if we have priority rotation.\nactions.stealth_cds+=/variable,name=shd_combo_points,value=combo_points.deficit<=1,if=variable.use_priority_rotation\n# Dance during Symbols or above threshold.\nactions.stealth_cds+=/shadow_dance,if=variable.shd_combo_points&(variable.shd_threshold||buff.symbols_of_death.remains>=1.2||spell_targets.shuriken_storm>=4&cooldown.symbols_of_death.remains>10)\n# Burn remaining Dances before the fight ends if SoD won't be ready in time.\nactions.stealth_cds+=/shadow_dance,if=variable.shd_combo_points&fight_remains<cooldown.symbols_of_death.remains\n\n# Stealthed Rotation\n# If Stealth/vanish are up, use Shadowstrike to benefit from the passive bonus and Find Weakness even if we are at max CP (from the precombat MfD).\nactions.stealthed+=/shadowstrike,if=(buff.stealth.up||buff.vanish.up)\n# Finish at 3+ CP without DS / 4+ with DS with Shuriken Tornado buff up to avoid some CP waste situations.\nactions.stealthed+=/call_action_list,name=finish,if=buff.shuriken_tornado.up&combo_points.deficit<=2\n# Also safe to finish at 4+ CP with exactly 4 targets. (Same as outside stealth.)\nactions.stealthed+=/call_action_list,name=finish,if=spell_targets.shuriken_storm=4&combo_points>=4\n# Finish at 4+ CP without DS, 5+ with DS, and 6 with DS after Vanish\nactions.stealthed+=/call_action_list,name=finish,if=combo_points.deficit<=1-(talent.deeper_stratagem.enabled&buff.vanish.up)\n# For pre-patch, keep Find Weakness up on the primary target due to no Shadow Vault\nactions.stealthed+=/shadowstrike,if=level<52&debuff.find_weakness.remains<1&target.time_to_die-remains>6\n# Up to 3 targets keep up Find Weakness by cycling Shadowstrike.\nactions.stealthed+=/shadowstrike,cycle_targets=1,if=debuff.find_weakness.remains<1&spell_targets.shuriken_storm<=3&target.time_to_die-remains>6\n# Without Deeper Stratagem and 3 Ranks of Blade in the Shadows it is worth using Shadowstrike on 3 targets.\nactions.stealthed+=/shadowstrike,if=!talent.deeper_stratagem.enabled&azerite.blade_in_the_shadows.rank=3&spell_targets.shuriken_storm=3\n# For priority rotation, use Shadowstrike over Storm 1) with WM against up to 4 targets, 2) if FW is running off (on any amount of targets), or 3) to maximize SoD extension with Inevitability on 3 targets (4 with BitS).\nactions.stealthed+=/shadowstrike,if=variable.use_priority_rotation&(debuff.find_weakness.remains<1||talent.weaponmaster.enabled&spell_targets.shuriken_storm<=4||azerite.inevitability.enabled&buff.symbols_of_death.up&spell_targets.shuriken_storm<=3+azerite.blade_in_the_shadows.enabled)\nactions.stealthed+=/shuriken_storm,if=spell_targets>=3+(buff.premeditation.up||buff.the_rotten.up||runeforge.akaaris_soul_fragment.equipped&conduit.deeper_daggers.rank>=7)\nactions.stealthed+=/shadowstrike,if=debuff.find_weakness.remains<=1||cooldown.symbols_of_death.remains<18&debuff.find_weakness.remains<cooldown.symbols_of_death.remains\n# Shadowstrike to refresh Find Weakness and to ensure we can carry over a full FW into the next SoD if possible.\nactions.stealthed+=/pool_resource,for_next=1\nactions.stealthed+=/gloomblade,if=!runeforge.akaaris_soul_fragment.equipped&buff.perforated_veins.stack>=3&conduit.perforated_veins.rank>=13-(9*conduit.deeper_dagger.enabled+conduit.deeper_dagger.rank)\nactions.stealthed+=/gloomblade,if=runeforge.akaaris_soul_fragment.equipped&buff.perforated_veins.stack>=3&(conduit.perforated_veins.rank+conduit.deeper_dagger.rank)>=16\nactions.stealthed+=/shadowstrike\n\n# Finishers\nactions.finish+=/slice_and_dice,if=spell_targets.shuriken_storm<6&!buff.shadow_dance.up&buff.slice_and_dice.remains<fight_remains&buff.slice_and_dice.remains<(1+combo_points)*1.8\nactions.finish+=/variable,name=skip_rupture,value=master_assassin_remains>0||!talent.nightstalker.enabled&talent.dark_shadow.enabled&buff.shadow_dance.up||spell_targets.shuriken_storm>=6,Helper Variable for Rupture. Skip during Master Assassin or during Dance with Dark and no Nightstalker.\n# Keep up Rupture if it is about to run out.\nactions.finish+=/rupture,if=!variable.skip_rupture&target.time_to_die-remains>6&refreshable\nactions.finish+=/secret_technique\n# Multidotting targets that will live for the duration of Rupture refresh during pandemic.\nactions.finish+=/rupture,cycle_targets=1,if=!variable.skip_rupture&!variable.use_priority_rotation&spell_targets.shuriken_storm>=2&target.time_to_die>=(5+(2*combo_points))&refreshable\n# Refresh Rupture early if it will expire during Symbols. Do that refresh if SoD gets ready in the next 5s.\nactions.finish+=/rupture,if=!variable.skip_rupture&remains<cooldown.symbols_of_death.remains+10&cooldown.symbols_of_death.remains<=5&target.time_to_die-remains>cooldown.symbols_of_death.remains+5\nactions.finish+=/black_powder,if=!variable.use_priority_rotation&spell_targets>=3\nactions.finish+=/eviscerate\n\n# Builders\nactions.build+=/shuriken_storm,if=spell_targets>=2+(talent.gloomblade.enabled&azerite.perforate.rank>=2&position_back)\nactions.build+=/serrated_bone_spike,if=cooldown.serrated_bone_spike.charges_fractional>=2.75\nactions.build+=/gloomblade\nactions.build+=/backstab",
},
["Assassination"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20201013,
["author"] = "SimC",
["desc"] = "# Assassination Rogue\n# October 13, 2020",
["lists"] = {
["stealthed"] = {
{
["enabled"] = true,
["criteria"] = "talent.nightstalker.enabled & combo_points >= 4 & target.time_to_die - remains > 6",
["action"] = "rupture",
}, -- [1]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "azerite.shrouded_suffocation.enabled & buff.subterfuge.up & buff.subterfuge.remains < 1.3 & ! ss_buffed",
["action"] = "garrote",
}, -- [3]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["action"] = "garrote",
["criteria"] = "talent.subterfuge.enabled & ( remains < 12 || pmultiplier <= 1 ) & target.time_to_die - remains > 2",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.subterfuge.enabled & azerite.shrouded_suffocation.enabled & ! dot.rupture.ticking & variable.single_target",
["action"] = "rupture",
}, -- [6]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [7]
{
["enabled"] = true,
["action"] = "garrote",
["criteria"] = "talent.subterfuge.enabled & azerite.shrouded_suffocation.enabled & ( active_enemies > 1 || ! talent.exsanguinate.enabled ) & target.time_to_die > remains & ( remains < 18 || ! ss_buffed )",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.subterfuge.enabled & talent.exsanguinate.enabled & active_enemies = 1 & buff.subterfuge.remains < 1.3",
["action"] = "garrote",
}, -- [10]
},
["essences"] = {
{
["enabled"] = true,
["criteria"] = "energy.time_to_max > 1 & ! debuff.vendetta.up & ( ! dot.concentrated_flame_burn.ticking & ! action.concentrated_flame.in_flight || full_recharge_time < gcd.max )",
["action"] = "concentrated_flame",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up & ( debuff.garrote.exsanguinated || debuff.shiv.up & combo_points.deficit <= 1 || debuff.vendetta.remains <= 10 ) || fight_remains <= 10",
["action"] = "blood_of_the_enemy",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.vendetta.remains < 3 || debuff.vendetta.up || fight_remains < 30",
["action"] = "guardian_of_azeroth",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "floor ( ( fight_remains - 30 ) / action_cooldown ) > floor ( ( fight_remains - 30 - cooldown.vendetta.remains ) / action_cooldown )",
["action"] = "guardian_of_azeroth",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.fan_of_knives >= 2 || raid_event.adds.in > 60 & energy < 70",
["action"] = "focused_azerite_beam",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "spell_targets.fan_of_knives >= 2 || raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [7]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [8]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "energy < 50 & ! cooldown.vendetta.up",
["action"] = "memory_of_lucid_dreams",
}, -- [10]
{
["enabled"] = true,
["action"] = "reaping_flames",
["criteria"] = "target.time_to_die < 1.5 || ( ( target.health.pct > 80 || target.health.pct <= 20 ) & ( active_enemies = 1 || target.time_to_die > 29 ) ) || ( target.time_to_pct_20 > 30 & ( active_enemies = 1 || target.time_to_die > 44 ) )",
["cycle_targets"] = 1,
}, -- [11]
},
["default"] = {
{
["action"] = "kick",
["enabled"] = true,
}, -- [1]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "energy.regen + poisoned_bleeds * 7 / ( 2 * spell_haste )",
["var_name"] = "energy_regen_combined",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.fan_of_knives < 2",
["var_name"] = "single_target",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "stealthed.rogue",
["action"] = "call_action_list",
["list_name"] = "stealthed",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( ! talent.master_assassin.enabled || dot.garrote.ticking )",
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "dot",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.slice_and_dice.remains < target.time_to_die & buff.slice_and_dice.remains < ( 1 + combo_points ) * 1.8",
["action"] = "slice_and_dice",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "direct",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 15 + variable.energy_regen_combined",
["action"] = "arcane_torrent",
}, -- [10]
{
["action"] = "arcane_pulse",
["enabled"] = true,
}, -- [11]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [12]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [13]
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.in > 15",
["precombat_seconds"] = "5",
}, -- [2]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["precombat_seconds"] = "1",
}, -- [4]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.exsanguinate.enabled",
["action"] = "guardian_of_azeroth",
}, -- [6]
},
["direct"] = {
{
["enabled"] = true,
["criteria"] = "( combo_points >= 4 + talent.deeper_stratagem.enabled || combo_points = animacharged_cp ) & ( debuff.vendetta.up || debuff.shiv.up || energy.deficit <= 25 + variable.energy_regen_combined || ! variable.single_target ) & ( ! talent.exsanguinate.enabled || cooldown.exsanguinate.remains > 2 )",
["action"] = "envenom",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points.deficit > 1 || energy.deficit <= 25 + variable.energy_regen_combined || ! variable.single_target",
["var_name"] = "use_filler",
}, -- [2]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["criteria"] = "! dot.serrated_bone_spike.ticking || variable.use_filler & ( active_enemies = 1 & raid_event.adds.in > full_recharge_time || charges > 2 & target.time_to_die < 5 )",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.use_filler & azerite.echoing_blades.enabled & spell_targets.fan_of_knives >= 2 + ( debuff.vendetta.up * ( 1 + ( azerite.echoing_blades.rank = 1 ) ) )",
["action"] = "fan_of_knives",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.use_filler & ( buff.hidden_blades.stack >= 19 || ( ! priority_rotation & spell_targets.fan_of_knives >= 4 + ( azerite.double_dose.rank > 2 ) + stealthed.rogue ) )",
["action"] = "fan_of_knives",
}, -- [5]
{
["enabled"] = true,
["action"] = "fan_of_knives",
["criteria"] = "variable.use_filler & spell_targets.fan_of_knives >= 3",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.use_filler",
["action"] = "echoing_reprimand",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.use_filler",
["action"] = "ambush",
}, -- [8]
{
["enabled"] = true,
["action"] = "mutilate",
["criteria"] = "variable.use_filler & spell_targets.fan_of_knives = 2",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "variable.use_filler",
["action"] = "mutilate",
}, -- [10]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "! stealthed.all & master_assassin_remains = 0 & ( cooldown.vendetta.remains <? ( cooldown.shiv.remains * equipped.ashvanes_razor_coral ) ) < 10 + 10 * equipped.ashvanes_razor_coral & ! debuff.vendetta.up & ! debuff.shiv.up",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & dot.rupture.ticking & master_assassin_remains = 0",
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [2]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.up & ( target.time_to_die < combo_points.deficit * 1.5 || combo_points.deficit >= cp_max_spend )",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 30 - raid_event.adds.duration & combo_points.deficit >= cp_max_spend",
["action"] = "marked_for_death",
}, -- [4]
{
["action"] = "flagellation",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "debuff.flagellation.remains < 2 || debuff.flagellation.stack >= 40",
["action"] = "flagellation_cleanse",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.subterfuge.enabled || ! azerite.shrouded_suffocation.enabled || dot.garrote.pmultiplier > 1 & ( spell_targets.fan_of_knives < 6 || ! cooldown.vanish.up )",
["var_name"] = "vendetta_subterfuge_condition",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.nightstalker.enabled || ! talent.exsanguinate.enabled || cooldown.exsanguinate.remains < 5 - 2 * talent.deeper_stratagem.enabled",
["var_name"] = "vendetta_nightstalker_condition",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! equipped.azsharas_font_of_power || azerite.shrouded_suffocation.enabled || debuff.razor_coral_debuff.down || cooldown.ashvanes_razor_coral.remains < 10 & ( cooldown.shiv.remains < 1 || debuff.shiv.up )",
["var_name"] = "vendetta_font_condition",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! stealthed.rogue & dot.rupture.ticking & ! debuff.vendetta.up & variable.vendetta_subterfuge_condition & variable.vendetta_nightstalker_condition & variable.vendetta_font_condition",
["action"] = "vendetta",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.exsanguinate.enabled & talent.nightstalker.enabled & combo_points >= cp_max_spend & cooldown.exsanguinate.remains < 1",
["action"] = "vanish",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.nightstalker.enabled & ! talent.exsanguinate.enabled & combo_points >= cp_max_spend & ( debuff.vendetta.up || essence.vision_of_perfection.enabled )",
["action"] = "vanish",
}, -- [12]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "azerite.shrouded_suffocation.enabled & ( non_ss_buffed_targets >= 1 || spell_targets.fan_of_knives = 3 ) & ( ss_buffed_targets_above_pandemic = 0 || spell_targets.fan_of_knives >= 6 )",
["var_name"] = "ss_vanish_condition",
}, -- [13]
{
["enabled"] = true,
["extra_amount"] = "45",
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.subterfuge.enabled & ! stealthed.rogue & cooldown.garrote.up & ( variable.ss_vanish_condition || ! azerite.shrouded_suffocation.enabled & ( dot.garrote.refreshable || debuff.vendetta.up & dot.garrote.pmultiplier <= 1 ) ) & combo_points.deficit >= ( ( 1 + 2 * azerite.shrouded_suffocation.enabled ) * spell_targets.fan_of_knives ) >? 4 & raid_event.adds.in > 12",
["action"] = "vanish",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( talent.master_assassin.enabled || runeforge.mark_of_the_master_assassin.equipped ) & ! stealthed.all & master_assassin_remains <= 0 & ! dot.rupture.refreshable & dot.garrote.remains > 3 & ( debuff.vendetta.up & debuff.shiv.up & ( ! essence.blood_of_the_enemy.major || debuff.blood_of_the_enemy.up ) || essence.vision_of_perfection.enabled )",
["action"] = "vanish",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & azerite.shrouded_suffocation.enabled & dot.garrote.refreshable & dot.garrote.pmultiplier <= 1 & combo_points.deficit >= 1",
["action"] = "shadowmeld",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! stealthed.rogue & ( ! dot.garrote.refreshable & dot.rupture.remains > 4 + 4 * cp_max_spend || dot.rupture.remains * 0.5 > target.time_to_die ) & target.time_to_die > 4",
["action"] = "exsanguinate",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "level >= 58 & dot.rupture.ticking & ( ! equipped.azsharas_font_of_power || cooldown.vendetta.remains > 10 )",
["action"] = "shiv",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || debuff.vendetta.up",
["action"] = "potion",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up",
["action"] = "blood_fury",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up",
["action"] = "berserking",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up",
["action"] = "fireblood",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up",
["action"] = "ancestral_call",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( debuff.vendetta.up || ( ! talent.exsanguinate.enabled & cooldown.vendetta.remains > 45 || talent.exsanguinate.enabled & ( cooldown.exsanguinate.remains < 6 || cooldown.exsanguinate.remains > 20 & fight_remains > 65 ) ) ) & ! debuff.rupture.exsanguinated",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.down || target.time_to_die < 20",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "( ! talent.exsanguinate.enabled || ! talent.subterfuge.enabled ) & debuff.vendetta.remains > 10 - 4 * equipped.azsharas_font_of_power",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "( talent.exsanguinate.enabled & talent.subterfuge.enabled ) & debuff.vendetta.up & ( debuff.garrote.exsanguinated || azerite.shrouded_suffocation.enabled & dot.garrote.pmultiplier > 1 )",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [28]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "master_assassin_remains = 0 & ! debuff.vendetta.up & ! debuff.shiv.up & buff.memory_of_lucid_dreams.down & energy < 80 & dot.rupture.remains > 4",
["effect_name"] = "cyclotronic_blast",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up",
["name"] = "lurkers_insidious_gift",
["action"] = "lurkers_insidious_gift",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "debuff.vendetta.up",
["name"] = "lustrous_golden_plumage",
["action"] = "lustrous_golden_plumage",
}, -- [31]
{
["enabled"] = true,
["action"] = "gladiators_medallion",
["criteria"] = "debuff.vendetta.up",
["effect_name"] = "gladiators_medallion",
}, -- [32]
{
["enabled"] = true,
["action"] = "gladiators_badge",
["criteria"] = "debuff.vendetta.up",
["effect_name"] = "gladiators_badge",
}, -- [33]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [34]
},
["dot"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "priority_rotation & spell_targets.fan_of_knives > 3 & ( dot.garrote.remains < cooldown.garrote.duration || poisoned_bleeds > 5 )",
["var_name"] = "skip_cycle_garrote",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "priority_rotation & spell_targets.fan_of_knives > 3 & ( debuff.shiv.up || ( poisoned_bleeds > 5 & ! azerite.scent_of_blood.enabled ) )",
["var_name"] = "skip_cycle_rupture",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "debuff.vendetta.up & ( debuff.shiv.up || master_assassin_remains > 0 ) & dot.rupture.remains > 2",
["var_name"] = "skip_rupture",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.exsanguinate.enabled & ! debuff.garrote.exsanguinated & dot.garrote.pmultiplier <= 1 & cooldown.exsanguinate.remains < 2 & spell_targets.fan_of_knives = 1 & raid_event.adds.in > 6 & dot.garrote.remains * 0.5 < target.time_to_die",
["action"] = "garrote",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.exsanguinate.enabled & ( combo_points >= cp_max_spend & cooldown.exsanguinate.remains < 1 & dot.rupture.remains * 0.5 < target.time_to_die )",
["action"] = "rupture",
}, -- [5]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "refreshable & combo_points.deficit >= 1 + 3 * ( azerite.shrouded_suffocation.enabled & cooldown.vanish.up ) & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & ( ! exsanguinated || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & ! ss_buffed & ( target.time_to_die - remains ) > 4 & ( master_assassin_remains = 0 || ! ticking & azerite.shrouded_suffocation.enabled )",
["action"] = "garrote",
}, -- [7]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [8]
{
["enabled"] = true,
["action"] = "garrote",
["criteria"] = "! variable.skip_cycle_garrote & refreshable & combo_points.deficit >= 1 + 3 * ( azerite.shrouded_suffocation.enabled & cooldown.vanish.up ) & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & ( ! exsanguinated || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & ! ss_buffed & ( target.time_to_die - remains ) > 12 & ( master_assassin_remains = 0 || ! ticking & azerite.shrouded_suffocation.enabled )",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "spell_targets >= 2 & remains < 2 + ( spell_targets >= 5 ) & combo_points >= 4",
["action"] = "crimson_tempest",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! variable.skip_rupture & ( combo_points >= 4 & refreshable || ! ticking & ( time > 10 || combo_points >= 2 ) ) & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & ( ! exsanguinated || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & target.time_to_die - remains > 4",
["action"] = "rupture",
}, -- [11]
{
["enabled"] = true,
["action"] = "rupture",
["criteria"] = "! variable.skip_cycle_rupture & ! variable.skip_rupture & combo_points >= 4 & refreshable & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & ( ! exsanguinated || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 + azerite.shrouded_suffocation.enabled ) & target.time_to_die - remains > 4",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "spell_targets = 1 & combo_points >= ( cp_max_spend - 1 ) & refreshable & ! exsanguinated & ! debuff.shiv.up & master_assassin_remains = 0 & ! azerite.twist_the_knife.enabled & target.time_to_die - remains > 4",
["action"] = "crimson_tempest",
}, -- [13]
{
["action"] = "sepsis",
["enabled"] = true,
}, -- [14]
},
},
["version"] = 20201013,
["warnings"] = "WARNING: The import for 'essences' required some automated changes.\nLine 2: Converted 'exsanguinated.X' to 'debuff.X.exsanguinated' (1x).\nLine 4: Converted SimC syntax % to Lua division operator (/) (2x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 3: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'cds' required some automated changes.\nLine 9: Converted 'trinket.X.cooldown' to 'cooldown.X' (1x).\nLine 25: Converted 'exsanguinated.X' to 'debuff.X.exsanguinated' (1x).\nLine 28: Converted 'exsanguinated.X' to 'debuff.X.exsanguinated' (1x).\n\nWARNING: The import for 'dot' required some automated changes.\nLine 4: Converted 'exsanguinated.X' to 'debuff.X.exsanguinated' (1x).\n\nImported 7 action lists.\n",
["spec"] = 259,
["profile"] = "# Assassination Rogue\n# October 13, 2020\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat=apply_poison\nactions.precombat+=/marked_for_death,precombat_seconds=5,if=raid_event.adds.in>15\nactions.precombat+=/stealth\nactions.precombat+=/slice_and_dice,precombat_seconds=1\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/guardian_of_azeroth,if=talent.exsanguinate.enabled\n\n# Executed every time the actor is available.\nactions=kick\n# Restealth if possible (no vulnerable enemies in combat)\nactions+=/stealth\nactions+=/variable,name=energy_regen_combined,value=energy.regen+poisoned_bleeds*7%(2*spell_haste)\nactions+=/variable,name=single_target,value=spell_targets.fan_of_knives<2\nactions+=/call_action_list,name=stealthed,if=stealthed.rogue\nactions+=/call_action_list,name=cds,if=(!talent.master_assassin.enabled||dot.garrote.ticking)\nactions+=/call_action_list,name=dot\nactions+=/slice_and_dice,if=buff.slice_and_dice.remains<target.time_to_die&buff.slice_and_dice.remains<(1+combo_points)*1.8\nactions+=/call_action_list,name=direct\nactions+=/arcane_torrent,if=energy.deficit>=15+variable.energy_regen_combined\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# Cooldowns\nactions.cds=use_item,name=azsharas_font_of_power,if=!stealthed.all&master_assassin_remains=0&(cooldown.vendetta.remains<?(cooldown.shiv.remains*equipped.ashvanes_razor_coral))<10+10*equipped.ashvanes_razor_coral&!debuff.vendetta.up&!debuff.shiv.up\nactions.cds+=/call_action_list,name=essences,if=!stealthed.all&dot.rupture.ticking&master_assassin_remains=0\n# If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.\nactions.cds+=/marked_for_death,cycle_targets=1,if=raid_event.adds.up&(target.time_to_die<combo_points.deficit*1.5||combo_points.deficit>=cp_max_spend)\n# If no adds will die within the next 30s, use MfD on boss without any CP.\nactions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend\nactions.cds+=/flagellation\nactions.cds+=/flagellation_cleanse,if=debuff.flagellation.remains<2||debuff.flagellation.stack>=40\n# Vendetta logical conditionals based on current spec\nactions.cds+=/variable,name=vendetta_subterfuge_condition,value=!talent.subterfuge.enabled||!azerite.shrouded_suffocation.enabled||dot.garrote.pmultiplier>1&(spell_targets.fan_of_knives<6||!cooldown.vanish.up)\nactions.cds+=/variable,name=vendetta_nightstalker_condition,value=!talent.nightstalker.enabled||!talent.exsanguinate.enabled||cooldown.exsanguinate.remains<5-2*talent.deeper_stratagem.enabled\nactions.cds+=/variable,name=variable,name=vendetta_font_condition,value=!equipped.azsharas_font_of_power||azerite.shrouded_suffocation.enabled||debuff.razor_coral_debuff.down||trinket.ashvanes_razor_coral.cooldown.remains<10&(cooldown.shiv.remains<1||debuff.shiv.up)\nactions.cds+=/vendetta,if=!stealthed.rogue&dot.rupture.ticking&!debuff.vendetta.up&variable.vendetta_subterfuge_condition&variable.vendetta_nightstalker_condition&variable.vendetta_font_condition\n# Vanish with Exsg + Nightstalker: Maximum CP and Exsg ready for next GCD\nactions.cds+=/vanish,if=talent.exsanguinate.enabled&talent.nightstalker.enabled&combo_points>=cp_max_spend&cooldown.exsanguinate.remains<1\n# Vanish with Nightstalker + No Exsg: Maximum CP and Vendetta up (unless using VoP)\nactions.cds+=/vanish,if=talent.nightstalker.enabled&!talent.exsanguinate.enabled&combo_points>=cp_max_spend&(debuff.vendetta.up||essence.vision_of_perfection.enabled)\n# See full comment on https://github.com/Ravenholdt-TC/Rogue/wiki/Assassination-APL-Research.\nactions.cds+=/variable,name=ss_vanish_condition,value=azerite.shrouded_suffocation.enabled&(non_ss_buffed_targets>=1||spell_targets.fan_of_knives=3)&(ss_buffed_targets_above_pandemic=0||spell_targets.fan_of_knives>=6)\nactions.cds+=/pool_resource,for_next=1,extra_amount=45\nactions.cds+=/vanish,if=talent.subterfuge.enabled&!stealthed.rogue&cooldown.garrote.up&(variable.ss_vanish_condition||!azerite.shrouded_suffocation.enabled&(dot.garrote.refreshable||debuff.vendetta.up&dot.garrote.pmultiplier<=1))&combo_points.deficit>=((1+2*azerite.shrouded_suffocation.enabled)*spell_targets.fan_of_knives)>?4&raid_event.adds.in>12\n# Vanish with Master Assasin: No stealth and no active MA buff, Rupture not in refresh range, during Vendetta+TB+BotE (unless using VoP)\nactions.cds+=/vanish,if=(talent.master_assassin.enabled||runeforge.mark_of_the_master_assassin.equipped)&!stealthed.all&master_assassin_remains<=0&!dot.rupture.refreshable&dot.garrote.remains>3&(debuff.vendetta.up&debuff.shiv.up&(!essence.blood_of_the_enemy.major||debuff.blood_of_the_enemy.up)||essence.vision_of_perfection.enabled)\n# Shadowmeld for Shrouded Suffocation\nactions.cds+=/shadowmeld,if=!stealthed.all&azerite.shrouded_suffocation.enabled&dot.garrote.refreshable&dot.garrote.pmultiplier<=1&combo_points.deficit>=1\n# Exsanguinate when not stealthed and both Rupture and Garrote are up for long enough.\nactions.cds+=/exsanguinate,if=!stealthed.rogue&(!dot.garrote.refreshable&dot.rupture.remains>4+4*cp_max_spend||dot.rupture.remains*0.5>target.time_to_die)&target.time_to_die>4\nactions.cds+=/shiv,if=level>=58&dot.rupture.ticking&(!equipped.azsharas_font_of_power||cooldown.vendetta.remains>10)\nactions.cds+=/potion,if=buff.bloodlust.react||debuff.vendetta.up\nactions.cds+=/blood_fury,if=debuff.vendetta.up\nactions.cds+=/berserking,if=debuff.vendetta.up\nactions.cds+=/fireblood,if=debuff.vendetta.up\nactions.cds+=/ancestral_call,if=debuff.vendetta.up\nactions.cds+=/use_item,name=galecallers_boon,if=(debuff.vendetta.up||(!talent.exsanguinate.enabled&cooldown.vendetta.remains>45||talent.exsanguinate.enabled&(cooldown.exsanguinate.remains<6||cooldown.exsanguinate.remains>20&fight_remains>65)))&!exsanguinated.rupture\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.down||target.time_to_die<20\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=(!talent.exsanguinate.enabled||!talent.subterfuge.enabled)&debuff.vendetta.remains>10-4*equipped.azsharas_font_of_power\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=(talent.exsanguinate.enabled&talent.subterfuge.enabled)&debuff.vendetta.up&(exsanguinated.garrote||azerite.shrouded_suffocation.enabled&dot.garrote.pmultiplier>1)\nactions.cds+=/use_item,effect_name=cyclotronic_blast,if=master_assassin_remains=0&!debuff.vendetta.up&!debuff.shiv.up&buff.memory_of_lucid_dreams.down&energy<80&dot.rupture.remains>4\nactions.cds+=/use_item,name=lurkers_insidious_gift,if=debuff.vendetta.up\nactions.cds+=/use_item,name=lustrous_golden_plumage,if=debuff.vendetta.up\nactions.cds+=/use_item,effect_name=gladiators_medallion,if=debuff.vendetta.up\nactions.cds+=/use_item,effect_name=gladiators_badge,if=debuff.vendetta.up\n# Default fallback for usable items: Use on cooldown.\nactions.cds+=/use_items\n\n# Direct damage abilities\n# Envenom at 4+ (5+ with DS) CP. Immediately on 2+ targets, with Vendetta, or with TB; otherwise wait for some energy. Also wait if Exsg combo is coming up.\nactions.direct=envenom,if=(combo_points>=4+talent.deeper_stratagem.enabled||combo_points=animacharged_cp)&(debuff.vendetta.up||debuff.shiv.up||energy.deficit<=25+variable.energy_regen_combined||!variable.single_target)&(!talent.exsanguinate.enabled||cooldown.exsanguinate.remains>2)\nactions.direct+=/variable,name=use_filler,value=combo_points.deficit>1||energy.deficit<=25+variable.energy_regen_combined||!variable.single_target\nactions.direct+=/serrated_bone_spike,cycle_targets=1,if=!dot.serrated_bone_spike.ticking||variable.use_filler&(active_enemies=1&raid_event.adds.in>full_recharge_time||charges>2&target.time_to_die<5)\n# With Echoing Blades, Fan of Knives at 2+ targets, or 3-4+ targets when Vendetta is up\nactions.direct+=/fan_of_knives,if=variable.use_filler&azerite.echoing_blades.enabled&spell_targets.fan_of_knives>=2+(debuff.vendetta.up*(1+(azerite.echoing_blades.rank=1)))\n# Fan of Knives at 19+ stacks of Hidden Blades or against 4+ (5+ with Double Dose) targets.\nactions.direct+=/fan_of_knives,if=variable.use_filler&(buff.hidden_blades.stack>=19||(!priority_rotation&spell_targets.fan_of_knives>=4+(azerite.double_dose.rank>2)+stealthed.rogue))\n# Fan of Knives to apply Deadly Poison if inactive on any target at 3 targets.\nactions.direct+=/fan_of_knives,cycle_targets=1,if=variable.use_filler&spell_targets.fan_of_knives>=3\nactions.direct+=/echoing_reprimand,if=variable.use_filler\nactions.direct+=/ambush,if=variable.use_filler\n# Tab-Mutilate to apply Deadly Poison at 2 targets\nactions.direct+=/mutilate,cycle_targets=1,if=variable.use_filler&spell_targets.fan_of_knives=2\nactions.direct+=/mutilate,if=variable.use_filler\n\n# Damage over time abilities\n# Limit Garrotes on non-primrary targets for the priority rotation if 5+ bleeds are already up\nactions.dot=variable,name=skip_cycle_garrote,value=priority_rotation&spell_targets.fan_of_knives>3&(dot.garrote.remains<cooldown.garrote.duration||poisoned_bleeds>5)\n# Limit Ruptures on non-primrary targets for the priority rotation if 5+ bleeds are already up\nactions.dot+=/variable,name=skip_cycle_rupture,value=priority_rotation&spell_targets.fan_of_knives>3&(debuff.shiv.up||(poisoned_bleeds>5&!azerite.scent_of_blood.enabled))\n# Limit Ruptures if Vendetta+Shiv/Master Assassin is up and we have 2+ seconds left on the Rupture DoT\nactions.dot+=/variable,name=skip_rupture,value=debuff.vendetta.up&(debuff.shiv.up||master_assassin_remains>0)&dot.rupture.remains>2\n# Special Garrote and Rupture setup prior to Exsanguinate cast\nactions.dot+=/garrote,if=talent.exsanguinate.enabled&!exsanguinated.garrote&dot.garrote.pmultiplier<=1&cooldown.exsanguinate.remains<2&spell_targets.fan_of_knives=1&raid_event.adds.in>6&dot.garrote.remains*0.5<target.time_to_die\nactions.dot+=/rupture,if=talent.exsanguinate.enabled&(combo_points>=cp_max_spend&cooldown.exsanguinate.remains<1&dot.rupture.remains*0.5<target.time_to_die)\n# Garrote upkeep, also tries to use it as a special generator for the last CP before a finisher\nactions.dot+=/pool_resource,for_next=1\nactions.dot+=/garrote,if=refreshable&combo_points.deficit>=1+3*(azerite.shrouded_suffocation.enabled&cooldown.vanish.up)&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&(!exsanguinated||remains<=tick_time*2&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&!ss_buffed&(target.time_to_die-remains)>4&(master_assassin_remains=0||!ticking&azerite.shrouded_suffocation.enabled)\nactions.dot+=/pool_resource,for_next=1\nactions.dot+=/garrote,cycle_targets=1,if=!variable.skip_cycle_garrote&refreshable&combo_points.deficit>=1+3*(azerite.shrouded_suffocation.enabled&cooldown.vanish.up)&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&(!exsanguinated||remains<=tick_time*2&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&!ss_buffed&(target.time_to_die-remains)>12&(master_assassin_remains=0||!ticking&azerite.shrouded_suffocation.enabled)\n# Crimson Tempest on multiple targets at 4+ CP when running out in 2s (up to 4 targets) or 3s (5+ targets)\nactions.dot+=/crimson_tempest,if=spell_targets>=2&remains<2+(spell_targets>=5)&combo_points>=4\n# Keep up Rupture at 4+ on all targets (when living long enough and not snapshot)\nactions.dot+=/rupture,if=!variable.skip_rupture&(combo_points>=4&refreshable||!ticking&(time>10||combo_points>=2))&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&(!exsanguinated||remains<=tick_time*2&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&target.time_to_die-remains>4\nactions.dot+=/rupture,cycle_targets=1,if=!variable.skip_cycle_rupture&!variable.skip_rupture&combo_points>=4&refreshable&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&(!exsanguinated||remains<=tick_time*2&spell_targets.fan_of_knives>=3+azerite.shrouded_suffocation.enabled)&target.time_to_die-remains>4\n# Crimson Tempest on ST if in pandemic and it will do less damage than Envenom due to TB/MA/TtK\nactions.dot+=/crimson_tempest,if=spell_targets=1&combo_points>=(cp_max_spend-1)&refreshable&!exsanguinated&!debuff.shiv.up&master_assassin_remains=0&!azerite.twist_the_knife.enabled&target.time_to_die-remains>4\nactions.dot+=/sepsis\n\n# Essences\nactions.essences=concentrated_flame,if=energy.time_to_max>1&!debuff.vendetta.up&(!dot.concentrated_flame_burn.ticking&!action.concentrated_flame.in_flight||full_recharge_time<gcd.max)\n# Always use Blood with Vendetta up. Hold for Exsanguinate. Use with TB up before a finisher as long as it runs for 10s during Vendetta.\nactions.essences+=/blood_of_the_enemy,if=debuff.vendetta.up&(exsanguinated.garrote||debuff.shiv.up&combo_points.deficit<=1||debuff.vendetta.remains<=10)||fight_remains<=10\n# Attempt to align Guardian with Vendetta as long as it won't result in losing a full-value cast over the remaining duration of the fight\nactions.essences+=/guardian_of_azeroth,if=cooldown.vendetta.remains<3||debuff.vendetta.up||fight_remains<30\nactions.essences+=/guardian_of_azeroth,if=floor((fight_remains-30)%cooldown)>floor((fight_remains-30-cooldown.vendetta.remains)%cooldown)\nactions.essences+=/focused_azerite_beam,if=spell_targets.fan_of_knives>=2||raid_event.adds.in>60&energy<70\nactions.essences+=/purifying_blast,if=spell_targets.fan_of_knives>=2||raid_event.adds.in>60\nactions.essences+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.essences+=/ripple_in_space\nactions.essences+=/worldvein_resonance\nactions.essences+=/memory_of_lucid_dreams,if=energy<50&!cooldown.vendetta.up\n# Hold Reaping Flames for execute range or kill buffs, if possible. Always try to get the lowest cooldown based on available enemies.\nactions.essences+=/reaping_flames,cycle_targets=1,if=target.time_to_die<1.5||((target.health.pct>80||target.health.pct<=20)&(active_enemies=1||target.time_to_die>29))||(target.time_to_pct_20>30&(active_enemies=1||target.time_to_die>44))\n\n# Stealthed Actions\n# Nighstalker on 1T: Snapshot Rupture\nactions.stealthed=rupture,if=talent.nightstalker.enabled&combo_points>=4&target.time_to_die-remains>6\n# Subterfuge + Shrouded Suffocation: Ensure we use one global to apply Garrote to the main target if it is not snapshot yet, so all other main target abilities profit.\nactions.stealthed+=/pool_resource,for_next=1\nactions.stealthed+=/garrote,if=azerite.shrouded_suffocation.enabled&buff.subterfuge.up&buff.subterfuge.remains<1.3&!ss_buffed\n# Subterfuge: Apply or Refresh with buffed Garrotes\nactions.stealthed+=/pool_resource,for_next=1\nactions.stealthed+=/garrote,cycle_targets=1,if=talent.subterfuge.enabled&(remains<12||pmultiplier<=1)&target.time_to_die-remains>2\n# Subterfuge + Shrouded Suffocation in ST: Apply early Rupture that will be refreshed for pandemic\nactions.stealthed+=/rupture,if=talent.subterfuge.enabled&azerite.shrouded_suffocation.enabled&!dot.rupture.ticking&variable.single_target\n# Subterfuge w/ Shrouded Suffocation: Reapply for bonus CP and/or extended snapshot duration.\nactions.stealthed+=/pool_resource,for_next=1\nactions.stealthed+=/garrote,cycle_targets=1,if=talent.subterfuge.enabled&azerite.shrouded_suffocation.enabled&(active_enemies>1||!talent.exsanguinate.enabled)&target.time_to_die>remains&(remains<18||!ss_buffed)\n# Subterfuge + Exsg on 1T: Refresh Garrote at the end of stealth to get max duration before Exsanguinate\nactions.stealthed+=/pool_resource,for_next=1\nactions.stealthed+=/garrote,if=talent.subterfuge.enabled&talent.exsanguinate.enabled&active_enemies=1&buff.subterfuge.remains<1.3",
},
},
},
["Quildra - Deathwing"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetRogueMfDOption_20200226"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[255] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["use_harpoon"] = true,
["ca_vop_overlap"] = false,
},
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Survival",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
[254] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["trueshot_vop_overlap"] = false,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Marksmanship",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["throttleTime"] = false,
["damageRange"] = 0,
},
[253] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["aspect_vop_overlap"] = false,
["barbed_shot_grace_period"] = 0.5,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["buffPadding"] = 0,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Beast Mastery",
["damage"] = true,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 3,
["throttleTime"] = false,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Marksmanship"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200401,
["author"] = "SimC",
["desc"] = "# Marksmanship Hunter\n# https://github.com/simulationcraft/simc/\n# March 30, 2020\n\n# Changes:\n# - Add utility priority to APL.\n# - Use time_to_die rather than target.time_to_die to anticipate end of combat.",
["lists"] = {
["trickshots"] = {
{
["action"] = "barrage",
["enabled"] = true,
}, -- [1]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ca_execute & buff.double_tap.up",
["action"] = "aimed_shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ( azerite.focused_fire.enabled || azerite.in_the_rhythm.rank > 1 || azerite.surging_shots.enabled || talent.streamline.enabled )",
["action"] = "rapid_fire",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ( buff.precise_shots.down || cooldown.aimed_shot.full_recharge_time < action.aimed_shot.cast_time || buff.trueshot.up )",
["action"] = "aimed_shot",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up",
["action"] = "rapid_fire",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.down || buff.precise_shots.up & ! buff.trueshot.up || focus > 70",
["action"] = "multishot",
}, -- [7]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [8]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [9]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [10]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [12]
{
["action"] = "piercing_shot",
["enabled"] = true,
}, -- [13]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "refreshable & ! action.serpent_sting.in_flight",
["action"] = "serpent_sting",
}, -- [15]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [16]
},
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains_guess < 15 || time_to_die < 30",
["name"] = "lurkers_insidious_gift",
["action"] = "lurkers_insidious_gift",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( time_to_die > action_cooldown + 34 || target.health.pct < 20 || target.time_to_pct_20 < 15 ) & cooldown.trueshot.remains_guess < 15 || time_to_die < 35",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains_guess < 5 || time_to_die < 20",
["name"] = "lustrous_golden_plumage",
["action"] = "lustrous_golden_plumage",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot || ! talent.calling_the_shots.enabled || time_to_die < 10",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( buff.guardian_of_azeroth.up || ! essence.condensed_lifeforce.major & ca_execute ) || debuff.razor_coral_debuff.down || time_to_die < 20",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up & ! essence.blood_of_the_enemy.major || debuff.blood_of_the_enemy.up || time_to_die < 5",
["name"] = "pocketsized_computation_device",
["action"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot || ! talent.calling_the_shots.enabled || time_to_die < 20",
["action"] = "use_items",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3",
["list_name"] = "st",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 2",
["list_name"] = "trickshots",
}, -- [11]
},
["precombat"] = {
{
["action"] = "hunters_mark",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["precast_time"] = "10",
["action"] = "double_tap",
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [4]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [5]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "trueshot",
["criteria"] = "active_enemies > 2",
}, -- [7]
{
["action"] = "potion",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "aimed_shot",
}, -- [9]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "debuff.hunters_mark.down & ! buff.trueshot.up",
["action"] = "hunters_mark",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.rapid_fire.remains < gcd || cooldown.rapid_fire.remains < cooldown.aimed_shot.remains || time_to_die < 20",
["action"] = "double_tap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.berserking.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 13",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.blood_fury.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 16",
["action"] = "blood_fury",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.ancestral_call.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 16",
["action"] = "ancestral_call",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.fireblood.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 9",
["action"] = "fireblood",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "lights_judgment",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & ( target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30 )",
["action"] = "reaping_flames",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( cooldown.azsharas_font_of_power.remains > 20 || ! equipped.azsharas_font_of_power || time_to_die < cooldown.azsharas_font_of_power.duration + 34 & target.health.pct > 20 ) & ( cooldown.trueshot.remains_guess < 3 || ( essence.vision_of_perfection.minor & time_to_die > action_cooldown + buff.worldvein_resonance.duration ) ) || time_to_die < 20",
["action"] = "worldvein_resonance",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( ca_execute || target.time_to_die > action_cooldown + 30 ) & ( buff.trueshot.up || cooldown.trueshot.remains < 16 ) || time_to_die < 31",
["action"] = "guardian_of_azeroth",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains < 7",
["action"] = "ripple_in_space",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up",
["action"] = "memory_of_lucid_dreams",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.react & buff.bloodlust.react || prev_gcd.1.trueshot & target.health.pct < 20 || ( ( consumable.potion_of_unbridled_fury || consumable.unbridled_fury ) & target.time_to_die < 61 || time_to_die < 26 )",
["action"] = "potion",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & cooldown.rapid_fire.remains || time_to_die < 15",
["action"] = "trueshot",
}, -- [15]
},
["st"] = {
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "barrage",
}, -- [2]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable & ! action.serpent_sting.in_flight",
["action"] = "serpent_sting",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down || focus < 35 || focus < 60 & ! talent.lethal_shots.enabled || buff.in_the_rhythm.remains < execute_time",
["action"] = "rapid_fire",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & ( buff.unerring_vision.stack > 4 || ! azerite.unerring_vision.enabled ) || time_to_die < 11",
["action"] = "blood_of_the_enemy",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up || time_to_die < 5",
["action"] = "focused_azerite_beam",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & buff.master_marksman.up & ! buff.memory_of_lucid_dreams.up",
["action"] = "arcane_shot",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || ( buff.double_tap.down || ca_execute ) & buff.precise_shots.down || full_recharge_time < cast_time & cooldown.trueshot.remains",
["action"] = "aimed_shot",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & buff.master_marksman.up & buff.memory_of_lucid_dreams.up",
["action"] = "arcane_shot",
}, -- [10]
{
["action"] = "piercing_shot",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up || time_to_die < 8",
["action"] = "purifying_blast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "focus + focus.regen * gcd < focus.max & buff.trueshot.down & ( ! dot.concentrated_flame_burn.remains & ! action.concentrated_flame.in_flight ) || full_recharge_time < gcd || target.time_to_die < 5",
["action"] = "concentrated_flame",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10 || time_to_die < 5",
["action"] = "the_unbound_force",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & ( buff.precise_shots.up & ( focus > 55 || buff.master_marksman.up ) || focus > 75 || time_to_die < 5 )",
["action"] = "arcane_shot",
}, -- [15]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [16]
},
["utility"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200401,
["warnings"] = "Imported 6 action lists.\n",
["profile"] = "# Marksmanship Hunter\n# https://github.com/simulationcraft/simc/\n# March 30, 2020\n\n# Changes:\n# - Add utility priority to APL.\n# - Use time_to_die rather than target.time_to_die to anticipate end of combat.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/hunters_mark\n# Precast this as early as possible to potentially gain another cast during the fight.\nactions.precombat+=/double_tap,precast_time=10\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/trueshot,precast_time=1.5,if=active_enemies>2\nactions.precombat+=/potion\nactions.precombat+=/aimed_shot,if=active_enemies<3\n\nactions.utility=counter_shot\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_item,name=lurkers_insidious_gift,if=cooldown.trueshot.remains_guess<15||time_to_die<30\nactions+=/use_item,name=azsharas_font_of_power,if=(time_to_die>cooldown+34||target.health.pct<20||target.time_to_pct_20<15)&cooldown.trueshot.remains_guess<15||time_to_die<35\nactions+=/use_item,name=lustrous_golden_plumage,if=cooldown.trueshot.remains_guess<5||time_to_die<20\nactions+=/use_item,name=galecallers_boon,if=prev_gcd.1.trueshot||!talent.calling_the_shots.enabled||time_to_die<10\nactions+=/use_item,name=ashvanes_razor_coral,if=prev_gcd.1.trueshot&(buff.guardian_of_azeroth.up||!essence.condensed_lifeforce.major&ca_execute)||debuff.razor_coral_debuff.down||time_to_die<20\nactions+=/use_item,name=pocketsized_computation_device,if=!buff.trueshot.up&!essence.blood_of_the_enemy.major||debuff.blood_of_the_enemy.up||time_to_die<5\n# Try to line up activated trinkets with Trueshot\nactions+=/use_items,if=prev_gcd.1.trueshot||!talent.calling_the_shots.enabled||time_to_die<20\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<3\nactions+=/call_action_list,name=trickshots,if=active_enemies>2\n\nactions.cds=hunters_mark,if=debuff.hunters_mark.down&!buff.trueshot.up\nactions.cds+=/double_tap,if=cooldown.rapid_fire.remains<gcd||cooldown.rapid_fire.remains<cooldown.aimed_shot.remains||time_to_die<20\nactions.cds+=/berserking,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.berserking.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<13\nactions.cds+=/blood_fury,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.blood_fury.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<16\nactions.cds+=/ancestral_call,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.ancestral_call.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<16\nactions.cds+=/fireblood,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.fireblood.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<9\nactions.cds+=/lights_judgment,if=buff.trueshot.down\nactions.cds+=/bag_of_tricks,if=buff.trueshot.down\nactions.cds+=/reaping_flames,if=buff.trueshot.down&(target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30)\nactions.cds+=/worldvein_resonance,if=(cooldown.azsharas_font_of_power.remains>20||!equipped.azsharas_font_of_power||time_to_die<cooldown.azsharas_font_of_power.duration+34&target.health.pct>20)&(cooldown.trueshot.remains_guess<3||(essence.vision_of_perfection.minor&time_to_die>cooldown+buff.worldvein_resonance.duration))||time_to_die<20\nactions.cds+=/guardian_of_azeroth,if=(ca_execute||target.time_to_die>cooldown+30)&(buff.trueshot.up||cooldown.trueshot.remains<16)||time_to_die<31\nactions.cds+=/ripple_in_space,if=cooldown.trueshot.remains<7\nactions.cds+=/memory_of_lucid_dreams,if=!buff.trueshot.up\nactions.cds+=/potion,if=buff.trueshot.react&buff.bloodlust.react||prev_gcd.1.trueshot&target.health.pct<20||((consumable.potion_of_unbridled_fury||consumable.unbridled_fury)&target.time_to_die<61||time_to_die<26)\nactions.cds+=/trueshot,if=buff.trueshot.down&cooldown.rapid_fire.remains||time_to_die<15\n\nactions.st=explosive_shot\nactions.st+=/barrage,if=active_enemies>1\nactions.st+=/a_murder_of_crows\nactions.st+=/serpent_sting,if=refreshable&!action.serpent_sting.in_flight\nactions.st+=/rapid_fire,if=buff.trueshot.down||focus<35||focus<60&!talent.lethal_shots.enabled||buff.in_the_rhythm.remains<execute_time\n# if=buff.trueshot.up&(buff.unerring_vision.stack>4||!azerite.unerring_vision.enabled)||target.time_to_die<11\nactions.st+=/blood_of_the_enemy,if=buff.trueshot.up&(buff.unerring_vision.stack>4||!azerite.unerring_vision.enabled)||time_to_die<11\nactions.st+=/focused_azerite_beam,if=!buff.trueshot.up||time_to_die<5\nactions.st+=/arcane_shot,if=buff.trueshot.up&buff.master_marksman.up&!buff.memory_of_lucid_dreams.up\nactions.st+=/aimed_shot,if=buff.trueshot.up||(buff.double_tap.down||ca_execute)&buff.precise_shots.down||full_recharge_time<cast_time&cooldown.trueshot.remains\nactions.st+=/arcane_shot,if=buff.trueshot.up&buff.master_marksman.up&buff.memory_of_lucid_dreams.up\nactions.st+=/piercing_shot\nactions.st+=/purifying_blast,if=!buff.trueshot.up||time_to_die<8\nactions.st+=/concentrated_flame,if=focus+focus.regen*gcd<focus.max&buff.trueshot.down&(!dot.concentrated_flame_burn.remains&!action.concentrated_flame.in_flight)||full_recharge_time<gcd||target.time_to_die<5\nactions.st+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10||time_to_die<5\nactions.st+=/arcane_shot,if=buff.trueshot.down&(buff.precise_shots.up&(focus>55||buff.master_marksman.up)||focus>75||time_to_die<5)\nactions.st+=/steady_shot\n\nactions.trickshots=barrage\nactions.trickshots+=/explosive_shot\nactions.trickshots+=/aimed_shot,if=buff.trick_shots.up&ca_execute&buff.double_tap.up\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.up&(azerite.focused_fire.enabled||azerite.in_the_rhythm.rank>1||azerite.surging_shots.enabled||talent.streamline.enabled)\nactions.trickshots+=/aimed_shot,if=buff.trick_shots.up&(buff.precise_shots.down||cooldown.aimed_shot.full_recharge_time<action.aimed_shot.cast_time||buff.trueshot.up)\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.up\nactions.trickshots+=/multishot,if=buff.trick_shots.down||buff.precise_shots.up&!buff.trueshot.up||focus>70\nactions.trickshots+=/focused_azerite_beam\nactions.trickshots+=/purifying_blast\nactions.trickshots+=/concentrated_flame\nactions.trickshots+=/blood_of_the_enemy\nactions.trickshots+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.trickshots+=/piercing_shot\nactions.trickshots+=/a_murder_of_crows\nactions.trickshots+=/serpent_sting,if=refreshable&!action.serpent_sting.in_flight\nactions.trickshots+=/steady_shot",
["spec"] = 254,
},
["Beast Mastery"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["author"] = "SimC",
["desc"] = "# Beast Mastery Hunter\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Counter Shot to default action list.\n# - Use time_to_die (vs. target.time_to_die) to anticipate end of encounter.\n# - Add dispels/purges via utility action list.\n# - trinket.X.has_cooldown is unsupported.\n# - Check for crit_pct_current.",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.aspect_of_the_wild || time_to_die < 20",
["action"] = "use_items",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains_guess < 15 & time_to_die > 10",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.up & ( ! equipped.azsharas_font_of_power || cooldown.azsharas_font_of_power.remains > 86 || essence.blood_of_the_enemy.major ) & ( prev_gcd.1.aspect_of_the_wild || ! equipped.cyclotronic_blast & buff.aspect_of_the_wild.remains > 9 ) & ( ! essence.condensed_lifeforce.major || buff.guardian_of_azeroth.up ) & ( target.health.pct < 35 || ! essence.condensed_lifeforce.major || ! talent.killer_instinct.enabled ) || ( debuff.razor_coral_debuff.down || time_to_die < 26 ) & time_to_die > ( 24 * ( cooldown.cyclotronic_blast.remains + 4 < time_to_die ) )",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.remains > 10 || cooldown.aspect_of_the_wild.remains > 45 || time_to_die < 11",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 5",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 2",
["list_name"] = "st",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1",
["list_name"] = "cleave",
}, -- [9]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists & ( equipped.variable_intensity_gigavolt_oscillating_reactor )",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists & ( trinket.1.has_cooldown + trinket.2.has_cooldown < 2 || equipped.variable_intensity_gigavolt_oscillating_reactor )",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists",
["action"] = "focused_azerite_beam",
}, -- [8]
{
["enabled"] = true,
["precast_time"] = "1.3",
["action"] = "aspect_of_the_wild",
["criteria"] = "! azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [9]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "bestial_wrath",
["criteria"] = "azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [10]
{
["action"] = "potion",
["enabled"] = true,
}, -- [11]
},
["cleave"] = {
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + barbed_shot_grace_period",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "gcd.max - buff.beast_cleave.remains > 0.25",
["action"] = "multishot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max & cooldown.bestial_wrath.remains",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [3]
{
["action"] = "aspect_of_the_wild",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & buff.bestial_wrath.up || time_to_die < 15",
["action"] = "stampede",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains_guess > 20 || talent.one_with_the_pack.enabled || time_to_die < 15",
["action"] = "bestial_wrath",
}, -- [6]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [7]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [8]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies < 4 || ! azerite.rapid_reload.enabled",
["action"] = "kill_command",
}, -- [10]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.down & ( charges_fractional > 1.8 || buff.bestial_wrath.up ) || cooldown.aspect_of_the_wild.remains < buff.frenzy.duration - gcd & azerite.primal_instincts.enabled || charges_fractional > 1.4 || time_to_die < 9",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [12]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [13]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [14]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "azerite.rapid_reload.enabled & active_enemies > 2",
["action"] = "multishot",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.kill_command.remains > focus.time_to_max & ( active_enemies < 3 || ! azerite.rapid_reload.enabled )",
["action"] = "cobra_shot",
}, -- [18]
{
["action"] = "spitting_cobra",
["enabled"] = true,
}, -- [19]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "ancestral_call",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "fireblood",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "focus < focus.max & ( raid_event.adds.remains > 90 || ! raid_event.adds.exists || active_enemies > 1 )",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & ( time_to_die > cooldown.berserking.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || time_to_die < 13",
["action"] = "berserking",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & ( time_to_die > cooldown.blood_fury.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || time_to_die < 16",
["action"] = "blood_fury",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains > gcd.max || ! buff.frenzy.up",
["action"] = "lights_judgment",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.up & buff.aspect_of_the_wild.up & target.health.pct < 35 || ( ( consumable.potion_of_unbridled_fury || consumable.unbridled_fury ) & time_to_die < 61 || time_to_die < 26 )",
["action"] = "potion",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.aspect_of_the_wild || cooldown.aspect_of_the_wild.remains < gcd || target.time_to_die < 20 ) || ! essence.vision_of_perfection.minor",
["action"] = "worldvein_resonance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains < 10 || time_to_die > action.guardian_of_azeroth.cooldown + 30 || time_to_die < 30",
["action"] = "guardian_of_azeroth",
}, -- [9]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [10]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30",
["action"] = "reaping_flames",
}, -- [12]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains < gcd + barbed_shot_grace_period || cooldown.bestial_wrath.remains & ( full_recharge_time < gcd || azerite.primal_instincts.enabled & cooldown.aspect_of_the_wild.remains < gcd )",
["action"] = "barbed_shot",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + focus.regen * gcd < focus.max & buff.bestial_wrath.down & ( ! dot.concentrated_flame_burn.remains & ! action.concentrated_flame.in_flight ) || full_recharge_time < gcd || time_to_die < 5",
["action"] = "concentrated_flame",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.down & ( cooldown.barbed_shot.charges < 1 || ! azerite.primal_instincts.enabled )",
["action"] = "aspect_of_the_wild",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & buff.bestial_wrath.up || time_to_die < 15",
["action"] = "stampede",
}, -- [4]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 5",
["action"] = "focused_azerite_beam",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10 || time_to_die < 5",
["action"] = "the_unbound_force",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.one_with_the_pack.enabled & buff.bestial_wrath.remains < gcd || buff.bestial_wrath.down & cooldown.aspect_of_the_wild.remains > 15 || time_to_die < 15 + gcd",
["action"] = "bestial_wrath",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "azerite.dance_of_death.rank > 1 & buff.dance_of_death.remains < gcd",
["action"] = "barbed_shot",
}, -- [9]
{
["action"] = "kill_command",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "bag_of_tricks",
}, -- [11]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [12]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.one_with_the_pack.enabled & charges_fractional > 1.5 || charges_fractional > 1.8 || cooldown.aspect_of_the_wild.remains < buff.frenzy.duration - gcd & azerite.primal_instincts.enabled || time_to_die < 9",
["action"] = "barbed_shot",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 8",
["action"] = "purifying_blast",
}, -- [15]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [16]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "( focus - cost + focus.regen * ( cooldown.kill_command.remains - 1 ) > action.kill_command.cost || cooldown.kill_command.remains > 1 + gcd & cooldown.bestial_wrath.remains_guess > focus.time_to_max || buff.memory_of_lucid_dreams.up ) & cooldown.kill_command.remains > 1 || time_to_die < 3",
["action"] = "cobra_shot",
}, -- [18]
{
["action"] = "spitting_cobra",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.duration - gcd > full_recharge_time",
["action"] = "barbed_shot",
}, -- [20]
},
["utility"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200614,
["warnings"] = "WARNING: The import for 'default' required some automated changes.\nLine 4: Converted 'trinket.X.cooldown' to 'cooldown.X' (1x).\n\nWARNING: The import for 'cleave' required some automated changes.\nLine 1: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 2: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 12: Converted 'pet.X.Y...' to 'Y...' (2x).\n\nWARNING: The import for 'cds' required some automated changes.\nLine 6: Converted 'pet.X.Y...' to 'Y...' (3x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 1: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 14: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 20: Converted 'pet.X.Y...' to 'Y...' (1x).\n\nImported 6 action lists.\n",
["spec"] = 253,
["profile"] = "# Beast Mastery Hunter\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Counter Shot to default action list.\n# - Use time_to_die (vs. target.time_to_die) to anticipate end of encounter.\n# - Add dispels/purges via utility action list.\n# - trinket.X.has_cooldown is unsupported.\n# - Check for crit_pct_current.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\nactions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists&(equipped.variable_intensity_gigavolt_oscillating_reactor)\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists&(trinket.1.has_cooldown+trinket.2.has_cooldown<2||equipped.variable_intensity_gigavolt_oscillating_reactor)\nactions.precombat+=/focused_azerite_beam,if=!raid_event.invulnerable.exists\n# Adjusts the duration and cooldown of Aspect of the Wild and Primal Instincts by the duration of an unhasted GCD when they're used precombat. Because Aspect of the Wild reduces GCD by 200ms, this is 1.3 seconds. \nactions.precombat+=/aspect_of_the_wild,precast_time=1.3,if=!azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\n# Adjusts the duration and cooldown of Bestial Wrath and Haze of Rage by the duration of an unhasted GCD when they're used precombat.\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\nactions.precombat+=/potion\n\nactions.utility=counter_shot\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_items,if=prev_gcd.1.aspect_of_the_wild||time_to_die<20\nactions+=/use_item,name=azsharas_font_of_power,if=cooldown.aspect_of_the_wild.remains_guess<15&time_to_die>10\nactions+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.up&(!equipped.azsharas_font_of_power||trinket.azsharas_font_of_power.cooldown.remains>86||essence.blood_of_the_enemy.major)&(prev_gcd.1.aspect_of_the_wild||!equipped.cyclotronic_blast&buff.aspect_of_the_wild.remains>9)&(!essence.condensed_lifeforce.major||buff.guardian_of_azeroth.up)&(target.health.pct<35||!essence.condensed_lifeforce.major||!talent.killer_instinct.enabled)||(debuff.razor_coral_debuff.down||time_to_die<26)&time_to_die>(24*(cooldown.cyclotronic_blast.remains+4<time_to_die))\nactions+=/use_item,name=galecallers_boon,if=buff.aspect_of_the_wild.remains>10||cooldown.aspect_of_the_wild.remains>45||time_to_die<11\nactions+=/use_item,effect_name=cyclotronic_blast,if=buff.bestial_wrath.down||time_to_die<5\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<2\nactions+=/call_action_list,name=cleave,if=active_enemies>1\n\nactions.cds=ancestral_call,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/fireblood,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/blood_of_the_enemy,if=focus<focus.max&(raid_event.adds.remains>90||!raid_event.adds.exists||active_enemies>1)\nactions.cds+=/berserking,if=buff.aspect_of_the_wild.up&(time_to_die>cooldown.berserking.duration+duration||(target.health.pct<35||!talent.killer_instinct.enabled))||time_to_die<13\nactions.cds+=/blood_fury,if=buff.aspect_of_the_wild.up&(time_to_die>cooldown.blood_fury.duration+duration||(target.health.pct<35||!talent.killer_instinct.enabled))||time_to_die<16\nactions.cds+=/lights_judgment,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains>gcd.max||!pet.cat.buff.frenzy.up\nactions.cds+=/potion,if=buff.bestial_wrath.up&buff.aspect_of_the_wild.up&target.health.pct<35||((consumable.potion_of_unbridled_fury||consumable.unbridled_fury)&time_to_die<61||time_to_die<26)\nactions.cds+=/worldvein_resonance,if=(prev_gcd.1.aspect_of_the_wild||cooldown.aspect_of_the_wild.remains<gcd||target.time_to_die<20)||!essence.vision_of_perfection.minor\nactions.cds+=/guardian_of_azeroth,if=cooldown.aspect_of_the_wild.remains<10||time_to_die>action.guardian_of_azeroth.cooldown+30||time_to_die<30\nactions.cds+=/ripple_in_space\nactions.cds+=/memory_of_lucid_dreams\n# actions.cds+=/bag_of_tricks\nactions.cds+=/reaping_flames,if=target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30\n\nactions.cleave=barbed_shot,cycle_targets=1,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains<=gcd.max+barbed_shot_grace_period\nactions.cleave+=/multishot,if=gcd.max-pet.cat.buff.beast_cleave.remains>0.25\nactions.cleave+=/barbed_shot,cycle_targets=1,if=full_recharge_time<gcd.max&cooldown.bestial_wrath.remains\nactions.cleave+=/aspect_of_the_wild\nactions.cleave+=/stampede,if=buff.aspect_of_the_wild.up&buff.bestial_wrath.up||time_to_die<15\nactions.cleave+=/bestial_wrath,if=cooldown.aspect_of_the_wild.remains_guess>20||talent.one_with_the_pack.enabled||time_to_die<15\nactions.cleave+=/chimaera_shot\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/barrage\nactions.cleave+=/kill_command,if=active_enemies<4||!azerite.rapid_reload.enabled\nactions.cleave+=/dire_beast\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.cat.buff.frenzy.down&(charges_fractional>1.8||buff.bestial_wrath.up)||cooldown.aspect_of_the_wild.remains<pet.cat.buff.frenzy.duration-gcd&azerite.primal_instincts.enabled||charges_fractional>1.4||time_to_die<9\nactions.cleave+=/focused_azerite_beam\nactions.cleave+=/purifying_blast\nactions.cleave+=/concentrated_flame\nactions.cleave+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.cleave+=/multishot,if=azerite.rapid_reload.enabled&active_enemies>2\nactions.cleave+=/cobra_shot,if=cooldown.kill_command.remains>focus.time_to_max&(active_enemies<3||!azerite.rapid_reload.enabled)\nactions.cleave+=/spitting_cobra\n\nactions.st=barbed_shot,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains<gcd+barbed_shot_grace_period||cooldown.bestial_wrath.remains&(full_recharge_time<gcd||azerite.primal_instincts.enabled&cooldown.aspect_of_the_wild.remains<gcd)\nactions.st+=/concentrated_flame,if=focus+focus.regen*gcd<focus.max&buff.bestial_wrath.down&(!dot.concentrated_flame_burn.remains&!action.concentrated_flame.in_flight)||full_recharge_time<gcd||time_to_die<5\nactions.st+=/aspect_of_the_wild,if=buff.aspect_of_the_wild.down&(cooldown.barbed_shot.charges<1||!azerite.primal_instincts.enabled)\nactions.st+=/stampede,if=buff.aspect_of_the_wild.up&buff.bestial_wrath.up||time_to_die<15\nactions.st+=/a_murder_of_crows\nactions.st+=/focused_azerite_beam,if=buff.bestial_wrath.down||time_to_die<5\nactions.st+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10||time_to_die<5\nactions.st+=/bestial_wrath,if=talent.one_with_the_pack.enabled&buff.bestial_wrath.remains<gcd||buff.bestial_wrath.down&cooldown.aspect_of_the_wild.remains>15||time_to_die<15+gcd\nactions.st+=/barbed_shot,if=azerite.dance_of_death.rank>1&buff.dance_of_death.remains<gcd\nactions.st+=/kill_command\nactions.st+=/bag_of_tricks,if=buff.bestial_wrath.down||target.time_to_die<5\nactions.st+=/chimaera_shot\nactions.st+=/dire_beast\nactions.st+=/barbed_shot,if=talent.one_with_the_pack.enabled&charges_fractional>1.5||charges_fractional>1.8||cooldown.aspect_of_the_wild.remains<pet.cat.buff.frenzy.duration-gcd&azerite.primal_instincts.enabled||time_to_die<9\nactions.st+=/purifying_blast,if=buff.bestial_wrath.down||time_to_die<8\nactions.st+=/blood_of_the_enemy\nactions.st+=/barrage\nactions.st+=/cobra_shot,if=(focus-cost+focus.regen*(cooldown.kill_command.remains-1)>action.kill_command.cost||cooldown.kill_command.remains>1+gcd&cooldown.bestial_wrath.remains_guess>focus.time_to_max||buff.memory_of_lucid_dreams.up)&cooldown.kill_command.remains>1||time_to_die<3\nactions.st+=/spitting_cobra\nactions.st+=/barbed_shot,if=pet.cat.buff.frenzy.duration-gcd>full_recharge_time",
},
["Survival"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200525,
["author"] = "SimulationCraft",
["desc"] = "# Survival Hunter\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Added Muzzle to default action list.\n# - Changed target_if expressions to cycle_targets.\n# - Modified carve_cdr to work more easily with the addon's implementation of variable.\n# - Added utility APL.",
["lists"] = {
["apst"] = {
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "mongoose_bite",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "raptor_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ! ticking & ! buff.memory_of_lucid_dreams.up & ( full_recharge_time < 1.5 * gcd || ! dot.wildfire_bomb.ticking & ! buff.coordinated_assault.up || ! dot.wildfire_bomb.ticking & buff.mongoose_fury.stack < 1 ) || time_to_die < 18 & ! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! dot.serpent_sting.ticking & ! buff.coordinated_assault.up",
["action"] = "serpent_sting",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( buff.mongoose_fury.stack < 5 || focus < action.mongoose_bite.cost )",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "refreshable & ! buff.coordinated_assault.up & buff.mongoose_fury.stack < 5",
["action"] = "serpent_sting",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "a_murder_of_crows",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + cast_regen > focus.max - 10 || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [12]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "wildfire_bomb",
}, -- [14]
},
["cleave"] = {
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "carve_cdr",
["value"] = "active_enemies",
["value_else"] = "5",
["criteria"] = "active_enemies < 5",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "azerite.blur_of_talons.rank > 0 & ( buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd || buff.coordinated_assault.remains & ! buff.blur_of_talons.remains ) )",
["action"] = "mongoose_bite",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "debuff.latent_poison.stack > ( active_enemies || 9 ) & target.time_to_die < active_enemies * gcd",
["action"] = "mongoose_bite",
["target_if"] = "",
}, -- [3]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [4]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking & ! talent.hydras_bite.enabled || dot.shrapnel_bomb.ticking & active_enemies > 5",
["action"] = "carve",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.guerrilla_tactics.enabled || full_recharge_time < gcd || raid_event.adds.remains < 6 & raid_event.adds.exists",
["action"] = "wildfire_bomb",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "charges_fractional > 2.5 || dot.shrapnel_bomb.ticking || cooldown.wildfire_bomb.remains > active_enemies - gcd || debuff.blood_of_the_enemy.remains || raid_event.adds.remains < 5 & raid_event.adds.exists",
["action"] = "butchery",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "debuff.latent_poison.stack > 8",
["action"] = "mongoose_bite",
["target_if"] = "",
}, -- [9]
{
["action"] = "chakrams",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.guerrilla_tactics.enabled",
["action"] = "carve",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.remains > ( active_enemies || 5 )",
["action"] = "butchery",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable || talent.wildfire_infusion.enabled",
["action"] = "wildfire_bomb",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.react",
["action"] = "serpent_sting",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.remains > variable.carve_cdr % 2",
["action"] = "carve",
}, -- [18]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "refreshable & buff.tip_of_the_spear.stack < 3 & next_wi_bomb.volatile || refreshable & azerite.latent_poison.rank > 0",
["action"] = "serpent_sting",
["cycle_targets"] = 1,
}, -- [20]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [22]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "raptor_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "mongoose_bite",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & buff.vipers_venom.remains < 1 * gcd",
["action"] = "serpent_sting",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & refreshable & full_recharge_time < gcd & ! buff.memory_of_lucid_dreams.up || focus + cast_regen < focus.max & ( ! dot.wildfire_bomb.ticking & ( ! buff.coordinated_assault.up || buff.mongoose_fury.stack < 1 || time_to_die < 18 || ! dot.wildfire_bomb.ticking & azerite.wilderness_survival.rank > 0 ) ) & ! buff.memory_of_lucid_dreams.up",
["action"] = "wildfire_bomb",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & dot.serpent_sting.remains < 4 * gcd || dot.serpent_sting.refreshable & ! buff.coordinated_assault.up",
["action"] = "serpent_sting",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "a_murder_of_crows",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + cast_regen > focus.max - 20 & talent.vipers_venom.enabled || focus + cast_regen > focus.max - 1 & talent.terms_of_engagement.enabled || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [12]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable",
["action"] = "wildfire_bomb",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up",
["action"] = "serpent_sting",
}, -- [15]
},
["wfi"] = {
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "mongoose_bite",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "raptor_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & buff.vipers_venom.remains < 1.5 * gcd || ! dot.serpent_sting.ticking",
["action"] = "serpent_sting",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max || ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 )",
["action"] = "wildfire_bomb",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max - focus.regen",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [6]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd",
["action"] = "wildfire_bomb",
}, -- [9]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & dot.serpent_sting.remains < 4 * gcd",
["action"] = "serpent_sting",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking || buff.mongoose_fury.stack = 5",
["action"] = "mongoose_bite",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "serpent_sting",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! buff.mongoose_fury.remains",
["action"] = "chakrams",
}, -- [15]
{
["action"] = "mongoose_bite",
["enabled"] = true,
}, -- [16]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up",
["action"] = "serpent_sting",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel",
["action"] = "wildfire_bomb",
}, -- [19]
},
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_die < focus % ( action.mongoose_bite.cost - cast_regen ) * gcd",
["action"] = "mongoose_bite",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.chakrams.enabled & talent.alpha_predator.enabled",
["list_name"] = "apwfi",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.chakrams.enabled",
["list_name"] = "wfi",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & ! talent.alpha_predator.enabled & ! talent.wildfire_infusion.enabled",
["list_name"] = "st",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.alpha_predator.enabled & ! talent.wildfire_infusion.enabled",
["list_name"] = "apst",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.alpha_predator.enabled & talent.wildfire_infusion.enabled",
["list_name"] = "apwfi",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & ! talent.alpha_predator.enabled & talent.wildfire_infusion.enabled",
["list_name"] = "wfi",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2",
["list_name"] = "cleave",
}, -- [11]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [12]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [5]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "potion",
["dynamic_prepot"] = "1",
}, -- [7]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [8]
{
["action"] = "harpoon",
["enabled"] = true,
}, -- [9]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "blood_fury",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "ancestral_call",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "fireblood",
}, -- [3]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 60 || time_to_die < 13",
["action"] = "berserking",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.guardian_of_azeroth.up & ( buff.berserking.up || buff.blood_fury.up || ! race.troll ) || ( consumable.potion_of_unbridled_fury & time_to_die < 61 || time_to_die < 26 ) || ! essence.condensed_lifeforce.major & buff.coordinated_assault.up",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "target.distance >= 6",
["action"] = "aspect_of_the_eagle",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up & target.time_to_die < cooldown.memory_of_lucid_dreams.remains + 15 || buff.guardian_of_azeroth.stack = 5 & target.time_to_die < cooldown.guardian_of_azeroth.remains + 20 || debuff.razor_coral_debuff.down || target.time_to_die < 21 || buff.worldvein_resonance.remains & target.time_to_die < cooldown.worldvein_resonance.remains + 18 || ! talent.birds_of_prey.enabled & target.time_to_die < cooldown.coordinated_assault.remains + 20 & buff.coordinated_assault.remains",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.memory_of_lucid_dreams.remains || talent.wildfire_infusion.enabled & cooldown.coordinated_assault.remains || ! essence.memory_of_lucid_dreams.major & cooldown.coordinated_assault.remains",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [9]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 90 & focus < focus.max - 25 || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) & ( buff.blur_of_talons.up & buff.blur_of_talons.remains > 3 * gcd || ! buff.blur_of_talons.up )",
["action"] = "focused_azerite_beam",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( ( raid_event.adds.remains > 90 || ! raid_event.adds.exists ) || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) ) & focus < focus.max",
["action"] = "blood_of_the_enemy",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( ( raid_event.adds.remains > 60 || ! raid_event.adds.exists ) || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) ) & focus < focus.max",
["action"] = "purifying_blast",
}, -- [13]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [14]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1 * gcd",
["action"] = "concentrated_flame",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [17]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30",
["action"] = "reaping_flames",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & refreshable & buff.vipers_venom.up & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "serpent_sting",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "mongoose_bite",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & full_recharge_time < 1.5 * gcd & focus < action.mongoose_bite.cost & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "wildfire_bomb",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "focus < action.mongoose_bite.cost & buff.coordinated_assault.up",
["action"] = "memory_of_lucid_dreams",
}, -- [23]
},
["apwfi"] = {
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "mongoose_bite",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "raptor_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! dot.serpent_sting.ticking",
["action"] = "serpent_sting",
}, -- [3]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd || focus + cast_regen < focus.max & ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 )",
["action"] = "wildfire_bomb",
}, -- [5]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.remains & next_wi_bomb.pheromone",
["action"] = "mongoose_bite",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max - 20",
["action"] = "kill_command",
["target_if"] = "",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack = 3 || dot.shrapnel_bomb.ticking",
["action"] = "raptor_strike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & focus > 30 & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.mongoose_fury.remains",
["action"] = "chakrams",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "serpent_sting",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( buff.mongoose_fury.stack < 5 || focus < action.mongoose_bite.cost )",
["action"] = "kill_command",
["target_if"] = "",
}, -- [15]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus > 40 || dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel & focus > 50",
["action"] = "wildfire_bomb",
}, -- [18]
},
["utility"] = {
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200525,
["warnings"] = "WARNING: The import for 'cleave' required some automated changes.\nLine 3: Removed min:X check (not available in emulation) (1x).\nLine 9: Removed max:X check (not available in emulation) (1x).\n\nWARNING: The import for 'apwfi' required some automated changes.\nLine 8: Removed min:X check (not available in emulation) (1x).\nLine 15: Removed min:X check (not available in emulation) (1x).\n\nImported 9 action lists.\n",
["spec"] = 255,
["profile"] = "# Survival Hunter\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Added Muzzle to default action list.\n# - Changed target_if expressions to cycle_targets.\n# - Modified carve_cdr to work more easily with the addon's implementation of variable.\n# - Added utility APL.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\nactions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/coordinated_assault\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/potion,dynamic_prepot=1\nactions.precombat+=/steel_trap\nactions.precombat+=/harpoon\n\nactions.utility=muzzle\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_items\nactions+=/call_action_list,name=cds\nactions+=/mongoose_bite,if=active_enemies=1&target.time_to_die<focus%(action.mongoose_bite.cost-cast_regen)*gcd\nactions+=/call_action_list,name=apwfi,if=active_enemies<3&talent.chakrams.enabled&talent.alpha_predator.enabled\nactions+=/call_action_list,name=wfi,if=active_enemies<3&talent.chakrams.enabled\nactions+=/call_action_list,name=st,if=active_enemies<3&!talent.alpha_predator.enabled&!talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=apst,if=active_enemies<3&talent.alpha_predator.enabled&!talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=apwfi,if=active_enemies<3&talent.alpha_predator.enabled&talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=wfi,if=active_enemies<3&!talent.alpha_predator.enabled&talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=cleave,if=active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2\nactions+=/concentrated_flame\nactions+=/arcane_torrent\nactions+=/bag_of_tricks\n\nactions.apst=mongoose_bite,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.apst+=/raptor_strike,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.apst+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.apst+=/kill_command,cycle_targets=1,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max\nactions.apst+=/steel_trap,if=focus+cast_regen<focus.max\nactions.apst+=/wildfire_bomb,if=focus+cast_regen<focus.max&!ticking&!buff.memory_of_lucid_dreams.up&(full_recharge_time<1.5*gcd||!dot.wildfire_bomb.ticking&!buff.coordinated_assault.up||!dot.wildfire_bomb.ticking&buff.mongoose_fury.stack<1)||time_to_die<18&!dot.wildfire_bomb.ticking\nactions.apst+=/serpent_sting,if=!dot.serpent_sting.ticking&!buff.coordinated_assault.up\nactions.apst+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&(buff.mongoose_fury.stack<5||focus<action.mongoose_bite.cost)\nactions.apst+=/serpent_sting,if=refreshable&!buff.coordinated_assault.up&buff.mongoose_fury.stack<5\nactions.apst+=/a_murder_of_crows,if=!buff.coordinated_assault.up\nactions.apst+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.apst+=/mongoose_bite,if=buff.mongoose_fury.up||focus+cast_regen>focus.max-10||buff.coordinated_assault.up\nactions.apst+=/raptor_strike\nactions.apst+=/wildfire_bomb,if=!ticking\n\nactions.apwfi=mongoose_bite,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.apwfi+=/raptor_strike,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.apwfi+=/serpent_sting,if=!dot.serpent_sting.ticking\nactions.apwfi+=/a_murder_of_crows\nactions.apwfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd||focus+cast_regen<focus.max&(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)\nactions.apwfi+=/coordinated_assault\nactions.apwfi+=/mongoose_bite,if=buff.mongoose_fury.remains&next_wi_bomb.pheromone\nactions.apwfi+=/kill_command,target_if=min:bloodseeker.remains,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max-20\nactions.apwfi+=/steel_trap,if=focus+cast_regen<focus.max\nactions.apwfi+=/raptor_strike,if=buff.tip_of_the_spear.stack=3||dot.shrapnel_bomb.ticking\nactions.apwfi+=/mongoose_bite,if=dot.shrapnel_bomb.ticking\nactions.apwfi+=/wildfire_bomb,if=next_wi_bomb.shrapnel&focus>30&dot.serpent_sting.remains>5*gcd\nactions.apwfi+=/chakrams,if=!buff.mongoose_fury.remains\nactions.apwfi+=/serpent_sting,if=refreshable\nactions.apwfi+=/kill_command,target_if=min:bloodseeker.remains,if=focus+cast_regen<focus.max&(buff.mongoose_fury.stack<5||focus<action.mongoose_bite.cost)\nactions.apwfi+=/raptor_strike\nactions.apwfi+=/mongoose_bite,if=buff.mongoose_fury.up||focus>40||dot.shrapnel_bomb.ticking\nactions.apwfi+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel&focus>50\n\nactions.cds=blood_fury,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/ancestral_call,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/fireblood,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/lights_judgment\nactions.cds+=/berserking,if=cooldown.coordinated_assault.remains>60||time_to_die<13\nactions.cds+=/potion,if=buff.guardian_of_azeroth.up&(buff.berserking.up||buff.blood_fury.up||!race.troll)||(consumable.potion_of_unbridled_fury&time_to_die<61||time_to_die<26)||!essence.condensed_lifeforce.major&buff.coordinated_assault.up\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=buff.memory_of_lucid_dreams.up&target.time_to_die<cooldown.memory_of_lucid_dreams.remains+15||buff.guardian_of_azeroth.stack=5&target.time_to_die<cooldown.guardian_of_azeroth.remains+20||debuff.razor_coral_debuff.down||target.time_to_die<21||buff.worldvein_resonance.remains&target.time_to_die<cooldown.worldvein_resonance.remains+18||!talent.birds_of_prey.enabled&target.time_to_die<cooldown.coordinated_assault.remains+20&buff.coordinated_assault.remains\nactions.cds+=/use_item,name=galecallers_boon,if=cooldown.memory_of_lucid_dreams.remains||talent.wildfire_infusion.enabled&cooldown.coordinated_assault.remains||!essence.memory_of_lucid_dreams.major&cooldown.coordinated_assault.remains\nactions.cds+=/use_item,name=azsharas_font_of_power\nactions.cds+=/focused_azerite_beam,if=raid_event.adds.in>90&focus<focus.max-25||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2)&(buff.blur_of_talons.up&buff.blur_of_talons.remains>3*gcd||!buff.blur_of_talons.up)\nactions.cds+=/blood_of_the_enemy,if=((raid_event.adds.remains>90||!raid_event.adds.exists)||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2))&focus<focus.max\nactions.cds+=/purifying_blast,if=((raid_event.adds.remains>60||!raid_event.adds.exists)||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2))&focus<focus.max\nactions.cds+=/guardian_of_azeroth\nactions.cds+=/ripple_in_space\nactions.cds+=/concentrated_flame,if=full_recharge_time<1*gcd\nactions.cds+=/the_unbound_force,if=buff.reckless_force.up\nactions.cds+=/worldvein_resonance\nactions.cds+=/reaping_flames,if=target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30\nactions.cds+=/serpent_sting,if=essence.memory_of_lucid_dreams.major&refreshable&buff.vipers_venom.up&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/mongoose_bite,if=essence.memory_of_lucid_dreams.major&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/wildfire_bomb,if=essence.memory_of_lucid_dreams.major&full_recharge_time<1.5*gcd&focus<action.mongoose_bite.cost&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/memory_of_lucid_dreams,if=focus<action.mongoose_bite.cost&buff.coordinated_assault.up\n\nactions.cleave=variable,name=carve_cdr,op=setif,value=active_enemies,value_else=5,condition=active_enemies<5\nactions.cleave+=/mongoose_bite,if=azerite.blur_of_talons.rank>0&(buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd||buff.coordinated_assault.remains&!buff.blur_of_talons.remains))\nactions.cleave+=/mongoose_bite,target_if=min:time_to_die,if=debuff.latent_poison.stack>(active_enemies||9)&target.time_to_die<active_enemies*gcd\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/coordinated_assault\nactions.cleave+=/carve,if=dot.shrapnel_bomb.ticking&!talent.hydras_bite.enabled||dot.shrapnel_bomb.ticking&active_enemies>5\nactions.cleave+=/wildfire_bomb,if=!talent.guerrilla_tactics.enabled||full_recharge_time<gcd||raid_event.adds.remains<6&raid_event.adds.exists\nactions.cleave+=/butchery,if=charges_fractional>2.5||dot.shrapnel_bomb.ticking||cooldown.wildfire_bomb.remains>active_enemies-gcd||debuff.blood_of_the_enemy.remains||raid_event.adds.remains<5&raid_event.adds.exists\nactions.cleave+=/mongoose_bite,target_if=max:debuff.latent_poison.stack,if=debuff.latent_poison.stack>8\nactions.cleave+=/chakrams\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.cleave+=/harpoon,if=talent.terms_of_engagement.enabled\nactions.cleave+=/carve,if=talent.guerrilla_tactics.enabled\nactions.cleave+=/butchery,if=cooldown.wildfire_bomb.remains>(active_enemies||5)\nactions.cleave+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.cleave+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable||talent.wildfire_infusion.enabled\nactions.cleave+=/serpent_sting,cycle_targets=1,if=buff.vipers_venom.react\nactions.cleave+=/carve,if=cooldown.wildfire_bomb.remains>variable.carve_cdr%2\nactions.cleave+=/steel_trap\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable&buff.tip_of_the_spear.stack<3&next_wi_bomb.volatile||refreshable&azerite.latent_poison.rank>0\n# To simulate usage for Mongoose Bite or Raptor Strike during Aspect of the Eagle, copy each occurrence of the action and append _eagle to the action name.\nactions.cleave+=/mongoose_bite,cycle_targets=1\nactions.cleave+=/raptor_strike,cycle_targets=1\n\nactions.st=harpoon,if=talent.terms_of_engagement.enabled\nactions.st+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.st+=/raptor_strike,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\n# To simulate usage for Mongoose Bite or Raptor Strike during Aspect of the Eagle, copy each occurrence of the action and append _eagle to the action name.\nactions.st+=/mongoose_bite,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.st+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.st+=/serpent_sting,if=buff.vipers_venom.up&buff.vipers_venom.remains<1*gcd\nactions.st+=/steel_trap,if=focus+cast_regen<focus.max\nactions.st+=/wildfire_bomb,if=focus+cast_regen<focus.max&refreshable&full_recharge_time<gcd&!buff.memory_of_lucid_dreams.up||focus+cast_regen<focus.max&(!dot.wildfire_bomb.ticking&(!buff.coordinated_assault.up||buff.mongoose_fury.stack<1||time_to_die<18||!dot.wildfire_bomb.ticking&azerite.wilderness_survival.rank>0))&!buff.memory_of_lucid_dreams.up\nactions.st+=/serpent_sting,if=buff.vipers_venom.up&dot.serpent_sting.remains<4*gcd||dot.serpent_sting.refreshable&!buff.coordinated_assault.up\nactions.st+=/a_murder_of_crows,if=!buff.coordinated_assault.up\nactions.st+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.st+=/mongoose_bite,if=buff.mongoose_fury.up||focus+cast_regen>focus.max-20&talent.vipers_venom.enabled||focus+cast_regen>focus.max-1&talent.terms_of_engagement.enabled||buff.coordinated_assault.up\nactions.st+=/raptor_strike\nactions.st+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable\nactions.st+=/serpent_sting,if=buff.vipers_venom.up\n\nactions.wfi=harpoon,if=focus+cast_regen<focus.max&talent.terms_of_engagement.enabled\nactions.wfi+=/mongoose_bite,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.wfi+=/raptor_strike,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up&buff.vipers_venom.remains<1.5*gcd||!dot.serpent_sting.ticking\nactions.wfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max||(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)\nactions.wfi+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max-focus.regen\nactions.wfi+=/a_murder_of_crows\nactions.wfi+=/steel_trap,if=focus+cast_regen<focus.max\nactions.wfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd\nactions.wfi+=/coordinated_assault\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up&dot.serpent_sting.remains<4*gcd\nactions.wfi+=/mongoose_bite,if=dot.shrapnel_bomb.ticking||buff.mongoose_fury.stack=5\nactions.wfi+=/wildfire_bomb,if=next_wi_bomb.shrapnel&dot.serpent_sting.remains>5*gcd\nactions.wfi+=/serpent_sting,if=refreshable\nactions.wfi+=/chakrams,if=!buff.mongoose_fury.remains\nactions.wfi+=/mongoose_bite\nactions.wfi+=/raptor_strike\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up\nactions.wfi+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel",
},
},
},
["Quillten - Deathwing"] = {
["enabled"] = false,
["specs"] = {
[260] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["mfd_waste"] = true,
["dirty_gouge"] = false,
["use_ld_opener"] = false,
["mfd_points"] = 3,
["solo_vanish"] = true,
["allow_shadowmeld"] = false,
["no_rtb_in_dance_cto"] = true,
["ambush_anyway"] = false,
},
["maxTime"] = 33,
},
[261] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["mfd_waste"] = true,
["mfd_points"] = 3,
["priority_rotation"] = false,
["solo_vanish"] = true,
},
["maxTime"] = 33,
},
[259] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["mfd_waste"] = true,
["mfd_points"] = 3,
["envenom_pool_pct"] = 50,
["solo_vanish"] = true,
["priority_rotation"] = false,
},
["maxTime"] = 33,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["runOnce"] = {
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["forceReloadClassDefaultOptions_20220306_259"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetRogueMfDOption_20200226"] = true,
["forceReloadClassDefaultOptions_20220306_261"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["resetPotionsToDefaults_20190717"] = true,
["forceReloadClassDefaultOptions_20220306_260"] = true,
["forceSpellFlashBrightness_20221030"] = true,
},
["packs"] = {
["Outlaw"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230313,
["author"] = "SimC",
["desc"] = "2023-02-15: Added option to use Adrenaline Rush before Roll the Bones in the opener if Loaded Dice is talented, to guarantee two buffs. This would mainly be used by folks taking Count the Odds and Loaded Dice. See Outlaw specialization options (at left).\n\nAdded logic to prevent Vanish in the first 10s of combat (in case of delayed opener).\n\n2023-03-13: Update Manic Grieftorch usage.",
["lists"] = {
["finish"] = {
{
["enabled"] = true,
["criteria"] = "target.time_to_die > 3 & ( debuff.between_the_eyes.remains < 4 || talent.greenskins_wickers.enabled & ! buff.greenskins_wickers.up || ! talent.greenskins_wickers.enabled & talent.improved_between_the_eyes.enabled & buff.ruthless_precision.up )",
["action"] = "between_the_eyes",
["description"] = "Finishers BtE to keep the Crit debuff up, if RP is up, or for Greenskins, unless the target is about to die.",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.slice_and_dice.remains < fight_remains & refreshable & buff.grand_melee.down & ( ! talent.swift_slasher.enabled || combo_points >= cp_max_spend )",
["action"] = "slice_and_dice",
}, -- [2]
{
["action"] = "cold_blood",
["enabled"] = true,
}, -- [3]
{
["action"] = "dispatch",
["enabled"] = true,
}, -- [4]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Restealth if possible (no vulnerable enemies in combat)",
["action"] = "stealth",
}, -- [1]
{
["enabled"] = true,
["description"] = "Interrupt on cooldown to allow simming interactions with that",
["action"] = "kick",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.count_the_odds.enabled & ( stealthed.basic || buff.shadowmeld.up || buff.shadow_dance.up )",
["description"] = "Checks if we are in an appropriate Stealth state for triggering the Count the Odds bonus",
["var_name"] = "stealthed_cto",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "rtb_reroll",
["criteria"] = "! talent.hidden_opportunity.enabled",
["description"] = "Roll the Bones Reroll Conditions",
["value"] = "rtb_buffs < 2 & ( ! buff.broadside.up & ( ! talent.fan_the_hammer.enabled || ! buff.skull_and_crossbones.up ) & ! buff.true_bearing.up || buff.loaded_dice.up ) || rtb_buffs = 2 & ( buff.buried_treasure.up & buff.grand_melee.up || ! buff.broadside.up & ! buff.true_bearing.up & buff.loaded_dice.up )",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "rtb_reroll",
["criteria"] = "! talent.hidden_opportunity.enabled & ( talent.keep_it_rolling.enabled || talent.count_the_odds.enabled )",
["description"] = "Additional Reroll Conditions for Keep it Rolling or Count the Odds",
["value"] = "variable.rtb_reroll || ( ( rtb_buffs_normal = 0 & rtb_buffs_longer >= 1 ) & ! ( buff.broadside.up & buff.true_bearing.up & buff.skull_and_crossbones.up ) & ! ( buff.broadside.remains > 39 || buff.true_bearing.remains > 39 || buff.ruthless_precision.remains > 39 || buff.skull_and_crossbones.remains > 39 ) )",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "rtb_reroll",
["criteria"] = "talent.hidden_opportunity.enabled",
["description"] = "With Hidden Opportunity, prioritize rerolling for Skull and Crossbones over everything else",
["value"] = "! rtb_buffs_will_lose_buff.skull_and_crossbones & ( rtb_buffs_will_lose - rtb_buffs_will_lose_buff.grand_melee ) < 2 & buff.shadow_dance.down & buff.subterfuge.down",
}, -- [6]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "rtb_reroll",
["criteria"] = "! ( raid_event.adds.remains > 12 || raid_event.adds.up & ( raid_event.adds.in - raid_event.adds.remains ) < 6 || target.time_to_die > 12 ) || boss & fight_remains < 12",
["description"] = "Avoid rerolls when we will not have time remaining on the fight or add wave to recoup the opportunity cost of the global",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.hidden_opportunity.enabled || combo_points.deficit >= 2 + talent.improved_ambush.enabled + buff.broadside.up || buff.vicious_followup.up || settings.ambush_anyway ) & energy >= 50",
["description"] = "Ensure we want to cast Ambush prior to triggering a Stealth cooldown",
["var_name"] = "ambush_condition",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points >= ( ( cp_max_spend - 1 ) <? ( 6 - talent.summarily_dispatched.enabled ) ) || effective_combo_points >= cp_max_spend",
["description"] = "Finish at 6 (5 with Summarily Dispatched talented) CP or CP Max-1, whichever is greater of the two",
["var_name"] = "finish_condition",
}, -- [9]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.blade_flurry < 2 & raid_event.adds.in > 20 || buff.blade_flurry.remains > 1 + talent.killing_spree.enabled",
["description"] = "With multiple targets, this variable is checked to decide whether some CDs should be synced with Blade Flurry",
["var_name"] = "blade_flurry_sync",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Higher priority Stealth list for Count the Odds or true Stealth/Vanish that will break in a single global",
["criteria"] = "stealthed.basic || buff.shadowmeld.up",
["list_name"] = "stealth",
}, -- [11]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Lower priority Stealth list for Shadow Dance",
["criteria"] = "variable.stealthed_cto",
["list_name"] = "stealth",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "variable.finish_condition",
["action"] = "run_action_list",
["list_name"] = "finish",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "build",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "energy.base_deficit >= 15 + energy.regen",
["action"] = "arcane_torrent",
}, -- [16]
{
["action"] = "arcane_pulse",
["enabled"] = true,
}, -- [17]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [18]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [19]
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
}, -- [1]
{
["action"] = "bottled_flayedwing_toxin",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.in > 25",
["precombat_seconds"] = "10",
}, -- [5]
{
["enabled"] = true,
["action"] = "adrenaline_rush",
["criteria"] = "talent.improved_adrenaline_rush.enabled || settings.use_ld_opener & cooldown.roll_the_bones.remains < 1 & ( buff.roll_the_bones.remains < 3 || rtb_buffs_normal = 0 )",
["precombat_seconds"] = "3",
}, -- [6]
{
["enabled"] = true,
["action"] = "roll_the_bones",
["criteria"] = "remains < 3 || rtb_buffs_normal = 0",
["precombat_seconds"] = "2",
}, -- [7]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["criteria"] = "refreshable & buff.grand_melee.down & ! settings.use_ld_opener",
["precombat_seconds"] = "1",
}, -- [8]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "! buff.adrenaline_rush.up & ( ! talent.improved_adrenaline_rush.enabled || combo_points <= 2 )",
["action"] = "adrenaline_rush",
["description"] = "Cooldowns",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "spell_targets >= 2 & buff.blade_flurry.remains < gcd.max",
["action"] = "blade_flurry",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.dreadblades.down & ( rtb_buffs = 0 || variable.rtb_reroll )",
["action"] = "roll_the_bones",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! variable.rtb_reroll & ( buff.broadside.up + buff.true_bearing.up + buff.skull_and_crossbones.up + buff.ruthless_precision.up ) > 2 & ( buff.shadow_dance.down || rtb_buffs >= 6 )",
["action"] = "keep_it_rolling",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.blade_flurry_sync & ! buff.dreadblades.up & ( energy.base_time_to_max > 4 + stealthed.rogue - spell_targets / 3 )",
["action"] = "blade_rush",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! stealthed.all || talent.count_the_odds.enabled & ! talent.hidden_opportunity.enabled & ! variable.stealthed_cto",
["action"] = "call_action_list",
["list_name"] = "stealth_cds",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! ( variable.stealthed_cto || stealthed.basic || talent.hidden_opportunity.enabled & stealthed.rogue ) & combo_points <= 2 & ( ! talent.marked_for_death.enabled || ! cooldown.marked_for_death.ready ) & target.time_to_die >= 10",
["action"] = "dreadblades",
}, -- [7]
{
["enabled"] = true,
["action"] = "marked_for_death",
["line_cd"] = "1.5",
["cycle_targets"] = 1,
["criteria"] = "raid_event.adds.up & ( target.time_to_die < combo_points.deficit || combo_points.deficit >= cp_max_spend - 1 ) & ! buff.dreadblades.up",
["description"] = "If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 30 - raid_event.adds.duration & combo_points.deficit >= cp_max_spend - 1 & ! buff.dreadblades.up",
["action"] = "marked_for_death",
["description"] = "If no adds will die within the next 30s, use MfD on boss without any CP.",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.thistle_tea.up & ( energy.base_deficit >= 100 || boss & fight_remains < charges * 6 )",
["action"] = "thistle_tea",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "variable.blade_flurry_sync & ! stealthed.rogue & debuff.between_the_eyes.up & energy.base_time_to_max > 4",
["action"] = "killing_spree",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & ( talent.count_the_odds.enabled & variable.finish_condition || ! talent.weaponmaster.enabled & variable.ambush_condition )",
["action"] = "shadowmeld",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || boss & fight_remains < 30 || buff.adrenaline_rush.up",
["action"] = "potion",
}, -- [13]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [14]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [15]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [16]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["action"] = "manic_grieftorch",
["use_off_gcd"] = 1,
["name"] = "manic_grieftorch",
["criteria"] = "! stealthed.all & debuff.between_the_eyes.up & ( ! talent.ghostly_strike.enabled || debuff.ghostly_strike.up || spell_targets.blade_flurry > 2 ) || boss & fight_remains <= 5",
["description"] = "Default conditions for usable items.",
}, -- [18]
{
["enabled"] = true,
["name"] = "stormeaters_boon",
["action"] = "stormeaters_boon",
["criteria"] = "spell_targets.blade_flurry > desired_targets || raid_event.adds.in > 60 || boss & fight_remains < 10",
}, -- [19]
{
["enabled"] = true,
["name"] = "windscar_whetstone",
["action"] = "windscar_whetstone",
["criteria"] = "spell_targets.blade_flurry > desired_targets || raid_event.adds.in > 60 || boss & fight_remains < 7",
}, -- [20]
{
["enabled"] = true,
["slots"] = "trinket1",
["action"] = "trinket1",
["criteria"] = "debuff.between_the_eyes.up || trinket.t1.has_stat.any_dps || boss & fight_remains <= 20",
}, -- [21]
{
["enabled"] = true,
["slots"] = "trinket2",
["action"] = "trinket2",
["criteria"] = "debuff.between_the_eyes.up || trinket.t2.has_stat.any_dps || boss & fight_remains <= 20",
}, -- [22]
},
["stealth"] = {
{
["enabled"] = true,
["criteria"] = "talent.subterfuge.enabled & talent.hidden_opportunity.enabled & spell_targets >= 2 & ! buff.blade_flurry.up",
["action"] = "blade_flurry",
["description"] = "Stealth",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.finish_condition",
["action"] = "cold_blood",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.finish_condition",
["action"] = "dispatch",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.stealthed_cto || stealthed.basic & ( settings.ambush_anyway || talent.find_weakness.enabled & ! debuff.find_weakness.up || talent.hidden_opportunity.enabled )",
["action"] = "ambush",
}, -- [4]
},
["stealth_cds"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "time > 10 & ( talent.hidden_opportunity.enabled || ! talent.shadow_dance.enabled || ! cooldown.shadow_dance.ready )",
["description"] = "Stealth Cooldowns",
["var_name"] = "vanish_condition",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.shadow_dance.enabled & talent.fan_the_hammer.rank + talent.quick_draw.enabled + talent.audacity.enabled < talent.count_the_odds.enabled + talent.keep_it_rolling.enabled",
["var_name"] = "vanish_opportunity_condition",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.find_weakness.enabled & ! talent.audacity.enabled & debuff.find_weakness.down & variable.ambush_condition & variable.vanish_condition",
["action"] = "vanish",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.hidden_opportunity.enabled & ! buff.audacity.up & ( variable.vanish_opportunity_condition || buff.opportunity.stack < buff.opportunity.max_stack ) & variable.ambush_condition & variable.vanish_condition",
["action"] = "vanish",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ! talent.find_weakness.enabled || talent.audacity.enabled ) & ! talent.hidden_opportunity.enabled & variable.finish_condition & variable.vanish_condition",
["action"] = "vanish",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.shadow_dance.enabled & debuff.between_the_eyes.up & ( ! talent.ghostly_strike.enabled || debuff.ghostly_strike.up ) & ( ! talent.dreadblades.enabled || ! cooldown.dreadblades.ready ) & ( ! talent.hidden_opportunity.enabled || ! buff.audacity.up & ( talent.fan_the_hammer.rank < 2 || ! buff.opportunity.up ) )",
["var_name"] = "shadow_dance_condition",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.keep_it_rolling.enabled & variable.shadow_dance_condition & buff.slice_and_dice.up & ( variable.finish_condition || talent.hidden_opportunity.enabled ) & ( ! talent.hidden_opportunity.enabled || ! cooldown.vanish.ready )",
["action"] = "shadow_dance",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.keep_it_rolling.enabled & variable.shadow_dance_condition & ( cooldown.keep_it_rolling.remains <= 30 || cooldown.keep_it_rolling.remains > 120 & ( variable.finish_condition || talent.hidden_opportunity.enabled ) )",
["action"] = "shadow_dance",
}, -- [8]
},
["build"] = {
{
["enabled"] = true,
["action"] = "sepsis",
["cycle_targets"] = 1,
["criteria"] = "target.time_to_die > 11 & debuff.between_the_eyes.up || boss & fight_remains < 11",
["description"] = "Builders",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "debuff.ghostly_strike.remains <= 3 & ( spell_targets.blade_flurry <= 2 || buff.dreadblades.up ) & ! buff.subterfuge.up & target.time_to_die >= 5",
["action"] = "ghostly_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "settings.ambush_anyway || ( talent.hidden_opportunity.enabled || talent.keep_it_rolling.enabled ) & ( buff.audacity.up || buff.sepsis_buff.up || buff.subterfuge.up & cooldown.keep_it_rolling.ready ) || talent.find_weakness.enabled & debuff.find_weakness.down",
["action"] = "ambush",
["description"] = "High priority Ambush line to apply Find Weakness or consume Audacity/Sepsis buff before Pistol Shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.fan_the_hammer.enabled & talent.audacity.enabled & talent.hidden_opportunity.enabled & buff.opportunity.up & ! buff.audacity.up & ! buff.subterfuge.up & ! buff.shadow_dance.up",
["action"] = "pistol_shot",
["description"] = "With Audacity + Hidden Opportunity + Fan the Hammer, use Pistol Shot to proc Audacity any time Ambush is not available",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.greenskins_wickers.up & ( ! talent.fan_the_hammer.enabled & buff.opportunity.up || buff.greenskins_wickers.remains < 1.5 )",
["action"] = "pistol_shot",
["description"] = "Use Greenskins Wickers buff immediately with Opportunity unless running Fan the Hammer",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.fan_the_hammer.enabled & buff.opportunity.up & ( buff.opportunity.stack >= buff.opportunity.max_stack || buff.opportunity.remains < 2 )",
["action"] = "pistol_shot",
["description"] = "With Fan the Hammer, consume Opportunity at max stacks or if we will get max 4+ CP and Dreadblades is not up",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.fan_the_hammer.enabled & buff.opportunity.up & combo_points.deficit > ( ( 1 + talent.quick_draw.enabled ) * talent.fan_the_hammer.rank ) & ! buff.dreadblades.up & ( ! talent.hidden_opportunity.enabled || ! buff.subterfuge.up & ! buff.shadow_dance.up )",
["action"] = "pistol_shot",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! buff.dreadblades.up",
["action"] = "echoing_reprimand",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "settings.ambush_anyway || talent.hidden_opportunity.enabled || talent.find_weakness.enabled & debuff.find_weakness.down",
["action"] = "ambush",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! talent.fan_the_hammer.enabled & buff.opportunity.up & ( energy.base_deficit > energy.regen * 1.5 || ! talent.weaponmaster.enabled & combo_points.deficit <= 1 + buff.broadside.up || talent.quick_draw.enabled || talent.audacity.enabled & ! buff.audacity.up )",
["action"] = "pistol_shot",
["description"] = "Use Pistol Shot with Opportunity if Combat Potency won't overcap energy, when it will exactly cap CP, or when using Quick Draw",
}, -- [10]
{
["action"] = "sinister_strike",
["enabled"] = true,
}, -- [11]
},
},
["version"] = 20230313,
["warnings"] = "The import for 'stealth' required some automated changes.\nLine 1: Converted 'talent.subterfuge' to 'talent.subterfuge.enabled' (1x).\nLine 1: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 4: Converted 'talent.find_weakness' to 'talent.find_weakness.enabled' (1x).\nLine 4: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.count_the_odds' to 'talent.count_the_odds.enabled' (1x).\nLine 4: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 4: Converted 'talent.fan_the_hammer' to 'talent.fan_the_hammer.enabled' (1x).\nLine 5: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 5: Converted 'talent.keep_it_rolling' to 'talent.keep_it_rolling.enabled' (1x).\nLine 5: Converted 'talent.count_the_odds' to 'talent.count_the_odds.enabled' (1x).\nLine 6: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 6: Converted 'rtb_buffs.will_lose.skull_and_crossbones' to 'rtb_buffs_will_lose_buff.skull_and_crossbones' (1x).\nLine 6: Converted 'rtb_buffs.will_lose.grand_melee' to 'rtb_buffs_will_lose_buff.grand_melee' (1x).\nLine 8: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 8: Converted 'talent.improved_ambush' to 'talent.improved_ambush.enabled' (1x).\nLine 9: Converted 'talent.summarily_dispatched' to 'talent.summarily_dispatched.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 6: Converted 'talent.improved_adrenaline_rush' to 'talent.improved_adrenaline_rush.enabled' (1x).\n\nThe import for 'finish' required some automated changes.\nLine 1: Converted 'talent.greenskins_wickers' to 'talent.greenskins_wickers.enabled' (1x).\nLine 1: Converted 'talent.greenskins_wickers' to 'talent.greenskins_wickers.enabled' (1x).\nLine 1: Converted 'talent.improved_between_the_eyes' to 'talent.improved_between_the_eyes.enabled' (1x).\nLine 2: Converted 'talent.swift_slasher' to 'talent.swift_slasher.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 1: Converted 'talent.improved_adrenaline_rush' to 'talent.improved_adrenaline_rush.enabled' (1x).\nLine 5: Converted operations in 'variable.blade_flurry_sync&!buff.dreadblades.up&(energy.base_time_to_max>4+stealthed.rogue-spell_targets%3)' to 'variable.blade_flurry_sync&!buff.dreadblades.up&(energy.base_time_to_max>4+stealthed.rogue-spell_targets/3)'.\nLine 6: Converted 'talent.count_the_odds' to 'talent.count_the_odds.enabled' (1x).\nLine 6: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 7: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 7: Converted 'talent.marked_for_death' to 'talent.marked_for_death.enabled' (1x).\nLine 12: Converted 'talent.count_the_odds' to 'talent.count_the_odds.enabled' (1x).\nLine 18: Converted 'talent.ghostly_strike' to 'talent.ghostly_strike.enabled' (1x).\nLine 21: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 22: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\n\nThe import for 'stealth_cds' required some automated changes.\nLine 1: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 1: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\nLine 2: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\nLine 2: Converted 'talent.quick_draw' to 'talent.quick_draw.enabled' (1x).\nLine 2: Converted 'talent.audacity' to 'talent.audacity.enabled' (1x).\nLine 2: Converted 'talent.count_the_odds' to 'talent.count_the_odds.enabled' (1x).\nLine 2: Converted 'talent.keep_it_rolling' to 'talent.keep_it_rolling.enabled' (1x).\nLine 3: Converted 'talent.find_weakness' to 'talent.find_weakness.enabled' (1x).\nLine 3: Converted 'talent.audacity' to 'talent.audacity.enabled' (1x).\nLine 4: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 5: Converted 'talent.find_weakness' to 'talent.find_weakness.enabled' (1x).\nLine 5: Converted 'talent.audacity' to 'talent.audacity.enabled' (1x).\nLine 5: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 6: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\nLine 6: Converted 'talent.ghostly_strike' to 'talent.ghostly_strike.enabled' (1x).\nLine 6: Converted 'talent.dreadblades' to 'talent.dreadblades.enabled' (1x).\nLine 6: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 7: Converted 'talent.keep_it_rolling' to 'talent.keep_it_rolling.enabled' (1x).\nLine 7: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 7: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 8: Converted 'talent.keep_it_rolling' to 'talent.keep_it_rolling.enabled' (1x).\nLine 8: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\n\nThe import for 'build' required some automated changes.\nLine 3: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 3: Converted 'talent.keep_it_rolling' to 'talent.keep_it_rolling.enabled' (1x).\nLine 3: Converted 'talent.find_weakness' to 'talent.find_weakness.enabled' (1x).\nLine 4: Converted 'talent.fan_the_hammer' to 'talent.fan_the_hammer.enabled' (1x).\nLine 4: Converted 'talent.audacity' to 'talent.audacity.enabled' (1x).\nLine 4: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 5: Converted 'talent.fan_the_hammer' to 'talent.fan_the_hammer.enabled' (1x).\nLine 6: Converted 'talent.fan_the_hammer' to 'talent.fan_the_hammer.enabled' (1x).\nLine 7: Converted 'talent.fan_the_hammer' to 'talent.fan_the_hammer.enabled' (1x).\nLine 7: Converted 'talent.quick_draw' to 'talent.quick_draw.enabled' (1x).\nLine 7: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 9: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 9: Converted 'talent.find_weakness' to 'talent.find_weakness.enabled' (1x).\nLine 10: Converted 'talent.fan_the_hammer' to 'talent.fan_the_hammer.enabled' (1x).\nLine 10: Converted 'talent.weaponmaster' to 'talent.weaponmaster.enabled' (1x).\n\nImported 7 action lists.\n",
["profile"] = "actions.precombat+=/apply_poison\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/stealth\nactions.precombat+=/marked_for_death,precombat_seconds=10,if=raid_event.adds.in>25\nactions.precombat+=/adrenaline_rush,precombat_seconds=3,if=talent.improved_adrenaline_rush||settings.use_ld_opener&cooldown.roll_the_bones.remains<1&(buff.roll_the_bones.remains<3||rtb_buffs.normal=0)\nactions.precombat+=/roll_the_bones,precombat_seconds=2,if=remains<3||rtb_buffs.normal=0\nactions.precombat+=/slice_and_dice,precombat_seconds=1,if=refreshable&buff.grand_melee.down&!settings.use_ld_opener\n\n# Restealth if possible (no vulnerable enemies in combat)\nactions+=/stealth\n# Interrupt on cooldown to allow simming interactions with that\nactions+=/kick\n# Checks if we are in an appropriate Stealth state for triggering the Count the Odds bonus\nactions+=/variable,name=stealthed_cto,value=talent.count_the_odds&(stealthed.basic||buff.shadowmeld.up||buff.shadow_dance.up)\n# Roll the Bones Reroll Conditions\nactions+=/variable,name=rtb_reroll,if=!talent.hidden_opportunity,value=rtb_buffs<2&(!buff.broadside.up&(!talent.fan_the_hammer||!buff.skull_and_crossbones.up)&!buff.true_bearing.up||buff.loaded_dice.up)||rtb_buffs=2&(buff.buried_treasure.up&buff.grand_melee.up||!buff.broadside.up&!buff.true_bearing.up&buff.loaded_dice.up)\n# Additional Reroll Conditions for Keep it Rolling or Count the Odds\nactions+=/variable,name=rtb_reroll,if=!talent.hidden_opportunity&(talent.keep_it_rolling||talent.count_the_odds),value=variable.rtb_reroll||((rtb_buffs.normal=0&rtb_buffs.longer>=1)&!(buff.broadside.up&buff.true_bearing.up&buff.skull_and_crossbones.up)&!(buff.broadside.remains>39||buff.true_bearing.remains>39||buff.ruthless_precision.remains>39||buff.skull_and_crossbones.remains>39))\n# With Hidden Opportunity, prioritize rerolling for Skull and Crossbones over everything else\nactions+=/variable,name=rtb_reroll,if=talent.hidden_opportunity,value=!rtb_buffs.will_lose.skull_and_crossbones&(rtb_buffs.will_lose-rtb_buffs.will_lose.grand_melee)<2&buff.shadow_dance.down&buff.subterfuge.down\n# Avoid rerolls when we will not have time remaining on the fight or add wave to recoup the opportunity cost of the global\nactions+=/variable,name=rtb_reroll,op=reset,if=!(raid_event.adds.remains>12||raid_event.adds.up&(raid_event.adds.in-raid_event.adds.remains)<6||target.time_to_die>12)||boss&fight_remains<12\n# Ensure we want to cast Ambush prior to triggering a Stealth cooldown\nactions+=/variable,name=ambush_condition,value=(talent.hidden_opportunity||combo_points.deficit>=2+talent.improved_ambush+buff.broadside.up||buff.vicious_followup.up||settings.ambush_anyway)&energy>=50\n# Finish at 6 (5 with Summarily Dispatched talented) CP or CP Max-1, whichever is greater of the two\nactions+=/variable,name=finish_condition,value=combo_points>=((cp_max_spend-1)<?(6-talent.summarily_dispatched))||effective_combo_points>=cp_max_spend\n# With multiple targets, this variable is checked to decide whether some CDs should be synced with Blade Flurry\nactions+=/variable,name=blade_flurry_sync,value=spell_targets.blade_flurry<2&raid_event.adds.in>20||buff.blade_flurry.remains>1+talent.killing_spree.enabled\n# Higher priority Stealth list for Count the Odds or true Stealth/Vanish that will break in a single global\nactions+=/call_action_list,name=stealth,if=stealthed.basic||buff.shadowmeld.up\nactions+=/call_action_list,name=cds\n# Lower priority Stealth list for Shadow Dance\nactions+=/call_action_list,name=stealth,if=variable.stealthed_cto\nactions+=/run_action_list,name=finish,if=variable.finish_condition\nactions+=/call_action_list,name=build\nactions+=/arcane_torrent,if=energy.base_deficit>=15+energy.regen\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# Builders\nactions.build+=/sepsis,cycle_targets=1,if=target.time_to_die>11&debuff.between_the_eyes.up||boss&fight_remains<11\nactions.build+=/ghostly_strike,if=debuff.ghostly_strike.remains<=3&(spell_targets.blade_flurry<=2||buff.dreadblades.up)&!buff.subterfuge.up&target.time_to_die>=5\n# High priority Ambush line to apply Find Weakness or consume Audacity/Sepsis buff before Pistol Shot\nactions.build+=/ambush,if=settings.ambush_anyway||(talent.hidden_opportunity||talent.keep_it_rolling)&(buff.audacity.up||buff.sepsis_buff.up||buff.subterfuge.up&cooldown.keep_it_rolling.ready)||talent.find_weakness&debuff.find_weakness.down\n# With Audacity + Hidden Opportunity + Fan the Hammer, use Pistol Shot to proc Audacity any time Ambush is not available\nactions.build+=/pistol_shot,if=talent.fan_the_hammer&talent.audacity&talent.hidden_opportunity&buff.opportunity.up&!buff.audacity.up&!buff.subterfuge.up&!buff.shadow_dance.up\n# Use Greenskins Wickers buff immediately with Opportunity unless running Fan the Hammer\nactions.build+=/pistol_shot,if=buff.greenskins_wickers.up&(!talent.fan_the_hammer&buff.opportunity.up||buff.greenskins_wickers.remains<1.5)\n# With Fan the Hammer, consume Opportunity at max stacks or if we will get max 4+ CP and Dreadblades is not up\nactions.build+=/pistol_shot,if=talent.fan_the_hammer&buff.opportunity.up&(buff.opportunity.stack>=buff.opportunity.max_stack||buff.opportunity.remains<2)\nactions.build+=/pistol_shot,if=talent.fan_the_hammer&buff.opportunity.up&combo_points.deficit>((1+talent.quick_draw)*talent.fan_the_hammer.rank)&!buff.dreadblades.up&(!talent.hidden_opportunity||!buff.subterfuge.up&!buff.shadow_dance.up)\nactions.build+=/echoing_reprimand,if=!buff.dreadblades.up\n## actions.build+=/pool_resource,for_next=1\nactions.build+=/ambush,if=settings.ambush_anyway||talent.hidden_opportunity||talent.find_weakness&debuff.find_weakness.down\n# Use Pistol Shot with Opportunity if Combat Potency won't overcap energy, when it will exactly cap CP, or when using Quick Draw\nactions.build+=/pistol_shot,if=!talent.fan_the_hammer&buff.opportunity.up&(energy.base_deficit>energy.regen*1.5||!talent.weaponmaster&combo_points.deficit<=1+buff.broadside.up||talent.quick_draw.enabled||talent.audacity.enabled&!buff.audacity.up)\nactions.build+=/sinister_strike\n\n# Cooldowns\nactions.cds+=/adrenaline_rush,if=!buff.adrenaline_rush.up&(!talent.improved_adrenaline_rush||combo_points<=2)\nactions.cds+=/blade_flurry,if=spell_targets>=2&buff.blade_flurry.remains<gcd\nactions.cds+=/roll_the_bones,if=buff.dreadblades.down&(rtb_buffs.total=0||variable.rtb_reroll)\nactions.cds+=/keep_it_rolling,if=!variable.rtb_reroll&(buff.broadside.up+buff.true_bearing.up+buff.skull_and_crossbones.up+buff.ruthless_precision.up)>2&(buff.shadow_dance.down||rtb_buffs>=6)\nactions.cds+=/blade_rush,if=variable.blade_flurry_sync&!buff.dreadblades.up&(energy.base_time_to_max>4+stealthed.rogue-spell_targets%3)\nactions.cds+=/call_action_list,name=stealth_cds,if=!stealthed.all||talent.count_the_odds&!talent.hidden_opportunity&!variable.stealthed_cto\nactions.cds+=/dreadblades,if=!(variable.stealthed_cto||stealthed.basic||talent.hidden_opportunity&stealthed.rogue)&combo_points<=2&(!talent.marked_for_death||!cooldown.marked_for_death.ready)&target.time_to_die>=10\n# If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.\nactions.cds+=/marked_for_death,line_cd=1.5,cycle_targets=1,if=raid_event.adds.up&(target.time_to_die<combo_points.deficit||combo_points.deficit>=cp_max_spend-1)&!buff.dreadblades.up\n# If no adds will die within the next 30s, use MfD on boss without any CP.\nactions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend-1&!buff.dreadblades.up\nactions.cds+=/thistle_tea,if=!buff.thistle_tea.up&(energy.base_deficit>=100||boss&fight_remains<charges*6)\nactions.cds+=/killing_spree,if=variable.blade_flurry_sync&!stealthed.rogue&debuff.between_the_eyes.up&energy.base_time_to_max>4\nactions.cds+=/shadowmeld,if=!stealthed.all&(talent.count_the_odds&variable.finish_condition||!talent.weaponmaster.enabled&variable.ambush_condition)\nactions.cds+=/potion,if=buff.bloodlust.react||boss&fight_remains<30||buff.adrenaline_rush.up\nactions.cds+=/blood_fury\nactions.cds+=/berserking\nactions.cds+=/fireblood\nactions.cds+=/ancestral_call\n# Default conditions for usable items.\nactions.cds+=/use_item,name=manic_grieftorch,use_off_gcd=1,if=!stealthed.all&debuff.between_the_eyes.up&(!talent.ghostly_strike||debuff.ghostly_strike.up||spell_targets.blade_flurry>2)||boss&fight_remains<=5\nactions.cds+=/use_item,name=stormeaters_boon,if=spell_targets.blade_flurry>desired_targets||raid_event.adds.in>60||boss&fight_remains<10\nactions.cds+=/use_item,name=windscar_whetstone,if=spell_targets.blade_flurry>desired_targets||raid_event.adds.in>60||boss&fight_remains<7\nactions.cds+=/use_items,slots=trinket1,if=debuff.between_the_eyes.up||trinket.1.has_stat.any_dps||boss&fight_remains<=20\nactions.cds+=/use_items,slots=trinket2,if=debuff.between_the_eyes.up||trinket.2.has_stat.any_dps||boss&fight_remains<=20\n\n# Stealth Cooldowns\nactions.stealth_cds+=/variable,name=vanish_condition,value=time>10&(talent.hidden_opportunity||!talent.shadow_dance||!cooldown.shadow_dance.ready)\nactions.stealth_cds+=/variable,name=vanish_opportunity_condition,value=!talent.shadow_dance&talent.fan_the_hammer.rank+talent.quick_draw+talent.audacity<talent.count_the_odds+talent.keep_it_rolling\nactions.stealth_cds+=/vanish,if=talent.find_weakness&!talent.audacity&debuff.find_weakness.down&variable.ambush_condition&variable.vanish_condition\nactions.stealth_cds+=/vanish,if=talent.hidden_opportunity&!buff.audacity.up&(variable.vanish_opportunity_condition||buff.opportunity.stack<buff.opportunity.max_stack)&variable.ambush_condition&variable.vanish_condition\nactions.stealth_cds+=/vanish,if=(!talent.find_weakness||talent.audacity)&!talent.hidden_opportunity&variable.finish_condition&variable.vanish_condition\nactions.stealth_cds+=/variable,name=shadow_dance_condition,value=talent.shadow_dance&debuff.between_the_eyes.up&(!talent.ghostly_strike||debuff.ghostly_strike.up)&(!talent.dreadblades||!cooldown.dreadblades.ready)&(!talent.hidden_opportunity||!buff.audacity.up&(talent.fan_the_hammer.rank<2||!buff.opportunity.up))\nactions.stealth_cds+=/shadow_dance,if=!talent.keep_it_rolling&variable.shadow_dance_condition&buff.slice_and_dice.up&(variable.finish_condition||talent.hidden_opportunity)&(!talent.hidden_opportunity||!cooldown.vanish.ready)\nactions.stealth_cds+=/shadow_dance,if=talent.keep_it_rolling&variable.shadow_dance_condition&(cooldown.keep_it_rolling.remains<=30||cooldown.keep_it_rolling.remains>120&(variable.finish_condition||talent.hidden_opportunity))\n\n# Finishers BtE to keep the Crit debuff up, if RP is up, or for Greenskins, unless the target is about to die.\nactions.finish+=/between_the_eyes,if=target.time_to_die>3&(debuff.between_the_eyes.remains<4||talent.greenskins_wickers&!buff.greenskins_wickers.up||!talent.greenskins_wickers&talent.improved_between_the_eyes&buff.ruthless_precision.up)\nactions.finish+=/slice_and_dice,if=buff.slice_and_dice.remains<fight_remains&refreshable&buff.grand_melee.down&(!talent.swift_slasher||combo_points>=cp_max_spend)\nactions.finish+=/cold_blood\nactions.finish+=/dispatch\n\n# Stealth\nactions.stealth+=/blade_flurry,if=talent.subterfuge&talent.hidden_opportunity&spell_targets>=2&!buff.blade_flurry.up\nactions.stealth+=/cold_blood,if=variable.finish_condition\nactions.stealth+=/dispatch,if=variable.finish_condition\nactions.stealth+=/ambush,if=variable.stealthed_cto||stealthed.basic&(settings.ambush_anyway||talent.find_weakness&!debuff.find_weakness.up||talent.hidden_opportunity)",
["spec"] = 260,
},
["Subtlety"] = {
["builtIn"] = true,
["date"] = 20230328,
["spec"] = 261,
["desc"] = "2023-03-19: 10.0.7 update.\n\n2023-03-28: Optimize efficiency.",
["lists"] = {
["stealthed"] = {
{
["enabled"] = true,
["action"] = "shadowstrike",
["description"] = "Stealthed Rotation If Stealth/vanish are up, use Shadowstrike to benefit from the passive bonus and Find Weakness, even if we are at max CP (unless using Master Assassin)",
["criteria"] = "( buff.stealth.up || buff.vanish.up ) & ( spell_targets.shuriken_storm < 4 || variable.priority_rotation )",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.danse_macabre.stack < 5 & ( combo_points.deficit = 2 || combo_points.deficit = 3 ) & ( buff.premeditation.up || effective_combo_points < 7 ) & ( spell_targets.shuriken_storm <= 8 || talent.lingering_shadow.enabled )",
["description"] = "Variable to Gloomblade / Backstab when on 4 or 5 combo points with premediation and when the combo point is not anima charged",
["var_name"] = "gloomblade_condition",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.gloomblade_condition & buff.silent_storm.up & ! debuff.find_weakness.remains & talent.improved_shuriken_storm.enabled || combo_points <= 1 & ! used_for_danse & spell_targets.shuriken_storm = 2 & talent.danse_macabre.enabled",
["action"] = "shuriken_storm",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.gloomblade_condition & ( ! used_for_danse || spell_targets.shuriken_storm != 2 )",
["action"] = "gloomblade",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.gloomblade_condition & talent.danse_macabre.enabled & buff.danse_macabre.stack <= 2 & spell_targets.shuriken_storm <= 2",
["action"] = "backstab",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.effective_combo_points >= cp_max_spend",
["list_name"] = "finish",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Finish earlier with Shuriken tornado up.",
["strict"] = 1,
["criteria"] = "buff.shuriken_tornado.up & combo_points.deficit <= 2",
["list_name"] = "finish",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Also safe to finish at 4+ CP with exactly 4 targets. (Same as outside stealth.)",
["strict"] = 1,
["criteria"] = "spell_targets.shuriken_storm >= 4 - talent.seal_fate.enabled & variable.effective_combo_points >= 4",
["list_name"] = "finish",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Finish at lower combo points if you are talented in DS, SS or Seal Fate",
["strict"] = 1,
["criteria"] = "combo_points.deficit <= 1 + ( talent.seal_fate.enabled || talent.deeper_stratagem.enabled || talent.secret_stratagem.enabled )",
["list_name"] = "finish",
}, -- [9]
{
["enabled"] = true,
["action"] = "gloomblade",
["description"] = "Use Gloomblade or Backstab when close to hitting max PV stacks",
["criteria"] = "buff.perforated_veins.stack >= 5 & spell_targets.shuriken_storm < 3",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.perforated_veins.stack >= 5 & spell_targets.shuriken_storm < 3",
["action"] = "backstab",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "stealthed.sepsis & spell_targets.shuriken_storm < 4",
["action"] = "shadowstrike",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "spell_targets >= 3 + buff.the_rotten.up & ( ! buff.premeditation.up || spell_targets >= 7 & ! variable.priority_rotation )",
["action"] = "shuriken_storm",
}, -- [13]
{
["enabled"] = true,
["action"] = "shadowstrike",
["description"] = "Shadowstrike to refresh Find Weakness and to ensure we can carry over a full FW into the next SoD if possible.",
["criteria"] = "debuff.find_weakness.remains <= 1 || cooldown.symbols_of_death.remains < 18 & debuff.find_weakness.remains < cooldown.symbols_of_death.remains",
}, -- [14]
{
["action"] = "shadowstrike",
["enabled"] = true,
}, -- [15]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Restealth if possible (no vulnerable enemies in combat)",
["action"] = "stealth",
}, -- [1]
{
["enabled"] = true,
["description"] = "Interrupt on cooldown to allow simming interactions with that",
["action"] = "kick",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.slice_and_dice.up || spell_targets.shuriken_storm >= cp_max_spend",
["description"] = "Used to determine whether cooldowns wait for SnD based on targets.",
["var_name"] = "snd_condition",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "is_next_cp_animacharged",
["criteria"] = "talent.echoing_reprimand.enabled",
["description"] = "Check to see if the next CP (in the event of a ShT proc) is Animacharged",
["value"] = "combo_points = 1 & buff.echoing_reprimand_2.up || combo_points = 2 & buff.echoing_reprimand_3.up || combo_points = 3 & buff.echoing_reprimand_4.up || combo_points = 4 & buff.echoing_reprimand_5.up",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "effective_combo_points",
["description"] = "Account for ShT reaction time by ignoring low-CP animacharged matches in the 0.5s preceeding a potential ShT proc",
["var_name"] = "effective_combo_points",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points",
["criteria"] = "talent.echoing_reprimand.enabled & effective_combo_points > combo_points & combo_points.deficit > 2 & time_to_sht_plus.4 < 0.5 & ! variable.is_next_cp_animacharged",
["var_name"] = "effective_combo_points",
}, -- [6]
{
["enabled"] = true,
["description"] = "Check CDs at first",
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [7]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["description"] = "Apply Slice and Dice at 4+ CP if it expires within the next GCD or is not up",
["criteria"] = "spell_targets.shuriken_storm < cp_max_spend & buff.slice_and_dice.remains < gcd.max & fight_remains > 6 & combo_points >= 4",
}, -- [8]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "Run fully switches to the Stealthed Rotation (by doing so, it forces pooling if nothing is available).",
["strict"] = 1,
["criteria"] = "stealthed.all",
["list_name"] = "stealthed",
}, -- [9]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "25 + talent.vigor.enabled * 20 + talent.master_of_shadows.enabled * 20 + talent.shadow_focus.enabled * 25 + talent.alacrity.enabled * 20 + 25 * ( spell_targets.shuriken_storm >= 4 )",
["description"] = "Used to define when to use stealth CDs or builders",
["var_name"] = "stealth_threshold",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Consider using a Stealth CD when reaching the energy threshold",
["strict"] = 1,
["criteria"] = "energy.deficit <= variable.stealth_threshold",
["list_name"] = "stealth_cds",
}, -- [11]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Finish at maximum or close to maximum combo point value or at 4+ against 4 targets (outside stealth)",
["strict"] = 1,
["criteria"] = "variable.effective_combo_points >= cp_max_spend || combo_points.deficit <= 1 + buff.the_rotten.up || boss & fight_remains <= 1 & variable.effective_combo_points >= 3 || spell_targets.shuriken_storm >= ( 4 - talent.seal_fate.enabled ) & variable.effective_combo_points >= 4",
["list_name"] = "finish",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Use a builder when reaching the energy threshold",
["criteria"] = "energy.deficit <= variable.stealth_threshold",
["list_name"] = "build",
}, -- [13]
{
["enabled"] = true,
["action"] = "arcane_torrent",
["description"] = "Lowest priority in all of the APL because it causes a GCD",
["criteria"] = "energy.deficit >= 15 + energy.regen",
}, -- [14]
{
["action"] = "arcane_pulse",
["enabled"] = true,
}, -- [15]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [16]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [17]
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
}, -- [1]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "marked_for_death",
["precombat_seconds"] = "15",
}, -- [3]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [4]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["criteria"] = "refreshable",
["precombat_seconds"] = "1",
}, -- [5]
},
["finish"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.premeditation.enabled & spell_targets.shuriken_storm < 5",
["description"] = "Finishers While using Premeditation, avoid casting Slice and Dice when Shadow Dance is soon to be used, except for Kyrian",
["var_name"] = "premed_snd_condition",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.shadow_dance.up & ( buff.danse_macabre.stack >= 3 || ! talent.danse_macabre.enabled ) & ( ! buff.premeditation.up || spell_targets.shuriken_storm != 2 )",
["var_name"] = "secret_condition",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.premed_snd_condition & spell_targets.shuriken_storm < 6 & ! buff.shadow_dance.up & buff.slice_and_dice.remains < fight_remains & refreshable",
["action"] = "slice_and_dice",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.premed_snd_condition & cooldown.shadow_dance.charges_fractional < 1.75 & buff.slice_and_dice.remains < cooldown.symbols_of_death.remains & ( cooldown.shadow_dance.ready & buff.symbols_of_death.remains - buff.shadow_dance.remains < 1.2 )",
["action"] = "slice_and_dice",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.thistle_tea.up & spell_targets.shuriken_storm = 1 || buff.shadow_dance.up & ( spell_targets.shuriken_storm = 1 || dot.rupture.ticking & spell_targets.shuriken_storm >= 2 )",
["var_name"] = "skip_rupture",
}, -- [5]
{
["enabled"] = true,
["action"] = "rupture",
["description"] = "Keep up Rupture if it is about to run out.",
["criteria"] = "( ! variable.skip_rupture || variable.priority_rotation ) & target.time_to_die - remains > 6 & refreshable",
}, -- [6]
{
["enabled"] = true,
["action"] = "rupture",
["description"] = "Refresh Rupture early for Finality",
["criteria"] = "! variable.skip_rupture & buff.finality_rupture.up & cooldown.shadow_dance.remains < 12 & cooldown.shadow_dance.charges_fractional <= 1 & spell_targets.shuriken_storm = 1 & ( talent.dark_brew.enabled || talent.danse_macabre.enabled )",
}, -- [7]
{
["enabled"] = true,
["action"] = "cold_blood",
["description"] = "Sync Cold Blood with Secret Technique when possible",
["criteria"] = "variable.secret_condition & cooldown.secret_technique.ready",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "variable.secret_condition & ( ! talent.cold_blood.enabled || cooldown.cold_blood.remains > buff.shadow_dance.remains - 2 )",
["action"] = "secret_technique",
}, -- [9]
{
["enabled"] = true,
["action"] = "rupture",
["cycle_targets"] = 1,
["criteria"] = "! variable.skip_rupture & ! variable.priority_rotation & spell_targets.shuriken_storm >= 2 & target.time_to_die >= ( 2 * combo_points ) & refreshable",
["description"] = "Multidotting targets that will live for the duration of Rupture, refresh during pandemic.",
}, -- [10]
{
["enabled"] = true,
["action"] = "rupture",
["description"] = "Refresh Rupture early if it will expire during Symbols. Do that refresh if SoD gets ready in the next 5s.",
["criteria"] = "! variable.skip_rupture & remains < cooldown.symbols_of_death.remains + 10 & cooldown.symbols_of_death.remains <= 5 & target.time_to_die - remains > cooldown.symbols_of_death.remains + 5",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! variable.priority_rotation & spell_targets >= 3 || ! used_for_danse & buff.shadow_dance.up & spell_targets.shuriken_storm = 2 & talent.danse_macabre.enabled",
["action"] = "black_powder",
}, -- [12]
{
["action"] = "eviscerate",
["enabled"] = true,
}, -- [13]
},
["cds"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! buff.premeditation.up & spell_targets.shuriken_storm = 1 || ! talent.the_rotten.enabled || spell_targets.shuriken_storm > 1",
["description"] = "Cooldowns",
["var_name"] = "rotten_condition",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.shadow_dance.up & buff.shuriken_tornado.up & buff.shuriken_tornado.remains <= 3.5",
["use_off_gcd"] = 1,
["action"] = "shadow_dance",
["description"] = "Use Dance off-gcd before the first Shuriken Storm from Tornado comes in.",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.shuriken_tornado.up & buff.shuriken_tornado.remains <= 3.5",
["use_off_gcd"] = 1,
["action"] = "symbols_of_death",
["description"] = "(Unless already up because we took Shadow Focus) use Symbols off-gcd before the first Shuriken Storm from Tornado comes in.",
}, -- [3]
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish for Shadowstrike with Danse Macabre at adaquate stacks",
["criteria"] = "buff.danse_macabre.stack > 3 & combo_points <= 2 & ( cooldown.secret_technique.remains >= 30 || ! talent.secret_technique.enabled )",
}, -- [4]
{
["enabled"] = true,
["action"] = "cold_blood",
["description"] = "Cold Blood on 5 combo points when not playing Secret Technique",
["criteria"] = "! talent.secret_technique.enabled & combo_points >= 5",
}, -- [5]
{
["enabled"] = true,
["action"] = "flagellation",
["criteria"] = "variable.snd_condition & combo_points >= 5 & target.time_to_die > 10",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["for_next"] = 1,
["description"] = "Pool for Tornado pre-SoD with ShD ready when not running SF.",
["criteria"] = "talent.shuriken_tornado.enabled & ! talent.shadow_focus.enabled",
["action"] = "pool_resource",
}, -- [7]
{
["enabled"] = true,
["action"] = "shuriken_tornado",
["description"] = "Use Tornado pre SoD when we have the energy whether from pooling without SF or just generally.",
["criteria"] = "spell_targets.shuriken_storm <= 1 & energy >= 60 & variable.snd_condition & cooldown.symbols_of_death.up & cooldown.shadow_dance.charges >= 1 & ( ! talent.flagellation.enabled & ! cooldown.flagellation.up || buff.flagellation_buff.up || spell_targets.shuriken_storm >= 5 ) & combo_points <= 2 & ! buff.premeditation.up",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & combo_points.deficit >= 1 & target.time_to_die >= 16",
["action"] = "sepsis",
}, -- [9]
{
["enabled"] = true,
["action"] = "symbols_of_death",
["description"] = "Use Symbols on cooldown (after first SnD) unless we are going to pop Tornado and do not have Shadow Focus.",
["criteria"] = "variable.rotten_condition & variable.snd_condition & ( ! talent.flagellation.enabled & ( combo_points <= 1 || ! talent.the_rotten.enabled ) || cooldown.flagellation.remains > 10 || cooldown.flagellation.up & combo_points >= 5 )",
}, -- [10]
{
["enabled"] = true,
["action"] = "marked_for_death",
["line_cd"] = "1.5",
["cycle_targets"] = 1,
["criteria"] = "raid_event.adds.up & ( target.time_to_die < combo_points.deficit || ! stealthed.all & combo_points.deficit >= cp_max_spend )",
["description"] = "If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or not stealthed without any CP.",
}, -- [11]
{
["enabled"] = true,
["action"] = "marked_for_death",
["description"] = "If no adds will die within the next 30s, use MfD on boss without any CP.",
["criteria"] = "raid_event.adds.in > 30 - raid_event.adds.duration & combo_points.deficit >= cp_max_spend",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & combo_points.deficit >= 2 & target.time_to_die >= 10 & ( dot.sepsis.ticking || cooldown.sepsis.remains <= 8 || ! talent.sepsis.enabled ) || boss & fight_remains <= 20",
["action"] = "shadow_blades",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "variable.snd_condition & combo_points.deficit >= 3 & ( variable.priority_rotation || spell_targets.shuriken_storm <= 4 || talent.resounding_clarity.enabled ) & ( buff.shadow_dance.up || ! talent.danse_macabre.enabled )",
["action"] = "echoing_reprimand",
}, -- [14]
{
["enabled"] = true,
["action"] = "shuriken_tornado",
["description"] = "With SF, if not already done, use Tornado with SoD up.",
["criteria"] = "variable.snd_condition & buff.symbols_of_death.up & combo_points <= 2 & ( ! buff.premeditation.up || spell_targets.shuriken_storm > 4 )",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "cooldown.shadow_dance.ready & ! stealthed.all & spell_targets.shuriken_storm >= 3 & ! talent.flagellation.enabled",
["action"] = "shuriken_tornado",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! buff.shadow_dance.up & boss & fight_remains <= 8 + talent.subterfuge.enabled",
["action"] = "shadow_dance",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.symbols_of_death.remains >= 3 & ! buff.thistle_tea.up & ( energy.deficit >= 100 & ( combo_points.deficit >= 2 || spell_targets.shuriken_storm >= 3 ) || cooldown.thistle_tea.charges_fractional >= 2.75 & buff.shadow_dance.up ) || buff.shadow_dance.remains >= 4 & ! buff.thistle_tea.up & spell_targets.shuriken_storm >= 3 || ! buff.thistle_tea.up & boss & fight_remains <= ( 6 * cooldown.thistle_tea.charges )",
["action"] = "thistle_tea",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || boss & fight_remains < 30 || buff.symbols_of_death.up & ( buff.shadow_blades.up || cooldown.shadow_blades.remains <= 10 )",
["action"] = "potion",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "blood_fury",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "berserking",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "fireblood",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.symbols_of_death.up",
["action"] = "ancestral_call",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & ( ! raid_event.adds.up || ! equipped.stormeaters_boon )",
["action"] = "manic_grieftorch",
["use_off_gcd"] = 1,
}, -- [24]
{
["enabled"] = true,
["action"] = "use_items",
["description"] = "Default fallback for usable items: Use with Symbols of Death.",
["criteria"] = "buff.symbols_of_death.up || boss & fight_remains < 20",
}, -- [25]
},
["stealth_cds"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.shadow_dance.charges_fractional >= 0.75 + talent.shadow_dance.enabled",
["description"] = "Stealth Cooldowns Helper Variable",
["var_name"] = "shd_threshold",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! buff.the_rotten.up || spell_targets.shuriken_storm > 1",
["var_name"] = "rotten_threshold",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( ! talent.danse_macabre.enabled || spell_targets.shuriken_storm >= 3 ) & ! variable.shd_threshold & combo_points.deficit > 1",
["action"] = "vanish",
}, -- [3]
{
["enabled"] = true,
["for_next"] = 1,
["description"] = "Pool for Shadowmeld + Shadowstrike unless we are about to cap on Dance charges. Only when Find Weakness is about to run out.",
["criteria"] = "race.night_elf",
["extra_amount"] = "40",
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "energy >= 40 & energy.deficit >= 10 & ! variable.shd_threshold & combo_points.deficit > 4",
["action"] = "shadowmeld",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points <= 1",
["description"] = "CP thresholds for entering Shadow Dance Default to start dance with 0 or 1 combo point",
["var_name"] = "shd_combo_points",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "shd_combo_points",
["criteria"] = "spell_targets.shuriken_storm > ( 4 - 2 * talent.shuriken_tornado.enabled ) || variable.priority_rotation & spell_targets.shuriken_storm >= 4",
["description"] = "Use stealth cooldowns with high combo points when playing shuriken tornado or with high target counts",
["value"] = "combo_points.deficit <= 1",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "shd_combo_points",
["criteria"] = "spell_targets.shuriken_storm = ( 4 - talent.seal_fate.enabled )",
["description"] = "Use stealth cooldowns on any combo point on 4 targets",
["value"] = "1",
}, -- [8]
{
["enabled"] = true,
["action"] = "shadow_dance",
["description"] = "Dance during Symbols or above threshold.",
["criteria"] = "( variable.shd_combo_points & ( ! talent.shadow_dance.enabled & buff.symbols_of_death.remains >= ( 2.2 - talent.flagellation.enabled ) || variable.shd_threshold ) || talent.shadow_dance.enabled & cooldown.secret_technique.remains <= 9 & ( spell_targets.shuriken_storm <= 3 || talent.danse_macabre.enabled ) || buff.flagellation.up || buff.flagellation_persist.remains >= 6 || spell_targets.shuriken_storm >= 4 & cooldown.symbols_of_death.remains > 10 ) & variable.rotten_threshold",
}, -- [9]
{
["enabled"] = true,
["action"] = "shadow_dance",
["description"] = "Burn Dances charges if before the fight ends if SoD won't be ready in time.",
["criteria"] = "variable.shd_combo_points & fight_remains < cooldown.symbols_of_death.remains || ! talent.shadow_dance.enabled & dot.rupture.ticking & spell_targets.shuriken_storm <= 4 & variable.rotten_threshold",
}, -- [10]
},
["build"] = {
{
["enabled"] = true,
["action"] = "shuriken_storm",
["description"] = "Builders",
["criteria"] = "spell_targets >= 2 + ( talent.gloomblade.enabled & buff.lingering_shadow.remains >= 6 || buff.perforated_veins.up )",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.echoing_reprimand.enabled || ! ( variable.is_next_cp_animacharged & ( time_to_sht_plus.3 < 0.5 || time_to_sht_plus.4 < 1 ) & energy < 60 )",
["description"] = "Build immediately unless the next CP is Animacharged and we won't cap energy waiting for it.",
["var_name"] = "anima_helper",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.anima_helper",
["action"] = "gloomblade",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.anima_helper",
["action"] = "backstab",
}, -- [4]
},
},
["version"] = 20230328,
["warnings"] = "The import for 'stealthed' required some automated changes.\nLine 2: Converted 'talent.lingering_shadow' to 'talent.lingering_shadow.enabled' (1x).\nLine 3: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\nLine 5: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\nLine 8: Converted 'talent.seal_fate' to 'talent.seal_fate.enabled' (1x).\nLine 9: Converted 'talent.seal_fate' to 'talent.seal_fate.enabled' (1x).\nLine 9: Converted 'talent.deeper_stratagem' to 'talent.deeper_stratagem.enabled' (1x).\nLine 9: Converted 'talent.secret_stratagem' to 'talent.secret_stratagem.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 6: Converted 'time_to_sht.4.plus' to 'time_to_sht_plus.4' (1x).\nLine 12: Converted 'talent.seal_fate' to 'talent.seal_fate.enabled' (1x).\n\nThe import for 'finish' required some automated changes.\nLine 2: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\nLine 7: Converted 'talent.dark_brew' to 'talent.dark_brew.enabled' (1x).\nLine 7: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\nLine 9: Converted 'talent.cold_blood' to 'talent.cold_blood.enabled' (1x).\nLine 12: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 1: Converted 'talent.the_rotten' to 'talent.the_rotten.enabled' (1x).\nLine 4: Converted 'talent.secret_technique' to 'talent.secret_technique.enabled' (1x).\nLine 5: Converted 'talent.secret_technique' to 'talent.secret_technique.enabled' (1x).\nLine 10: Converted 'talent.flagellation' to 'talent.flagellation.enabled' (1x).\nLine 10: Converted 'talent.the_rotten' to 'talent.the_rotten.enabled' (1x).\nLine 13: Converted 'talent.sepsis' to 'talent.sepsis.enabled' (1x).\nLine 14: Converted 'talent.resounding_clarity' to 'talent.resounding_clarity.enabled' (1x).\nLine 14: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\n\nThe import for 'stealth_cds' required some automated changes.\nLine 1: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\nLine 3: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\nLine 8: Converted 'talent.seal_fate' to 'talent.seal_fate.enabled' (1x).\nLine 9: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\nLine 9: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\nLine 9: Converted 'talent.danse_macabre' to 'talent.danse_macabre.enabled' (1x).\nLine 10: Converted 'talent.shadow_dance' to 'talent.shadow_dance.enabled' (1x).\n\nThe import for 'build' required some automated changes.\nLine 1: Converted 'talent.gloomblade' to 'talent.gloomblade.enabled' (1x).\nLine 2: Converted 'time_to_sht.3.plus' to 'time_to_sht_plus.3' (1x).\nLine 2: Converted 'time_to_sht.4.plus' to 'time_to_sht_plus.4' (1x).\n\nImported 7 action lists.\n",
["profile"] = "actions.precombat+=/apply_poison\nactions.precombat+=/stealth\nactions.precombat+=/marked_for_death,precombat_seconds=15\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/slice_and_dice,precombat_seconds=1,if=refreshable\n\n# Restealth if possible (no vulnerable enemies in combat)\nactions+=/stealth\n# Interrupt on cooldown to allow simming interactions with that\nactions+=/kick\n# Used to determine whether cooldowns wait for SnD based on targets.\nactions+=/variable,name=snd_condition,value=buff.slice_and_dice.up||spell_targets.shuriken_storm>=cp_max_spend\n# Check to see if the next CP (in the event of a ShT proc) is Animacharged\nactions+=/variable,name=is_next_cp_animacharged,if=talent.echoing_reprimand.enabled,value=combo_points=1&buff.echoing_reprimand_2.up||combo_points=2&buff.echoing_reprimand_3.up||combo_points=3&buff.echoing_reprimand_4.up||combo_points=4&buff.echoing_reprimand_5.up\n# Account for ShT reaction time by ignoring low-CP animacharged matches in the 0.5s preceeding a potential ShT proc\nactions+=/variable,name=effective_combo_points,value=effective_combo_points\nactions+=/variable,name=effective_combo_points,if=talent.echoing_reprimand.enabled&effective_combo_points>combo_points&combo_points.deficit>2&time_to_sht.4.plus<0.5&!variable.is_next_cp_animacharged,value=combo_points\n# Check CDs at first\nactions+=/call_action_list,name=cds\n# Apply Slice and Dice at 4+ CP if it expires within the next GCD or is not up\nactions+=/slice_and_dice,if=spell_targets.shuriken_storm<cp_max_spend&buff.slice_and_dice.remains<gcd.max&fight_remains>6&combo_points>=4\n# Run fully switches to the Stealthed Rotation (by doing so, it forces pooling if nothing is available).\nactions+=/run_action_list,name=stealthed,strict=1,if=stealthed.all\n## Only change rotation if we have priority_rotation set.\n## actions+=/variable,name=priority_rotation,value=priority_rotation\n# Used to define when to use stealth CDs or builders\nactions+=/variable,name=stealth_threshold,value=25+talent.vigor.enabled*20+talent.master_of_shadows.enabled*20+talent.shadow_focus.enabled*25+talent.alacrity.enabled*20+25*(spell_targets.shuriken_storm>=4)\n# Consider using a Stealth CD when reaching the energy threshold\nactions+=/call_action_list,name=stealth_cds,strict=1,if=energy.deficit<=variable.stealth_threshold\n# Finish at maximum or close to maximum combo point value or at 4+ against 4 targets (outside stealth)\nactions+=/call_action_list,name=finish,strict=1,if=variable.effective_combo_points>=cp_max_spend||combo_points.deficit<=1+buff.the_rotten.up||boss&fight_remains<=1&variable.effective_combo_points>=3||spell_targets.shuriken_storm>=(4-talent.seal_fate)&variable.effective_combo_points>=4\n# Use a builder when reaching the energy threshold\nactions+=/call_action_list,name=build,if=energy.deficit<=variable.stealth_threshold\n# Lowest priority in all of the APL because it causes a GCD\nactions+=/arcane_torrent,if=energy.deficit>=15+energy.regen\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# Builders\nactions.build+=/shuriken_storm,if=spell_targets>=2+(talent.gloomblade&buff.lingering_shadow.remains>=6||buff.perforated_veins.up)\n# Build immediately unless the next CP is Animacharged and we won't cap energy waiting for it.\nactions.build+=/variable,name=anima_helper,value=!talent.echoing_reprimand.enabled||!(variable.is_next_cp_animacharged&(time_to_sht.3.plus<0.5||time_to_sht.4.plus<1)&energy<60)\nactions.build+=/gloomblade,if=variable.anima_helper\nactions.build+=/backstab,if=variable.anima_helper\n\n# Cooldowns\nactions.cds+=/variable,name=rotten_condition,value=!buff.premeditation.up&spell_targets.shuriken_storm=1||!talent.the_rotten||spell_targets.shuriken_storm>1\n# Use Dance off-gcd before the first Shuriken Storm from Tornado comes in.\nactions.cds+=/shadow_dance,use_off_gcd=1,if=!buff.shadow_dance.up&buff.shuriken_tornado.up&buff.shuriken_tornado.remains<=3.5\n# (Unless already up because we took Shadow Focus) use Symbols off-gcd before the first Shuriken Storm from Tornado comes in.\nactions.cds+=/symbols_of_death,use_off_gcd=1,if=buff.shuriken_tornado.up&buff.shuriken_tornado.remains<=3.5\n# Vanish for Shadowstrike with Danse Macabre at adaquate stacks\nactions.cds+=/vanish,if=buff.danse_macabre.stack>3&combo_points<=2&(cooldown.secret_technique.remains>=30||!talent.secret_technique)\n# Cold Blood on 5 combo points when not playing Secret Technique\nactions.cds+=/cold_blood,if=!talent.secret_technique&combo_points>=5\nactions.cds+=/flagellation,cycle_targets=1,if=variable.snd_condition&combo_points>=5&target.time_to_die>10\n# Pool for Tornado pre-SoD with ShD ready when not running SF.\nactions.cds+=/pool_resource,for_next=1,if=talent.shuriken_tornado.enabled&!talent.shadow_focus.enabled\n# Use Tornado pre SoD when we have the energy whether from pooling without SF or just generally.\nactions.cds+=/shuriken_tornado,if=spell_targets.shuriken_storm<=1&energy>=60&variable.snd_condition&cooldown.symbols_of_death.up&cooldown.shadow_dance.charges>=1&(!talent.flagellation.enabled&!cooldown.flagellation.up||buff.flagellation_buff.up||spell_targets.shuriken_storm>=5)&combo_points<=2&!buff.premeditation.up\nactions.cds+=/sepsis,if=variable.snd_condition&combo_points.deficit>=1&target.time_to_die>=16\n# Use Symbols on cooldown (after first SnD) unless we are going to pop Tornado and do not have Shadow Focus.\nactions.cds+=/symbols_of_death,if=variable.rotten_condition&variable.snd_condition&(!talent.flagellation&(combo_points<=1||!talent.the_rotten)||cooldown.flagellation.remains>10||cooldown.flagellation.up&combo_points>=5)\n# If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or not stealthed without any CP.\nactions.cds+=/marked_for_death,line_cd=1.5,cycle_targets=1,if=raid_event.adds.up&(target.time_to_die<combo_points.deficit||!stealthed.all&combo_points.deficit>=cp_max_spend)\n# If no adds will die within the next 30s, use MfD on boss without any CP.\nactions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend\nactions.cds+=/shadow_blades,if=variable.snd_condition&combo_points.deficit>=2&target.time_to_die>=10&(dot.sepsis.ticking||cooldown.sepsis.remains<=8||!talent.sepsis)||boss&fight_remains<=20\nactions.cds+=/echoing_reprimand,if=variable.snd_condition&combo_points.deficit>=3&(variable.priority_rotation||spell_targets.shuriken_storm<=4||talent.resounding_clarity)&(buff.shadow_dance.up||!talent.danse_macabre)\n# With SF, if not already done, use Tornado with SoD up.\nactions.cds+=/shuriken_tornado,if=variable.snd_condition&buff.symbols_of_death.up&combo_points<=2&(!buff.premeditation.up||spell_targets.shuriken_storm>4)\nactions.cds+=/shuriken_tornado,if=cooldown.shadow_dance.ready&!stealthed.all&spell_targets.shuriken_storm>=3&!talent.flagellation.enabled\nactions.cds+=/shadow_dance,if=!buff.shadow_dance.up&boss&fight_remains<=8+talent.subterfuge.enabled\nactions.cds+=/thistle_tea,if=cooldown.symbols_of_death.remains>=3&!buff.thistle_tea.up&(energy.deficit>=100&(combo_points.deficit>=2||spell_targets.shuriken_storm>=3)||cooldown.thistle_tea.charges_fractional>=2.75&buff.shadow_dance.up)||buff.shadow_dance.remains>=4&!buff.thistle_tea.up&spell_targets.shuriken_storm>=3||!buff.thistle_tea.up&boss&fight_remains<=(6*cooldown.thistle_tea.charges)\nactions.cds+=/potion,if=buff.bloodlust.react||boss&fight_remains<30||buff.symbols_of_death.up&(buff.shadow_blades.up||cooldown.shadow_blades.remains<=10)\nactions.cds+=/blood_fury,if=buff.symbols_of_death.up\nactions.cds+=/berserking,if=buff.symbols_of_death.up\nactions.cds+=/fireblood,if=buff.symbols_of_death.up\nactions.cds+=/ancestral_call,if=buff.symbols_of_death.up\nactions.cds+=/manic_grieftorch,use_off_gcd=1,if=!stealthed.all&(!raid_event.adds.up||!equipped.stormeaters_boon)\n# Default fallback for usable items: Use with Symbols of Death.\nactions.cds+=/use_items,if=buff.symbols_of_death.up||boss&fight_remains<20\n\n# Finishers While using Premeditation, avoid casting Slice and Dice when Shadow Dance is soon to be used, except for Kyrian\nactions.finish+=/variable,name=premed_snd_condition,value=talent.premeditation.enabled&spell_targets.shuriken_storm<5\nactions.finish+=/variable,name=secret_condition,value=buff.shadow_dance.up&(buff.danse_macabre.stack>=3||!talent.danse_macabre)&(!buff.premeditation.up||spell_targets.shuriken_storm!=2)\nactions.finish+=/slice_and_dice,if=!variable.premed_snd_condition&spell_targets.shuriken_storm<6&!buff.shadow_dance.up&buff.slice_and_dice.remains<fight_remains&refreshable\nactions.finish+=/slice_and_dice,if=variable.premed_snd_condition&cooldown.shadow_dance.charges_fractional<1.75&buff.slice_and_dice.remains<cooldown.symbols_of_death.remains&(cooldown.shadow_dance.ready&buff.symbols_of_death.remains-buff.shadow_dance.remains<1.2)\nactions.finish+=/variable,name=skip_rupture,value=buff.thistle_tea.up&spell_targets.shuriken_storm=1||buff.shadow_dance.up&(spell_targets.shuriken_storm=1||dot.rupture.ticking&spell_targets.shuriken_storm>=2)\n# Keep up Rupture if it is about to run out.\nactions.finish+=/rupture,if=(!variable.skip_rupture||variable.priority_rotation)&target.time_to_die-remains>6&refreshable\n# Refresh Rupture early for Finality\nactions.finish+=/rupture,if=!variable.skip_rupture&buff.finality_rupture.up&cooldown.shadow_dance.remains<12&cooldown.shadow_dance.charges_fractional<=1&spell_targets.shuriken_storm=1&(talent.dark_brew||talent.danse_macabre)\n# Sync Cold Blood with Secret Technique when possible\nactions.finish+=/cold_blood,if=variable.secret_condition&cooldown.secret_technique.ready\nactions.finish+=/secret_technique,if=variable.secret_condition&(!talent.cold_blood||cooldown.cold_blood.remains>buff.shadow_dance.remains-2)\n# Multidotting targets that will live for the duration of Rupture, refresh during pandemic.\nactions.finish+=/rupture,cycle_targets=1,if=!variable.skip_rupture&!variable.priority_rotation&spell_targets.shuriken_storm>=2&target.time_to_die>=(2*combo_points)&refreshable\n# Refresh Rupture early if it will expire during Symbols. Do that refresh if SoD gets ready in the next 5s.\nactions.finish+=/rupture,if=!variable.skip_rupture&remains<cooldown.symbols_of_death.remains+10&cooldown.symbols_of_death.remains<=5&target.time_to_die-remains>cooldown.symbols_of_death.remains+5\nactions.finish+=/black_powder,if=!variable.priority_rotation&spell_targets>=3||!used_for_danse&buff.shadow_dance.up&spell_targets.shuriken_storm=2&talent.danse_macabre\nactions.finish+=/eviscerate\n\n# Stealth Cooldowns Helper Variable\nactions.stealth_cds+=/variable,name=shd_threshold,value=cooldown.shadow_dance.charges_fractional>=0.75+talent.shadow_dance\nactions.stealth_cds+=/variable,name=rotten_threshold,value=!buff.the_rotten.up||spell_targets.shuriken_storm>1\nactions.stealth_cds+=/vanish,if=(!talent.danse_macabre||spell_targets.shuriken_storm>=3)&!variable.shd_threshold&combo_points.deficit>1\n# Pool for Shadowmeld + Shadowstrike unless we are about to cap on Dance charges. Only when Find Weakness is about to run out.\nactions.stealth_cds+=/pool_resource,for_next=1,extra_amount=40,if=race.night_elf\nactions.stealth_cds+=/shadowmeld,if=energy>=40&energy.deficit>=10&!variable.shd_threshold&combo_points.deficit>4\n# CP thresholds for entering Shadow Dance Default to start dance with 0 or 1 combo point\nactions.stealth_cds+=/variable,name=shd_combo_points,value=combo_points<=1\n# Use stealth cooldowns with high combo points when playing shuriken tornado or with high target counts\nactions.stealth_cds+=/variable,name=shd_combo_points,value=combo_points.deficit<=1,if=spell_targets.shuriken_storm>(4-2*talent.shuriken_tornado.enabled)||variable.priority_rotation&spell_targets.shuriken_storm>=4\n# Use stealth cooldowns on any combo point on 4 targets\nactions.stealth_cds+=/variable,name=shd_combo_points,value=1,if=spell_targets.shuriken_storm=(4-talent.seal_fate)\n# Dance during Symbols or above threshold.\nactions.stealth_cds+=/shadow_dance,if=(variable.shd_combo_points&(!talent.shadow_dance&buff.symbols_of_death.remains>=(2.2-talent.flagellation.enabled)||variable.shd_threshold)||talent.shadow_dance&cooldown.secret_technique.remains<=9&(spell_targets.shuriken_storm<=3||talent.danse_macabre)||buff.flagellation.up||buff.flagellation_persist.remains>=6||spell_targets.shuriken_storm>=4&cooldown.symbols_of_death.remains>10)&variable.rotten_threshold\n# Burn Dances charges if before the fight ends if SoD won't be ready in time.\nactions.stealth_cds+=/shadow_dance,if=variable.shd_combo_points&fight_remains<cooldown.symbols_of_death.remains||!talent.shadow_dance&dot.rupture.ticking&spell_targets.shuriken_storm<=4&variable.rotten_threshold\n\n# Stealthed Rotation If Stealth/vanish are up, use Shadowstrike to benefit from the passive bonus and Find Weakness, even if we are at max CP (unless using Master Assassin)\nactions.stealthed+=/shadowstrike,if=(buff.stealth.up||buff.vanish.up)&(spell_targets.shuriken_storm<4||variable.priority_rotation)\n# Variable to Gloomblade / Backstab when on 4 or 5 combo points with premediation and when the combo point is not anima charged\nactions.stealthed+=/variable,name=gloomblade_condition,value=buff.danse_macabre.stack<5&(combo_points.deficit=2||combo_points.deficit=3)&(buff.premeditation.up||effective_combo_points<7)&(spell_targets.shuriken_storm<=8||talent.lingering_shadow)\nactions.stealthed+=/shuriken_storm,if=variable.gloomblade_condition&buff.silent_storm.up&!debuff.find_weakness.remains&talent.improved_shuriken_storm.enabled||combo_points<=1&!used_for_danse&spell_targets.shuriken_storm=2&talent.danse_macabre\nactions.stealthed+=/gloomblade,if=variable.gloomblade_condition&(!used_for_danse||spell_targets.shuriken_storm!=2)\nactions.stealthed+=/backstab,if=variable.gloomblade_condition&talent.danse_macabre&buff.danse_macabre.stack<=2&spell_targets.shuriken_storm<=2\nactions.stealthed+=/call_action_list,name=finish,strict=1,if=variable.effective_combo_points>=cp_max_spend\n# Finish earlier with Shuriken tornado up.\nactions.stealthed+=/call_action_list,name=finish,strict=1,if=buff.shuriken_tornado.up&combo_points.deficit<=2\n# Also safe to finish at 4+ CP with exactly 4 targets. (Same as outside stealth.)\nactions.stealthed+=/call_action_list,name=finish,strict=1,if=spell_targets.shuriken_storm>=4-talent.seal_fate&variable.effective_combo_points>=4\n# Finish at lower combo points if you are talented in DS, SS or Seal Fate\nactions.stealthed+=/call_action_list,name=finish,strict=1,if=combo_points.deficit<=1+(talent.seal_fate||talent.deeper_stratagem||talent.secret_stratagem)\n# Use Gloomblade or Backstab when close to hitting max PV stacks\nactions.stealthed+=/gloomblade,if=buff.perforated_veins.stack>=5&spell_targets.shuriken_storm<3\nactions.stealthed+=/backstab,if=buff.perforated_veins.stack>=5&spell_targets.shuriken_storm<3\nactions.stealthed+=/shadowstrike,if=stealthed.sepsis&spell_targets.shuriken_storm<4\nactions.stealthed+=/shuriken_storm,if=spell_targets>=3+buff.the_rotten.up&(!buff.premeditation.up||spell_targets>=7&!variable.priority_rotation)\n# Shadowstrike to refresh Find Weakness and to ensure we can carry over a full FW into the next SoD if possible.\nactions.stealthed+=/shadowstrike,if=debuff.find_weakness.remains<=1||cooldown.symbols_of_death.remains<18&debuff.find_weakness.remains<cooldown.symbols_of_death.remains\nactions.stealthed+=/shadowstrike",
["author"] = "SimC",
},
["Assassination"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230325,
["author"] = "SimC",
["desc"] = "2023-02-25: Allow Envenom as CP spender against a dying target when Rupture and Crimson Tempest would otherwise not be used.\n\n2023-03-19: 10.0.7 update.\n\n2023-03-25: Add missing Shiv entry.",
["lists"] = {
["stealthed"] = {
{
["enabled"] = true,
["action"] = "indiscriminate_carnage",
["description"] = "Stealthed Actions",
["criteria"] = "spell_targets.fan_of_knives > desired_targets || spell_targets.fan_of_knives > 1 & raid_event.adds.in > 60",
}, -- [1]
{
["enabled"] = true,
["action"] = "garrote",
["cycle_targets"] = 1,
["criteria"] = "stealthed.improved_garrote & ! will_lose_exsanguinate & ( remains < 12 / exsanguinated_rate || pmultiplier <= 1 ) & target.time_to_die - remains > 2",
["description"] = "Improved Garrote: Apply or Refresh with buffed Garrotes",
}, -- [2]
{
["enabled"] = true,
["action"] = "garrote",
["description"] = "Improved Garrote + Exsg on 1T: Refresh Garrote at the end of stealth to get max duration before Exsanguinate",
["criteria"] = "talent.exsanguinate.enabled & stealthed.improved_garrote & active_enemies = 1 & ! will_lose_exsanguinate & ( remains < 18 / exsanguinated_rate || pmultiplier <= 1 ) & variable.exsang_sync_remains < 18 & improved_garrote_remains < 1.3",
}, -- [3]
},
["vanish"] = {
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Stealth Cooldowns Vanish Sync for Improved Garrote with Deathmark",
["criteria"] = "talent.improved_garrote.enabled & cooldown.garrote.up & ! debuff.garrote.exsanguinated & ( dot.garrote.pmultiplier <= 1 || dot.garrote.refreshable ) & ( debuff.deathmark.up || cooldown.deathmark.remains < 4 ) & combo_points.deficit >= ( spell_targets.fan_of_knives >? 4 )",
}, -- [1]
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish for Indiscriminate Carnage or Improved Garrote at 2-3+ targets",
["criteria"] = "talent.improved_garrote.enabled & cooldown.garrote.up & ! debuff.garrote.exsanguinated & ( dot.garrote.pmultiplier <= 1 || dot.garrote.refreshable ) & spell_targets.fan_of_knives > ( 3 - talent.indiscriminate_carnage.enabled ) & ( ! talent.indiscriminate_carnage.enabled || cooldown.indiscriminate_carnage.ready )",
}, -- [2]
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.",
["criteria"] = "! talent.improved_garrote.enabled & talent.master_assassin.enabled & ! dot.rupture.refreshable & dot.garrote.remains > 3 & debuff.deathmark.up & ( debuff.shiv.up || debuff.deathmark.remains < 4 || dot.sepsis.ticking ) & dot.sepsis.remains < 3",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.improved_garrote.enabled & cooldown.garrote.up & ! debuff.garrote.exsanguinated & dot.garrote.pmultiplier <= 1 & ( debuff.deathmark.up || cooldown.deathmark.remains < 4 || cooldown.deathmark.remains > 60 ) & combo_points.deficit >= ( spell_targets.fan_of_knives >? 4 )",
["action"] = "shadow_dance",
}, -- [4]
{
["enabled"] = true,
["action"] = "shadow_dance",
["description"] = "Shadow Dance for Improved Garrote with Deathmark",
["criteria"] = "talent.improved_garrote.enabled & cooldown.garrote.up & ! debuff.garrote.exsanguinated & ( dot.garrote.pmultiplier <= 1 || dot.garrote.refreshable ) & ( debuff.deathmark.up || cooldown.deathmark.remains < 12 || cooldown.deathmark.remains > 60 ) & combo_points.deficit >= ( spell_targets.fan_of_knives >? 4 )",
}, -- [5]
{
["enabled"] = true,
["action"] = "shadow_dance",
["description"] = "Shadow Dance with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.",
["criteria"] = "! talent.improved_garrote.enabled & talent.master_assassin.enabled & ! dot.rupture.refreshable & dot.garrote.remains > 3 & ( debuff.deathmark.up || cooldown.deathmark.remains > 60 ) & ( debuff.shiv.up || debuff.deathmark.remains < 4 || dot.sepsis.ticking ) & dot.sepsis.remains < 3",
}, -- [6]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Restealth if possible (no vulnerable enemies in combat)",
["action"] = "stealth",
}, -- [1]
{
["enabled"] = true,
["action"] = "kick",
["description"] = "Interrupt on cooldown to allow simming interactions with that",
["criteria"] = "! stealthed.all",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.fan_of_knives < 2",
["var_name"] = "single_target",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "energy.regen_combined > 35",
["description"] = "Combined Energy Regen needed to saturate",
["var_name"] = "regen_saturated",
}, -- [4]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Next Exsanguinate cooldown time based on Deathmark syncing logic and remaining fight duration",
["criteria"] = "cooldown.deathmark.remains > cooldown.exsanguinate.remains & cooldown.deathmark.remains < fight_remains",
["var_name"] = "exsang_sync_remains",
["action"] = "variable",
["value_else"] = "cooldown.exsanguinate.remains",
["value"] = "cooldown.deathmark.remains",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "stealthed.rogue || stealthed.improved_garrote",
["action"] = "call_action_list",
["list_name"] = "stealthed",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [7]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["description"] = "Put SnD up initially for Cut to the Chase, refresh with Envenom if at low duration",
["criteria"] = "! buff.slice_and_dice.up & combo_points >= 2 || ! talent.cut_to_the_chase.enabled & refreshable & combo_points >= 4",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.cut_to_the_chase.enabled & buff.slice_and_dice.up & buff.slice_and_dice.remains < 5 & combo_points >= 4",
["action"] = "envenom",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "dot",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "direct",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 15 + energy.regen_combined",
["action"] = "arcane_torrent",
}, -- [12]
{
["action"] = "arcane_pulse",
["enabled"] = true,
}, -- [13]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [14]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [15]
},
["precombat"] = {
{
["enabled"] = true,
["description"] = "Executed before combat begins. Accepts non-harmful actions only.",
["action"] = "apply_poison",
}, -- [1]
{
["enabled"] = true,
["action"] = "marked_for_death",
["criteria"] = "raid_event.adds.in > 15",
["precombat_seconds"] = "10",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t1.has_stat.any_dps & ( ! trinket.t2.has_stat.any_dps || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration )",
["description"] = "Determine which (if any) stat buff trinket we want to attempt to sync with Deathmark.",
["value"] = "1",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["criteria"] = "trinket.t2.has_stat.any_dps & ( ! trinket.t1.has_stat.any_dps || trinket.t2.cooldown.duration > trinket.t1.cooldown.duration )",
["var_name"] = "trinket_sync_slot",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cp_max_spend <? ( talent.resounding_clarity.enabled * 7 )",
["description"] = "Determine if we should be be casting our pre-Exsanguinate Rupture with Echoing Reprimand CP",
["var_name"] = "exsanguinate_rupture_cp",
}, -- [5]
{
["action"] = "stealth",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "slice_and_dice",
["criteria"] = "refreshable",
["precombat_seconds"] = "1",
}, -- [7]
},
["direct"] = {
{
["enabled"] = true,
["action"] = "envenom",
["description"] = "Direct damage abilities Envenom at 4+ (5+ with DS) CP. Immediately on 2+ targets, with Deathmark, or with TB, otherwise wait for some energy. Also wait if Exsg combo is coming up. Allow as filler on a dying target if CP capped.",
["criteria"] = "effective_combo_points >= 4 + talent.deeper_stratagem.enabled & ( debuff.deathmark.up || debuff.shiv.up || debuff.amplifying_poison.stack >= 10 || energy.deficit <= 25 + energy.regen_combined || ! variable.single_target || effective_combo_points > cp_max_spend || combo_points.deficit < 1 & target.time_to_die <= 4 + ( talent.dashing_scoundrel.enabled * 5 ) + ( talent.doomblade.enabled * 5 ) + ( variable.regen_saturated * 6 ) ) & ( ! talent.exsanguinate.enabled || variable.exsang_sync_remains > 2 || talent.resounding_clarity.enabled & ( cooldown.echoing_reprimand.ready & combo_points > 2 || effective_combo_points > 5 ) )",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points.deficit > 1 || energy.deficit <= 25 + energy.regen_combined || ! variable.single_target",
["var_name"] = "use_filler",
}, -- [2]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["description"] = "Apply SBS to all targets without a debuff as priority, preferring targets dying sooner after the primary target",
["criteria"] = "variable.use_filler & ! dot.serrated_bone_spike_dot.ticking",
}, -- [3]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["criteria"] = "variable.use_filler & ! dot.serrated_bone_spike_dot.ticking",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["description"] = "Keep from capping charges or burn at the end of fights",
["criteria"] = "variable.use_filler & master_assassin_remains < 0.8 & ( boss & fight_remains <= 5 || cooldown.serrated_bone_spike.max_charges - charges_fractional <= 0.25 )",
}, -- [5]
{
["enabled"] = true,
["action"] = "serrated_bone_spike",
["description"] = "When MA is not at high duration, sync with Shiv",
["criteria"] = "variable.use_filler & master_assassin_remains < 0.8 & ! variable.single_target & debuff.shiv.up",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( ! talent.exsanguinate.enabled || ! talent.resounding_clarity.enabled || variable.exsang_sync_remains > 40 ) & variable.use_filler & cooldown.deathmark.remains > 10 || boss & fight_remains < 20",
["action"] = "echoing_reprimand",
}, -- [7]
{
["enabled"] = true,
["action"] = "fan_of_knives",
["description"] = "Fan of Knives at 3+ targets or 4+ with DTB",
["criteria"] = "variable.use_filler & ( ! priority_rotation & spell_targets.fan_of_knives >= 3 + stealthed.rogue + talent.dragontempered_blades.enabled )",
}, -- [8]
{
["enabled"] = true,
["action"] = "fan_of_knives",
["cycle_targets"] = 1,
["criteria"] = "variable.use_filler & spell_targets.fan_of_knives >= 3 & ! dot.deadly_poison_dot.ticking & ( ! priority_rotation || dot.garrote.ticking || dot.rupture.ticking )",
["description"] = "Fan of Knives to apply poisons if inactive on any target (or any bleeding targets with priority rotation) at 3T",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "variable.use_filler",
["action"] = "ambush",
}, -- [10]
{
["enabled"] = true,
["action"] = "mutilate",
["cycle_targets"] = 1,
["criteria"] = "! dot.deadly_poison_dot.ticking & ! debuff.amplifying_poison.up & variable.use_filler & spell_targets.fan_of_knives = 2",
["description"] = "Tab-Mutilate to apply Deadly Poison at 2 targets",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "variable.use_filler",
["action"] = "mutilate",
}, -- [12]
},
["cds"] = {
{
["enabled"] = true,
["action"] = "marked_for_death",
["line_cd"] = "1.5",
["cycle_targets"] = 1,
["criteria"] = "raid_event.adds.up & ( ! variable.single_target || boss & fight_remains < 30 ) & ( target.time_to_die < combo_points.deficit * 1.5 || combo_points.deficit >= cp_max_spend )",
["description"] = "Cooldowns If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.",
}, -- [1]
{
["enabled"] = true,
["action"] = "marked_for_death",
["description"] = "If no adds will die within the next 30s, use MfD for max CP.",
["criteria"] = "raid_event.adds.in > 30 - raid_event.adds.duration & combo_points.deficit >= cp_max_spend",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.exsanguinate.enabled || cooldown.exsanguinate.remains > 15 || debuff.rupture.exsanguinated || debuff.garrote.exsanguinated",
["description"] = "Sync Deathmark window with Exsanguinate if applicable",
["var_name"] = "deathmark_exsanguinate_condition",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.master_assassin.enabled || dot.garrote.ticking",
["description"] = "Wait on Deathmark for Garrote with MA",
["var_name"] = "deathmark_ma_condition",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! stealthed.rogue & ! stealthed.improved_garrote & ( ! talent.improved_garrote.enabled & dot.garrote.ticking || talent.improved_garrote.enabled & cooldown.garrote.up ) & ( target.time_to_die > 10 || boss & fight_remains < 10 )",
["action"] = "sepsis",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! stealthed.rogue & dot.rupture.ticking & ! debuff.deathmark.up & variable.deathmark_exsanguinate_condition & variable.deathmark_ma_condition",
["description"] = "Deathmark to be used if not stealthed, Rupture is up, and all other talent conditions are satisfied",
["var_name"] = "deathmark_condition",
}, -- [6]
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["use_off_gcd"] = 1,
["name"] = "algethar_puzzle_box",
["criteria"] = "( ! talent.exsanguinate.enabled || cooldown.exsanguinate.remains > 15 || debuff.rupture.exsanguinated || debuff.garrote.exsanguinated ) & dot.rupture.ticking & cooldown.deathmark.remains < 2 || boss & fight_remains <= 22",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( variable.trinket_sync_slot = 1 & ( debuff.deathmark.up || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 2 & ( ! trinket.t2.cooldown.ready || ! debuff.deathmark.up & cooldown.deathmark.remains > 20 ) ) || ! variable.trinket_sync_slot )",
["description"] = "Sync the priority stat buff trinket with Deathmark, otherwise use on cooldown",
["slots"] = "trinket1",
["action"] = "trinket1",
}, -- [8]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( variable.trinket_sync_slot = 2 & ( debuff.deathmark.up || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 1 & ( ! trinket.t1.cooldown.ready || ! debuff.deathmark.up & cooldown.deathmark.remains > 20 ) ) || ! variable.trinket_sync_slot )",
["slots"] = "trinket2",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "variable.deathmark_condition",
["action"] = "deathmark",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( debuff.shiv.up || cooldown.shiv.remains < 6 ) & buff.envenom.up & ( cooldown.deathmark.remains >= 50 || dot.deathmark.ticking )",
["action"] = "kingsbane",
}, -- [11]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.exsanguinate.enabled & ! stealthed.rogue & ! stealthed.improved_garrote & ! dot.deathmark.ticking & target.time_to_die > variable.exsang_sync_remains + 4 & variable.exsang_sync_remains < 4",
["description"] = "Exsanguinate when not stealthed and both Rupture and Garrote are up for long enough. Attempt to sync with Deathmark and also Echoing Reprimand if using Resounding Clarity.",
["var_name"] = "exsanguinate_condition",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.exsanguinate.enabled & talent.resounding_clarity.enabled & ( variable.exsanguinate_condition & combo_points <= 2 & variable.exsang_sync_remains <= 2 & ! dot.garrote.refreshable & dot.rupture.remains > 9.6 )",
["action"] = "echoing_reprimand",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "variable.exsanguinate_condition & ( ! dot.garrote.refreshable & dot.rupture.remains > 4 + 4 * variable.exsanguinate_rupture_cp || dot.rupture.remains * 0.5 > target.time_to_die )",
["action"] = "exsanguinate",
}, -- [14]
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Shiv if DoTs are up, Always Shiv with Kingsbane, otherwise attempt to sync with Sepsis or Deathmark if we won't waste more than half Shiv's cooldown",
["criteria"] = "talent.kingsbane.enabled & ! debuff.shiv.up & dot.kingsbane.ticking & dot.garrote.ticking & dot.rupture.ticking & ( ! talent.crimson_tempest.enabled || variable.single_target || dot.crimson_tempest.ticking )",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "talent.arterial_precision.enabled & ! debuff.shiv.up & dot.garrote.ticking & dot.rupture.ticking & ( debuff.deathmark.up || cooldown.shiv.charges_fractional > max_charges - 0.5 & cooldown.deathmark.remains > 10 )",
["action"] = "shiv",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "talent.sepsis.enabled & ! talent.kingsbane.enabled & ! talent.arterial_precision.enabled & ! debuff.shiv.up & dot.garrote.ticking & dot.rupture.ticking & ( ( cooldown.sepsis.ready || cooldown.sepsis.remains > 12 ) + ( cooldown.deathmark.ready || cooldown.deathmark.remains > 12 ) = 2 )",
["action"] = "shiv",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! talent.kingsbane.enabled & ! talent.arterial_precision.enabled & ! talent.sepsis.enabled & ! debuff.shiv.up & dot.garrote.ticking & dot.rupture.ticking & ( ! talent.crimson_tempest.enabled || variable.single_target || dot.crimson_tempest.ticking ) & ( ! talent.exsanguinate.enabled || variable.exsang_sync_remains > 2 )",
["action"] = "shiv",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! buff.thistle_tea.up & ( energy.deficit >= 100 || charges = 3 & ( dot.kingsbane.ticking || debuff.deathmark.up ) || boss & fight_remains < charges * 6 )",
["action"] = "thistle_tea",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "( spell_targets.fan_of_knives > desired_targets || spell_targets.fan_of_knives > 1 & raid_event.adds.in > 60 ) & ( ! talent.improved_garrote.enabled || cooldown.vanish.remains > 45 )",
["action"] = "indiscriminate_carnage",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || boss & fight_remains < 30 || debuff.deathmark.up",
["action"] = "potion",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "debuff.deathmark.up",
["action"] = "blood_fury",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "debuff.deathmark.up",
["action"] = "berserking",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "debuff.deathmark.up",
["action"] = "fireblood",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "debuff.deathmark.up",
["action"] = "ancestral_call",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "! stealthed.all & master_assassin_remains = 0",
["action"] = "call_action_list",
["list_name"] = "vanish",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "combo_points >= 4",
["action"] = "cold_blood",
}, -- [27]
},
["dot"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "priority_rotation & ( dot.garrote.remains < cooldown.garrote.duration || variable.regen_saturated )",
["description"] = "Damage over time abilities Limit secondary Garrotes for priority rotation if we have 35 energy regen or Garrote will expire on the primary target",
["var_name"] = "skip_cycle_garrote",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "priority_rotation & ( debuff.shiv.up & spell_targets.fan_of_knives > 2 || variable.regen_saturated )",
["description"] = "Limit secondary Ruptures for priority rotation if we have 35 energy regen or Shiv is up on 2T+",
["var_name"] = "skip_cycle_rupture",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["description"] = "Limit Ruptures when appropriate, not currently used",
["var_name"] = "skip_rupture",
}, -- [3]
{
["enabled"] = true,
["action"] = "garrote",
["description"] = "Special Garrote and Rupture setup prior to Exsanguinate cast",
["criteria"] = "talent.exsanguinate.enabled & ! will_lose_exsanguinate & dot.garrote.pmultiplier <= 1 & variable.exsang_sync_remains < 2 & spell_targets.fan_of_knives = 1 & raid_event.adds.in > 6 & dot.garrote.remains * 0.5 < target.time_to_die",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.exsanguinate.enabled & ! will_lose_exsanguinate & dot.rupture.pmultiplier <= 1 & variable.exsang_sync_remains < 1 & effective_combo_points >= variable.exsanguinate_rupture_cp & dot.rupture.remains * 0.5 < target.time_to_die",
["action"] = "rupture",
}, -- [5]
{
["enabled"] = true,
["action"] = "garrote",
["description"] = "Garrote upkeep, also tries to use it as a special generator for the last CP before a finisher",
["criteria"] = "refreshable & combo_points.deficit >= 1 & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 ) & ( ! will_lose_exsanguinate || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 ) & ( target.time_to_die - remains ) > 4 & master_assassin_remains = 0",
}, -- [6]
{
["enabled"] = true,
["action"] = "garrote",
["criteria"] = "! variable.skip_cycle_garrote & refreshable & combo_points.deficit >= 1 & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 ) & ( ! will_lose_exsanguinate || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 ) & ( target.time_to_die - remains ) > 12 & master_assassin_remains = 0",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "crimson_tempest",
["cycle_targets"] = 1,
["criteria"] = "spell_targets >= 2 & effective_combo_points >= 4 & energy.regen_combined > 20 & ( ! cooldown.deathmark.ready || dot.rupture.ticking ) & remains < ( 2 + 3 * ( spell_targets >= 4 ) )",
["description"] = "Crimson Tempest on multiple targets at 4+ CP when running out in 2-5s as long as we have enough regen and aren't setting up for Deathmark",
}, -- [8]
{
["enabled"] = true,
["action"] = "rupture",
["description"] = "Keep up Rupture at 4+ on all targets (when living long enough and not snapshot)",
["criteria"] = "! variable.skip_rupture & effective_combo_points >= 4 & refreshable & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 ) & ( ! will_lose_exsanguinate || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 ) & target.time_to_die - remains > ( 4 + ( talent.dashing_scoundrel.enabled * 5 ) + ( talent.doomblade.enabled * 5 ) + ( variable.regen_saturated * 6 ) )",
}, -- [9]
{
["enabled"] = true,
["action"] = "rupture",
["criteria"] = "! variable.skip_cycle_rupture & ! variable.skip_rupture & effective_combo_points >= 4 & refreshable & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 ) & ( ! will_lose_exsanguinate || remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 ) & target.time_to_die - remains > ( 4 + ( talent.dashing_scoundrel.enabled * 5 ) + ( talent.doomblade.enabled * 5 ) + ( variable.regen_saturated * 6 ) )",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["action"] = "crimson_tempest",
["description"] = "Fallback AoE Crimson Tempest with the same logic as above, but ignoring the energy conditions if we aren't using Rupture",
["criteria"] = "spell_targets >= 2 & effective_combo_points >= 4 & remains < 2 + 3 * ( spell_targets >= 4 )",
}, -- [11]
{
["enabled"] = true,
["action"] = "crimson_tempest",
["description"] = "Crimson Tempest on ST if in pandemic and nearly max energy and if Envenom won't do more damage due to TB/MA",
["criteria"] = "spell_targets = 1 & ! talent.dashing_scoundrel.enabled & effective_combo_points >= ( cp_max_spend - 1 ) & refreshable & ! will_lose_exsanguinate & ! debuff.shiv.up & debuff.amplifying_poison.stack < 15 & ( ! talent.kingsbane.enabled || buff.envenom.up || ! cooldown.kingsbane.up ) & target.time_to_die - remains > 4",
}, -- [12]
},
},
["version"] = 20230325,
["warnings"] = "The import for 'stealthed' required some automated changes.\nLine 2: Converted operations in 'stealthed.improved_garrote&!will_lose_exsanguinate&(remains<12%exsanguinated_rate||pmultiplier<=1)&target.time_to_die-remains>2' to 'stealthed.improved_garrote&!will_lose_exsanguinate&(remains<12/exsanguinated_rate||pmultiplier<=1)&target.time_to_die-remains>2'.\nLine 3: Converted operations in 'talent.exsanguinate.enabled&stealthed.improved_garrote&active_enemies=1&!will_lose_exsanguinate&(remains<18%exsanguinated_rate||pmultiplier<=1)&variable.exsang_sync_remains<18&improved_garrote_remains<1.3' to 'talent.exsanguinate.enabled&stealthed.improved_garrote&active_enemies=1&!will_lose_exsanguinate&(remains<18/exsanguinated_rate||pmultiplier<=1)&variable.exsang_sync_remains<18&improved_garrote_remains<1.3'.\n\nThe import for 'vanish' required some automated changes.\nLine 1: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 1: Converted 'exsanguinated.garrote' to 'debuff.garrote.exsanguinated' (1x).\nLine 2: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 2: Converted 'exsanguinated.garrote' to 'debuff.garrote.exsanguinated' (1x).\nLine 2: Converted 'talent.indiscriminate_carnage' to 'talent.indiscriminate_carnage.enabled' (1x).\nLine 2: Converted 'talent.indiscriminate_carnage' to 'talent.indiscriminate_carnage.enabled' (1x).\nLine 3: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 3: Converted 'talent.master_assassin' to 'talent.master_assassin.enabled' (1x).\nLine 4: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 4: Converted 'exsanguinated.garrote' to 'debuff.garrote.exsanguinated' (1x).\nLine 5: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 5: Converted 'exsanguinated.garrote' to 'debuff.garrote.exsanguinated' (1x).\nLine 6: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 6: Converted 'talent.master_assassin' to 'talent.master_assassin.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 8: Converted 'talent.cut_to_the_chase' to 'talent.cut_to_the_chase.enabled' (1x).\nLine 9: Converted 'talent.cut_to_the_chase' to 'talent.cut_to_the_chase.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 3: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 4: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'talent.resounding_clarity' to 'talent.resounding_clarity.enabled' (1x).\n\nThe import for 'direct' required some automated changes.\nLine 1: Converted 'talent.dashing_scoundrel' to 'talent.dashing_scoundrel.enabled' (1x).\nLine 1: Converted 'talent.doomblade' to 'talent.doomblade.enabled' (1x).\nLine 1: Converted 'talent.resounding_clarity' to 'talent.resounding_clarity.enabled' (1x).\nLine 7: Converted 'talent.exsanguinate' to 'talent.exsanguinate.enabled' (1x).\nLine 7: Converted 'talent.resounding_clarity' to 'talent.resounding_clarity.enabled' (1x).\nLine 8: Converted 'talent.dragontempered_blades' to 'talent.dragontempered_blades.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 3: Converted 'talent.exsanguinate' to 'talent.exsanguinate.enabled' (1x).\nLine 3: Converted 'exsanguinated.rupture' to 'debuff.rupture.exsanguinated' (1x).\nLine 3: Converted 'exsanguinated.garrote' to 'debuff.garrote.exsanguinated' (1x).\nLine 5: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 5: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 7: Converted 'talent.exsanguinate' to 'talent.exsanguinate.enabled' (1x).\nLine 7: Converted 'exsanguinated.rupture' to 'debuff.rupture.exsanguinated' (1x).\nLine 7: Converted 'exsanguinated.garrote' to 'debuff.garrote.exsanguinated' (1x).\nLine 8: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 8: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 9: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 9: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 12: Converted 'talent.exsanguinate' to 'talent.exsanguinate.enabled' (1x).\nLine 13: Converted 'talent.exsanguinate' to 'talent.exsanguinate.enabled' (1x).\nLine 13: Converted 'talent.resounding_clarity' to 'talent.resounding_clarity.enabled' (1x).\nLine 15: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 16: Converted 'talent.arterial_precision' to 'talent.arterial_precision.enabled' (1x).\nLine 17: Converted 'talent.sepsis' to 'talent.sepsis.enabled' (1x).\nLine 17: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 17: Converted 'talent.arterial_precision' to 'talent.arterial_precision.enabled' (1x).\nLine 18: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 18: Converted 'talent.arterial_precision' to 'talent.arterial_precision.enabled' (1x).\nLine 18: Converted 'talent.sepsis' to 'talent.sepsis.enabled' (1x).\nLine 18: Converted 'talent.exsanguinate' to 'talent.exsanguinate.enabled' (1x).\nLine 20: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\n\nThe import for 'dot' required some automated changes.\nLine 9: Converted 'talent.dashing_scoundrel' to 'talent.dashing_scoundrel.enabled' (1x).\nLine 9: Converted 'talent.doomblade' to 'talent.doomblade.enabled' (1x).\nLine 10: Converted 'talent.dashing_scoundrel' to 'talent.dashing_scoundrel.enabled' (1x).\nLine 10: Converted 'talent.doomblade' to 'talent.doomblade.enabled' (1x).\nLine 12: Converted 'talent.dashing_scoundrel' to 'talent.dashing_scoundrel.enabled' (1x).\nLine 12: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\n\nImported 7 action lists.\n",
["profile"] = "# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat=apply_poison\nactions.precombat+=/marked_for_death,precombat_seconds=10,if=raid_event.adds.in>15\n# Determine which (if any) stat buff trinket we want to attempt to sync with Deathmark.\nactions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)\nactions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps||trinket.2.cooldown.duration>trinket.1.cooldown.duration)\n# Determine if we should be be casting our pre-Exsanguinate Rupture with Echoing Reprimand CP\nactions.precombat+=/variable,name=exsanguinate_rupture_cp,value=cp_max_spend<?(talent.resounding_clarity*7)\nactions.precombat+=/stealth\nactions.precombat+=/slice_and_dice,precombat_seconds=1,if=refreshable\n\n# Executed every time the actor is available.\n# Restealth if possible (no vulnerable enemies in combat)\nactions=stealth\n# Interrupt on cooldown to allow simming interactions with that\nactions+=/kick,if=!stealthed.all\nactions+=/variable,name=single_target,value=spell_targets.fan_of_knives<2\n# Combined Energy Regen needed to saturate\nactions+=/variable,name=regen_saturated,value=energy.regen_combined>35\n# Next Exsanguinate cooldown time based on Deathmark syncing logic and remaining fight duration\nactions+=/variable,name=exsang_sync_remains,op=setif,condition=cooldown.deathmark.remains>cooldown.exsanguinate.remains&cooldown.deathmark.remains<fight_remains,value=cooldown.deathmark.remains,value_else=cooldown.exsanguinate.remains\nactions+=/call_action_list,name=stealthed,if=stealthed.rogue||stealthed.improved_garrote\nactions+=/call_action_list,name=cds\n# Put SnD up initially for Cut to the Chase, refresh with Envenom if at low duration\nactions+=/slice_and_dice,if=!buff.slice_and_dice.up&combo_points>=2||!talent.cut_to_the_chase&refreshable&combo_points>=4\nactions+=/envenom,if=talent.cut_to_the_chase&buff.slice_and_dice.up&buff.slice_and_dice.remains<5&combo_points>=4\nactions+=/call_action_list,name=dot\nactions+=/call_action_list,name=direct\nactions+=/arcane_torrent,if=energy.deficit>=15+energy.regen_combined\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# Cooldowns If adds are up, snipe the one with lowest TTD. Use when dying faster than CP deficit or without any CP.\nactions.cds=marked_for_death,line_cd=1.5,cycle_targets=1,if=raid_event.adds.up&(!variable.single_target||boss&fight_remains<30)&(target.time_to_die<combo_points.deficit*1.5||combo_points.deficit>=cp_max_spend)\n# If no adds will die within the next 30s, use MfD for max CP.\nactions.cds+=/marked_for_death,if=raid_event.adds.in>30-raid_event.adds.duration&combo_points.deficit>=cp_max_spend\n# Sync Deathmark window with Exsanguinate if applicable\nactions.cds+=/variable,name=deathmark_exsanguinate_condition,value=!talent.exsanguinate||cooldown.exsanguinate.remains>15||exsanguinated.rupture||exsanguinated.garrote\n# Wait on Deathmark for Garrote with MA\nactions.cds+=/variable,name=deathmark_ma_condition,value=!talent.master_assassin.enabled||dot.garrote.ticking\nactions.cds+=/sepsis,if=!stealthed.rogue&!stealthed.improved_garrote&(!talent.improved_garrote&dot.garrote.ticking||talent.improved_garrote&cooldown.garrote.up)&(target.time_to_die>10||boss&fight_remains<10)\n# Deathmark to be used if not stealthed, Rupture is up, and all other talent conditions are satisfied\nactions.cds+=/variable,name=deathmark_condition,value=!stealthed.rogue&dot.rupture.ticking&!debuff.deathmark.up&variable.deathmark_exsanguinate_condition&variable.deathmark_ma_condition\nactions.cds+=/use_item,name=algethar_puzzle_box,use_off_gcd=1,if=(!talent.exsanguinate||cooldown.exsanguinate.remains>15||exsanguinated.rupture||exsanguinated.garrote)&dot.rupture.ticking&cooldown.deathmark.remains<2||boss&fight_remains<=22\n# Sync the priority stat buff trinket with Deathmark, otherwise use on cooldown\nactions.cds+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(debuff.deathmark.up||boss&fight_remains<=20)||(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready||!debuff.deathmark.up&cooldown.deathmark.remains>20))||!variable.trinket_sync_slot)\nactions.cds+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(debuff.deathmark.up||boss&fight_remains<=20)||(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready||!debuff.deathmark.up&cooldown.deathmark.remains>20))||!variable.trinket_sync_slot)\nactions.cds+=/deathmark,if=variable.deathmark_condition\nactions.cds+=/kingsbane,if=(debuff.shiv.up||cooldown.shiv.remains<6)&buff.envenom.up&(cooldown.deathmark.remains>=50||dot.deathmark.ticking)\n# Exsanguinate when not stealthed and both Rupture and Garrote are up for long enough. Attempt to sync with Deathmark and also Echoing Reprimand if using Resounding Clarity.\nactions.cds+=/variable,name=exsanguinate_condition,value=talent.exsanguinate&!stealthed.rogue&!stealthed.improved_garrote&!dot.deathmark.ticking&target.time_to_die>variable.exsang_sync_remains+4&variable.exsang_sync_remains<4\nactions.cds+=/echoing_reprimand,if=talent.exsanguinate&talent.resounding_clarity&(variable.exsanguinate_condition&combo_points<=2&variable.exsang_sync_remains<=2&!dot.garrote.refreshable&dot.rupture.remains>9.6)\nactions.cds+=/exsanguinate,if=variable.exsanguinate_condition&(!dot.garrote.refreshable&dot.rupture.remains>4+4*variable.exsanguinate_rupture_cp||dot.rupture.remains*0.5>target.time_to_die)\n# Shiv if DoTs are up; Always Shiv with Kingsbane, otherwise attempt to sync with Sepsis or Deathmark if we won't waste more than half Shiv's cooldown\nactions.cds+=/shiv,if=talent.kingsbane&!debuff.shiv.up&dot.kingsbane.ticking&dot.garrote.ticking&dot.rupture.ticking&(!talent.crimson_tempest.enabled||variable.single_target||dot.crimson_tempest.ticking)\nactions.cds+=/shiv,if=talent.arterial_precision&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&(debuff.deathmark.up||cooldown.shiv.charges_fractional>max_charges-0.5&cooldown.deathmark.remains>10)\nactions.cds+=/shiv,if=talent.sepsis&!talent.kingsbane&!talent.arterial_precision&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&((cooldown.sepsis.ready||cooldown.sepsis.remains>12)+(cooldown.deathmark.ready||cooldown.deathmark.remains>12)=2)\nactions.cds+=/shiv,if=!talent.kingsbane&!talent.arterial_precision&!talent.sepsis&!debuff.shiv.up&dot.garrote.ticking&dot.rupture.ticking&(!talent.crimson_tempest.enabled||variable.single_target||dot.crimson_tempest.ticking)&(!talent.exsanguinate||variable.exsang_sync_remains>2)\nactions.cds+=/thistle_tea,if=!buff.thistle_tea.up&(energy.deficit>=100||charges=3&(dot.kingsbane.ticking||debuff.deathmark.up)||boss&fight_remains<charges*6)\nactions.cds+=/indiscriminate_carnage,if=(spell_targets.fan_of_knives>desired_targets||spell_targets.fan_of_knives>1&raid_event.adds.in>60)&(!talent.improved_garrote||cooldown.vanish.remains>45)\nactions.cds+=/potion,if=buff.bloodlust.react||boss&fight_remains<30||debuff.deathmark.up\nactions.cds+=/blood_fury,if=debuff.deathmark.up\nactions.cds+=/berserking,if=debuff.deathmark.up\nactions.cds+=/fireblood,if=debuff.deathmark.up\nactions.cds+=/ancestral_call,if=debuff.deathmark.up\nactions.cds+=/call_action_list,name=vanish,if=!stealthed.all&master_assassin_remains=0\nactions.cds+=/cold_blood,if=combo_points>=4\n\n# Direct damage abilities Envenom at 4+ (5+ with DS) CP. Immediately on 2+ targets, with Deathmark, or with TB; otherwise wait for some energy. Also wait if Exsg combo is coming up. Allow as filler on a dying target if CP capped.\nactions.direct+=/envenom,if=effective_combo_points>=4+talent.deeper_stratagem.enabled&(debuff.deathmark.up||debuff.shiv.up||debuff.amplifying_poison.stack>=10||energy.deficit<=25+energy.regen_combined||!variable.single_target||effective_combo_points>cp_max_spend||combo_points.deficit<1&target.time_to_die<=4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))&(!talent.exsanguinate.enabled||variable.exsang_sync_remains>2||talent.resounding_clarity&(cooldown.echoing_reprimand.ready&combo_points>2||effective_combo_points>5))\nactions.direct+=/variable,name=use_filler,value=combo_points.deficit>1||energy.deficit<=25+energy.regen_combined||!variable.single_target\n# Apply SBS to all targets without a debuff as priority, preferring targets dying sooner after the primary target\nactions.direct+=/serrated_bone_spike,if=variable.use_filler&!dot.serrated_bone_spike_dot.ticking\nactions.direct+=/serrated_bone_spike,cycle_targets=1,if=variable.use_filler&!dot.serrated_bone_spike_dot.ticking\n# Keep from capping charges or burn at the end of fights\nactions.direct+=/serrated_bone_spike,if=variable.use_filler&master_assassin_remains<0.8&(boss&fight_remains<=5||cooldown.serrated_bone_spike.max_charges-charges_fractional<=0.25)\n# When MA is not at high duration, sync with Shiv\nactions.direct+=/serrated_bone_spike,if=variable.use_filler&master_assassin_remains<0.8&!variable.single_target&debuff.shiv.up\nactions.direct+=/echoing_reprimand,if=(!talent.exsanguinate||!talent.resounding_clarity||variable.exsang_sync_remains>40)&variable.use_filler&cooldown.deathmark.remains>10||boss&fight_remains<20\n# Fan of Knives at 3+ targets or 4+ with DTB\nactions.direct+=/fan_of_knives,if=variable.use_filler&(!priority_rotation&spell_targets.fan_of_knives>=3+stealthed.rogue+talent.dragontempered_blades)\n# Fan of Knives to apply poisons if inactive on any target (or any bleeding targets with priority rotation) at 3T\nactions.direct+=/fan_of_knives,cycle_targets=1,if=variable.use_filler&spell_targets.fan_of_knives>=3&!dot.deadly_poison_dot.ticking&(!priority_rotation||dot.garrote.ticking||dot.rupture.ticking)\nactions.direct+=/ambush,if=variable.use_filler\n# Tab-Mutilate to apply Deadly Poison at 2 targets\nactions.direct+=/mutilate,cycle_targets=1,if=!dot.deadly_poison_dot.ticking&!debuff.amplifying_poison.up&variable.use_filler&spell_targets.fan_of_knives=2\nactions.direct+=/mutilate,if=variable.use_filler\n\n# Damage over time abilities Limit secondary Garrotes for priority rotation if we have 35 energy regen or Garrote will expire on the primary target\nactions.dot+=/variable,name=skip_cycle_garrote,value=priority_rotation&(dot.garrote.remains<cooldown.garrote.duration||variable.regen_saturated)\n# Limit secondary Ruptures for priority rotation if we have 35 energy regen or Shiv is up on 2T+\nactions.dot+=/variable,name=skip_cycle_rupture,value=priority_rotation&(debuff.shiv.up&spell_targets.fan_of_knives>2||variable.regen_saturated)\n# Limit Ruptures when appropriate, not currently used\nactions.dot+=/variable,name=skip_rupture,value=0\n# Special Garrote and Rupture setup prior to Exsanguinate cast\nactions.dot+=/garrote,if=talent.exsanguinate.enabled&!will_lose_exsanguinate&dot.garrote.pmultiplier<=1&variable.exsang_sync_remains<2&spell_targets.fan_of_knives=1&raid_event.adds.in>6&dot.garrote.remains*0.5<target.time_to_die\nactions.dot+=/rupture,if=talent.exsanguinate.enabled&!will_lose_exsanguinate&dot.rupture.pmultiplier<=1&variable.exsang_sync_remains<1&effective_combo_points>=variable.exsanguinate_rupture_cp&dot.rupture.remains*0.5<target.time_to_die\n## actions.dot+=/pool_resource,for_next=1\n# Garrote upkeep, also tries to use it as a special generator for the last CP before a finisher\nactions.dot+=/garrote,if=refreshable&combo_points.deficit>=1&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate||remains<=tick_time*2&spell_targets.fan_of_knives>=3)&(target.time_to_die-remains)>4&master_assassin_remains=0\n## actions.dot+=/pool_resource,for_next=1\nactions.dot+=/garrote,cycle_targets=1,if=!variable.skip_cycle_garrote&refreshable&combo_points.deficit>=1&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate||remains<=tick_time*2&spell_targets.fan_of_knives>=3)&(target.time_to_die-remains)>12&master_assassin_remains=0\n# Crimson Tempest on multiple targets at 4+ CP when running out in 2-5s as long as we have enough regen and aren't setting up for Deathmark\nactions.dot+=/crimson_tempest,cycle_targets=1,if=spell_targets>=2&effective_combo_points>=4&energy.regen_combined>20&(!cooldown.deathmark.ready||dot.rupture.ticking)&remains<(2+3*(spell_targets>=4))\n# Keep up Rupture at 4+ on all targets (when living long enough and not snapshot)\nactions.dot+=/rupture,if=!variable.skip_rupture&effective_combo_points>=4&refreshable&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate||remains<=tick_time*2&spell_targets.fan_of_knives>=3)&target.time_to_die-remains>(4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))\nactions.dot+=/rupture,cycle_targets=1,if=!variable.skip_cycle_rupture&!variable.skip_rupture&effective_combo_points>=4&refreshable&(pmultiplier<=1||remains<=tick_time&spell_targets.fan_of_knives>=3)&(!will_lose_exsanguinate||remains<=tick_time*2&spell_targets.fan_of_knives>=3)&target.time_to_die-remains>(4+(talent.dashing_scoundrel*5)+(talent.doomblade*5)+(variable.regen_saturated*6))\n# Fallback AoE Crimson Tempest with the same logic as above, but ignoring the energy conditions if we aren't using Rupture\nactions.dot+=/crimson_tempest,if=spell_targets>=2&effective_combo_points>=4&remains<2+3*(spell_targets>=4)\n# Crimson Tempest on ST if in pandemic and nearly max energy and if Envenom won't do more damage due to TB/MA\nactions.dot+=/crimson_tempest,if=spell_targets=1&!talent.dashing_scoundrel&effective_combo_points>=(cp_max_spend-1)&refreshable&!will_lose_exsanguinate&!debuff.shiv.up&debuff.amplifying_poison.stack<15&(!talent.kingsbane||buff.envenom.up||!cooldown.kingsbane.up)&target.time_to_die-remains>4\n\n# Stealthed Actions\nactions.stealthed+=/indiscriminate_carnage,if=spell_targets.fan_of_knives>desired_targets||spell_targets.fan_of_knives>1&raid_event.adds.in>60\n## actions.stealthed+=/pool_resource,for_next=1\n# Improved Garrote: Apply or Refresh with buffed Garrotes\nactions.stealthed+=/garrote,cycle_targets=1,if=stealthed.improved_garrote&!will_lose_exsanguinate&(remains<12%exsanguinated_rate||pmultiplier<=1)&target.time_to_die-remains>2\n## actions.stealthed+=/pool_resource,for_next=1\n# Improved Garrote + Exsg on 1T: Refresh Garrote at the end of stealth to get max duration before Exsanguinate\nactions.stealthed+=/garrote,if=talent.exsanguinate.enabled&stealthed.improved_garrote&active_enemies=1&!will_lose_exsanguinate&(remains<18%exsanguinated_rate||pmultiplier<=1)&variable.exsang_sync_remains<18&improved_garrote_remains<1.3\n\n# Stealth Cooldowns Vanish Sync for Improved Garrote with Deathmark\nactions.vanish+=/vanish,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1||dot.garrote.refreshable)&(debuff.deathmark.up||cooldown.deathmark.remains<4)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)\n# Vanish for Indiscriminate Carnage or Improved Garrote at 2-3+ targets\nactions.vanish+=/vanish,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1||dot.garrote.refreshable)&spell_targets.fan_of_knives>(3-talent.indiscriminate_carnage)&(!talent.indiscriminate_carnage||cooldown.indiscriminate_carnage.ready)\n# Vanish with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.\nactions.vanish+=/vanish,if=!talent.improved_garrote&talent.master_assassin&!dot.rupture.refreshable&dot.garrote.remains>3&debuff.deathmark.up&(debuff.shiv.up||debuff.deathmark.remains<4||dot.sepsis.ticking)&dot.sepsis.remains<3\n## actions.vanish+=/pool_resource,for_next=1,extra_amount=45\nactions.vanish+=/shadow_dance,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&dot.garrote.pmultiplier<=1&(debuff.deathmark.up||cooldown.deathmark.remains<4||cooldown.deathmark.remains>60)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)\n# Shadow Dance for Improved Garrote with Deathmark\nactions.vanish+=/shadow_dance,if=talent.improved_garrote&cooldown.garrote.up&!exsanguinated.garrote&(dot.garrote.pmultiplier<=1||dot.garrote.refreshable)&(debuff.deathmark.up||cooldown.deathmark.remains<12||cooldown.deathmark.remains>60)&combo_points.deficit>=(spell_targets.fan_of_knives>?4)\n# Shadow Dance with Master Assassin: Rupture+Garrote not in refresh range, during Deathmark+Shiv. Sync with Sepsis final hit if possible.\nactions.vanish+=/shadow_dance,if=!talent.improved_garrote&talent.master_assassin&!dot.rupture.refreshable&dot.garrote.remains>3&(debuff.deathmark.up||cooldown.deathmark.remains>60)&(debuff.shiv.up||debuff.deathmark.remains<4||dot.sepsis.ticking)&dot.sepsis.remains<3",
["spec"] = 259,
},
},
},
["Quillson - Thunderhorn"] = {
["runOnce"] = {
["autoconvertGlowsForCustomGlow_20190326"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetRogueMfDOption_20200226"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[255] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["use_harpoon"] = true,
["ca_vop_overlap"] = false,
},
["petbased"] = false,
["enhancedRecheck"] = false,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["buffPadding"] = 0,
["custom1Name"] = "Custom 1",
["potionsReset"] = 20180919.1,
["throttleTime"] = false,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_agility",
["package"] = "Survival",
["nameplates"] = true,
["damageExpiration"] = 8,
["aoe"] = 2,
["damageRange"] = 0,
},
[254] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["prevent_hardcasts"] = false,
["eagletalon_swap"] = false,
["trueshot_vop_overlap"] = false,
},
["petbased"] = false,
["enhancedRecheck"] = false,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["buffPadding"] = 0,
["custom1Name"] = "Custom 1",
["potionsReset"] = 20180919.1,
["throttleTime"] = false,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_agility",
["package"] = "Marksmanship",
["nameplates"] = false,
["damageExpiration"] = 6,
["aoe"] = 3,
["damageRange"] = 0,
},
[253] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["avoid_bw_overlap"] = false,
["check_pet_range"] = true,
["barbed_shot_grace_period"] = 0.5,
["aspect_vop_overlap"] = false,
},
["petbased"] = false,
["enhancedRecheck"] = false,
["gcdSync"] = true,
["damageDots"] = false,
["buffPadding"] = 0,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["damage"] = true,
["custom1Name"] = "Custom 1",
["potionsReset"] = 20180919.1,
["throttleTime"] = false,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_agility",
["package"] = "Beast Mastery",
["nameplates"] = false,
["damageExpiration"] = 3,
["aoe"] = 3,
["damageRange"] = 0,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["packs"] = {
["Marksmanship"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210828,
["author"] = "SimC",
["desc"] = "Marksmanship Hunter\nAugust 28, 2021\n\nChanges:\n- Newfound Resolve is not a mechanic the addon can/will manage.\n- Resynced addon priority with SimC APL.\n- Let Kyrians desync their CDs sometimes.",
["lists"] = {
["trickshots"] = {
{
["enabled"] = true,
["criteria"] = "talent.steady_focus.enabled & in_flight & buff.steady_focus.remains < 5",
["action"] = "steady_shot",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "runeforge.pouch_of_razor_fragments.enabled & buff.flayers_mark.up",
["action"] = "kill_shot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "runeforge.pouch_of_razor_fragments.enabled",
["action"] = "flayed_shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( covenant.kyrian & cooldown.resonating_arrow.remains < gcd || ! covenant.kyrian & ! covenant.night_fae || covenant.night_fae & ( cooldown.wild_spirits.remains < gcd || cooldown.wild_spirits.remains > 30 ) || target.time_to_die < 10 || cooldown.resonating_arrow.remains > 10 & active_enemies > 3 ) & ( ! raid_event.adds.exists || raid_event.adds.remains > 9 || ! covenant.kyrian )",
["action"] = "double_tap",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled & tar_trap.remains < gcd & cooldown.flare.remains < gcd",
["action"] = "tar_trap",
}, -- [5]
{
["enabled"] = true,
["action"] = "flare",
["criteria"] = "tar_trap.up & runeforge.soulforge_embers.enabled",
["line_cd"] = "25",
}, -- [6]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || raid_event.adds.remains > 10 || active_enemies >= raid_event.adds.count * 2",
["action"] = "wild_spirits",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.resonating_arrow.remains < gcd & ( ! talent.explosive_shot.enabled || buff.bloodlust.up ) || ! covenant.kyrian || cooldown.resonating_arrow.remains > 10 || boss & fight_remains < 5",
["action"] = "wailing_arrow",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( cooldown.volley.remains < gcd || ! talent.volley.enabled || target.time_to_die < 12 ) & ( ! raid_event.adds.exists || raid_event.adds.remains > 9 || active_enemies >= raid_event.adds.count * 2 )",
["action"] = "resonating_arrow",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.resonating_arrow.up || cooldown.resonating_arrow.remains > 10 || ! covenant.kyrian",
["action"] = "volley",
}, -- [11]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.resonating_arrow.up || cooldown.resonating_arrow.remains > 10 || ! covenant.kyrian || boss & fight_remains < 20",
["action"] = "trueshot",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "runeforge.surging_shots.enabled & ( cooldown.resonating_arrow.remains > 10 || ! covenant.kyrian || ! talent.double_tap.enabled ) & buff.trick_shots.remains >= execute_time",
["action"] = "rapid_fire",
}, -- [14]
{
["enabled"] = true,
["action"] = "aimed_shot",
["criteria"] = "buff.trick_shots.remains >= execute_time & ( buff.precise_shots.down || full_recharge_time < cast_time + gcd || buff.trueshot.up )",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "( cooldown.resonating_arrow.remains > 10 & runeforge.surging_shots.enabled || ! covenant.kyrian || ! runeforge.surging_shots.enabled || ! talent.double_tap.enabled ) & buff.trick_shots.remains >= execute_time",
["action"] = "rapid_fire",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.down || buff.precise_shots.up & focus > cost + action.aimed_shot.cost & ( ! talent.chimaera_shot.enabled || active_enemies > 3 )",
["action"] = "multishot",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.up & focus > cost + action.aimed_shot.cost & active_enemies < 4",
["action"] = "chimaera_shot",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.dead_eye.down",
["action"] = "kill_shot",
}, -- [20]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [21]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable",
["cycle_targets"] = 1,
}, -- [23]
{
["enabled"] = true,
["criteria"] = "focus > cost + action.aimed_shot.cost & ( cooldown.resonating_arrow.remains > 5 || ! covenant.kyrian )",
["action"] = "multishot",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "runeforge.nessingwarys_trapping_apparatus.enabled",
["action"] = "tar_trap",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "runeforge.nessingwarys_trapping_apparatus.enabled",
["action"] = "freezing_trap",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled & buff.trueshot.down",
["action"] = "fleshcraft",
}, -- [28]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [29]
},
["default"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "counter_shot",
["criteria"] = "runeforge.sephuzs_proclamation.enabled || soulbind.niyas_tools_poison.enabled || ( conduit.reversal_of_fortune.enabled & ! runeforge.sephuzs_proclamation.enabled )",
["line_cd"] = "30",
}, -- [2]
{
["enabled"] = true,
["description"] = "Go ahead and Tranquilize NPC enemies, we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.",
["criteria"] = "! target.is_player",
["action"] = "tranquilizing_shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "covenant.kyrian & cooldown.trueshot.remains & cooldown.resonating_arrow.remains || ! covenant.kyrian & cooldown.trueshot.remains",
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "call_action_list",
["list_name"] = "st",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "call_action_list",
["list_name"] = "trickshots",
}, -- [7]
},
["precombat"] = {
{
["action"] = "bottled_flayedwing_toxin",
["enabled"] = true,
}, -- [1]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled",
["action"] = "tar_trap",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "legendary.eagletalons_true_focus.enabled & settings.eagletalon_swap.enabled",
["description"] = "Change to 1 to simulate ETF/SSF gearswap Trueshot precast.",
["var_name"] = "etf_precast",
}, -- [4]
{
["enabled"] = true,
["precast_time"] = "10",
["action"] = "double_tap",
["criteria"] = "active_enemies > 1 || ! covenant.kyrian & ! talent.volley.enabled || variable.etf_precast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.etf_precast",
["action"] = "trueshot",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3 & ( ! covenant.kyrian & ! talent.volley.enabled || active_enemies < 2 ) & ! variable.etf_precast",
["action"] = "aimed_shot",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || ( covenant.kyrian || talent.volley.enabled ) & active_enemies = 2 || variable.etf_precast",
["action"] = "steady_shot",
}, -- [8]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "( buff.trueshot.up & buff.resonating_arrow.up & covenant.kyrian ) || ( buff.trueshot.up & buff.wild_spirits.up & covenant.night_fae ) || ( covenant.venthyr || covenant.necrolord ) & buff.trueshot.up || boss & fight_remains < 13 || ( covenant.kyrian & buff.resonating_arrow.up & fight_remains < 73 )",
["action"] = "berserking",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 16",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 16",
["action"] = "ancestral_call",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 9",
["action"] = "fireblood",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "lights_judgment",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & ( buff.bloodlust.up || target.health.pct < 20 ) || boss & fight_remains < 26 || ( covenant.kyrian & buff.resonating_arrow.up & fight_remains < 72 )",
["action"] = "potion",
}, -- [6]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "talent.steady_focus.enabled & ( prev_gcd.1.steady_shot & buff.steady_focus.remains < 5 || buff.steady_focus.down ) & ( buff.resonating_arrow.down || ! covenant.kyrian )",
["action"] = "steady_shot",
}, -- [1]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( covenant.kyrian & ( cooldown.resonating_arrow.remains < gcd ) || ! covenant.kyrian & ! covenant.night_fae || covenant.night_fae & ( cooldown.wild_spirits.remains < gcd || cooldown.wild_spirits.remains > 30 ) || fight_remains < 15 ) & ( ! raid_event.adds.exists || raid_event.adds.up & ( raid_event.adds.in < 10 & raid_event.adds.remains < 3 || raid_event.adds.in > action_cooldown || active_enemies > 1 ) || ! raid_event.adds.up & ( raid_event.adds.count = 1 || raid_event.adds.in > action_cooldown ) )",
["action"] = "double_tap",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "tar_trap.up & runeforge.soulforge_embers.enabled",
["action"] = "flare",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled & tar_trap.remains < gcd & cooldown.flare.remains < gcd",
["action"] = "tar_trap",
}, -- [5]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || ! raid_event.adds.up & raid_event.adds.duration + raid_event.adds.in < 20 || raid_event.adds.up & raid_event.adds.remains > 19 || active_enemies > 1",
["action"] = "wild_spirits",
}, -- [7]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [9]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cooldown.resonating_arrow.remains < gcd & ( ! talent.explosive_shot.enabled || buff.bloodlust.up ) || ! covenant.kyrian || cooldown.resonating_arrow.remains || boss & fight_remains < 5",
["action"] = "wailing_arrow",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( buff.double_tap.up || cooldown.double_tap.remains > 10 || ! talent.double_tap.enabled || fight_remains < 12 ) & ( ! raid_event.adds.exists || ! raid_event.adds.up & ( raid_event.adds.duration + raid_event.adds.in < 10 || raid_event.adds.count = 1 ) || raid_event.adds.up & raid_event.adds.remains > 9 || active_enemies > 1 )",
["action"] = "resonating_arrow",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.resonating_arrow.up || cooldown.resonating_arrow.remains > 10 || ! covenant.kyrian & ( buff.precise_shots.down || ! talent.chimaera_shot.enabled || active_enemies < 2 )",
["action"] = "volley",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "covenant.kyrian & focus + cast_regen < focus.max & ( ( cooldown.resonating_arrow.remains < gcd * 3 & ( ! soulbind.effusive_anima_accelerator.enabled || ! talent.double_tap.enabled ) ) || talent.double_tap.enabled & cooldown.double_tap.remains < 3 )",
["action"] = "steady_shot",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.down & ( covenant.venthyr || covenant.necrolord || talent.calling_the_shots.enabled ) || buff.resonating_arrow.up || cooldown.resonating_arrow.remains > 10 || buff.wild_spirits.up || buff.volley.up & active_enemies > 1 || boss & fight_remains < 25",
["action"] = "trueshot",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "runeforge.surging_shots.enabled & talent.streamline.enabled & ( cooldown.resonating_arrow.remains > 10 || ! covenant.kyrian || ! talent.double_tap.enabled || soulbind.effusive_anima_accelerator.enabled )",
["action"] = "rapid_fire",
}, -- [16]
{
["enabled"] = true,
["action"] = "aimed_shot",
["criteria"] = "buff.precise_shots.down || ( buff.trueshot.up || full_recharge_time < gcd + cast_time ) & ( ! talent.chimaera_shot.enabled || active_enemies < 2 ) || buff.trick_shots.remains > execute_time & active_enemies > 1",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "( cooldown.resonating_arrow.remains > 10 || ! covenant.kyrian || ! talent.double_tap.enabled || soulbind.effusive_anima_accelerator.enabled ) & focus + cast_regen < focus.max & ( buff.double_tap.down & buff.eagletalons_true_focus.down || talent.streamline.enabled )",
["action"] = "rapid_fire",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.up || focus > cost + action.aimed_shot.cost",
["action"] = "chimaera_shot",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.up || focus > cost + action.aimed_shot.cost",
["action"] = "arcane_shot",
}, -- [20]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & target.time_to_die > duration",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "barrage",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( cooldown.resonating_arrow.remains > 10 & runeforge.surging_shots.enabled || ! covenant.kyrian || ! talent.double_tap.enabled || soulbind.effusive_anima_accelerator.enabled ) & focus + cast_regen < focus.max & ( buff.double_tap.down || talent.streamline.enabled )",
["action"] = "rapid_fire",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled & buff.trueshot.down",
["action"] = "fleshcraft",
}, -- [25]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [26]
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.resonating_arrow.up || buff.trueshot.up",
["var_name"] = "sync_up",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "covenant.kyrian & buff.resonating_arrow.up & buff.trueshot.up || ! covenant.kyrian & buff.trueshot.up",
["var_name"] = "strong_sync_up",
}, -- [2]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "strong_sync_remains",
["criteria"] = "buff.trueshot.down & covenant.kyrian",
["value_else"] = "cooldown.trueshot.remains",
["value"] = "cooldown.resonating_arrow.remains <? cooldown.trueshot.remains",
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "strong_sync_remains",
["criteria"] = "buff.trueshot.up & covenant.kyrian",
["value_else"] = "cooldown.trueshot.remains",
["value"] = "cooldown.resonating_arrow.remains",
}, -- [4]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "sync_remains",
["criteria"] = "covenant.kyrian",
["value_else"] = "cooldown.trueshot.remains",
["value"] = "cooldown.resonating_arrow.remains >? cooldown.trueshot.remains",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( trinket.t1.has_use_buff || covenant.kyrian & trinket.t1.has_cooldown ) & ( variable.strong_sync_up & ( ! covenant.kyrian & ! trinket.t2.has_use_buff || covenant.kyrian & ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) || trinket.t1.has_cooldown & ! trinket.t2.has_use_buff & trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) || ! variable.strong_sync_up & ( ! trinket.t2.has_use_buff & ( trinket.t1.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t1.cooldown.duration / 2 ) || trinket.t2.has_use_buff & ( trinket.t1.has_use_buff & trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration & ( trinket.t1.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t1.cooldown.duration / 2 ) || ( ! trinket.t1.has_use_buff || trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) & ( trinket.t2.cooldown.ready & trinket.t2.cooldown.duration - 5 > variable.sync_remains & variable.sync_remains < trinket.t2.cooldown.duration / 2 || ! trinket.t2.cooldown.ready & ( trinket.t2.cooldown.remains - 5 < variable.strong_sync_remains & variable.strong_sync_remains > 20 & ( trinket.t1.cooldown.duration - 5 < variable.sync_remains || trinket.t2.cooldown.remains - 5 < variable.sync_remains & trinket.t2.cooldown.duration - 10 + variable.sync_remains < variable.strong_sync_remains || variable.sync_remains > trinket.t1.cooldown.duration / 2 || variable.sync_up ) || trinket.t2.cooldown.remains - 5 > variable.strong_sync_remains & ( trinket.t1.cooldown.duration - 5 < variable.strong_sync_remains || ! trinket.t1.has_use_buff & ( variable.sync_remains > trinket.t1.cooldown.duration / 2 || variable.sync_up ) ) ) ) ) ) || boss & fight_remains < variable.sync_remains ) || ! trinket.t1.has_use_buff & ! covenant.kyrian & ( trinket.t2.has_use_buff & ( ( ! variable.sync_up || trinket.t2.cooldown.remains > 5 ) & ( variable.sync_remains > 20 || trinket.t2.cooldown.remains - 5 > variable.sync_remains ) ) || ! trinket.t2.has_use_buff & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) )",
["slots"] = "trinket1",
["action"] = "trinket1",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( trinket.t2.has_use_buff || covenant.kyrian & trinket.t2.has_cooldown ) & ( variable.strong_sync_up & ( ! covenant.kyrian & ! trinket.t1.has_use_buff || covenant.kyrian & ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || trinket.t2.has_use_buff & ( ! trinket.t1.has_use_buff || trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) || trinket.t2.has_cooldown & ! trinket.t1.has_use_buff & trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) || ! variable.strong_sync_up & ( ! trinket.t1.has_use_buff & ( trinket.t2.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t2.cooldown.duration / 2 ) || trinket.t1.has_use_buff & ( trinket.t2.has_use_buff & trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration & ( trinket.t2.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t2.cooldown.duration / 2 ) || ( ! trinket.t2.has_use_buff || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) & ( trinket.t1.cooldown.ready & trinket.t1.cooldown.duration - 5 > variable.sync_remains & variable.sync_remains < trinket.t1.cooldown.duration / 2 || ! trinket.t1.cooldown.ready & ( trinket.t1.cooldown.remains - 5 < variable.strong_sync_remains & variable.strong_sync_remains > 20 & ( trinket.t2.cooldown.duration - 5 < variable.sync_remains || trinket.t1.cooldown.remains - 5 < variable.sync_remains & trinket.t1.cooldown.duration - 10 + variable.sync_remains < variable.strong_sync_remains || variable.sync_remains > trinket.t2.cooldown.duration / 2 || variable.sync_up ) || trinket.t1.cooldown.remains - 5 > variable.strong_sync_remains & ( trinket.t2.cooldown.duration - 5 < variable.strong_sync_remains || ! trinket.t2.has_use_buff & ( variable.sync_remains > trinket.t2.cooldown.duration / 2 || variable.sync_up ) ) ) ) ) ) || boss & fight_remains < variable.sync_remains ) || ! trinket.t2.has_use_buff & ! covenant.kyrian & ( trinket.t1.has_use_buff & ( ( ! variable.sync_up || trinket.t1.cooldown.remains > 5 ) & ( variable.sync_remains > 20 || trinket.t1.cooldown.remains - 5 > variable.sync_remains ) ) || ! trinket.t1.has_use_buff & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) )",
["slots"] = "trinket2",
["action"] = "trinket2",
}, -- [7]
},
},
["version"] = 20210828,
["warnings"] = "WARNING: The import for 'trickshots' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 6: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 14: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 14: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 17: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 17: Converted 'runeforge.X' to 'runeforge.X.enabled' (2x).\nLine 18: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 25: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 26: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 28: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\n\nWARNING: The import for 'default' required some automated changes.\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 2: Converted 'conduit.X' to 'conduit.X.enabled' (1x).\nLine 2: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\n\nWARNING: The import for 'precombat' required some automated changes.\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 5: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 7: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 8: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 11: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 12: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 13: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 14: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 14: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 15: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 16: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 16: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 16: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 17: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 18: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 18: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 23: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 23: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 23: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nLine 25: Converted 'soulbind.X' to 'soulbind.X.enabled' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - eagletalons_true_focus\n\nWARNING: The import for 'trinkets' required some automated changes.\nLine 6: Converted SimC syntax % to Lua division operator (/) (5x).\nLine 6: Converted 'trinket.1.X' to 'trinket.t1.X' (21x).\nLine 6: Converted 'trinket.2.X' to 'trinket.t2.X' (26x).\nLine 7: Converted SimC syntax % to Lua division operator (/) (5x).\nLine 7: Converted 'trinket.1.X' to 'trinket.t1.X' (26x).\nLine 7: Converted 'trinket.2.X' to 'trinket.t2.X' (21x).\n\nImported 6 action lists.\n",
["spec"] = 254,
["profile"] = "## Marksmanship Hunter\n## August 28, 2021\n\n## Changes:\n## - Newfound Resolve is not a mechanic the addon can/will manage.\n## - Resynced addon priority with SimC APL.\n## - Let Kyrians desync their CDs sometimes.\n\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/fleshcraft\nactions.precombat+=/tar_trap,if=runeforge.soulforge_embers\n# Change to 1 to simulate ETF/SSF gearswap Trueshot precast.\nactions.precombat+=/variable,name=etf_precast,value=legendary.eagletalons_true_focus.enabled&settings.eagletalon_swap.enabled\nactions.precombat+=/double_tap,precast_time=10,if=active_enemies>1||!covenant.kyrian&!talent.volley||variable.etf_precast\nactions.precombat+=/trueshot,if=variable.etf_precast\nactions.precombat+=/aimed_shot,if=active_enemies<3&(!covenant.kyrian&!talent.volley||active_enemies<2)&!variable.etf_precast\nactions.precombat+=/steady_shot,if=active_enemies>2||(covenant.kyrian||talent.volley)&active_enemies=2||variable.etf_precast\n\nactions+=/counter_shot\nactions+=/counter_shot,line_cd=30,if=runeforge.sephuzs_proclamation||soulbind.niyas_tools_poison||(conduit.reversal_of_fortune&!runeforge.sephuzs_proclamation)\n# Go ahead and Tranquilize NPC enemies; we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.\nactions+=/tranquilizing_shot,if=!target.is_player\nactions+=/call_action_list,name=trinkets,if=covenant.kyrian&cooldown.trueshot.remains&cooldown.resonating_arrow.remains||!covenant.kyrian&cooldown.trueshot.remains\n## Delay facing your doubt until you have put Resonating Arrow down, or if the cooldown is too long to delay facing your Doubt. If none of these conditions are able to met within the 10 seconds leeway, the sim faces your Doubt automatically.\n## actions+=/newfound_resolve,if=soulbind.newfound_resolve&(buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||fight_remains<16)\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<3\nactions+=/call_action_list,name=trickshots,if=active_enemies>2\n\nactions.cds=berserking,if=(buff.trueshot.up&buff.resonating_arrow.up&covenant.kyrian)||(buff.trueshot.up&buff.wild_spirits.up&covenant.night_fae)||(covenant.venthyr||covenant.necrolord)&buff.trueshot.up||boss&fight_remains<13||(covenant.kyrian&buff.resonating_arrow.up&fight_remains<73)\nactions.cds+=/blood_fury,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<16\nactions.cds+=/ancestral_call,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<16\nactions.cds+=/fireblood,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<9\nactions.cds+=/lights_judgment,if=buff.trueshot.down\nactions.cds+=/potion,if=buff.trueshot.up&(buff.bloodlust.up||target.health.pct<20)||boss&fight_remains<26||(covenant.kyrian&buff.resonating_arrow.up&fight_remains<72)\n\nactions.st=steady_shot,if=talent.steady_focus&(prev_gcd.1.steady_shot&buff.steady_focus.remains<5||buff.steady_focus.down)&(buff.resonating_arrow.down||!covenant.kyrian)\nactions.st+=/kill_shot\nactions.st+=/double_tap,if=(covenant.kyrian&(cooldown.resonating_arrow.remains<gcd)||!covenant.kyrian&!covenant.night_fae||covenant.night_fae&(cooldown.wild_spirits.remains<gcd||cooldown.wild_spirits.remains>30)||fight_remains<15)&(!raid_event.adds.exists||raid_event.adds.up&(raid_event.adds.in<10&raid_event.adds.remains<3||raid_event.adds.in>cooldown||active_enemies>1)||!raid_event.adds.up&(raid_event.adds.count=1||raid_event.adds.in>cooldown))\nactions.st+=/flare,if=tar_trap.up&runeforge.soulforge_embers\nactions.st+=/tar_trap,if=runeforge.soulforge_embers&tar_trap.remains<gcd&cooldown.flare.remains<gcd\nactions.st+=/explosive_shot\nactions.st+=/wild_spirits,if=!raid_event.adds.exists||!raid_event.adds.up&raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.up&raid_event.adds.remains>19||active_enemies>1\nactions.st+=/flayed_shot\nactions.st+=/death_chakram,if=focus+cast_regen<focus.max\nactions.st+=/a_murder_of_crows\nactions.st+=/wailing_arrow,if=cooldown.resonating_arrow.remains<gcd&(!talent.explosive_shot||buff.bloodlust.up)||!covenant.kyrian||cooldown.resonating_arrow.remains||boss&fight_remains<5\nactions.st+=/resonating_arrow,if=(buff.double_tap.up||cooldown.double_tap.remains>10||!talent.double_tap||fight_remains<12)&(!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<10||raid_event.adds.count=1)||raid_event.adds.up&raid_event.adds.remains>9||active_enemies>1)\nactions.st+=/volley,if=buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||!covenant.kyrian&(buff.precise_shots.down||!talent.chimaera_shot||active_enemies<2)\nactions.st+=/steady_shot,if=covenant.kyrian&focus+cast_regen<focus.max&((cooldown.resonating_arrow.remains<gcd*3&(!soulbind.effusive_anima_accelerator||!talent.double_tap))||talent.double_tap&cooldown.double_tap.remains<3)\nactions.st+=/trueshot,if=buff.precise_shots.down&(covenant.venthyr||covenant.necrolord||talent.calling_the_shots)||buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||buff.wild_spirits.up||buff.volley.up&active_enemies>1||boss&fight_remains<25\nactions.st+=/rapid_fire,if=runeforge.surging_shots&talent.streamline&(cooldown.resonating_arrow.remains>10||!covenant.kyrian||!talent.double_tap||soulbind.effusive_anima_accelerator)\nactions.st+=/aimed_shot,cycle_targets=1,if=buff.precise_shots.down||(buff.trueshot.up||full_recharge_time<gcd+cast_time)&(!talent.chimaera_shot||active_enemies<2)||buff.trick_shots.remains>execute_time&active_enemies>1\nactions.st+=/rapid_fire,if=(cooldown.resonating_arrow.remains>10||!covenant.kyrian||!talent.double_tap||soulbind.effusive_anima_accelerator)&focus+cast_regen<focus.max&(buff.double_tap.down&buff.eagletalons_true_focus.down||talent.streamline)\nactions.st+=/chimaera_shot,if=buff.precise_shots.up||focus>cost+action.aimed_shot.cost\nactions.st+=/arcane_shot,if=buff.precise_shots.up||focus>cost+action.aimed_shot.cost\nactions.st+=/serpent_sting,cycle_targets=1,if=refreshable&target.time_to_die>duration\nactions.st+=/barrage,if=active_enemies>1\nactions.st+=/rapid_fire,if=(cooldown.resonating_arrow.remains>10&runeforge.surging_shots||!covenant.kyrian||!talent.double_tap||soulbind.effusive_anima_accelerator)&focus+cast_regen<focus.max&(buff.double_tap.down||talent.streamline)\nactions.st+=/bag_of_tricks,if=buff.trueshot.down\nactions.st+=/fleshcraft,if=soulbind.pustule_eruption&buff.trueshot.down\nactions.st+=/steady_shot\n\nactions.trickshots=steady_shot,if=talent.steady_focus&in_flight&buff.steady_focus.remains<5\nactions.trickshots+=/kill_shot,if=runeforge.pouch_of_razor_fragments&buff.flayers_mark.up\nactions.trickshots+=/flayed_shot,if=runeforge.pouch_of_razor_fragments\nactions.trickshots+=/double_tap,if=(covenant.kyrian&cooldown.resonating_arrow.remains<gcd||!covenant.kyrian&!covenant.night_fae||covenant.night_fae&(cooldown.wild_spirits.remains<gcd||cooldown.wild_spirits.remains>30)||target.time_to_die<10||cooldown.resonating_arrow.remains>10&active_enemies>3)&(!raid_event.adds.exists||raid_event.adds.remains>9||!covenant.kyrian)\nactions.trickshots+=/tar_trap,if=runeforge.soulforge_embers&tar_trap.remains<gcd&cooldown.flare.remains<gcd\nactions.trickshots+=/flare,line_cd=25,if=tar_trap.up&runeforge.soulforge_embers\nactions.trickshots+=/explosive_shot\nactions.trickshots+=/wild_spirits,if=!raid_event.adds.exists||raid_event.adds.remains>10||active_enemies>=raid_event.adds.count*2\nactions.trickshots+=/wailing_arrow,if=cooldown.resonating_arrow.remains<gcd&(!talent.explosive_shot||buff.bloodlust.up)||!covenant.kyrian||cooldown.resonating_arrow.remains>10||boss&fight_remains<5\nactions.trickshots+=/resonating_arrow,if=(cooldown.volley.remains<gcd||!talent.volley||target.time_to_die<12)&(!raid_event.adds.exists||raid_event.adds.remains>9||active_enemies>=raid_event.adds.count*2)\nactions.trickshots+=/volley,if=buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||!covenant.kyrian\nactions.trickshots+=/barrage\nactions.trickshots+=/trueshot,if=buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||!covenant.kyrian||boss&fight_remains<20\nactions.trickshots+=/rapid_fire,if=runeforge.surging_shots&(cooldown.resonating_arrow.remains>10||!covenant.kyrian||!talent.double_tap)&buff.trick_shots.remains>=execute_time\nactions.trickshots+=/aimed_shot,cycle_targets=1,if=buff.trick_shots.remains>=execute_time&(buff.precise_shots.down||full_recharge_time<cast_time+gcd||buff.trueshot.up)\nactions.trickshots+=/death_chakram,if=focus+cast_regen<focus.max\nactions.trickshots+=/rapid_fire,if=(cooldown.resonating_arrow.remains>10&runeforge.surging_shots||!covenant.kyrian||!runeforge.surging_shots||!talent.double_tap)&buff.trick_shots.remains>=execute_time\nactions.trickshots+=/multishot,if=buff.trick_shots.down||buff.precise_shots.up&focus>cost+action.aimed_shot.cost&(!talent.chimaera_shot||active_enemies>3)\nactions.trickshots+=/chimaera_shot,if=buff.precise_shots.up&focus>cost+action.aimed_shot.cost&active_enemies<4\nactions.trickshots+=/kill_shot,if=buff.dead_eye.down\nactions.trickshots+=/a_murder_of_crows\nactions.trickshots+=/flayed_shot\nactions.trickshots+=/serpent_sting,cycle_targets=1,if=refreshable\nactions.trickshots+=/multishot,if=focus>cost+action.aimed_shot.cost&(cooldown.resonating_arrow.remains>5||!covenant.kyrian)\nactions.trickshots+=/tar_trap,if=runeforge.nessingwarys_trapping_apparatus\nactions.trickshots+=/freezing_trap,if=runeforge.nessingwarys_trapping_apparatus\nactions.trickshots+=/bag_of_tricks,if=buff.trueshot.down\nactions.trickshots+=/fleshcraft,if=soulbind.pustule_eruption&buff.trueshot.down\nactions.trickshots+=/steady_shot\n\nactions.trinkets=variable,name=sync_up,value=buff.resonating_arrow.up||buff.trueshot.up\nactions.trinkets+=/variable,name=strong_sync_up,value=covenant.kyrian&buff.resonating_arrow.up&buff.trueshot.up||!covenant.kyrian&buff.trueshot.up\nactions.trinkets+=/variable,name=strong_sync_remains,op=setif,value=cooldown.resonating_arrow.remains<?cooldown.trueshot.remains,value_else=cooldown.trueshot.remains,if=buff.trueshot.down&covenant.kyrian\nactions.trinkets+=/variable,name=strong_sync_remains,op=setif,value=cooldown.resonating_arrow.remains,value_else=cooldown.trueshot.remains,if=buff.trueshot.up&covenant.kyrian\nactions.trinkets+=/variable,name=sync_remains,op=setif,if=covenant.kyrian,value=cooldown.resonating_arrow.remains>?cooldown.trueshot.remains,value_else=cooldown.trueshot.remains\nactions.trinkets+=/use_items,slots=trinket1,if=(trinket.1.has_use_buff||covenant.kyrian&trinket.1.has_cooldown)&(variable.strong_sync_up&(!covenant.kyrian&!trinket.2.has_use_buff||covenant.kyrian&!trinket.2.has_cooldown||trinket.2.cooldown.remains||trinket.1.has_use_buff&(!trinket.2.has_use_buff||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||trinket.1.has_cooldown&!trinket.2.has_use_buff&trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||!variable.strong_sync_up&(!trinket.2.has_use_buff&(trinket.1.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2)||trinket.2.has_use_buff&(trinket.1.has_use_buff&trinket.1.cooldown.duration>=trinket.2.cooldown.duration&(trinket.1.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2)||(!trinket.1.has_use_buff||trinket.2.cooldown.duration>=trinket.1.cooldown.duration)&(trinket.2.cooldown.ready&trinket.2.cooldown.duration-5>variable.sync_remains&variable.sync_remains<trinket.2.cooldown.duration%2||!trinket.2.cooldown.ready&(trinket.2.cooldown.remains-5<variable.strong_sync_remains&variable.strong_sync_remains>20&(trinket.1.cooldown.duration-5<variable.sync_remains||trinket.2.cooldown.remains-5<variable.sync_remains&trinket.2.cooldown.duration-10+variable.sync_remains<variable.strong_sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2||variable.sync_up)||trinket.2.cooldown.remains-5>variable.strong_sync_remains&(trinket.1.cooldown.duration-5<variable.strong_sync_remains||!trinket.1.has_use_buff&(variable.sync_remains>trinket.1.cooldown.duration%2||variable.sync_up))))))||boss&fight_remains<variable.sync_remains)||!trinket.1.has_use_buff&!covenant.kyrian&(trinket.2.has_use_buff&((!variable.sync_up||trinket.2.cooldown.remains>5)&(variable.sync_remains>20||trinket.2.cooldown.remains-5>variable.sync_remains))||!trinket.2.has_use_buff&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||trinket.2.cooldown.duration>=trinket.1.cooldown.duration))\nactions.trinkets+=/use_items,slots=trinket2,if=(trinket.2.has_use_buff||covenant.kyrian&trinket.2.has_cooldown)&(variable.strong_sync_up&(!covenant.kyrian&!trinket.1.has_use_buff||covenant.kyrian&!trinket.1.has_cooldown||trinket.1.cooldown.remains||trinket.2.has_use_buff&(!trinket.1.has_use_buff||trinket.2.cooldown.duration>=trinket.1.cooldown.duration)||trinket.2.has_cooldown&!trinket.1.has_use_buff&trinket.2.cooldown.duration>=trinket.1.cooldown.duration)||!variable.strong_sync_up&(!trinket.1.has_use_buff&(trinket.2.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2)||trinket.1.has_use_buff&(trinket.2.has_use_buff&trinket.2.cooldown.duration>=trinket.1.cooldown.duration&(trinket.2.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2)||(!trinket.2.has_use_buff||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)&(trinket.1.cooldown.ready&trinket.1.cooldown.duration-5>variable.sync_remains&variable.sync_remains<trinket.1.cooldown.duration%2||!trinket.1.cooldown.ready&(trinket.1.cooldown.remains-5<variable.strong_sync_remains&variable.strong_sync_remains>20&(trinket.2.cooldown.duration-5<variable.sync_remains||trinket.1.cooldown.remains-5<variable.sync_remains&trinket.1.cooldown.duration-10+variable.sync_remains<variable.strong_sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2||variable.sync_up)||trinket.1.cooldown.remains-5>variable.strong_sync_remains&(trinket.2.cooldown.duration-5<variable.strong_sync_remains||!trinket.2.has_use_buff&(variable.sync_remains>trinket.2.cooldown.duration%2||variable.sync_up))))))||boss&fight_remains<variable.sync_remains)||!trinket.2.has_use_buff&!covenant.kyrian&(trinket.1.has_use_buff&((!variable.sync_up||trinket.1.cooldown.remains>5)&(variable.sync_remains>20||trinket.1.cooldown.remains-5>variable.sync_remains))||!trinket.1.has_use_buff&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||trinket.1.cooldown.duration>=trinket.2.cooldown.duration))",
},
["Beast Mastery"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210804,
["author"] = "SimC",
["desc"] = "Beast Mastery Hunter\nAugust 4, 2021\n\nChanges:\n- Re-enable Barbed Shot Grace Period.\n\nactions.precombat=summon_pet\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/fleshcraft\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/tar_trap,precast_time=1.5,if=runeforge.soulforge_embers||runeforge.nessingwarys_trapping_apparatus\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=!talent.scent_of_blood&!runeforge.soulforge_embers\nAdjusts the duration and cooldown of Aspect of the Wild and Primal Instincts by the duration of an unhasted GCD when they're used precombat. Because Aspect of the Wild reduces GCD by 200ms, this is 1.3 seconds.\nactions.precombat+=/aspect_of_the_wild,precast_time=1.3,if=!azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\nAdjusts the duration and cooldown of Bestial Wrath and Haze of Rage by the duration of an unhasted GCD when they're used precombat.\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\n\nactions+=/counter_shot\nGo ahead and Tranquilize NPC enemies; we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.\nactions+=/tranquilizing_shot,if=!target.is_player\nDelay facing your doubt until you have put Resonating Arrow down, or if the cooldown is too long to delay facing your Doubt. If none of these conditions are able to met within the 10 seconds leeway, the sim faces your Doubt automatically.\nactions+=/newfound_resolve,if=soulbind.newfound_resolve&(buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||target.time_to_die<16)\nactions+=/call_action_list,name=trinkets,if=covenant.kyrian&cooldown.aspect_of_the_wild.remains&cooldown.resonating_arrow.remains||!covenant.kyrian&cooldown.aspect_of_the_wild.remains\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<2\nactions+=/call_action_list,name=cleave,if=active_enemies>1\n\nactions.cds=ancestral_call,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/fireblood,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/berserking,if=(buff.wild_spirits.up||!covenant.night_fae&buff.aspect_of_the_wild.up&buff.bestial_wrath.up)&(fight_remains>cooldown.berserking.duration+duration||(target.health.pct<35||!talent.killer_instinct))||boss&fight_remains<13\nactions.cds+=/blood_fury,if=(buff.wild_spirits.up||!covenant.night_fae&buff.aspect_of_the_wild.up&buff.bestial_wrath.up)&(fight_remains>cooldown.blood_fury.duration+duration||(target.health.pct<35||!talent.killer_instinct))||boss&fight_remains<16\nactions.cds+=/lights_judgment\nactions.cds+=/potion,if=buff.aspect_of_the_wild.up||fight_remains<26\n\nactions.cleave=aspect_of_the_wild,if=!raid_event.adds.exists||raid_event.adds.remains>=10||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+barbed_shot_grace_period||buff.wild_spirits.up&charges_fractional>1.4&runeforge.fragments_of_the_elder_antlers\nactions.cleave+=/multishot,if=gcd-pet.main.buff.beast_cleave.remains>0.25\nactions.cleave+=/kill_shot,if=runeforge.pouch_of_razor_fragments&buff.flayers_mark.up\nactions.cleave+=/flayed_shot,if=runeforge.pouch_of_razor_fragments\nactions.cleave+=/tar_trap,if=runeforge.soulforge_embers&tar_trap.remains<gcd&cooldown.flare.remains<gcd\nactions.cleave+=/flare,if=tar_trap.up&runeforge.soulforge_embers\nactions.cleave+=/death_chakram,if=focus+cast_regen<focus.max\nactions.cleave+=/wild_spirits,if=!raid_event.adds.exists||raid_event.adds.remains>=10||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/barbed_shot,cycle_targets=1,if=full_recharge_time<gcd&cooldown.bestial_wrath.remains||cooldown.bestial_wrath.remains<12+gcd&talent.scent_of_blood\nactions.cleave+=/bestial_wrath,if=!raid_event.adds.exists||raid_event.adds.remains>=5||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/resonating_arrow,if=!raid_event.adds.exists||raid_event.adds.remains>=5||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/stampede,if=buff.aspect_of_the_wild.up||boss&fight_remains<15\nactions.cleave+=/wailing_arrow\nactions.cleave+=/flayed_shot\nactions.cleave+=/kill_shot\nactions.cleave+=/chimaera_shot\nactions.cleave+=/bloodshed\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/barrage,if=pet.main.buff.frenzy.remains>execute_time\nactions.cleave+=/kill_command,if=focus>cost+action.multishot.cost\nactions.cleave+=/bag_of_tricks,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.cleave+=/dire_beast\nactions.cleave+=/barbed_shot,cycle_targets=1,if=target.time_to_die<9||charges_fractional>1.2&conduit.bloodletting\nactions.cleave+=/cobra_shot,if=focus.time_to_max<gcd*2\nactions.cleave+=/tar_trap,if=runeforge.soulforge_embers||runeforge.nessingwarys_trapping_apparatus\nactions.cleave+=/freezing_trap,if=runeforge.nessingwarys_trapping_apparatus\nactions.cleave+=/arcane_torrent,if=(focus+focus.regen+30)<focus.max\n\nactions.st=aspect_of_the_wild,if=!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<20||(raid_event.adds.count=1&covenant.kyrian))||raid_event.adds.up&raid_event.adds.remains>19\nactions.st+=/barbed_shot,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+barbed_shot_grace_period||buff.wild_spirits.up&charges_fractional>1.4&runeforge.fragments_of_the_elder_antlers\nactions.st+=/tar_trap,if=runeforge.soulforge_embers&tar_trap.remains<gcd&cooldown.flare.remains<gcd\nactions.st+=/flare,line_cd=25,if=tar_trap.up&runeforge.soulforge_embers\nactions.st+=/bloodshed\nactions.st+=/wild_spirits,if=!raid_event.adds.exists||!raid_event.adds.up&raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.up&raid_event.adds.remains>19\nactions.st+=/flayed_shot\nactions.st+=/kill_shot\nactions.st+=/wailing_arrow,if=cooldown.resonating_arrow.remains<gcd&(!talent.explosive_shot||buff.bloodlust.up)||!covenant.kyrian||cooldown.resonating_arrow.remains||target.time_to_die<5\nactions.st+=/barbed_shot,if=cooldown.bestial_wrath.remains<12*charges_fractional+gcd&talent.scent_of_blood||full_recharge_time<gcd&cooldown.bestial_wrath.remains||target.time_to_die<9\nactions.st+=/death_chakram,if=focus+cast_regen<focus.max\nactions.st+=/stampede,if=buff.aspect_of_the_wild.up||target.time_to_die<15\nactions.st+=/a_murder_of_crows\nactions.st+=/resonating_arrow,if=(buff.bestial_wrath.up||target.time_to_die<10)&(!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.count=1)||raid_event.adds.up&raid_event.adds.remains>19)\nactions.st+=/bestial_wrath,if=(cooldown.wild_spirits.remains>15||covenant.kyrian&(cooldown.resonating_arrow.remains<5||cooldown.resonating_arrow.remains>20)||target.time_to_die<15||(!covenant.night_fae&!covenant.kyrian))&(!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.count=1)||raid_event.adds.up&raid_event.adds.remains>19)\nactions.st+=/chimaera_shot\nactions.st+=/kill_command\nactions.st+=/bag_of_tricks,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.st+=/dire_beast\nactions.st+=/cobra_shot,if=(focus-cost+focus.regen*(cooldown.kill_command.remains-1)>action.kill_command.cost||cooldown.kill_command.remains>1+gcd)||(buff.bestial_wrath.up||buff.nessingwarys_trapping_apparatus.up)&!runeforge.qapla_eredun_war_order||boss&fight_remains<3\nactions.st+=/barbed_shot,if=buff.wild_spirits.up||charges_fractional>1.2&conduit.bloodletting\nactions.st+=/arcane_pulse,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.st+=/tar_trap,if=runeforge.soulforge_embers||runeforge.nessingwarys_trapping_apparatus\nactions.st+=/freezing_trap,if=runeforge.nessingwarys_trapping_apparatus\nactions.st+=/arcane_torrent,if=(focus+focus.regen+15)<focus.max\n\nactions.trinkets=variable,name=sync_up,value=buff.resonating_arrow.up||buff.aspect_of_the_wild.up\nactions.trinkets+=/variable,name=strong_sync_up,value=covenant.kyrian&buff.resonating_arrow.up&buff.aspect_of_the_wild.up||!covenant.kyrian&buff.aspect_of_the_wild.up\nactions.trinkets+=/variable,name=strong_sync_remains,op=setif,condition=covenant.kyrian,value=cooldown.resonating_arrow.remains<?cooldown.aspect_of_the_wild.remains,value_else=cooldown.aspect_of_the_wild.remains,if=buff.aspect_of_the_wild.down\nactions.trinkets+=/variable,name=strong_sync_remains,op=setif,condition=covenant.kyrian,value=cooldown.resonating_arrow.remains,value_else=cooldown.aspect_of_the_wild.remains,if=buff.aspect_of_the_wild.up\nactions.trinkets+=/variable,name=sync_remains,op=setif,condition=covenant.kyrian,value=cooldown.resonating_arrow.remains>?cooldown.aspect_of_the_wild.remains,value_else=cooldown.aspect_of_the_wild.remains\nactions.trinkets+=/use_items,slots=trinket1,if=(trinket.1.has_use_buff||covenant.kyrian&trinket.1.has_cooldown)&(variable.strong_sync_up&(!covenant.kyrian&!trinket.2.has_use_buff||covenant.kyrian&!trinket.2.has_cooldown||trinket.2.cooldown.remains||trinket.1.has_use_buff&(!trinket.2.has_use_buff||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||trinket.1.has_cooldown&!trinket.2.has_use_buff&trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||!variable.strong_sync_up&(!trinket.2.has_use_buff&(trinket.1.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2)||trinket.2.has_use_buff&(trinket.1.has_use_buff&trinket.1.cooldown.duration>=trinket.2.cooldown.duration&(trinket.1.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2)||(!trinket.1.has_use_buff||trinket.2.cooldown.duration>=trinket.1.cooldown.duration)&(trinket.2.cooldown.ready&trinket.2.cooldown.duration-5>variable.sync_remains&variable.sync_remains<trinket.2.cooldown.duration%2||!trinket.2.cooldown.ready&(trinket.2.cooldown.remains-5<variable.strong_sync_remains&variable.strong_sync_remains>20&(trinket.1.cooldown.duration-5<variable.sync_remains||trinket.2.cooldown.remains-5<variable.sync_remains&trinket.2.cooldown.duration-10+variable.sync_remains<variable.strong_sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2||variable.sync_up)||trinket.2.cooldown.remains-5>variable.strong_sync_remains&(trinket.1.cooldown.duration-5<variable.strong_sync_remains||!trinket.1.has_use_buff&(variable.sync_remains>trinket.1.cooldown.duration%2||variable.sync_up))))))||target.time_to_die<variable.sync_remains)||!trinket.1.has_use_buff&!covenant.kyrian&(trinket.2.has_use_buff&((!variable.sync_up||trinket.2.cooldown.remains>5)&(variable.sync_remains>20||trinket.2.cooldown.remains-5>variable.sync_remains))||!trinket.2.has_use_buff&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||trinket.2.cooldown.duration>=trinket.1.cooldown.duration))\nactions.trinkets+=/use_items,slots=trinket2,if=(trinket.2.has_use_buff||covenant.kyrian&trinket.2.has_cooldown)&(variable.strong_sync_up&(!covenant.kyrian&!trinket.1.has_use_buff||covenant.kyrian&!trinket.1.has_cooldown||trinket.1.cooldown.remains||trinket.2.has_use_buff&(!trinket.1.has_use_buff||trinket.2.cooldown.duration>=trinket.1.cooldown.duration)||trinket.2.has_cooldown&!trinket.1.has_use_buff&trinket.2.cooldown.duration>=trinket.1.cooldown.duration)||!variable.strong_sync_up&(!trinket.1.has_use_buff&(trinket.2.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2)||trinket.1.has_use_buff&(trinket.2.has_use_buff&trinket.2.cooldown.duration>=trinket.1.cooldown.duration&(trinket.2.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2)||(!trinket.2.has_use_buff||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)&(trinket.1.cooldown.ready&trinket.1.cooldown.duration-5>variable.sync_remains&variable.sync_remains<trinket.1.cooldown.duration%2||!trinket.1.cooldown.ready&(trinket.1.cooldown.remains-5<variable.strong_sync_remains&variable.strong_sync_remains>20&(trinket.2.cooldown.duration-5<variable.sync_remains||trinket.1.cooldown.remains-5<variable.sync_remains&trinket.1.cooldown.duration-10+variable.sync_remains<variable.strong_sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2||variable.sync_up)||trinket.1.cooldown.remains-5>variable.strong_sync_remains&(trinket.2.cooldown.duration-5<variable.strong_sync_remains||!trinket.2.has_use_buff&(variable.sync_remains>trinket.2.cooldown.duration%2||variable.sync_up))))))||target.time_to_die<variable.sync_remains)||!trinket.2.has_use_buff&!covenant.kyrian&(trinket.1.has_use_buff&((!variable.sync_up||trinket.1.cooldown.remains>5)&(variable.sync_remains>20||trinket.1.cooldown.remains-5>variable.sync_remains))||!trinket.1.has_use_buff&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||trinket.1.cooldown.duration>=trinket.2.cooldown.duration))",
["lists"] = {
["default"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["description"] = "Go ahead and Tranquilize NPC enemies, we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.",
["criteria"] = "! target.is_player",
["action"] = "tranquilizing_shot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "covenant.kyrian & cooldown.aspect_of_the_wild.remains & cooldown.resonating_arrow.remains || ! covenant.kyrian & cooldown.aspect_of_the_wild.remains",
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies < 2",
["action"] = "call_action_list",
["list_name"] = "st",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "call_action_list",
["list_name"] = "cleave",
}, -- [6]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["action"] = "bottled_flayedwing_toxin",
["enabled"] = true,
}, -- [2]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [4]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "tar_trap",
["criteria"] = "runeforge.soulforge_embers.enabled || runeforge.nessingwarys_trapping_apparatus.enabled",
}, -- [5]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "bestial_wrath",
["criteria"] = "! talent.scent_of_blood.enabled & ! runeforge.soulforge_embers.enabled",
}, -- [6]
{
["enabled"] = true,
["precast_time"] = "1.3",
["action"] = "aspect_of_the_wild",
["description"] = "Adjusts the duration and cooldown of Aspect of the Wild and Primal Instincts by the duration of an unhasted GCD when they're used precombat. Because Aspect of the Wild reduces GCD by 200ms, this is 1.3 seconds.",
["criteria"] = "! azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [7]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "bestial_wrath",
["description"] = "Adjusts the duration and cooldown of Bestial Wrath and Haze of Rage by the duration of an unhasted GCD when they're used precombat.",
["criteria"] = "azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [8]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "ancestral_call",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "fireblood",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( buff.wild_spirits.up || ! covenant.night_fae & buff.aspect_of_the_wild.up & buff.bestial_wrath.up ) & ( fight_remains > cooldown.berserking.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || boss & fight_remains < 13",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( buff.wild_spirits.up || ! covenant.night_fae & buff.aspect_of_the_wild.up & buff.bestial_wrath.up ) & ( fight_remains > cooldown.blood_fury.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || boss & fight_remains < 16",
["action"] = "blood_fury",
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up || fight_remains < 26",
["action"] = "potion",
}, -- [6]
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.resonating_arrow.up || buff.aspect_of_the_wild.up",
["var_name"] = "sync_up",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "covenant.kyrian & buff.resonating_arrow.up & buff.aspect_of_the_wild.up || ! covenant.kyrian & buff.aspect_of_the_wild.up",
["var_name"] = "strong_sync_up",
}, -- [2]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "strong_sync_remains",
["criteria"] = "buff.aspect_of_the_wild.down",
["value_else"] = "cooldown.aspect_of_the_wild.remains",
["value"] = "cooldown.resonating_arrow.remains <? cooldown.aspect_of_the_wild.remains",
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "strong_sync_remains",
["criteria"] = "buff.aspect_of_the_wild.up",
["value_else"] = "cooldown.aspect_of_the_wild.remains",
["value"] = "cooldown.resonating_arrow.remains",
}, -- [4]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "sync_remains",
["criteria"] = "covenant.kyrian",
["value_else"] = "cooldown.aspect_of_the_wild.remains",
["value"] = "cooldown.resonating_arrow.remains >? cooldown.aspect_of_the_wild.remains",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( trinket.t1.has_use_buff || covenant.kyrian & trinket.t1.has_cooldown ) & ( variable.strong_sync_up & ( ! covenant.kyrian & ! trinket.t2.has_use_buff || covenant.kyrian & ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) || trinket.t1.has_cooldown & ! trinket.t2.has_use_buff & trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) || ! variable.strong_sync_up & ( ! trinket.t2.has_use_buff & ( trinket.t1.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t1.cooldown.duration / 2 ) || trinket.t2.has_use_buff & ( trinket.t1.has_use_buff & trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration & ( trinket.t1.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t1.cooldown.duration / 2 ) || ( ! trinket.t1.has_use_buff || trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) & ( trinket.t2.cooldown.ready & trinket.t2.cooldown.duration - 5 > variable.sync_remains & variable.sync_remains < trinket.t2.cooldown.duration / 2 || ! trinket.t2.cooldown.ready & ( trinket.t2.cooldown.remains - 5 < variable.strong_sync_remains & variable.strong_sync_remains > 20 & ( trinket.t1.cooldown.duration - 5 < variable.sync_remains || trinket.t2.cooldown.remains - 5 < variable.sync_remains & trinket.t2.cooldown.duration - 10 + variable.sync_remains < variable.strong_sync_remains || variable.sync_remains > trinket.t1.cooldown.duration / 2 || variable.sync_up ) || trinket.t2.cooldown.remains - 5 > variable.strong_sync_remains & ( trinket.t1.cooldown.duration - 5 < variable.strong_sync_remains || ! trinket.t1.has_use_buff & ( variable.sync_remains > trinket.t1.cooldown.duration / 2 || variable.sync_up ) ) ) ) ) ) || target.time_to_die < variable.sync_remains ) || ! trinket.t1.has_use_buff & ! covenant.kyrian & ( trinket.t2.has_use_buff & ( ( ! variable.sync_up || trinket.t2.cooldown.remains > 5 ) & ( variable.sync_remains > 20 || trinket.t2.cooldown.remains - 5 > variable.sync_remains ) ) || ! trinket.t2.has_use_buff & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) )",
["slots"] = "trinket1",
["action"] = "trinket1",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( trinket.t2.has_use_buff || covenant.kyrian & trinket.t2.has_cooldown ) & ( variable.strong_sync_up & ( ! covenant.kyrian & ! trinket.t1.has_use_buff || covenant.kyrian & ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || trinket.t2.has_use_buff & ( ! trinket.t1.has_use_buff || trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) || trinket.t2.has_cooldown & ! trinket.t1.has_use_buff & trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration ) || ! variable.strong_sync_up & ( ! trinket.t1.has_use_buff & ( trinket.t2.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t2.cooldown.duration / 2 ) || trinket.t1.has_use_buff & ( trinket.t2.has_use_buff & trinket.t2.cooldown.duration >= trinket.t1.cooldown.duration & ( trinket.t2.cooldown.duration - 5 < variable.sync_remains || variable.sync_remains > trinket.t2.cooldown.duration / 2 ) || ( ! trinket.t2.has_use_buff || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) & ( trinket.t1.cooldown.ready & trinket.t1.cooldown.duration - 5 > variable.sync_remains & variable.sync_remains < trinket.t1.cooldown.duration / 2 || ! trinket.t1.cooldown.ready & ( trinket.t1.cooldown.remains - 5 < variable.strong_sync_remains & variable.strong_sync_remains > 20 & ( trinket.t2.cooldown.duration - 5 < variable.sync_remains || trinket.t1.cooldown.remains - 5 < variable.sync_remains & trinket.t1.cooldown.duration - 10 + variable.sync_remains < variable.strong_sync_remains || variable.sync_remains > trinket.t2.cooldown.duration / 2 || variable.sync_up ) || trinket.t1.cooldown.remains - 5 > variable.strong_sync_remains & ( trinket.t2.cooldown.duration - 5 < variable.strong_sync_remains || ! trinket.t2.has_use_buff & ( variable.sync_remains > trinket.t2.cooldown.duration / 2 || variable.sync_up ) ) ) ) ) ) || target.time_to_die < variable.sync_remains ) || ! trinket.t2.has_use_buff & ! covenant.kyrian & ( trinket.t1.has_use_buff & ( ( ! variable.sync_up || trinket.t1.cooldown.remains > 5 ) & ( variable.sync_remains > 20 || trinket.t1.cooldown.remains - 5 > variable.sync_remains ) ) || ! trinket.t1.has_use_buff & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) )",
["slots"] = "trinket2",
["action"] = "trinket2",
}, -- [7]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || ! raid_event.adds.up & ( raid_event.adds.duration + raid_event.adds.in < 20 || ( raid_event.adds.count = 1 & covenant.kyrian ) ) || raid_event.adds.up & raid_event.adds.remains > 19",
["action"] = "aspect_of_the_wild",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd + barbed_shot_grace_period || buff.wild_spirits.up & charges_fractional > 1.4 & runeforge.fragments_of_the_elder_antlers.enabled",
["action"] = "barbed_shot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled & tar_trap.remains < gcd & cooldown.flare.remains < gcd",
["action"] = "tar_trap",
}, -- [3]
{
["enabled"] = true,
["action"] = "flare",
["criteria"] = "tar_trap.up & runeforge.soulforge_embers.enabled",
["line_cd"] = "25",
}, -- [4]
{
["action"] = "bloodshed",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || ! raid_event.adds.up & raid_event.adds.duration + raid_event.adds.in < 20 || raid_event.adds.up & raid_event.adds.remains > 19",
["action"] = "wild_spirits",
}, -- [6]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [7]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.resonating_arrow.remains < gcd & ( ! talent.explosive_shot.enabled || buff.bloodlust.up ) || ! covenant.kyrian || cooldown.resonating_arrow.remains || target.time_to_die < 5",
["action"] = "wailing_arrow",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains < 12 * charges_fractional + gcd & talent.scent_of_blood.enabled || full_recharge_time < gcd & cooldown.bestial_wrath.remains || target.time_to_die < 9",
["action"] = "barbed_shot",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up || target.time_to_die < 15",
["action"] = "stampede",
}, -- [12]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( buff.bestial_wrath.up || target.time_to_die < 10 ) & ( ! raid_event.adds.exists || ! raid_event.adds.up & ( raid_event.adds.duration + raid_event.adds.in < 20 || raid_event.adds.count = 1 ) || raid_event.adds.up & raid_event.adds.remains > 19 )",
["action"] = "resonating_arrow",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( cooldown.wild_spirits.remains > 15 || covenant.kyrian & ( cooldown.resonating_arrow.remains < 5 || cooldown.resonating_arrow.remains > 20 ) || target.time_to_die < 15 || ( ! covenant.night_fae & ! covenant.kyrian ) ) & ( ! raid_event.adds.exists || ! raid_event.adds.up & ( raid_event.adds.duration + raid_event.adds.in < 20 || raid_event.adds.count = 1 ) || raid_event.adds.up & raid_event.adds.remains > 19 )",
["action"] = "bestial_wrath",
}, -- [15]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [16]
{
["action"] = "kill_command",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || boss & fight_remains < 5",
["action"] = "bag_of_tricks",
}, -- [18]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "( focus - cost + focus.regen * ( cooldown.kill_command.remains - 1 ) > action.kill_command.cost || cooldown.kill_command.remains > 1 + gcd ) || ( buff.bestial_wrath.up || buff.nessingwarys_trapping_apparatus.up ) & ! runeforge.qapla_eredun_war_order.enabled || boss & fight_remains < 3",
["action"] = "cobra_shot",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.wild_spirits.up || charges_fractional > 1.2 & conduit.bloodletting.enabled",
["action"] = "barbed_shot",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || boss & fight_remains < 5",
["action"] = "arcane_pulse",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled || runeforge.nessingwarys_trapping_apparatus.enabled",
["action"] = "tar_trap",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "runeforge.nessingwarys_trapping_apparatus.enabled",
["action"] = "freezing_trap",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( focus + focus.regen + 15 ) < focus.max",
["action"] = "arcane_torrent",
}, -- [25]
},
["cleave"] = {
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || raid_event.adds.remains >= 10 || active_enemies >= raid_event.adds.count * 2",
["action"] = "aspect_of_the_wild",
}, -- [1]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd + barbed_shot_grace_period || buff.wild_spirits.up & charges_fractional > 1.4 & runeforge.fragments_of_the_elder_antlers.enabled",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "gcd - buff.beast_cleave.remains > 0.25",
["action"] = "multishot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "runeforge.pouch_of_razor_fragments.enabled & buff.flayers_mark.up",
["action"] = "kill_shot",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runeforge.pouch_of_razor_fragments.enabled",
["action"] = "flayed_shot",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled & tar_trap.remains < gcd & cooldown.flare.remains < gcd",
["action"] = "tar_trap",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "tar_trap.up & runeforge.soulforge_embers.enabled",
["action"] = "flare",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || raid_event.adds.remains >= 10 || active_enemies >= raid_event.adds.count * 2",
["action"] = "wild_spirits",
}, -- [9]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "full_recharge_time < gcd & cooldown.bestial_wrath.remains || cooldown.bestial_wrath.remains < 12 + gcd & talent.scent_of_blood.enabled",
["cycle_targets"] = 1,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || raid_event.adds.remains >= 5 || active_enemies >= raid_event.adds.count * 2",
["action"] = "bestial_wrath",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! raid_event.adds.exists || raid_event.adds.remains >= 5 || active_enemies >= raid_event.adds.count * 2",
["action"] = "resonating_arrow",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up || boss & fight_remains < 15",
["action"] = "stampede",
}, -- [13]
{
["action"] = "wailing_arrow",
["enabled"] = true,
}, -- [14]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [15]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [16]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [17]
{
["action"] = "bloodshed",
["enabled"] = true,
}, -- [18]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.remains > execute_time",
["action"] = "barrage",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "focus > cost + action.multishot.cost",
["action"] = "kill_command",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || boss & fight_remains < 5",
["action"] = "bag_of_tricks",
}, -- [22]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [23]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "target.time_to_die < 9 || charges_fractional > 1.2 & conduit.bloodletting.enabled",
["cycle_targets"] = 1,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "focus.time_to_max < gcd * 2",
["action"] = "cobra_shot",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.enabled || runeforge.nessingwarys_trapping_apparatus.enabled",
["action"] = "tar_trap",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "runeforge.nessingwarys_trapping_apparatus.enabled",
["action"] = "freezing_trap",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "( focus + focus.regen + 30 ) < focus.max",
["action"] = "arcane_torrent",
}, -- [28]
},
},
["version"] = 20210804,
["warnings"] = "WARNING: The import for 'precombat' required some automated changes.\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 6: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 6: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\n\nWARNING: The import for 'trinkets' required some automated changes.\nLine 6: Converted SimC syntax % to Lua division operator (/) (5x).\nLine 6: Converted 'trinket.1.X' to 'trinket.t1.X' (21x).\nLine 6: Converted 'trinket.2.X' to 'trinket.t2.X' (26x).\nLine 7: Converted SimC syntax % to Lua division operator (/) (5x).\nLine 7: Converted 'trinket.1.X' to 'trinket.t1.X' (26x).\nLine 7: Converted 'trinket.2.X' to 'trinket.t2.X' (21x).\n\nWARNING: The import for 'cds' required some automated changes.\nLine 3: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 4: Converted 'talent.X' to 'talent.X.enabled' (1x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 2: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 3: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 9: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' (1x).\nLine 20: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 21: Converted 'conduit.X' to 'conduit.X.enabled' at EOL (1x).\nLine 23: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 23: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 24: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\n\nWARNING: The import for 'cleave' required some automated changes.\nLine 2: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 2: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 3: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 5: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 6: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 7: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 10: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\nLine 20: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 24: Converted 'conduit.X' to 'conduit.X.enabled' at EOL (1x).\nLine 26: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\nLine 26: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 27: Converted 'runeforge.X' to 'runeforge.X.enabled' at EOL (1x).\n\nImported 6 action lists.\n",
["spec"] = 253,
["profile"] = "## Beast Mastery Hunter\n## August 4, 2021\n\n## Changes:\n## - Re-enable Barbed Shot Grace Period.\n\nactions.precombat=summon_pet\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/fleshcraft\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/tar_trap,precast_time=1.5,if=runeforge.soulforge_embers||runeforge.nessingwarys_trapping_apparatus\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=!talent.scent_of_blood&!runeforge.soulforge_embers\n# Adjusts the duration and cooldown of Aspect of the Wild and Primal Instincts by the duration of an unhasted GCD when they're used precombat. Because Aspect of the Wild reduces GCD by 200ms, this is 1.3 seconds.\nactions.precombat+=/aspect_of_the_wild,precast_time=1.3,if=!azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\n# Adjusts the duration and cooldown of Bestial Wrath and Haze of Rage by the duration of an unhasted GCD when they're used precombat.\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\n\nactions+=/counter_shot\n# Go ahead and Tranquilize NPC enemies; we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.\nactions+=/tranquilizing_shot,if=!target.is_player\n## Delay facing your doubt until you have put Resonating Arrow down, or if the cooldown is too long to delay facing your Doubt. If none of these conditions are able to met within the 10 seconds leeway, the sim faces your Doubt automatically.\n## actions+=/newfound_resolve,if=soulbind.newfound_resolve&(buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||target.time_to_die<16)\nactions+=/call_action_list,name=trinkets,if=covenant.kyrian&cooldown.aspect_of_the_wild.remains&cooldown.resonating_arrow.remains||!covenant.kyrian&cooldown.aspect_of_the_wild.remains\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<2\nactions+=/call_action_list,name=cleave,if=active_enemies>1\n\nactions.cds=ancestral_call,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/fireblood,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/berserking,if=(buff.wild_spirits.up||!covenant.night_fae&buff.aspect_of_the_wild.up&buff.bestial_wrath.up)&(fight_remains>cooldown.berserking.duration+duration||(target.health.pct<35||!talent.killer_instinct))||boss&fight_remains<13\nactions.cds+=/blood_fury,if=(buff.wild_spirits.up||!covenant.night_fae&buff.aspect_of_the_wild.up&buff.bestial_wrath.up)&(fight_remains>cooldown.blood_fury.duration+duration||(target.health.pct<35||!talent.killer_instinct))||boss&fight_remains<16\nactions.cds+=/lights_judgment\nactions.cds+=/potion,if=buff.aspect_of_the_wild.up||fight_remains<26\n\nactions.cleave=aspect_of_the_wild,if=!raid_event.adds.exists||raid_event.adds.remains>=10||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+barbed_shot_grace_period||buff.wild_spirits.up&charges_fractional>1.4&runeforge.fragments_of_the_elder_antlers\nactions.cleave+=/multishot,if=gcd-pet.main.buff.beast_cleave.remains>0.25\nactions.cleave+=/kill_shot,if=runeforge.pouch_of_razor_fragments&buff.flayers_mark.up\nactions.cleave+=/flayed_shot,if=runeforge.pouch_of_razor_fragments\nactions.cleave+=/tar_trap,if=runeforge.soulforge_embers&tar_trap.remains<gcd&cooldown.flare.remains<gcd\nactions.cleave+=/flare,if=tar_trap.up&runeforge.soulforge_embers\nactions.cleave+=/death_chakram,if=focus+cast_regen<focus.max\nactions.cleave+=/wild_spirits,if=!raid_event.adds.exists||raid_event.adds.remains>=10||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/barbed_shot,cycle_targets=1,if=full_recharge_time<gcd&cooldown.bestial_wrath.remains||cooldown.bestial_wrath.remains<12+gcd&talent.scent_of_blood\nactions.cleave+=/bestial_wrath,if=!raid_event.adds.exists||raid_event.adds.remains>=5||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/resonating_arrow,if=!raid_event.adds.exists||raid_event.adds.remains>=5||active_enemies>=raid_event.adds.count*2\nactions.cleave+=/stampede,if=buff.aspect_of_the_wild.up||boss&fight_remains<15\nactions.cleave+=/wailing_arrow\nactions.cleave+=/flayed_shot\nactions.cleave+=/kill_shot\nactions.cleave+=/chimaera_shot\nactions.cleave+=/bloodshed\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/barrage,if=pet.main.buff.frenzy.remains>execute_time\nactions.cleave+=/kill_command,if=focus>cost+action.multishot.cost\nactions.cleave+=/bag_of_tricks,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.cleave+=/dire_beast\nactions.cleave+=/barbed_shot,cycle_targets=1,if=target.time_to_die<9||charges_fractional>1.2&conduit.bloodletting\nactions.cleave+=/cobra_shot,if=focus.time_to_max<gcd*2\nactions.cleave+=/tar_trap,if=runeforge.soulforge_embers||runeforge.nessingwarys_trapping_apparatus\nactions.cleave+=/freezing_trap,if=runeforge.nessingwarys_trapping_apparatus\nactions.cleave+=/arcane_torrent,if=(focus+focus.regen+30)<focus.max\n\nactions.st=aspect_of_the_wild,if=!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<20||(raid_event.adds.count=1&covenant.kyrian))||raid_event.adds.up&raid_event.adds.remains>19\nactions.st+=/barbed_shot,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+barbed_shot_grace_period||buff.wild_spirits.up&charges_fractional>1.4&runeforge.fragments_of_the_elder_antlers\nactions.st+=/tar_trap,if=runeforge.soulforge_embers&tar_trap.remains<gcd&cooldown.flare.remains<gcd\nactions.st+=/flare,line_cd=25,if=tar_trap.up&runeforge.soulforge_embers\nactions.st+=/bloodshed\nactions.st+=/wild_spirits,if=!raid_event.adds.exists||!raid_event.adds.up&raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.up&raid_event.adds.remains>19\nactions.st+=/flayed_shot\nactions.st+=/kill_shot\nactions.st+=/wailing_arrow,if=cooldown.resonating_arrow.remains<gcd&(!talent.explosive_shot||buff.bloodlust.up)||!covenant.kyrian||cooldown.resonating_arrow.remains||target.time_to_die<5\nactions.st+=/barbed_shot,if=cooldown.bestial_wrath.remains<12*charges_fractional+gcd&talent.scent_of_blood||full_recharge_time<gcd&cooldown.bestial_wrath.remains||target.time_to_die<9\nactions.st+=/death_chakram,if=focus+cast_regen<focus.max\nactions.st+=/stampede,if=buff.aspect_of_the_wild.up||target.time_to_die<15\nactions.st+=/a_murder_of_crows\nactions.st+=/resonating_arrow,if=(buff.bestial_wrath.up||target.time_to_die<10)&(!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.count=1)||raid_event.adds.up&raid_event.adds.remains>19)\nactions.st+=/bestial_wrath,if=(cooldown.wild_spirits.remains>15||covenant.kyrian&(cooldown.resonating_arrow.remains<5||cooldown.resonating_arrow.remains>20)||target.time_to_die<15||(!covenant.night_fae&!covenant.kyrian))&(!raid_event.adds.exists||!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<20||raid_event.adds.count=1)||raid_event.adds.up&raid_event.adds.remains>19)\nactions.st+=/chimaera_shot\nactions.st+=/kill_command\nactions.st+=/bag_of_tricks,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.st+=/dire_beast\nactions.st+=/cobra_shot,if=(focus-cost+focus.regen*(cooldown.kill_command.remains-1)>action.kill_command.cost||cooldown.kill_command.remains>1+gcd)||(buff.bestial_wrath.up||buff.nessingwarys_trapping_apparatus.up)&!runeforge.qapla_eredun_war_order||boss&fight_remains<3\nactions.st+=/barbed_shot,if=buff.wild_spirits.up||charges_fractional>1.2&conduit.bloodletting\nactions.st+=/arcane_pulse,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.st+=/tar_trap,if=runeforge.soulforge_embers||runeforge.nessingwarys_trapping_apparatus\nactions.st+=/freezing_trap,if=runeforge.nessingwarys_trapping_apparatus\nactions.st+=/arcane_torrent,if=(focus+focus.regen+15)<focus.max\n\nactions.trinkets=variable,name=sync_up,value=buff.resonating_arrow.up||buff.aspect_of_the_wild.up\nactions.trinkets+=/variable,name=strong_sync_up,value=covenant.kyrian&buff.resonating_arrow.up&buff.aspect_of_the_wild.up||!covenant.kyrian&buff.aspect_of_the_wild.up\nactions.trinkets+=/variable,name=strong_sync_remains,op=setif,condition=covenant.kyrian,value=cooldown.resonating_arrow.remains<?cooldown.aspect_of_the_wild.remains,value_else=cooldown.aspect_of_the_wild.remains,if=buff.aspect_of_the_wild.down\nactions.trinkets+=/variable,name=strong_sync_remains,op=setif,condition=covenant.kyrian,value=cooldown.resonating_arrow.remains,value_else=cooldown.aspect_of_the_wild.remains,if=buff.aspect_of_the_wild.up\nactions.trinkets+=/variable,name=sync_remains,op=setif,condition=covenant.kyrian,value=cooldown.resonating_arrow.remains>?cooldown.aspect_of_the_wild.remains,value_else=cooldown.aspect_of_the_wild.remains\nactions.trinkets+=/use_items,slots=trinket1,if=(trinket.1.has_use_buff||covenant.kyrian&trinket.1.has_cooldown)&(variable.strong_sync_up&(!covenant.kyrian&!trinket.2.has_use_buff||covenant.kyrian&!trinket.2.has_cooldown||trinket.2.cooldown.remains||trinket.1.has_use_buff&(!trinket.2.has_use_buff||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||trinket.1.has_cooldown&!trinket.2.has_use_buff&trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||!variable.strong_sync_up&(!trinket.2.has_use_buff&(trinket.1.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2)||trinket.2.has_use_buff&(trinket.1.has_use_buff&trinket.1.cooldown.duration>=trinket.2.cooldown.duration&(trinket.1.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2)||(!trinket.1.has_use_buff||trinket.2.cooldown.duration>=trinket.1.cooldown.duration)&(trinket.2.cooldown.ready&trinket.2.cooldown.duration-5>variable.sync_remains&variable.sync_remains<trinket.2.cooldown.duration%2||!trinket.2.cooldown.ready&(trinket.2.cooldown.remains-5<variable.strong_sync_remains&variable.strong_sync_remains>20&(trinket.1.cooldown.duration-5<variable.sync_remains||trinket.2.cooldown.remains-5<variable.sync_remains&trinket.2.cooldown.duration-10+variable.sync_remains<variable.strong_sync_remains||variable.sync_remains>trinket.1.cooldown.duration%2||variable.sync_up)||trinket.2.cooldown.remains-5>variable.strong_sync_remains&(trinket.1.cooldown.duration-5<variable.strong_sync_remains||!trinket.1.has_use_buff&(variable.sync_remains>trinket.1.cooldown.duration%2||variable.sync_up))))))||target.time_to_die<variable.sync_remains)||!trinket.1.has_use_buff&!covenant.kyrian&(trinket.2.has_use_buff&((!variable.sync_up||trinket.2.cooldown.remains>5)&(variable.sync_remains>20||trinket.2.cooldown.remains-5>variable.sync_remains))||!trinket.2.has_use_buff&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||trinket.2.cooldown.duration>=trinket.1.cooldown.duration))\nactions.trinkets+=/use_items,slots=trinket2,if=(trinket.2.has_use_buff||covenant.kyrian&trinket.2.has_cooldown)&(variable.strong_sync_up&(!covenant.kyrian&!trinket.1.has_use_buff||covenant.kyrian&!trinket.1.has_cooldown||trinket.1.cooldown.remains||trinket.2.has_use_buff&(!trinket.1.has_use_buff||trinket.2.cooldown.duration>=trinket.1.cooldown.duration)||trinket.2.has_cooldown&!trinket.1.has_use_buff&trinket.2.cooldown.duration>=trinket.1.cooldown.duration)||!variable.strong_sync_up&(!trinket.1.has_use_buff&(trinket.2.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2)||trinket.1.has_use_buff&(trinket.2.has_use_buff&trinket.2.cooldown.duration>=trinket.1.cooldown.duration&(trinket.2.cooldown.duration-5<variable.sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2)||(!trinket.2.has_use_buff||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)&(trinket.1.cooldown.ready&trinket.1.cooldown.duration-5>variable.sync_remains&variable.sync_remains<trinket.1.cooldown.duration%2||!trinket.1.cooldown.ready&(trinket.1.cooldown.remains-5<variable.strong_sync_remains&variable.strong_sync_remains>20&(trinket.2.cooldown.duration-5<variable.sync_remains||trinket.1.cooldown.remains-5<variable.sync_remains&trinket.1.cooldown.duration-10+variable.sync_remains<variable.strong_sync_remains||variable.sync_remains>trinket.2.cooldown.duration%2||variable.sync_up)||trinket.1.cooldown.remains-5>variable.strong_sync_remains&(trinket.2.cooldown.duration-5<variable.strong_sync_remains||!trinket.2.has_use_buff&(variable.sync_remains>trinket.2.cooldown.duration%2||variable.sync_up))))))||target.time_to_die<variable.sync_remains)||!trinket.2.has_use_buff&!covenant.kyrian&(trinket.1.has_use_buff&((!variable.sync_up||trinket.1.cooldown.remains>5)&(variable.sync_remains>20||trinket.1.cooldown.remains-5>variable.sync_remains))||!trinket.1.has_use_buff&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||trinket.1.cooldown.duration>=trinket.2.cooldown.duration))",
},
["Survival"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20211101,
["author"] = "SimC",
["desc"] = "Survival Hunter\nNovember 1, 2021",
["lists"] = {
["nta"] = {
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.wild_spirits.remains || buff.wild_spirits.remains & cooldown.kill_command.remains",
["action"] = "freezing_trap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! buff.wild_spirits.remains || buff.wild_spirits.remains & cooldown.kill_command.remains",
["action"] = "tar_trap",
}, -- [3]
},
["default"] = {
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["description"] = "Go ahead and Tranquilize NPC enemies, we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.",
["criteria"] = "! target.is_player",
["action"] = "tranquilizing_shot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || boss & fight_remains < 30",
["name"] = "jotungeirr_destinys_call",
["action"] = "jotungeirr_destinys_call",
}, -- [3]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3 & talent.birds_of_prey.enabled",
["action"] = "call_action_list",
["list_name"] = "bop",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3 & ! talent.birds_of_prey.enabled",
["action"] = "call_action_list",
["list_name"] = "st",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "call_action_list",
["list_name"] = "cleave",
}, -- [8]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [9]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "setif",
["description"] = "November 1, 2021",
["criteria"] = "talent.mongoose_bite.enabled",
["value"] = "action.mongoose_bite.cost",
["action"] = "variable",
["value_else"] = "action.raptor_strike.cost",
["var_name"] = "mb_rs_cost",
}, -- [1]
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [2]
{
["action"] = "bottled_flayedwing_toxin",
["enabled"] = true,
}, -- [3]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runeforge.soulforge_embers.equipped",
["action"] = "tar_trap",
}, -- [5]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [6]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [1]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "! dot.serpent_sting.ticking & target.time_to_die > 7 || buff.vipers_venom.up & buff.vipers_venom.remains < gcd",
["cycle_targets"] = 1,
}, -- [2]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [3]
{
["action"] = "resonating_arrow",
["enabled"] = true,
}, -- [4]
{
["action"] = "wild_spirits",
["enabled"] = true,
}, -- [5]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [6]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [8]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd || focus + cast_regen < focus.max & ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 ) || time_to_die < 10",
["action"] = "wildfire_bomb",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ! runeforge.rylakstalkers_confounding_strikes.equipped",
["action"] = "carve",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ! runeforge.rylakstalkers_confounding_strikes.equipped & cooldown.wildfire_bomb.full_recharge_time > spell_targets & ( charges_fractional > 2.5 || dot.shrapnel_bomb.ticking )",
["action"] = "butchery",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [13]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["criteria"] = "talent.alpha_predator.enabled & ( buff.mongoose_fury.up & buff.mongoose_fury.remains < focus / ( variable.mb_rs_cost - cast_regen ) * gcd & ! buff.wild_spirits.remains || buff.mongoose_fury.remains & next_wi_bomb.pheromone )",
["cycle_targets"] = 1,
}, -- [14]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "full_recharge_time < gcd & focus + cast_regen < focus.max",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["action"] = "raptor_strike",
["criteria"] = "buff.tip_of_the_spear.stack = 3 || dot.shrapnel_bomb.ticking",
["cycle_targets"] = 1,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [17]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & target.time_to_die > 7 || buff.vipers_venom.up",
["cycle_targets"] = 1,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & focus > variable.mb_rs_cost * 2 & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [19]
{
["action"] = "chakrams",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "runeforge.rylakstalkers_confounding_strikes.equipped",
["action"] = "wildfire_bomb",
}, -- [22]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["criteria"] = "buff.mongoose_fury.up || focus + action.kill_command.cast_regen > focus.max - 15 || dot.shrapnel_bomb.ticking || buff.wild_spirits.remains",
["cycle_targets"] = 1,
}, -- [23]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel & focus > 50",
["action"] = "wildfire_bomb",
}, -- [25]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled & focus < focus.max",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up",
["action"] = "ancestral_call",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up",
["action"] = "fireblood",
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.kill_command.full_recharge_time > gcd",
["action"] = "bag_of_tricks",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || time_to_die < 13",
["action"] = "berserking",
}, -- [7]
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "fight_remains < 60 || buff.coordinated_assault.up",
["action"] = "potion",
}, -- [9]
{
["enabled"] = true,
["action"] = "fleshcraft",
["criteria"] = "( focus < 70 || cooldown.coordinated_assault.remains < gcd ) & ( soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled )",
["interrupt_if"] = "channeling&!soulbind.pustule_eruption",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & runeforge.soulforge_embers.equipped & tar_trap.remains < gcd & cooldown.flare.remains < gcd & ( active_enemies > 1 || active_enemies = 1 & time_to_die > 5 * gcd )",
["action"] = "tar_trap",
}, -- [11]
{
["enabled"] = true,
["action"] = "flare",
["criteria"] = "focus + cast_regen < focus.max & tar_trap.up & runeforge.soulforge_embers.equipped & time_to_die > 4 * gcd",
["line_cd"] = "25",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_die < focus / ( variable.mb_rs_cost - cast_regen ) * gcd",
["action"] = "kill_shot",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_die < focus / ( variable.mb_rs_cost - cast_regen ) * gcd",
["action"] = "mongoose_bite",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_die < focus / ( variable.mb_rs_cost - cast_regen ) * gcd",
["action"] = "raptor_strike",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "target.distance >= 6",
["action"] = "aspect_of_the_eagle",
}, -- [16]
},
["bop"] = {
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "buff.vipers_venom.remains & ( buff.vipers_venom.remains < gcd || refreshable )",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max & buff.nesingwarys_trapping_apparatus.up || focus + cast_regen < focus.max + 10 & buff.nesingwarys_trapping_apparatus.up & buff.nesingwarys_trapping_apparatus.remains < gcd",
["cycle_targets"] = 1,
}, -- [2]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ! ticking & full_recharge_time < gcd",
["action"] = "wildfire_bomb",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [5]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "runeforge.nessingwarys_trapping_apparatus.equipped & focus < variable.mb_rs_cost",
["action"] = "call_action_list",
["list_name"] = "nta",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [8]
{
["enabled"] = true,
["action"] = "raptor_strike",
["criteria"] = "buff.coordinated_assault.up & buff.coordinated_assault.remains < 1.5 * gcd",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["criteria"] = "buff.coordinated_assault.up & buff.coordinated_assault.remains < 1.5 * gcd",
["cycle_targets"] = 1,
}, -- [10]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["action"] = "raptor_strike",
["criteria"] = "buff.tip_of_the_spear.stack = 3",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ! ticking & ( full_recharge_time < gcd || ! dot.wildfire_bomb.ticking & buff.mongoose_fury.remains > full_recharge_time - 1 * gcd || ! dot.wildfire_bomb.ticking & ! buff.mongoose_fury.remains ) || time_to_die < 18 & ! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [13]
{
["enabled"] = true,
["action"] = "kill_command",
["cycle_targets"] = 1,
["criteria"] = "focus + cast_regen < focus.max & ( ! runeforge.nessingwarys_trapping_apparatus.enabled || focus < variable.mb_rs_cost )",
["description"] = "If you don't have Nessingwary's Trapping Apparatus, simply cast Kill Command if you won't overcap on Focus from doing so. If you do have Nessingwary's Trapping Apparatus you should cast Kill Command if your focus is below the cost of Mongoose Bite or Raptor Strike",
}, -- [14]
{
["enabled"] = true,
["action"] = "kill_command",
["cycle_targets"] = 1,
["criteria"] = "focus + cast_regen < focus.max & runeforge.nessingwarys_trapping_apparatus.enabled & cooldown.freezing_trap.remains > ( focus / ( variable.mb_rs_cost - cast_regen ) * gcd ) & cooldown.tar_trap.remains > ( focus / ( variable.mb_rs_cost - cast_regen ) * gcd ) & ( ! talent.steel_trap.enabled || talent.steel_trap.enabled & cooldown.steel_trap.remains > ( focus / ( variable.mb_rs_cost - cast_regen ) * gcd ) )",
["description"] = "With Nessingwary's Trapping Apparatus only Kill Command if your traps are on cooldown, otherwise stop using Kill Command if your current focus amount is enough to sustain the amount of time left for any of your traps to come off cooldown",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [16]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "dot.serpent_sting.refreshable & ! buff.coordinated_assault.up",
["cycle_targets"] = 1,
}, -- [17]
{
["action"] = "resonating_arrow",
["enabled"] = true,
}, -- [18]
{
["action"] = "wild_spirits",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + action.kill_command.cast_regen > focus.max || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [21]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [22]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable",
["action"] = "wildfire_bomb",
}, -- [23]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "buff.vipers_venom.up",
["cycle_targets"] = 1,
}, -- [24]
},
["cleave"] = {
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "talent.hydras_bite.enabled & buff.vipers_venom.remains & buff.vipers_venom.remains < gcd",
["cycle_targets"] = 1,
}, -- [1]
{
["action"] = "wild_spirits",
["enabled"] = true,
}, -- [2]
{
["action"] = "resonating_arrow",
["enabled"] = true,
}, -- [3]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd",
["action"] = "wildfire_bomb",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "runeforge.nessingwarys_trapping_apparatus.equipped & focus < variable.mb_rs_cost",
["list_name"] = "nta",
}, -- [6]
{
["action"] = "chakrams",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking & ( dot.internal_bleeding.stack < 2 || dot.shrapnel_bomb.remains < gcd )",
["action"] = "butchery",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "carve",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "charges_fractional > 2.5 & cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2",
["action"] = "butchery",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2 & talent.alpha_predator.enabled",
["action"] = "carve",
}, -- [13]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max & full_recharge_time < gcd & ( runeforge.nessingwarys_trapping_apparatus.equipped & cooldown.freezing_trap.remains & cooldown.tar_trap.remains || ! runeforge.nessingwarys_trapping_apparatus.equipped )",
["cycle_targets"] = 1,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( ! next_wi_bomb.shrapnel || ! talent.wildfire_infusion.enabled ) & cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2",
["action"] = "butchery",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2",
["action"] = "carve",
}, -- [17]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [18]
{
["action"] = "flayed_shot",
["enabled"] = true,
}, -- [19]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [20]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [22]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & talent.hydras_bite.enabled & target.time_to_die > 8",
["cycle_targets"] = 1,
}, -- [23]
{
["action"] = "carve",
["enabled"] = true,
}, -- [24]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max & ( runeforge.nessingwarys_trapping_apparatus.equipped & cooldown.freezing_trap.remains & cooldown.tar_trap.remains || ! runeforge.nessingwarys_trapping_apparatus.equipped )",
["cycle_targets"] = 1,
}, -- [25]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable",
["cycle_targets"] = 1,
}, -- [26]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["cycle_targets"] = 1,
}, -- [27]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [28]
},
},
["version"] = 20211101,
["warnings"] = "WARNING: The import for 'precombat' required some automated changes.\nLine 1: Converted 'talent.X' to 'talent.X.enabled' at EOL (1x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 14: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'cds' required some automated changes.\nLine 10: Converted 'soulbind.X' to 'soulbind.X.enabled' (2x).\nLine 13: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 14: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 15: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'bop' required some automated changes.\nLine 14: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 15: Converted SimC syntax % to Lua division operator (/) (3x).\nLine 15: Converted 'talent.X' to 'talent.X.enabled' (2x).\nLine 15: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'cleave' required some automated changes.\nLine 11: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 13: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 16: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 17: Converted SimC syntax % to Lua division operator (/) (1x).\n\nImported 7 action lists.\n",
["spec"] = 255,
["profile"] = "# Survival Hunter\n# November 1, 2021\n\nactions.precombat+=/variable,name=mb_rs_cost,op=setif,value=action.mongoose_bite.cost,value_else=action.raptor_strike.cost,condition=talent.mongoose_bite\nactions.precombat+=/summon_pet\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/fleshcraft\nactions.precombat+=/tar_trap,if=runeforge.soulforge_embers.equipped\nactions.precombat+=/steel_trap\n\nactions+=/muzzle\n# Go ahead and Tranquilize NPC enemies; we don't do this for players because it'd be too spammy and we can't readily Tranq specific buffs.\nactions+=/tranquilizing_shot,if=!target.is_player\nactions+=/use_item,name=jotungeirr_destinys_call,if=buff.coordinated_assault.up||boss&fight_remains<30\nactions+=/use_items\n## Delay facing your doubt until you have put Resonating Arrow down, or if the cooldown is too long to delay facing your Doubt. If none of these conditions are able to met within the 10 seconds leeway, the sim faces your Doubt automatically.\n## actions+=/newfound_resolve,if=soulbind.newfound_resolve&(buff.resonating_arrow.up||cooldown.resonating_arrow.remains>10||target.time_to_die<16)\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=bop,if=active_enemies<3&talent.birds_of_prey.enabled\nactions+=/call_action_list,name=st,if=active_enemies<3&!talent.birds_of_prey.enabled\nactions+=/call_action_list,name=cleave,if=active_enemies>2\nactions+=/arcane_torrent\n\nactions.bop=serpent_sting,cycle_targets=1,if=buff.vipers_venom.remains&(buff.vipers_venom.remains<gcd||refreshable)\nactions.bop+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&buff.nesingwarys_trapping_apparatus.up||focus+cast_regen<focus.max+10&buff.nesingwarys_trapping_apparatus.up&buff.nesingwarys_trapping_apparatus.remains<gcd\nactions.bop+=/kill_shot\nactions.bop+=/wildfire_bomb,if=focus+cast_regen<focus.max&!ticking&full_recharge_time<gcd\nactions.bop+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.bop+=/flayed_shot\nactions.bop+=/call_action_list,name=nta,if=runeforge.nessingwarys_trapping_apparatus.equipped&focus<variable.mb_rs_cost\nactions.bop+=/death_chakram,if=focus+cast_regen<focus.max\nactions.bop+=/raptor_strike,cycle_targets=1,if=buff.coordinated_assault.up&buff.coordinated_assault.remains<1.5*gcd\nactions.bop+=/mongoose_bite,cycle_targets=1,if=buff.coordinated_assault.up&buff.coordinated_assault.remains<1.5*gcd\nactions.bop+=/a_murder_of_crows\nactions.bop+=/raptor_strike,cycle_targets=1,if=buff.tip_of_the_spear.stack=3\nactions.bop+=/wildfire_bomb,if=focus+cast_regen<focus.max&!ticking&(full_recharge_time<gcd||!dot.wildfire_bomb.ticking&buff.mongoose_fury.remains>full_recharge_time-1*gcd||!dot.wildfire_bomb.ticking&!buff.mongoose_fury.remains)||time_to_die<18&!dot.wildfire_bomb.ticking\n# If you don't have Nessingwary's Trapping Apparatus, simply cast Kill Command if you won't overcap on Focus from doing so. If you do have Nessingwary's Trapping Apparatus you should cast Kill Command if your focus is below the cost of Mongoose Bite or Raptor Strike\nactions.bop+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&(!runeforge.nessingwarys_trapping_apparatus||focus<variable.mb_rs_cost)\n# With Nessingwary's Trapping Apparatus only Kill Command if your traps are on cooldown, otherwise stop using Kill Command if your current focus amount is enough to sustain the amount of time left for any of your traps to come off cooldown\nactions.bop+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&runeforge.nessingwarys_trapping_apparatus&cooldown.freezing_trap.remains>(focus%(variable.mb_rs_cost-cast_regen)*gcd)&cooldown.tar_trap.remains>(focus%(variable.mb_rs_cost-cast_regen)*gcd)&(!talent.steel_trap||talent.steel_trap&cooldown.steel_trap.remains>(focus%(variable.mb_rs_cost-cast_regen)*gcd))\nactions.bop+=/steel_trap,if=focus+cast_regen<focus.max\nactions.bop+=/serpent_sting,cycle_targets=1,if=dot.serpent_sting.refreshable&!buff.coordinated_assault.up\nactions.bop+=/resonating_arrow\nactions.bop+=/wild_spirits\nactions.bop+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.bop+=/mongoose_bite,if=buff.mongoose_fury.up||focus+action.kill_command.cast_regen>focus.max||buff.coordinated_assault.up\nactions.bop+=/raptor_strike,cycle_targets=1\nactions.bop+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable\nactions.bop+=/serpent_sting,cycle_targets=1,if=buff.vipers_venom.up\n\nactions.cds=harpoon,if=talent.terms_of_engagement.enabled&focus<focus.max\nactions.cds+=/blood_fury,if=buff.coordinated_assault.up\nactions.cds+=/ancestral_call,if=buff.coordinated_assault.up\nactions.cds+=/fireblood,if=buff.coordinated_assault.up\nactions.cds+=/lights_judgment\nactions.cds+=/bag_of_tricks,if=cooldown.kill_command.full_recharge_time>gcd\nactions.cds+=/berserking,if=buff.coordinated_assault.up||time_to_die<13\nactions.cds+=/muzzle\nactions.cds+=/potion,if=fight_remains<60||buff.coordinated_assault.up\nactions.cds+=/fleshcraft,interrupt_if=channeling&!soulbind.pustule_eruption,if=(focus<70||cooldown.coordinated_assault.remains<gcd)&(soulbind.pustule_eruption||soulbind.volatile_solvent)\nactions.cds+=/tar_trap,if=focus+cast_regen<focus.max&runeforge.soulforge_embers.equipped&tar_trap.remains<gcd&cooldown.flare.remains<gcd&(active_enemies>1||active_enemies=1&time_to_die>5*gcd)\nactions.cds+=/flare,line_cd=25,if=focus+cast_regen<focus.max&tar_trap.up&runeforge.soulforge_embers.equipped&time_to_die>4*gcd\nactions.cds+=/kill_shot,if=active_enemies=1&target.time_to_die<focus%(variable.mb_rs_cost-cast_regen)*gcd\nactions.cds+=/mongoose_bite,if=active_enemies=1&target.time_to_die<focus%(variable.mb_rs_cost-cast_regen)*gcd\nactions.cds+=/raptor_strike,if=active_enemies=1&target.time_to_die<focus%(variable.mb_rs_cost-cast_regen)*gcd\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\n\nactions.cleave=serpent_sting,cycle_targets=1,if=talent.hydras_bite.enabled&buff.vipers_venom.remains&buff.vipers_venom.remains<gcd\nactions.cleave+=/wild_spirits\nactions.cleave+=/resonating_arrow\nactions.cleave+=/coordinated_assault\nactions.cleave+=/wildfire_bomb,if=full_recharge_time<gcd\nactions.cleave+=/call_action_list,name=nta,strict=1,if=runeforge.nessingwarys_trapping_apparatus.equipped&focus<variable.mb_rs_cost\nactions.cleave+=/chakrams\nactions.cleave+=/butchery,if=dot.shrapnel_bomb.ticking&(dot.internal_bleeding.stack<2||dot.shrapnel_bomb.remains<gcd)\nactions.cleave+=/carve,if=dot.shrapnel_bomb.ticking\nactions.cleave+=/death_chakram,if=focus+cast_regen<focus.max\nactions.cleave+=/butchery,if=charges_fractional>2.5&cooldown.wildfire_bomb.full_recharge_time>spell_targets%2\nactions.cleave+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.cleave+=/carve,if=cooldown.wildfire_bomb.full_recharge_time>spell_targets%2&talent.alpha_predator.enabled\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&full_recharge_time<gcd&(runeforge.nessingwarys_trapping_apparatus.equipped&cooldown.freezing_trap.remains&cooldown.tar_trap.remains||!runeforge.nessingwarys_trapping_apparatus.equipped)\nactions.cleave+=/wildfire_bomb,if=!dot.wildfire_bomb.ticking\nactions.cleave+=/butchery,if=(!next_wi_bomb.shrapnel||!talent.wildfire_infusion.enabled)&cooldown.wildfire_bomb.full_recharge_time>spell_targets%2\nactions.cleave+=/carve,if=cooldown.wildfire_bomb.full_recharge_time>spell_targets%2\nactions.cleave+=/kill_shot\nactions.cleave+=/flayed_shot\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/steel_trap\nactions.cleave+=/steel_trap,if=focus+cast_regen<focus.max\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable&talent.hydras_bite.enabled&target.time_to_die>8\nactions.cleave+=/carve\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&(runeforge.nessingwarys_trapping_apparatus.equipped&cooldown.freezing_trap.remains&cooldown.tar_trap.remains||!runeforge.nessingwarys_trapping_apparatus.equipped)\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable\nactions.cleave+=/mongoose_bite,cycle_targets=1\nactions.cleave+=/raptor_strike,cycle_targets=1\n\nactions.nta=steel_trap\nactions.nta+=/freezing_trap,if=!buff.wild_spirits.remains||buff.wild_spirits.remains&cooldown.kill_command.remains\nactions.nta+=/tar_trap,if=!buff.wild_spirits.remains||buff.wild_spirits.remains&cooldown.kill_command.remains\n\nactions.st=death_chakram,if=focus+cast_regen<focus.max\nactions.st+=/serpent_sting,cycle_targets=1,if=!dot.serpent_sting.ticking&target.time_to_die>7||buff.vipers_venom.up&buff.vipers_venom.remains<gcd\nactions.st+=/flayed_shot\nactions.st+=/resonating_arrow\nactions.st+=/wild_spirits\nactions.st+=/coordinated_assault\nactions.st+=/kill_shot\nactions.st+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.st+=/a_murder_of_crows\nactions.st+=/wildfire_bomb,if=full_recharge_time<gcd||focus+cast_regen<focus.max&(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)||time_to_die<10\nactions.st+=/carve,if=active_enemies>1&!runeforge.rylakstalkers_confounding_strikes.equipped\nactions.st+=/butchery,if=active_enemies>1&!runeforge.rylakstalkers_confounding_strikes.equipped&cooldown.wildfire_bomb.full_recharge_time>spell_targets&(charges_fractional>2.5||dot.shrapnel_bomb.ticking)\nactions.st+=/steel_trap,if=focus+cast_regen<focus.max\nactions.st+=/mongoose_bite,cycle_targets=1,if=talent.alpha_predator.enabled&(buff.mongoose_fury.up&buff.mongoose_fury.remains<focus%(variable.mb_rs_cost-cast_regen)*gcd&!buff.wild_spirits.remains||buff.mongoose_fury.remains&next_wi_bomb.pheromone)\nactions.st+=/kill_command,cycle_targets=1,if=full_recharge_time<gcd&focus+cast_regen<focus.max\nactions.st+=/raptor_strike,cycle_targets=1,if=buff.tip_of_the_spear.stack=3||dot.shrapnel_bomb.ticking\nactions.st+=/mongoose_bite,if=dot.shrapnel_bomb.ticking\nactions.st+=/serpent_sting,cycle_targets=1,if=refreshable&target.time_to_die>7||buff.vipers_venom.up\nactions.st+=/wildfire_bomb,if=next_wi_bomb.shrapnel&focus>variable.mb_rs_cost*2&dot.serpent_sting.remains>5*gcd\nactions.st+=/chakrams\nactions.st+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.st+=/wildfire_bomb,if=runeforge.rylakstalkers_confounding_strikes.equipped\nactions.st+=/mongoose_bite,cycle_targets=1,if=buff.mongoose_fury.up||focus+action.kill_command.cast_regen>focus.max-15||dot.shrapnel_bomb.ticking||buff.wild_spirits.remains\nactions.st+=/raptor_strike,cycle_targets=1\nactions.st+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel&focus>50",
},
},
},
["Quillcroft - Thunderhorn"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetRogueMfDOption_20200226"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[263] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Enhancement",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "superior_battle_potion_of_agility",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
[262] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["funnel_damage"] = false,
["stack_buffer"] = 1.1,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = true,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Elemental",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Enhancement"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200124,
["author"] = "SimulationCraft",
["desc"] = "# Enhancement Shaman\n# https://github.com/simulationcraft/simc/\n# January 21, 2020\n\n# Changes:\n# - Added precombat Totem Mastery.\n# - Don't use Earth Elemental (save it for utility).",
["lists"] = {
["opener"] = {
{
["enabled"] = true,
["criteria"] = "maelstrom < 15 & time < gcd",
["action"] = "rockbiter",
}, -- [1]
},
["maintenance"] = {
{
["enabled"] = true,
["criteria"] = "! buff.flametongue.up",
["action"] = "flametongue",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & ! buff.frostbrand.up & variable.furyCheck_FB",
["action"] = "frostbrand",
}, -- [2]
},
["default"] = {
{
["action"] = "wind_shear",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.ascendance.enabled & ( buff.ascendance.up || cooldown.ascendance.remains > 50 ) ) || ( ! talent.ascendance.enabled & ( feral_spirit.remains > 5 || cooldown.feral_spirit.remains > 50 ) )",
["var_name"] = "cooldown_sync",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "maelstrom >= ( talent.fury_of_air.enabled * ( 6 + action.stormstrike.cost ) )",
["var_name"] = "furyCheck_SS",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "maelstrom >= ( talent.fury_of_air.enabled * ( 6 + action.lava_lash.cost ) )",
["var_name"] = "furyCheck_LL",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "maelstrom >= ( talent.fury_of_air.enabled * ( 6 + action.crash_lightning.cost ) )",
["var_name"] = "furyCheck_CL",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "maelstrom >= ( talent.fury_of_air.enabled * ( 6 + action.frostbrand.cost ) )",
["var_name"] = "furyCheck_FB",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "maelstrom >= ( talent.fury_of_air.enabled * ( 6 + action.earthen_spike.cost ) )",
["var_name"] = "furyCheck_ES",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "maelstrom >= ( talent.fury_of_air.enabled * ( 6 + 40 ) )",
["var_name"] = "furyCheck_LB",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( active_enemies > 1 || ( cooldown.lightning_bolt.remains >= 2 * gcd ) )",
["var_name"] = "OCPool",
}, -- [9]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.OCPool || maelstrom >= ( talent.overcharge.enabled * ( 40 + action.stormstrike.cost ) ) )",
["var_name"] = "OCPool_SS",
}, -- [10]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.OCPool || maelstrom >= ( talent.overcharge.enabled * ( 40 + action.lava_lash.cost ) ) )",
["var_name"] = "OCPool_LL",
}, -- [11]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.OCPool || maelstrom >= ( talent.overcharge.enabled * ( 40 + action.crash_lightning.cost ) ) )",
["var_name"] = "OCPool_CL",
}, -- [12]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.OCPool || maelstrom >= ( talent.overcharge.enabled * ( 40 + action.frostbrand.cost ) ) )",
["var_name"] = "OCPool_FB",
}, -- [13]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1 || maelstrom >= ( action.crash_lightning.cost + action.lava_lash.cost )",
["var_name"] = "CLPool_LL",
}, -- [14]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1 || maelstrom >= ( action.crash_lightning.cost + action.stormstrike.cost )",
["var_name"] = "CLPool_SS",
}, -- [15]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.hot_hand.enabled & talent.hailstorm.enabled & azerite.primal_primer.enabled )",
["var_name"] = "freezerburn_enabled",
}, -- [16]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! variable.freezerburn_enabled & ( talent.boulderfist.enabled & talent.landslide.enabled & azerite.strength_of_earth.enabled ) )",
["var_name"] = "rockslide_enabled",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "opener",
}, -- [18]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "buff.ascendance.up",
["list_name"] = "asc",
}, -- [19]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "priority",
}, -- [20]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3",
["list_name"] = "maintenance",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [22]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.freezerburn_enabled",
["list_name"] = "freezerburn_core",
}, -- [23]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "! variable.freezerburn_enabled",
["list_name"] = "default_core",
}, -- [24]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies >= 3",
["list_name"] = "maintenance",
}, -- [25]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "filler",
}, -- [26]
},
["precombat"] = {
{
["action"] = "totem_mastery",
["enabled"] = true,
}, -- [1]
{
["action"] = "lightning_shield",
["enabled"] = true,
}, -- [2]
{
["action"] = "potion",
["enabled"] = true,
}, -- [3]
},
["asc"] = {
{
["enabled"] = true,
["criteria"] = "! buff.crash_lightning.up & active_enemies > 1 & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.landslide.enabled & ! buff.landslide.up & charges_fractional > 1.7",
["action"] = "rockbiter",
}, -- [2]
{
["action"] = "windstrike",
["enabled"] = true,
}, -- [3]
},
["default_core"] = {
{
["enabled"] = true,
["criteria"] = "variable.furyCheck_ES",
["action"] = "earthen_spike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & azerite.lightning_conduit.enabled & ! debuff.lightning_conduit.up & variable.furyCheck_SS",
["action"] = "stormstrike",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.stormbringer.up || ( active_enemies > 1 & buff.gathering_storms.up & variable.furyCheck_SS )",
["action"] = "stormstrike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.overcharge.enabled & active_enemies = 1 & variable.furyCheck_LB & maelstrom >= 40",
["action"] = "lightning_bolt",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.OCPool_SS & variable.furyCheck_SS",
["action"] = "stormstrike",
}, -- [6]
},
["cds"] = {
{
["enabled"] = false,
["criteria"] = "azerite.ancestral_resonance.enabled",
["action"] = "bloodlust",
}, -- [1]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_sync",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_sync",
["action"] = "blood_fury",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_sync",
["action"] = "fireblood",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_sync",
["action"] = "ancestral_call",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.ascendance.up || ! talent.ascendance.enabled & feral_spirit.remains > 5 || target.time_to_die <= 60",
["action"] = "potion",
}, -- [8]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [9]
{
["action"] = "feral_spirit",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 90 || active_enemies > 1",
["action"] = "blood_of_the_enemy",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "cooldown.strike.remains > 0",
["action"] = "ascendance",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.down || ( target.time_to_die < 20 & debuff.razor_coral_debuff.stack > 2 )",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.stack > 2 & debuff.conductive_ink_debuff.down & ( buff.ascendance.remains > 10 || buff.molten_weapon.remains > 10 || buff.crackling_surge.remains > 10 || buff.icy_edge.remains > 10 || debuff.earthen_spike.remains > 6 )",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( debuff.conductive_ink_debuff.up || buff.ascendance.remains > 10 || buff.molten_weapon.remains > 10 || buff.crackling_surge.remains > 10 || buff.icy_edge.remains > 10 || debuff.earthen_spike.remains > 6 ) & target.health.pct < 31",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [15]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [16]
},
["priority"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies >= ( 8 - ( talent.forceful_winds.enabled * 3 ) ) & variable.freezerburn_enabled & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || time < 5",
["action"] = "the_unbound_force",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "azerite.primal_primer.rank >= 2 & debuff.primal_primer.stack = 10 & active_enemies = 1 & variable.freezerburn_enabled & variable.furyCheck_LL",
["action"] = "lava_lash",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.freezerburn_enabled & buff.flametongue.remains < gcd & active_enemies > 1",
["action"] = "flametongue",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.freezerburn_enabled & buff.frostbrand.remains < gcd & active_enemies > 1",
["action"] = "frostbrand",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! buff.crash_lightning.up & active_enemies > 1 & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.fury_of_air.up & maelstrom >= 20 & spell_targets.fury_of_air_damage >= ( 1 + variable.freezerburn_enabled )",
["action"] = "fury_of_air",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.fury_of_air.up & spell_targets.fury_of_air_damage < ( 1 + variable.freezerburn_enabled )",
["action"] = "fury_of_air",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.resonance_totem.remains <= 2 * gcd",
["action"] = "totem_mastery",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ( ! essence.blood_of_the_enemy.major || ( essence.blood_of_the_enemy.major & ( buff.seething_rage.up || cooldown.blood_of_the_enemy.remains > 40 ) ) )",
["action"] = "sundering",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "focused_azerite_beam",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "purifying_blast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "ripple_in_space",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.landslide.enabled & ! buff.landslide.up & charges_fractional > 1.7",
["action"] = "rockbiter",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( azerite.natural_harmony.enabled & buff.natural_harmony_frost.remains <= 2 * gcd ) & talent.hailstorm.enabled & variable.furyCheck_FB",
["action"] = "frostbrand",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( azerite.natural_harmony.enabled & buff.natural_harmony_fire.remains <= 2 * gcd )",
["action"] = "flametongue",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "( azerite.natural_harmony.enabled & buff.natural_harmony_nature.remains <= 2 * gcd ) & maelstrom < 70",
["action"] = "rockbiter",
}, -- [17]
},
["freezerburn_core"] = {
{
["enabled"] = true,
["criteria"] = "azerite.primal_primer.rank >= 2 & debuff.primal_primer.stack = 10 & variable.furyCheck_LL & variable.CLPool_LL",
["action"] = "lava_lash",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.furyCheck_ES",
["action"] = "earthen_spike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & azerite.lightning_conduit.enabled & ! debuff.lightning_conduit.up & variable.furyCheck_SS",
["action"] = "stormstrike",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.stormbringer.up || ( active_enemies > 1 & buff.gathering_storms.up & variable.furyCheck_SS )",
["action"] = "stormstrike",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.overcharge.enabled & active_enemies = 1 & variable.furyCheck_LB & maelstrom >= 40",
["action"] = "lightning_bolt",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "azerite.primal_primer.rank >= 2 & debuff.primal_primer.stack > 7 & variable.furyCheck_LL & variable.CLPool_LL",
["action"] = "lava_lash",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.OCPool_SS & variable.furyCheck_SS & variable.CLPool_SS",
["action"] = "stormstrike",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "debuff.primal_primer.stack = 10 & variable.furyCheck_LL",
["action"] = "lava_lash",
}, -- [9]
},
["filler"] = {
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 40",
["action"] = "sundering",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 90 & ! buff.ascendance.up & ! buff.molten_weapon.up & ! buff.icy_edge.up & ! buff.crackling_surge.up & ! debuff.earthen_spike.up",
["action"] = "focused_azerite_beam",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 60",
["action"] = "ripple_in_space",
}, -- [4]
{
["action"] = "thundercharge",
["enabled"] = true,
}, -- [5]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [6]
{
["action"] = "reaping_flames",
["enabled"] = true,
}, -- [7]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.forceful_winds.enabled & active_enemies > 1 & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.searing_assault.enabled",
["action"] = "flametongue",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! azerite.primal_primer.enabled & talent.hot_hand.enabled & buff.hot_hand.react",
["action"] = "lava_lash",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & variable.furyCheck_CL",
["action"] = "crash_lightning",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "maelstrom < 70 & ! buff.strength_of_earth.up",
["action"] = "rockbiter",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( talent.crashing_storm.enabled || talent.forceful_winds.enabled ) & variable.OCPool_CL",
["action"] = "crash_lightning",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "variable.OCPool_LL & variable.furyCheck_LL",
["action"] = "lava_lash",
}, -- [15]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [16]
{
["action"] = "rockbiter",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & buff.frostbrand.remains < 4.8 + gcd & variable.furyCheck_FB",
["action"] = "frostbrand",
}, -- [18]
{
["action"] = "flametongue",
["enabled"] = true,
}, -- [19]
},
},
["version"] = 20200124,
["warnings"] = "Imported 10 action lists.\n",
["profile"] = "# Enhancement Shaman\n# https://github.com/simulationcraft/simc/\n# January 21, 2020\n\n# Changes:\n# - Added precombat Totem Mastery.\n# - Don't use Earth Elemental (save it for utility).\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/totem_mastery\nactions.precombat+=/lightning_shield\nactions.precombat+=/potion\n\n# Executed every time the actor is available.\nactions=wind_shear\n# Attempt to sync racial cooldowns with Ascendance or Feral Spirits, or use on cooldown if saving them will result in significant cooldown waste\nactions+=/variable,name=cooldown_sync,value=(talent.ascendance.enabled&(buff.ascendance.up||cooldown.ascendance.remains>50))||(!talent.ascendance.enabled&(feral_spirit.remains>5||cooldown.feral_spirit.remains>50))\n# Do not use a maelstrom-costing ability if it will bring you to 0 maelstrom and cancel fury of air.\nactions+=/variable,name=furyCheck_SS,value=maelstrom>=(talent.fury_of_air.enabled*(6+action.stormstrike.cost))\nactions+=/variable,name=furyCheck_LL,value=maelstrom>=(talent.fury_of_air.enabled*(6+action.lava_lash.cost))\nactions+=/variable,name=furyCheck_CL,value=maelstrom>=(talent.fury_of_air.enabled*(6+action.crash_lightning.cost))\nactions+=/variable,name=furyCheck_FB,value=maelstrom>=(talent.fury_of_air.enabled*(6+action.frostbrand.cost))\nactions+=/variable,name=furyCheck_ES,value=maelstrom>=(talent.fury_of_air.enabled*(6+action.earthen_spike.cost))\nactions+=/variable,name=furyCheck_LB,value=maelstrom>=(talent.fury_of_air.enabled*(6+40))\n# Attempt to pool maelstrom so you'll be able to cast a fully-powered lightning bolt as soon as it's available when fighting one target.\nactions+=/variable,name=OCPool,value=(active_enemies>1||(cooldown.lightning_bolt.remains>=2*gcd))\nactions+=/variable,name=OCPool_SS,value=(variable.OCPool||maelstrom>=(talent.overcharge.enabled*(40+action.stormstrike.cost)))\nactions+=/variable,name=OCPool_LL,value=(variable.OCPool||maelstrom>=(talent.overcharge.enabled*(40+action.lava_lash.cost)))\nactions+=/variable,name=OCPool_CL,value=(variable.OCPool||maelstrom>=(talent.overcharge.enabled*(40+action.crash_lightning.cost)))\nactions+=/variable,name=OCPool_FB,value=(variable.OCPool||maelstrom>=(talent.overcharge.enabled*(40+action.frostbrand.cost)))\n# Attempt to pool maelstrom for Crash Lightning if multiple targets are present.\nactions+=/variable,name=CLPool_LL,value=active_enemies=1||maelstrom>=(action.crash_lightning.cost+action.lava_lash.cost)\nactions+=/variable,name=CLPool_SS,value=active_enemies=1||maelstrom>=(action.crash_lightning.cost+action.stormstrike.cost)\nactions+=/variable,name=freezerburn_enabled,value=(talent.hot_hand.enabled&talent.hailstorm.enabled&azerite.primal_primer.enabled)\nactions+=/variable,name=rockslide_enabled,value=(!variable.freezerburn_enabled&(talent.boulderfist.enabled&talent.landslide.enabled&azerite.strength_of_earth.enabled))\nactions+=/call_action_list,name=opener\nactions+=/call_action_list,name=asc,if=buff.ascendance.up\nactions+=/call_action_list,name=priority\nactions+=/call_action_list,name=maintenance,if=active_enemies<3\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=freezerburn_core,if=variable.freezerburn_enabled\nactions+=/call_action_list,name=default_core,if=!variable.freezerburn_enabled\nactions+=/call_action_list,name=maintenance,if=active_enemies>=3\nactions+=/call_action_list,name=filler\n\nactions.asc=crash_lightning,if=!buff.crash_lightning.up&active_enemies>1&variable.furyCheck_CL\nactions.asc+=/rockbiter,if=talent.landslide.enabled&!buff.landslide.up&charges_fractional>1.7\nactions.asc+=/windstrike\n\n# Cast Bloodlust manually if the Azerite Trait Ancestral Resonance is present.\nactions.cds=bloodlust,if=azerite.ancestral_resonance.enabled\nactions.cds+=/worldvein_resonance\nactions.cds+=/berserking,if=variable.cooldown_sync\nactions.cds+=/use_item,name=azsharas_font_of_power\nactions.cds+=/blood_fury,if=variable.cooldown_sync\nactions.cds+=/fireblood,if=variable.cooldown_sync\nactions.cds+=/ancestral_call,if=variable.cooldown_sync\n# Attempt to sync your DPS potion with a cooldown, unless the target is about to die.\nactions.cds+=/potion,if=buff.ascendance.up||!talent.ascendance.enabled&feral_spirit.remains>5||target.time_to_die<=60\nactions.cds+=/guardian_of_azeroth\nactions.cds+=/feral_spirit\nactions.cds+=/blood_of_the_enemy,if=raid_event.adds.in>90||active_enemies>1\nactions.cds+=/ascendance,if=cooldown.strike.remains>0\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.down||(target.time_to_die<20&debuff.razor_coral_debuff.stack>2)\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.stack>2&debuff.conductive_ink_debuff.down&(buff.ascendance.remains>10||buff.molten_weapon.remains>10||buff.crackling_surge.remains>10||buff.icy_edge.remains>10||debuff.earthen_spike.remains>6)\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=(debuff.conductive_ink_debuff.up||buff.ascendance.remains>10||buff.molten_weapon.remains>10||buff.crackling_surge.remains>10||buff.icy_edge.remains>10||debuff.earthen_spike.remains>6)&target.health.pct<31\nactions.cds+=/use_items\n# actions.cds+=/earth_elemental\n\nactions.default_core=earthen_spike,if=variable.furyCheck_ES\nactions.default_core+=/stormstrike,cycle_targets=1,if=active_enemies>1&azerite.lightning_conduit.enabled&!debuff.lightning_conduit.up&variable.furyCheck_SS\nactions.default_core+=/stormstrike,if=buff.stormbringer.up||(active_enemies>1&buff.gathering_storms.up&variable.furyCheck_SS)\nactions.default_core+=/crash_lightning,if=active_enemies>=3&variable.furyCheck_CL\nactions.default_core+=/lightning_bolt,if=talent.overcharge.enabled&active_enemies=1&variable.furyCheck_LB&maelstrom>=40\nactions.default_core+=/stormstrike,if=variable.OCPool_SS&variable.furyCheck_SS\n\nactions.filler=sundering,if=raid_event.adds.in>40\nactions.filler+=/focused_azerite_beam,if=raid_event.adds.in>90&!buff.ascendance.up&!buff.molten_weapon.up&!buff.icy_edge.up&!buff.crackling_surge.up&!debuff.earthen_spike.up\nactions.filler+=/purifying_blast,if=raid_event.adds.in>60\nactions.filler+=/ripple_in_space,if=raid_event.adds.in>60\nactions.filler+=/thundercharge\nactions.filler+=/concentrated_flame\nactions.filler+=/reaping_flames\nactions.filler+=/bag_of_tricks\nactions.filler+=/crash_lightning,if=talent.forceful_winds.enabled&active_enemies>1&variable.furyCheck_CL\nactions.filler+=/flametongue,if=talent.searing_assault.enabled\nactions.filler+=/lava_lash,if=!azerite.primal_primer.enabled&talent.hot_hand.enabled&buff.hot_hand.react\nactions.filler+=/crash_lightning,if=active_enemies>1&variable.furyCheck_CL\nactions.filler+=/rockbiter,if=maelstrom<70&!buff.strength_of_earth.up\nactions.filler+=/crash_lightning,if=(talent.crashing_storm.enabled||talent.forceful_winds.enabled)&variable.OCPool_CL\nactions.filler+=/lava_lash,if=variable.OCPool_LL&variable.furyCheck_LL\nactions.filler+=/memory_of_lucid_dreams\nactions.filler+=/rockbiter\nactions.filler+=/frostbrand,if=talent.hailstorm.enabled&buff.frostbrand.remains<4.8+gcd&variable.furyCheck_FB\nactions.filler+=/flametongue\n\nactions.freezerburn_core=lava_lash,cycle_targets=1,if=azerite.primal_primer.rank>=2&debuff.primal_primer.stack=10&variable.furyCheck_LL&variable.CLPool_LL\nactions.freezerburn_core+=/earthen_spike,if=variable.furyCheck_ES\nactions.freezerburn_core+=/stormstrike,cycle_targets=1,if=active_enemies>1&azerite.lightning_conduit.enabled&!debuff.lightning_conduit.up&variable.furyCheck_SS\nactions.freezerburn_core+=/stormstrike,if=buff.stormbringer.up||(active_enemies>1&buff.gathering_storms.up&variable.furyCheck_SS)\nactions.freezerburn_core+=/crash_lightning,if=active_enemies>=3&variable.furyCheck_CL\nactions.freezerburn_core+=/lightning_bolt,if=talent.overcharge.enabled&active_enemies=1&variable.furyCheck_LB&maelstrom>=40\nactions.freezerburn_core+=/lava_lash,if=azerite.primal_primer.rank>=2&debuff.primal_primer.stack>7&variable.furyCheck_LL&variable.CLPool_LL\nactions.freezerburn_core+=/stormstrike,if=variable.OCPool_SS&variable.furyCheck_SS&variable.CLPool_SS\nactions.freezerburn_core+=/lava_lash,if=debuff.primal_primer.stack=10&variable.furyCheck_LL\n\nactions.maintenance=flametongue,if=!buff.flametongue.up\nactions.maintenance+=/frostbrand,if=talent.hailstorm.enabled&!buff.frostbrand.up&variable.furyCheck_FB\n\nactions.opener=rockbiter,if=maelstrom<15&time<gcd\n\nactions.priority=crash_lightning,if=active_enemies>=(8-(talent.forceful_winds.enabled*3))&variable.freezerburn_enabled&variable.furyCheck_CL\nactions.priority+=/the_unbound_force,if=buff.reckless_force.up||time<5\nactions.priority+=/lava_lash,if=azerite.primal_primer.rank>=2&debuff.primal_primer.stack=10&active_enemies=1&variable.freezerburn_enabled&variable.furyCheck_LL\nactions.priority+=/flametongue,if=variable.freezerburn_enabled&buff.flametongue.remains<gcd&active_enemies>1\nactions.priority+=/frostbrand,if=variable.freezerburn_enabled&buff.frostbrand.remains<gcd&active_enemies>1\nactions.priority+=/crash_lightning,if=!buff.crash_lightning.up&active_enemies>1&variable.furyCheck_CL\nactions.priority+=/fury_of_air,if=!buff.fury_of_air.up&maelstrom>=20&spell_targets.fury_of_air_damage>=(1+variable.freezerburn_enabled)\nactions.priority+=/fury_of_air,if=buff.fury_of_air.up&spell_targets.fury_of_air_damage<(1+variable.freezerburn_enabled)\nactions.priority+=/totem_mastery,if=buff.resonance_totem.remains<=2*gcd\nactions.priority+=/sundering,if=active_enemies>=3&(!essence.blood_of_the_enemy.major||(essence.blood_of_the_enemy.major&(buff.seething_rage.up||cooldown.blood_of_the_enemy.remains>40)))\nactions.priority+=/focused_azerite_beam,if=active_enemies>1\nactions.priority+=/purifying_blast,if=active_enemies>1\nactions.priority+=/ripple_in_space,if=active_enemies>1\nactions.priority+=/rockbiter,if=talent.landslide.enabled&!buff.landslide.up&charges_fractional>1.7\n# With Natural Harmony, elevate the priority of elemental attacks in order to maintain the buffs when they're about to expire.\nactions.priority+=/frostbrand,if=(azerite.natural_harmony.enabled&buff.natural_harmony_frost.remains<=2*gcd)&talent.hailstorm.enabled&variable.furyCheck_FB\nactions.priority+=/flametongue,if=(azerite.natural_harmony.enabled&buff.natural_harmony_fire.remains<=2*gcd)\nactions.priority+=/rockbiter,if=(azerite.natural_harmony.enabled&buff.natural_harmony_nature.remains<=2*gcd)&maelstrom<70",
["spec"] = 263,
},
["Elemental"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200802,
["spec"] = 262,
["desc"] = "# Elemental Shaman\n# https://github.com/simulationcraft/simc/\n# August 2, 2020\n\n# Changes:\n# - Use X_elemental.up rather than checking cooldowns to see if elementals are active.\n# - Disabled Earth Elemental entries.\n# - Remove Ascendance time/BL check.\n# - Add Eye of the Storm / Meteor.\n# - Integrate funneling into the APL (merges lists in current SimC).\n# - Add settings.stack_buffer value (see spec options).",
["profile"] = "# Elemental Shaman\n# https://github.com/simulationcraft/simc/\n# August 2, 2020\n\n# Changes:\n# - Use X_elemental.up rather than checking cooldowns to see if elementals are active.\n# - Disabled Earth Elemental entries.\n# - Remove Ascendance time/BL check.\n# - Add Eye of the Storm / Meteor.\n# - Integrate funneling into the APL (merges lists in current SimC).\n# - Add settings.stack_buffer value (see spec options).\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/totem_mastery\n# actions.precombat+=/earth_elemental,if=!talent.primal_elementalist.enabled\n\n# Use Stormkeeper precombat unless some adds will spawn soon.\nactions.precombat+=/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3||raid_event.adds.in>50)\n\nactions.precombat+=/fire_elemental,if=!talent.storm_elemental.enabled\nactions.precombat+=/storm_elemental,if=talent.storm_elemental.enabled\nactions.precombat+=/potion\nactions.precombat+=/elemental_blast,if=talent.elemental_blast.enabled\nactions.precombat+=/lava_burst,if=!talent.elemental_blast.enabled&spell_targets.chain_lightning<3\nactions.precombat+=/chain_lightning,if=spell_targets.chain_lightning>2\n\n# Executed every time the actor is available.\n# Cast Bloodlust manually if the Azerite Trait Ancestral Resonance is present.\n# actions=bloodlust,if=azerite.ancestral_resonance.enabled\n# In-combat potion is preferentially linked to your Elemental, unless combat will end shortly\nactions=potion,if=fight_remains<60||cooldown.guardian_of_azeroth.remains<30\n# Interrupt of casts.\nactions+=/wind_shear\nactions+=/flame_shock,if=!ticking&spell_targets.chain_lightning<4&(cooldown.storm_elemental.remains<cooldown.storm_elemental.duration-30||buff.wind_gust.stack<14)\nactions+=/totem_mastery,if=talent.totem_mastery.enabled&buff.resonance_totem.remains<2\nactions+=/use_items\nactions+=/fire_elemental,if=!talent.storm_elemental.enabled\nactions+=/storm_elemental,if=talent.storm_elemental.enabled&(!talent.icefury.enabled||!buff.icefury.up&!cooldown.icefury.up)&(!talent.ascendance.enabled||!cooldown.ascendance.up)\n# actions+=/earth_elemental,if=!talent.primal_elementalist.enabled||talent.primal_elementalist.enabled&(fire_elemental.down&!talent.storm_elemental.enabled||storm_elemental.down&talent.storm_elemental.enabled)\nactions+=/concentrated_flame\nactions+=/blood_of_the_enemy\nactions+=/guardian_of_azeroth\nactions+=/focused_azerite_beam\nactions+=/purifying_blast\nactions+=/the_unbound_force\nactions+=/memory_of_lucid_dreams\nactions+=/ripple_in_space\nactions+=/worldvein_resonance\nactions+=/blood_fury,if=!talent.ascendance.enabled||buff.ascendance.up||cooldown.ascendance.remains>50\nactions+=/berserking,if=!talent.ascendance.enabled||buff.ascendance.up\nactions+=/fireblood,if=!talent.ascendance.enabled||buff.ascendance.up||cooldown.ascendance.remains>50\nactions+=/ancestral_call,if=!talent.ascendance.enabled||buff.ascendance.up||cooldown.ascendance.remains>50\nactions+=/eye_of_the_storm,if=storm_elemental.up&buff.call_lightning.remains>=8\nactions+=/meteor\nactions+=/run_action_list,name=aoe,if=active_enemies>2&!funneling\nactions+=/run_action_list,name=single_target\n\n# Multi target action priority list\nactions.aoe=stormkeeper,if=talent.stormkeeper.enabled\n# Spread Flame Shock in <= 4 target fights, but not during SE uptime,unless you're fighting 3 targets and have less than 14 Wind Gust stacks.\nactions.aoe+=/flame_shock,cycle_targets=1,if=refreshable&(spell_targets.chain_lightning<(5-!talent.totem_mastery.enabled)||!talent.storm_elemental.enabled&(fire_elemental.remains>(14*spell_haste)||cooldown.fire_elemental.remains<(24-14*spell_haste)))&(!talent.storm_elemental.enabled||storm_elemental.down||spell_targets.chain_lightning=3&buff.wind_gust.stack<14)\nactions.aoe+=/ascendance,if=talent.ascendance.enabled&(talent.storm_elemental.enabled&storm_elemental.down&cooldown.storm_elemental.remains>15||!talent.storm_elemental.enabled)&(!talent.icefury.enabled||!buff.icefury.up&!cooldown.icefury.up)\nactions.aoe+=/liquid_magma_totem,if=talent.liquid_magma_totem.enabled\n\n# Try to game Earthquake with Master of the Elements buff when fighting 3 targets. Don't overcap Maelstrom!\nactions.aoe+=/earthquake,if=!talent.master_of_the_elements.enabled || buff.stormkeeper.up || maelstrom>=(100-4*spell_targets.chain_lightning) || buff.master_of_the_elements.up || spell_targets.chain_lightning>3\nactions.aoe+=/earthquake,if=(!talent.master_of_the_elements.enabled||buff.master_of_the_elements.up||buff.lava_surge.down||spell_targets.earthquake>=4)&(buff.stormkeeper.up||maelstrom>=(100-4*spell_targets.chain_lightning)||buff.master_of_the_elements.up||spell_targets.chain_lightning>3)\n# Make sure you don't lose a Stormkeeper.\nactions.aoe+=/chain_lightning,if=buff.stormkeeper.remains<3*gcd*buff.stormkeeper.stack\n\n# Only cast Lava Burst on three targets if it is an instant and Storm Elemental is NOT active.\nactions.aoe+=/lava_burst,if=buff.lava_surge.up&spell_targets.chain_lightning<4&(!talent.storm_elemental.enabled||storm_elemental.down)&dot.flame_shock.ticking\nactions.aoe+=/icefury,if=spell_targets.chain_lightning<4&!buff.ascendance.up\nactions.aoe+=/frost_shock,if=spell_targets.chain_lightning<4&buff.icefury.up&!buff.ascendance.up\n\n# Use Elemental Blast against up to 3 targets as long as Storm Elemental is not active.\nactions.aoe+=/elemental_blast,if=talent.elemental_blast.enabled&spell_targets.chain_lightning<4&(!talent.storm_elemental.enabled||storm_elemental.down)\nactions.aoe+=/lava_beam,if=talent.ascendance.enabled\nactions.aoe+=/chain_lightning\nactions.aoe+=/lava_burst,moving=1,if=talent.ascendance.enabled\nactions.aoe+=/flame_shock,moving=1,cycle_targets=1,if=refreshable\nactions.aoe+=/frost_shock,moving=1\n\n# Default Action Priority List\n# We don't need to support 'variable.funneling' -- addon has 'funneling' internally, based on spec settings.\n# actions.single_target=variable,name=funneling,value=active_enemies>1&(spell_targets.chain_lightning<2||spell_targets.lava_beam<2)\n# Ensure FS is active unless you have 14 or more stacks of Wind Gust from Storm Elemental. (Edge case: upcoming Asc but active SE; don't )\nactions.single_target=flame_shock,cycle_targets=1,if=(!ticking||talent.storm_elemental.enabled&cooldown.storm_elemental.remains<2*gcd||dot.flame_shock.remains<=gcd||talent.ascendance.enabled&dot.flame_shock.remains<(cooldown.ascendance.remains+buff.ascendance.duration)&cooldown.ascendance.remains<4&(!talent.storm_elemental.enabled||talent.storm_elemental.enabled&storm_elemental.down))&(buff.wind_gust.stack<14||azerite.igneous_potential.rank>=2||buff.lava_surge.up||!buff.bloodlust.up)&!buff.surge_of_power.up\n# Use Ascendance after you've spent all Lava Burst charges and only if neither Storm Elemental nor Icefury are currently active.\nactions.single_target+=/ascendance,if=talent.ascendance.enabled&cooldown.lava_burst.remains>0&(storm_elemental.down||!talent.storm_elemental.enabled)&(!talent.icefury.enabled||!buff.icefury.up&!cooldown.icefury.up)\n# Don't use Elemental Blast if you could cast a Master of the Elements empowered Earth Shock instead. Don't cast Elemental Blast during Storm Elemental unless you have 3x Natural Harmony. But in this case stop using Elemental Blast once you reach 14 stacks of Wind Gust.\nactions.single_target+=/elemental_blast,if=talent.elemental_blast.enabled&(talent.master_of_the_elements.enabled&buff.master_of_the_elements.up&maelstrom<60||!talent.master_of_the_elements.enabled)&(!(storm_elemental.up&talent.storm_elemental.enabled)||azerite.natural_harmony.rank=3&buff.wind_gust.stack<14)\n# Keep SK for large or soon add waves. Unless you have Surge of Power, in which case you want to double buff Lightning Bolt by pooling Maelstrom beforehand. Example sequence: 100MS, ES, SK, LB, LvB, ES, LB\nactions.single_target+=/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3||raid_event.adds.in>50)&(!talent.surge_of_power.enabled||buff.surge_of_power.up||maelstrom>=44)\nactions.single_target+=/liquid_magma_totem,if=talent.liquid_magma_totem.enabled&(raid_event.adds.count<3||raid_event.adds.in>50)\n# Combine Stormkeeper with Master of the Elements or Surge of Power unless you have the Lava Shock trait and multiple stacks, unless funneling.\nactions.single_target+=/lightning_bolt,if=!funneling&buff.stormkeeper.up&spell_targets.chain_lightning<2&(azerite.lava_shock.rank*buff.lava_shock.stack)<26&(buff.master_of_the_elements.up&!talent.surge_of_power.enabled||buff.surge_of_power.up)\n# Same, but when funneling, cast LB unless there are 6+ targets.\nactions.single_target+=/chain_lightning,if=funneling&buff.stormkeeper.up&(azerite.lava_shock.rank*buff.lava_shock.stack)<36&(buff.master_of_the_elements.up&!talent.surge_of_power.enabled||buff.surge_of_power.up)\n# If not funneling, use Earthquake versus 2 targets, unless you have Lava Shock. Use Earthquake versus 1 target if you have Tectonic Thunder 3 times and NO Surge of Power enabled and NO Lava Shock.\nactions.single_target+=/earthquake,if=!funneling&((spell_targets.chain_lightning>1||azerite.tectonic_thunder.rank>=3&!talent.surge_of_power.enabled&azerite.lava_shock.rank<1)&azerite.lava_shock.rank*buff.lava_shock.stack<(36+3*azerite.tectonic_thunder.rank*spell_targets.chain_lightning)&(!talent.surge_of_power.enabled||!dot.flame_shock.refreshable||storm_elemental.up)&(!talent.master_of_the_elements.enabled||buff.master_of_the_elements.up||cooldown.lava_burst.remains>0&maelstrom>=92+30*talent.call_the_thunder.enabled))\n# Cast Earth Shock with Master of the Elements talent but no active Surge of Power buff, and active Stormkeeper buff and Lava Burst coming off CD within the next GCD, and either active Master of the Elements buff, or no available Lava Burst while near MS cap, or single target and multiple Lava Shock traits and many stacks.\nactions.single_target+=/earth_shock,if=!funneling&!buff.surge_of_power.up&talent.master_of_the_elements.enabled&(buff.master_of_the_elements.up||cooldown.lava_burst.remains>0&maelstrom>=92+30*talent.call_the_thunder.enabled||spell_targets.chain_lightning<2&(azerite.lava_shock.rank*buff.lava_shock.stack<26)&buff.stormkeeper.up&cooldown.lava_burst.remains<=gcd)\n# Same as previous, but without (re)checking CL targets while funneling.\nactions.single_target+=/earth_shock,if=funneling&!buff.surge_of_power.up&talent.master_of_the_elements.enabled&(buff.master_of_the_elements.up||cooldown.lava_burst.remains>0&maelstrom>=92+30*talent.call_the_thunder.enabled||(azerite.lava_shock.rank*buff.lava_shock.stack<36)&buff.stormkeeper.up&cooldown.lava_burst.remains<=gcd)\n# Current Elemental APL won't use Lasso while funneling, so I'm respecting that here.\nactions.single_target+=/lightning_lasso\n# You know what? I had some short explanation here once. But then the condition grew, and I had to split the one Earth Shock line into four...so you have to deal with this abomination now: Cast Earth Shock without Master of the Elements talent, and without having triple Igneous Potential and active Ascendance, and active Stormkeeper buff or near MS cap, or Storm Elemental is inactive, and we can't expect to get an additional use of Storm Elemental in the remaining fight from Surge of Power.\nactions.single_target+=/earth_shock,if=!talent.master_of_the_elements.enabled&!(azerite.igneous_potential.rank>2&buff.ascendance.up)&(buff.stormkeeper.up||maelstrom>=90+30*talent.call_the_thunder.enabled||!(storm_elemental.up&talent.storm_elemental.enabled)&expected_combat_length-time-cooldown.storm_elemental.remains-150*floor((expected_combat_length-time-cooldown.storm_elemental.remains)%150)>=30*(1+(azerite.echo_of_the_elementals.rank>=2)))\n# Use Earth Shock if Surge of Power is talented, but neither it nor a DPS Elemental is active at the moment, and Lava Burst is ready or will be ready within the next GCD.\nactions.single_target+=/earth_shock,if=talent.surge_of_power.enabled&!buff.surge_of_power.up&cooldown.lava_burst.remains<=gcd&(!talent.storm_elemental.enabled&!(fire_elemental.up)||talent.storm_elemental.enabled&!(storm_elemental.up))\nactions.single_target+=/lightning_lasso,if=dot.flame_shock.ticking||cooldown.flame_shock.remains\n# If not funneling, spam Lightning Bolts during Storm Elemental duration, if you don't have Igneous Potential or have it only once, and don't use Lightning Bolt during Bloodlust if you have a Lava Surge Proc.\nactions.single_target+=/lightning_bolt,if=!funneling&storm_elemental.up&talent.storm_elemental.enabled&(azerite.igneous_potential.rank<2||!buff.lava_surge.up&buff.bloodlust.up)\n# If not funneling, cast Lightning Bolt regardless of the previous condition if you'd lose a Stormkeeper stack or have Stormkeeper and Master of the Elements active.\nactions.single_target+=/lightning_bolt,if=!funneling&(buff.stormkeeper.remains<settings.stack_buffer*gcd*buff.stormkeeper.stack||buff.stormkeeper.up&buff.master_of_the_elements.up)\n# If funneling, spam Chain Lightning during Storm Elemental duration, if you don't have Igneous Potential or have it only once, and don't use Lightning Bolt during Bloodlust if you have a Lava Surge Proc.\nactions.single_target+=/chain_lightning,if=funneling&storm_elemental.up&talent.storm_elemental.enabled&(azerite.igneous_potential.rank<2||!buff.lava_surge.up&buff.bloodlust.up)\n# Cast Chain Lightning regardless of the previous condition if you'd lose a Stormkeeper stack or have Stormkeeper and Master of the Elements active.\nactions.single_target+=/chain_lightning,if=funneling&(buff.stormkeeper.remains<settings.stack_buffer*gcd*buff.stormkeeper.stack||buff.stormkeeper.up&buff.master_of_the_elements.up)\n# Use Frost Shock with Icefury and Master of the Elements.\nactions.single_target+=/frost_shock,if=talent.icefury.enabled&talent.master_of_the_elements.enabled&buff.icefury.up&buff.master_of_the_elements.up\nactions.single_target+=/lava_burst,if=buff.ascendance.up\n# Utilize Surge of Power to spread Flame Shock if multiple enemies are present.\nactions.single_target+=/flame_shock,cycle_targets=1,if=refreshable&active_enemies>1&buff.surge_of_power.up\n# Use Lava Burst with Surge of Power if the last potential usage of Storm Elemental hasn't a full duration OR if you could get another usage of the DPS Elemental if the remaining fight was 16% longer.\nactions.single_target+=/lava_burst,if=talent.storm_elemental.enabled&cooldown_react&buff.surge_of_power.up&(expected_combat_length-time-cooldown.storm_elemental.remains-150*floor((expected_combat_length-time-cooldown.storm_elemental.remains)%150)<30*(1+(azerite.echo_of_the_elementals.rank>=2))||(1.16*(expected_combat_length-time)-cooldown.storm_elemental.remains-150*floor((1.16*(expected_combat_length-time)-cooldown.storm_elemental.remains)%150))<(expected_combat_length-time-cooldown.storm_elemental.remains-150*floor((expected_combat_length-time-cooldown.storm_elemental.remains)%150)))\n# Use Lava Burst with Surge of Power if the last potential usage of Fire Elemental hasn't a full duration OR if you could get another usage of the DPS Elemental if the remaining fight was 16% longer.\nactions.single_target+=/lava_burst,if=!talent.storm_elemental.enabled&cooldown_react&buff.surge_of_power.up&(expected_combat_length-time-cooldown.fire_elemental.remains-150*floor((expected_combat_length-time-cooldown.fire_elemental.remains)%150)<30*(1+(azerite.echo_of_the_elementals.rank>=2))||(1.16*(expected_combat_length-time)-cooldown.fire_elemental.remains-150*floor((1.16*(expected_combat_length-time)-cooldown.fire_elemental.remains)%150))<(expected_combat_length-time-cooldown.fire_elemental.remains-150*floor((expected_combat_length-time-cooldown.fire_elemental.remains)%150)))\nactions.single_target+=/lightning_bolt,if=buff.surge_of_power.up\nactions.single_target+=/lava_burst,if=cooldown_react&!talent.master_of_the_elements.enabled\n# Slightly game Icefury buff to hopefully buff some empowered Frost Shocks with Master of the Elements.\nactions.single_target+=/icefury,if=talent.icefury.enabled&!(maelstrom>75&cooldown.lava_burst.remains<=0)&(!talent.storm_elemental.enabled||storm_elemental.down)\nactions.single_target+=/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled\n# Slightly delay using Icefury empowered Frost Shocks to empower them with Master of the Elements too.\nactions.single_target+=/frost_shock,if=talent.icefury.enabled&buff.icefury.up&buff.icefury.remains<settings.stack_buffer*gcd*buff.icefury.stack\nactions.single_target+=/lava_burst,if=cooldown_react\n# Don't accidentally use Surge of Power with Flame Shock during single target.\nactions.single_target+=/flame_shock,cycle_targets=1,if=refreshable&!buff.surge_of_power.up\nactions.single_target+=/totem_mastery,if=talent.totem_mastery.enabled&(buff.resonance_totem.remains<6||(buff.resonance_totem.remains<(buff.ascendance.duration+cooldown.ascendance.remains)&cooldown.ascendance.remains<15))\nactions.single_target+=/frost_shock,if=talent.icefury.enabled&buff.icefury.up&(buff.icefury.remains<gcd*4*buff.icefury.stack||buff.stormkeeper.up||!talent.master_of_the_elements.enabled)\n# The default SimC APL would not cast CL while funneling, but we need it for target detection and MS.\nactions.single_target+=/chain_lightning,if=buff.tectonic_thunder.up&!buff.stormkeeper.up&spell_targets.chain_lightning>1\nactions.single_target+=/lightning_bolt\nactions.single_target+=/flame_shock,moving=1,cycle_targets=1,if=refreshable\nactions.single_target+=/flame_shock,moving=1,if=movement.distance>6\n# Frost Shock is our movement filler.\nactions.single_target+=/frost_shock,moving=1",
["version"] = 20200802,
["warnings"] = "Imported 4 action lists.\n",
["lists"] = {
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "talent.stormkeeper.enabled",
["action"] = "stormkeeper",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "refreshable & ( spell_targets.chain_lightning < ( 5 - ! talent.totem_mastery.enabled ) || ! talent.storm_elemental.enabled & ( fire_elemental.remains > ( 14 * spell_haste ) || cooldown.fire_elemental.remains < ( 24 - 14 * spell_haste ) ) ) & ( ! talent.storm_elemental.enabled || storm_elemental.down || spell_targets.chain_lightning = 3 & buff.wind_gust.stack < 14 )",
["action"] = "flame_shock",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.ascendance.enabled & ( talent.storm_elemental.enabled & storm_elemental.down & cooldown.storm_elemental.remains > 15 || ! talent.storm_elemental.enabled ) & ( ! talent.icefury.enabled || ! buff.icefury.up & ! cooldown.icefury.up )",
["action"] = "ascendance",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.liquid_magma_totem.enabled",
["action"] = "liquid_magma_totem",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.master_of_the_elements.enabled || buff.stormkeeper.up || maelstrom >= ( 100 - 4 * spell_targets.chain_lightning ) || buff.master_of_the_elements.up || spell_targets.chain_lightning > 3",
["action"] = "earthquake",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( ! talent.master_of_the_elements.enabled || buff.master_of_the_elements.up || buff.lava_surge.down || spell_targets.earthquake >= 4 ) & ( buff.stormkeeper.up || maelstrom >= ( 100 - 4 * spell_targets.chain_lightning ) || buff.master_of_the_elements.up || spell_targets.chain_lightning > 3 )",
["action"] = "earthquake",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.stormkeeper.remains < 3 * gcd * buff.stormkeeper.stack",
["action"] = "chain_lightning",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.lava_surge.up & spell_targets.chain_lightning < 4 & ( ! talent.storm_elemental.enabled || storm_elemental.down ) & dot.flame_shock.ticking",
["action"] = "lava_burst",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets.chain_lightning < 4 & ! buff.ascendance.up",
["action"] = "icefury",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "spell_targets.chain_lightning < 4 & buff.icefury.up & ! buff.ascendance.up",
["action"] = "frost_shock",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.elemental_blast.enabled & spell_targets.chain_lightning < 4 & ( ! talent.storm_elemental.enabled || storm_elemental.down )",
["action"] = "elemental_blast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.ascendance.enabled",
["action"] = "lava_beam",
}, -- [12]
{
["action"] = "chain_lightning",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["enable_moving"] = true,
["action"] = "lava_burst",
["moving"] = 1,
["criteria"] = "talent.ascendance.enabled",
}, -- [14]
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "flame_shock",
["cycle_targets"] = 1,
["enabled"] = true,
["criteria"] = "refreshable",
}, -- [15]
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "frost_shock",
["enabled"] = true,
}, -- [16]
},
["single_target"] = {
{
["enabled"] = true,
["criteria"] = "( ! ticking || talent.storm_elemental.enabled & cooldown.storm_elemental.remains < 2 * gcd || dot.flame_shock.remains <= gcd || talent.ascendance.enabled & dot.flame_shock.remains < ( cooldown.ascendance.remains + buff.ascendance.duration ) & cooldown.ascendance.remains < 4 & ( ! talent.storm_elemental.enabled || talent.storm_elemental.enabled & storm_elemental.down ) ) & ( buff.wind_gust.stack < 14 || azerite.igneous_potential.rank >= 2 || buff.lava_surge.up || ! buff.bloodlust.up ) & ! buff.surge_of_power.up",
["action"] = "flame_shock",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.ascendance.enabled & cooldown.lava_burst.remains > 0 & ( storm_elemental.down || ! talent.storm_elemental.enabled ) & ( ! talent.icefury.enabled || ! buff.icefury.up & ! cooldown.icefury.up )",
["action"] = "ascendance",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.elemental_blast.enabled & ( talent.master_of_the_elements.enabled & buff.master_of_the_elements.up & maelstrom < 60 || ! talent.master_of_the_elements.enabled ) & ( ! ( storm_elemental.up & talent.storm_elemental.enabled ) || azerite.natural_harmony.rank = 3 & buff.wind_gust.stack < 14 )",
["action"] = "elemental_blast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.stormkeeper.enabled & ( raid_event.adds.count < 3 || raid_event.adds.in > 50 ) & ( ! talent.surge_of_power.enabled || buff.surge_of_power.up || maelstrom >= 44 )",
["action"] = "stormkeeper",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.liquid_magma_totem.enabled & ( raid_event.adds.count < 3 || raid_event.adds.in > 50 )",
["action"] = "liquid_magma_totem",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! funneling & buff.stormkeeper.up & spell_targets.chain_lightning < 2 & ( azerite.lava_shock.rank * buff.lava_shock.stack ) < 26 & ( buff.master_of_the_elements.up & ! talent.surge_of_power.enabled || buff.surge_of_power.up )",
["action"] = "lightning_bolt",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "funneling & buff.stormkeeper.up & ( azerite.lava_shock.rank * buff.lava_shock.stack ) < 36 & ( buff.master_of_the_elements.up & ! talent.surge_of_power.enabled || buff.surge_of_power.up )",
["action"] = "chain_lightning",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! funneling & ( ( spell_targets.chain_lightning > 1 || azerite.tectonic_thunder.rank >= 3 & ! talent.surge_of_power.enabled & azerite.lava_shock.rank < 1 ) & azerite.lava_shock.rank * buff.lava_shock.stack < ( 36 + 3 * azerite.tectonic_thunder.rank * spell_targets.chain_lightning ) & ( ! talent.surge_of_power.enabled || ! dot.flame_shock.refreshable || storm_elemental.up ) & ( ! talent.master_of_the_elements.enabled || buff.master_of_the_elements.up || cooldown.lava_burst.remains > 0 & maelstrom >= 92 + 30 * talent.call_the_thunder.enabled ) )",
["action"] = "earthquake",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! funneling & ! buff.surge_of_power.up & talent.master_of_the_elements.enabled & ( buff.master_of_the_elements.up || cooldown.lava_burst.remains > 0 & maelstrom >= 92 + 30 * talent.call_the_thunder.enabled || spell_targets.chain_lightning < 2 & ( azerite.lava_shock.rank * buff.lava_shock.stack < 26 ) & buff.stormkeeper.up & cooldown.lava_burst.remains <= gcd )",
["action"] = "earth_shock",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "funneling & ! buff.surge_of_power.up & talent.master_of_the_elements.enabled & ( buff.master_of_the_elements.up || cooldown.lava_burst.remains > 0 & maelstrom >= 92 + 30 * talent.call_the_thunder.enabled || ( azerite.lava_shock.rank * buff.lava_shock.stack < 36 ) & buff.stormkeeper.up & cooldown.lava_burst.remains <= gcd )",
["action"] = "earth_shock",
}, -- [10]
{
["action"] = "lightning_lasso",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! talent.master_of_the_elements.enabled & ! ( azerite.igneous_potential.rank > 2 & buff.ascendance.up ) & ( buff.stormkeeper.up || maelstrom >= 90 + 30 * talent.call_the_thunder.enabled || ! ( storm_elemental.up & talent.storm_elemental.enabled ) & expected_combat_length - time - cooldown.storm_elemental.remains - 150 * floor ( ( expected_combat_length - time - cooldown.storm_elemental.remains ) % 150 ) >= 30 * ( 1 + ( azerite.echo_of_the_elementals.rank >= 2 ) ) )",
["action"] = "earth_shock",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.surge_of_power.enabled & ! buff.surge_of_power.up & cooldown.lava_burst.remains <= gcd & ( ! talent.storm_elemental.enabled & ! ( fire_elemental.up ) || talent.storm_elemental.enabled & ! ( storm_elemental.up ) )",
["action"] = "earth_shock",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "dot.flame_shock.ticking || cooldown.flame_shock.remains",
["action"] = "lightning_lasso",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! funneling & storm_elemental.up & talent.storm_elemental.enabled & ( azerite.igneous_potential.rank < 2 || ! buff.lava_surge.up & buff.bloodlust.up )",
["action"] = "lightning_bolt",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! funneling & ( buff.stormkeeper.remains < settings.stack_buffer * gcd * buff.stormkeeper.stack || buff.stormkeeper.up & buff.master_of_the_elements.up )",
["action"] = "lightning_bolt",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "funneling & storm_elemental.up & talent.storm_elemental.enabled & ( azerite.igneous_potential.rank < 2 || ! buff.lava_surge.up & buff.bloodlust.up )",
["action"] = "chain_lightning",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "funneling & ( buff.stormkeeper.remains < settings.stack_buffer * gcd * buff.stormkeeper.stack || buff.stormkeeper.up & buff.master_of_the_elements.up )",
["action"] = "chain_lightning",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "talent.icefury.enabled & talent.master_of_the_elements.enabled & buff.icefury.up & buff.master_of_the_elements.up",
["action"] = "frost_shock",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.ascendance.up",
["action"] = "lava_burst",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "refreshable & active_enemies > 1 & buff.surge_of_power.up",
["action"] = "flame_shock",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "talent.storm_elemental.enabled & cooldown_react & buff.surge_of_power.up & ( expected_combat_length - time - cooldown.storm_elemental.remains - 150 * floor ( ( expected_combat_length - time - cooldown.storm_elemental.remains ) % 150 ) < 30 * ( 1 + ( azerite.echo_of_the_elementals.rank >= 2 ) ) || ( 1.16 * ( expected_combat_length - time ) - cooldown.storm_elemental.remains - 150 * floor ( ( 1.16 * ( expected_combat_length - time ) - cooldown.storm_elemental.remains ) % 150 ) ) < ( expected_combat_length - time - cooldown.storm_elemental.remains - 150 * floor ( ( expected_combat_length - time - cooldown.storm_elemental.remains ) % 150 ) ) )",
["action"] = "lava_burst",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "! talent.storm_elemental.enabled & cooldown_react & buff.surge_of_power.up & ( expected_combat_length - time - cooldown.fire_elemental.remains - 150 * floor ( ( expected_combat_length - time - cooldown.fire_elemental.remains ) % 150 ) < 30 * ( 1 + ( azerite.echo_of_the_elementals.rank >= 2 ) ) || ( 1.16 * ( expected_combat_length - time ) - cooldown.fire_elemental.remains - 150 * floor ( ( 1.16 * ( expected_combat_length - time ) - cooldown.fire_elemental.remains ) % 150 ) ) < ( expected_combat_length - time - cooldown.fire_elemental.remains - 150 * floor ( ( expected_combat_length - time - cooldown.fire_elemental.remains ) % 150 ) ) )",
["action"] = "lava_burst",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "buff.surge_of_power.up",
["action"] = "lightning_bolt",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "cooldown_react & ! talent.master_of_the_elements.enabled",
["action"] = "lava_burst",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "talent.icefury.enabled & ! ( maelstrom > 75 & cooldown.lava_burst.remains <= 0 ) & ( ! talent.storm_elemental.enabled || storm_elemental.down )",
["action"] = "icefury",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "cooldown_react & charges > talent.echo_of_the_elements.enabled",
["action"] = "lava_burst",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "talent.icefury.enabled & buff.icefury.up & buff.icefury.remains < settings.stack_buffer * gcd * buff.icefury.stack",
["action"] = "frost_shock",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "cooldown_react",
["action"] = "lava_burst",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "refreshable & ! buff.surge_of_power.up",
["action"] = "flame_shock",
["cycle_targets"] = 1,
}, -- [30]
{
["enabled"] = true,
["criteria"] = "talent.totem_mastery.enabled & ( buff.resonance_totem.remains < 6 || ( buff.resonance_totem.remains < ( buff.ascendance.duration + cooldown.ascendance.remains ) & cooldown.ascendance.remains < 15 ) )",
["action"] = "totem_mastery",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "talent.icefury.enabled & buff.icefury.up & ( buff.icefury.remains < gcd * 4 * buff.icefury.stack || buff.stormkeeper.up || ! talent.master_of_the_elements.enabled )",
["action"] = "frost_shock",
}, -- [32]
{
["enabled"] = true,
["criteria"] = "buff.tectonic_thunder.up & ! buff.stormkeeper.up & spell_targets.chain_lightning > 1",
["action"] = "chain_lightning",
}, -- [33]
{
["action"] = "lightning_bolt",
["enabled"] = true,
}, -- [34]
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "flame_shock",
["cycle_targets"] = 1,
["enabled"] = true,
["criteria"] = "refreshable",
}, -- [35]
{
["enabled"] = true,
["enable_moving"] = true,
["action"] = "flame_shock",
["moving"] = 1,
["criteria"] = "movement.distance > 6",
}, -- [36]
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "frost_shock",
["enabled"] = true,
}, -- [37]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "fight_remains < 60 || cooldown.guardian_of_azeroth.remains < 30",
["action"] = "potion",
}, -- [1]
{
["action"] = "wind_shear",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! ticking & spell_targets.chain_lightning < 4 & ( cooldown.storm_elemental.remains < cooldown.storm_elemental.duration - 30 || buff.wind_gust.stack < 14 )",
["action"] = "flame_shock",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.totem_mastery.enabled & buff.resonance_totem.remains < 2",
["action"] = "totem_mastery",
}, -- [4]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! talent.storm_elemental.enabled",
["action"] = "fire_elemental",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.storm_elemental.enabled & ( ! talent.icefury.enabled || ! buff.icefury.up & ! cooldown.icefury.up ) & ( ! talent.ascendance.enabled || ! cooldown.ascendance.up )",
["action"] = "storm_elemental",
}, -- [7]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [8]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [9]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [10]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [11]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [12]
{
["action"] = "the_unbound_force",
["enabled"] = true,
}, -- [13]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [14]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [15]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up || cooldown.ascendance.remains > 50",
["action"] = "blood_fury",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up",
["action"] = "berserking",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up || cooldown.ascendance.remains > 50",
["action"] = "fireblood",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up || cooldown.ascendance.remains > 50",
["action"] = "ancestral_call",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "storm_elemental.up & buff.call_lightning.remains >= 8",
["action"] = "eye_of_the_storm",
}, -- [21]
{
["action"] = "meteor",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "active_enemies > 2 & ! funneling",
["list_name"] = "aoe",
}, -- [23]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "single_target",
}, -- [24]
},
["precombat"] = {
{
["action"] = "totem_mastery",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.stormkeeper.enabled & ( raid_event.adds.count < 3 || raid_event.adds.in > 50 )",
["action"] = "stormkeeper",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.storm_elemental.enabled",
["action"] = "fire_elemental",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.storm_elemental.enabled",
["action"] = "storm_elemental",
}, -- [4]
{
["action"] = "potion",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.elemental_blast.enabled",
["action"] = "elemental_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.elemental_blast.enabled & spell_targets.chain_lightning < 3",
["action"] = "lava_burst",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "spell_targets.chain_lightning > 2",
["action"] = "chain_lightning",
}, -- [8]
},
},
["author"] = "SimulationCraft",
},
},
},
["Quillzana - Thunderhorn"] = {
["runOnce"] = {
["resetRogueMfDOption_20200226"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetPotionsToDefaults_20190717"] = true,
["enabledArcaneMageOnce_20190309"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[64] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["rotation"] = "standard",
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Frost Mage",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_focused_resolve",
["potionsReset"] = 20180919.1,
["nameplates"] = false,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
[63] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["pyroblast_pull"] = false,
["prevent_hardcasts"] = false,
["reserve_runes"] = 1,
["no_scorch_blast"] = true,
},
["aoe"] = 3,
["gcdSync"] = false,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Fire",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_unbridled_fury",
["potionsReset"] = 20180919.1,
["nameplates"] = false,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
[62] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Arcane",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "potion_of_focused_resolve",
["potionsReset"] = 20180919.1,
["nameplates"] = true,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Frost Mage"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200305,
["author"] = "SimC",
["desc"] = "# Frost Mage\n# https://github.com/simulationcraft/simc/\n# March 5, 2020\n\n# Changes:\n# - Use 'time_to_die' instead of 'target.time_to_die' for last second CD usage.\n# - Redo priority forks for rotation.standard/frozen_orb/no_ice_lance.",
["lists"] = {
["single_no_lance"] = {
{
["enabled"] = true,
["criteria"] = "talent.ebonbolt.enabled & prev_gcd.1.ebonbolt & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.glacial_spike & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [3]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || active_enemies > 1 & ! talent.splitting_ice.enabled",
["action"] = "blizzard",
}, -- [5]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.icicles.stack = 5 & ! buff.brain_freeze.react",
["action"] = "ebonbolt",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react & ( buff.fingers_of_frost.react || prev_gcd.1.flurry ) & ( buff.icicles.max_stack - buff.icicles.stack ) * action.frostbolt.execute_time + action.glacial_spike.cast_time + action.glacial_spike.travel_time < incanters_flow_time_to.5.any & buff.memory_of_lucid_dreams.down",
["action"] = "ice_lance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react || prev_gcd.1.ebonbolt || talent.incanters_flow.enabled & cast_time + travel_time > incanters_flow_time_to.5.up & cast_time + travel_time < incanters_flow_time_to.4.down",
["action"] = "glacial_spike",
}, -- [9]
},
["essences"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = "1",
["criteria"] = "rotation.frozen_orb",
["list_name"] = "essences_orb",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = "1",
["criteria"] = "! rotation.frozen_orb",
["list_name"] = "essences_default",
}, -- [2]
},
["single"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.ice_nova.ready & debuff.winters_chill.up",
["action"] = "ice_nova",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = "1",
["criteria"] = "rotation.standard",
["list_name"] = "single_standard",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = "1",
["criteria"] = "rotation.no_ice_lance",
["list_name"] = "single_no_lance",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = "1",
["criteria"] = "rotation.frozen_orb",
["list_name"] = "single_orb",
}, -- [4]
{
["action"] = "ice_nova",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["name"] = "tidestorm_codex",
["action"] = "tidestorm_codex",
}, -- [6]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [9]
{
["action"] = "ice_lance",
["enabled"] = true,
}, -- [10]
},
["talent_rop"] = {
{
["enabled"] = true,
["criteria"] = "talent.glacial_spike.enabled & buff.icicles.stack = 5 & ( buff.brain_freeze.react || talent.ebonbolt.enabled & cooldown.ebonbolt.remains < cast_time )",
["action"] = "rune_of_power",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! talent.glacial_spike.enabled & ( talent.ebonbolt.enabled & cooldown.ebonbolt.remains < cast_time || talent.comet_storm.enabled & cooldown.comet_storm.remains < cast_time || talent.ray_of_frost.enabled & cooldown.ray_of_frost.remains < cast_time || charges_fractional > 1.9 )",
["action"] = "rune_of_power",
}, -- [2]
},
["single_orb"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [1]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.ebonbolt & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || active_enemies > 1 & cast_time = 0",
["action"] = "blizzard",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react & cooldown.frozen_orb.remains > 5 || buff.fingers_of_frost.react = 2",
["action"] = "ice_lance",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cast_time = 0",
["action"] = "blizzard",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.ebonbolt",
["action"] = "flurry",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react & ( prev_gcd.1.frostbolt || debuff.packed_ice.remains > execute_time + action.ice_lance.travel_time )",
["action"] = "flurry",
}, -- [8]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [9]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["action"] = "ray_of_frost",
["interrupt_if"] = "buff.fingers_of_frost.react=2",
["interrupt_immediate"] = "1",
["criteria"] = "debuff.packed_ice.up",
}, -- [11]
{
["action"] = "blizzard",
["enabled"] = true,
}, -- [12]
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! rotation.no_ice_lance & prev_gcd.1.flurry & ! buff.fingers_of_frost.react",
["action"] = "ice_lance",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > 3 & talent.freezing_rain.enabled || active_enemies > 4",
["action"] = "call_action_list",
["list_name"] = "aoe",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "single",
}, -- [5]
},
["cooldowns"] = {
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [1]
{
["action"] = "icy_veins",
["enabled"] = true,
}, -- [2]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.frozen_orb || time_to_die > 10 + cast_time & time_to_die < 20",
["action"] = "rune_of_power",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.rune_of_power.enabled & active_enemies = 1 & cooldown.rune_of_power.full_recharge_time < cooldown.frozen_orb.remains",
["action"] = "call_action_list",
["list_name"] = "talent_rop",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.icy_veins || time_to_die < 30",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.glacial_spike.enabled || buff.brain_freeze.react & prev_gcd.1.glacial_spike",
["name"] = "balefire_branch",
["action"] = "balefire_branch",
}, -- [7]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [8]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [9]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [10]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [11]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [12]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
},
["movement"] = {
{
["enabled"] = true,
["criteria"] = "movement.distance > 10",
["action"] = "blink_any",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.ice_floes.down",
["action"] = "ice_floes",
}, -- [2]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["action"] = "water_elemental",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [4]
{
["action"] = "potion",
["enabled"] = true,
}, -- [5]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [6]
},
["aoe"] = {
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [1]
{
["action"] = "blizzard",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [3]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [4]
{
["action"] = "ice_nova",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.ebonbolt || buff.brain_freeze.react & ( prev_gcd.1.frostbolt & ( buff.icicles.stack < 4 || ! talent.glacial_spike.enabled ) || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react",
["action"] = "ice_lance",
}, -- [7]
{
["action"] = "ray_of_frost",
["enabled"] = true,
}, -- [8]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [9]
{
["action"] = "glacial_spike",
["enabled"] = true,
}, -- [10]
{
["action"] = "cone_of_cold",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["name"] = "tidestorm_codex",
["action"] = "tidestorm_codex",
}, -- [12]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["effect_name"] = "cyclotronic_blast",
}, -- [13]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [15]
{
["action"] = "ice_lance",
["enabled"] = true,
}, -- [16]
},
["essences_default"] = {
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "focused_azerite_beam",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies < 5 & ( buff.icicles.stack <= 1 || ! talent.glacial_spike.enabled ) & cooldown.frozen_orb.remains > 10 & ( ! rotation.standard || ! action.frozen_orb.in_flight & ground_aoe.frozen_orb.remains = 0 )",
["action"] = "memory_of_lucid_dreams",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( talent.glacial_spike.enabled & buff.icicles.stack = 5 & ( buff.brain_freeze.react || prev_gcd.1.ebonbolt ) ) || ( ( active_enemies > 3 || ! talent.glacial_spike.enabled ) & ( prev_gcd.1.frozen_orb || ground_aoe.frozen_orb.remains > 5 ) )",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "purifying_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "ripple_in_space",
}, -- [5]
{
["enabled"] = true,
["action"] = "concentrated_flame",
["criteria"] = "buff.rune_of_power.down",
["line_cd"] = "6",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down",
["action"] = "reaping_flames",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "worldvein_resonance",
}, -- [9]
},
["essences_orb"] = {
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down || active_enemies > 3",
["action"] = "focused_azerite_beam",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies < 5 & debuff.packed_ice.down & cooldown.frozen_orb.remains > 5 & ! action.frozen_orb.in_flight & ground_aoe.frozen_orb.remains = 0",
["action"] = "memory_of_lucid_dreams",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.frozen_orb || ground_aoe.frozen_orb.remains > 5",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down || active_enemies > 3",
["action"] = "purifying_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down || active_enemies > 3",
["action"] = "ripple_in_space",
}, -- [5]
{
["enabled"] = true,
["action"] = "concentrated_flame",
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down",
["line_cd"] = "6",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down",
["action"] = "reaping_flames",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down & cooldown.frozen_orb.remains < 4 || active_enemies > 3",
["action"] = "worldvein_resonance",
}, -- [9]
},
["single_standard"] = {
{
["enabled"] = true,
["criteria"] = "talent.ebonbolt.enabled & prev_gcd.1.ebonbolt & ( ! talent.glacial_spike.enabled || buff.icicles.stack < 4 || buff.brain_freeze.react )",
["action"] = "flurry",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.glacial_spike.enabled & prev_gcd.1.glacial_spike & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.frostbolt & buff.brain_freeze.react & ( ! talent.glacial_spike.enabled || buff.icicles.stack < 4 )",
["action"] = "flurry",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [4]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || active_enemies > 1 & cast_time = 0 & buff.fingers_of_frost.react < 2",
["action"] = "blizzard",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react",
["action"] = "ice_lance",
}, -- [7]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [8]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! action.frozen_orb.in_flight & ground_aoe.frozen_orb.remains = 0",
["action"] = "ray_of_frost",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cast_time = 0 || active_enemies > 1",
["action"] = "blizzard",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react || prev_gcd.1.ebonbolt || active_enemies > 1 & talent.splitting_ice.enabled",
["action"] = "glacial_spike",
}, -- [12]
},
},
["version"] = 20200305,
["warnings"] = "WARNING: The import for 'movement' required some automated changes.\nLine 1: Unsupported action 'blink_any'.\n\nImported 13 action lists.\n",
["spec"] = 64,
["profile"] = "# Frost Mage\n# https://github.com/simulationcraft/simc/\n# March 5, 2020\n\n# Changes:\n# - Use 'time_to_die' instead of 'target.time_to_die' for last second CD usage.\n# - Redo priority forks for rotation.standard/frozen_orb/no_ice_lance.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/arcane_intellect\nactions.precombat+=/summon_water_elemental\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mirror_image\nactions.precombat+=/potion\nactions.precombat+=/frostbolt\n\n# Executed every time the actor is available.\nactions=counterspell\n# If the mage has FoF after casting instant Flurry, we can delay the Ice Lance and use other high priority action, if available.\nactions+=/ice_lance,if=!rotation.no_ice_lance&prev_gcd.1.flurry&!buff.fingers_of_frost.react\nactions+=/call_action_list,name=cooldowns\n# The target threshold isn't exact. Between 3-5 targets, the differences between the ST and AoE action lists are rather small. However, Freezing Rain prefers using AoE action list sooner as it benefits greatly from the high priority Blizzard action.\nactions+=/call_action_list,name=aoe,if=active_enemies>3&talent.freezing_rain.enabled||active_enemies>4\nactions+=/call_action_list,name=single\n\n# With Freezing Rain, it's better to prioritize using Frozen Orb when both FO and Blizzard are off cooldown. Without Freezing Rain, the converse is true although the difference is miniscule until very high target counts.\nactions.aoe=frozen_orb\nactions.aoe+=/blizzard\nactions.aoe+=/call_action_list,name=essences\nactions.aoe+=/comet_storm\nactions.aoe+=/ice_nova\n# Simplified Flurry conditions from the ST action list. Since the mage is generating far less Brain Freeze charges, the exact condition here isn't all that important.\nactions.aoe+=/flurry,if=prev_gcd.1.ebonbolt||buff.brain_freeze.react&(prev_gcd.1.frostbolt&(buff.icicles.stack<4||!talent.glacial_spike.enabled)||prev_gcd.1.glacial_spike)\nactions.aoe+=/ice_lance,if=buff.fingers_of_frost.react\n# The mage will generally be generating a lot of FoF charges when using the AoE action list. Trying to delay Ray of Frost until there are no FoF charges and no active Frozen Orbs would lead to it not being used at all.\nactions.aoe+=/ray_of_frost\nactions.aoe+=/ebonbolt\nactions.aoe+=/glacial_spike\n# Using Cone of Cold is mostly DPS neutral with the AoE target thresholds. It only becomes decent gain with roughly 7 or more targets.\nactions.aoe+=/cone_of_cold\nactions.aoe+=/use_item,name=tidestorm_codex,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.aoe+=/use_item,effect_name=cyclotronic_blast,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.aoe+=/frostbolt\nactions.aoe+=/call_action_list,name=movement\nactions.aoe+=/ice_lance\n\nactions.cooldowns=guardian_of_azeroth\nactions.cooldowns+=/icy_veins\nactions.cooldowns+=/mirror_image\n# Rune of Power is always used with Frozen Orb. Any leftover charges at the end of the fight should be used, ideally if the boss doesn't die in the middle of the Rune buff.\nactions.cooldowns+=/rune_of_power,if=prev_gcd.1.frozen_orb||time_to_die>10+cast_time&time_to_die<20\n# On single target fights, the cooldown of Rune of Power is lower than the cooldown of Frozen Orb, this gives extra Rune of Power charges that should be used with active talents, if possible.\nactions.cooldowns+=/call_action_list,name=talent_rop,if=talent.rune_of_power.enabled&active_enemies=1&cooldown.rune_of_power.full_recharge_time<cooldown.frozen_orb.remains\nactions.cooldowns+=/potion,if=prev_gcd.1.icy_veins||time_to_die<30\nactions.cooldowns+=/use_item,name=balefire_branch,if=!talent.glacial_spike.enabled||buff.brain_freeze.react&prev_gcd.1.glacial_spike\nactions.cooldowns+=/use_items\nactions.cooldowns+=/blood_fury\nactions.cooldowns+=/berserking\nactions.cooldowns+=/lights_judgment\nactions.cooldowns+=/fireblood\nactions.cooldowns+=/ancestral_call\nactions.cooldowns+=/bag_of_tricks\n\n# Essences: Standard and No Ice Lance\nactions.essences_default=focused_azerite_beam,if=buff.rune_of_power.down||active_enemies>3\nactions.essences_default+=/memory_of_lucid_dreams,if=active_enemies<5&(buff.icicles.stack<=1||!talent.glacial_spike.enabled)&cooldown.frozen_orb.remains>10&(!rotation.standard||!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0)\nactions.essences_default+=/blood_of_the_enemy,if=(talent.glacial_spike.enabled&buff.icicles.stack=5&(buff.brain_freeze.react||prev_gcd.1.ebonbolt))||((active_enemies>3||!talent.glacial_spike.enabled)&(prev_gcd.1.frozen_orb||ground_aoe.frozen_orb.remains>5))\nactions.essences_default+=/purifying_blast,if=buff.rune_of_power.down||active_enemies>3\nactions.essences_default+=/ripple_in_space,if=buff.rune_of_power.down||active_enemies>3\nactions.essences_default+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down\nactions.essences_default+=/reaping_flames,if=buff.rune_of_power.down\nactions.essences_default+=/the_unbound_force,if=buff.reckless_force.up\nactions.essences_default+=/worldvein_resonance,if=buff.rune_of_power.down||active_enemies>3\n\n# Essences: Frozen Orb\nactions.essences_orb+=/focused_azerite_beam,if=buff.rune_of_power.down&debuff.packed_ice.down||active_enemies>3\nactions.essences_orb+=/memory_of_lucid_dreams,if=active_enemies<5&debuff.packed_ice.down&cooldown.frozen_orb.remains>5&!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0\nactions.essences_orb+=/blood_of_the_enemy,if=prev_gcd.1.frozen_orb||ground_aoe.frozen_orb.remains>5\nactions.essences_orb+=/purifying_blast,if=buff.rune_of_power.down&debuff.packed_ice.down||active_enemies>3\nactions.essences_orb+=/ripple_in_space,if=buff.rune_of_power.down&debuff.packed_ice.down||active_enemies>3\nactions.essences_orb+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down&debuff.packed_ice.down\nactions.essences_orb+=/reaping_flames,if=buff.rune_of_power.down&debuff.packed_ice.down\nactions.essences_orb+=/the_unbound_force,if=buff.reckless_force.up\nactions.essences_orb+=/worldvein_resonance,if=buff.rune_of_power.down&debuff.packed_ice.down&cooldown.frozen_orb.remains<4||active_enemies>3\n\nactions.essences=call_action_list,strict=1,name=essences_orb,if=rotation.frozen_orb\nactions.essences+=/call_action_list,strict=1,name=essences_default,if=!rotation.frozen_orb\n\nactions.movement=blink_any,if=movement.distance>10\nactions.movement+=/ice_floes,if=buff.ice_floes.down\n\n# Single Target\n# Without GS, Ebonbolt is always shattered. With GS, Ebonbolt is shattered if it would waste Brain Freeze charge (i.e. when the mage starts casting Ebonbolt with Brain Freeze active) or when below 4 Icicles (if Ebonbolt is cast when the mage has 4-5 Icicles, it's better to use the Brain Freeze from it on Glacial Spike).\nactions.single_standard=flurry,if=talent.ebonbolt.enabled&prev_gcd.1.ebonbolt&(!talent.glacial_spike.enabled||buff.icicles.stack<4||buff.brain_freeze.react)\n# Glacial Spike is always shattered.\nactions.single_standard+=/flurry,if=talent.glacial_spike.enabled&prev_gcd.1.glacial_spike&buff.brain_freeze.react\n# Without GS, the mage just tries to shatter as many Frostbolts as possible. With GS, the mage only shatters Frostbolt that would put them at 1-3 Icicle stacks. Difference between shattering Frostbolt with 1-3 Icicles and 1-4 Icicles is small, but 1-3 tends to be better in more situations (the higher GS damage is, the more it leans towards 1-3). Forcing shatter on Frostbolt is still a small gain, so is not caring about FoF. Ice Lance is too weak to warrant delaying Brain Freeze Flurry.\nactions.single_standard+=/flurry,if=prev_gcd.1.frostbolt&buff.brain_freeze.react&(!talent.glacial_spike.enabled||buff.icicles.stack<4)\nactions.single_standard+=/call_action_list,name=essences\nactions.single_standard+=/frozen_orb\n# With Freezing Rain and at least 2 targets, Blizzard needs to be used with higher priority to make sure you can fit both instant Blizzards into a single Freezing Rain. Starting with three targets, Blizzard leaves the low priority filler role and is used on cooldown (and just making sure not to waste Brain Freeze charges) with or without Freezing Rain.\nactions.single_standard+=/blizzard,if=active_enemies>2||active_enemies>1&cast_time=0&buff.fingers_of_frost.react<2\n# Trying to pool charges of FoF for anything isn't worth it. Use them as they come.\nactions.single_standard+=/ice_lance,if=buff.fingers_of_frost.react\nactions.single_standard+=/comet_storm\nactions.single_standard+=/ebonbolt\n# Ray of Frost is used after all Fingers of Frost charges have been used and there isn't active Frozen Orb that could generate more. This is only a small gain against multiple targets, as Ray of Frost isn't too impactful.\nactions.single_standard+=/ray_of_frost,if=!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0\n# Blizzard is used as low priority filler against 2 targets. When using Freezing Rain, it's a medium gain to use the instant Blizzard even against a single target, especially with low mastery.\nactions.single_standard+=/blizzard,if=cast_time=0||active_enemies>1\n# Glacial Spike is used when there's a Brain Freeze proc active (i.e. only when it can be shattered). This is a small to medium gain in most situations. Low mastery leans towards using it when available. When using Splitting Ice and having another target nearby, it's slightly better to use GS when available, as the second target doesn't benefit from shattering the main target.\nactions.single_standard+=/glacial_spike,if=buff.brain_freeze.react||prev_gcd.1.ebonbolt||active_enemies>1&talent.splitting_ice.enabled\n\nactions.single_no_lance=flurry,if=talent.ebonbolt.enabled&prev_gcd.1.ebonbolt&buff.brain_freeze.react\nactions.single_no_lance+=/flurry,if=prev_gcd.1.glacial_spike&buff.brain_freeze.react\nactions.single_no_lance+=/call_action_list,name=essences\nactions.single_no_lance+=/frozen_orb\nactions.single_no_lance+=/blizzard,if=active_enemies>2||active_enemies>1&!talent.splitting_ice.enabled\nactions.single_no_lance+=/comet_storm\nactions.single_no_lance+=/ebonbolt,if=buff.icicles.stack=5&!buff.brain_freeze.react\nactions.single_no_lance+=/ice_lance,if=buff.brain_freeze.react&(buff.fingers_of_frost.react||prev_gcd.1.flurry)&(buff.icicles.max_stack-buff.icicles.stack)*action.frostbolt.execute_time+action.glacial_spike.cast_time+action.glacial_spike.travel_time<incanters_flow_time_to.5.any&buff.memory_of_lucid_dreams.down\nactions.single_no_lance+=/glacial_spike,if=buff.brain_freeze.react||prev_gcd.1.ebonbolt||talent.incanters_flow.enabled&cast_time+travel_time>incanters_flow_time_to.5.up&cast_time+travel_time<incanters_flow_time_to.4.down\n\nactions.single_orb=call_action_list,name=essences\nactions.single_orb+=/frozen_orb\nactions.single_orb+=/flurry,if=prev_gcd.1.ebonbolt&buff.brain_freeze.react\nactions.single_orb+=/blizzard,if=active_enemies>2||active_enemies>1&cast_time=0\nactions.single_orb+=/ice_lance,if=buff.fingers_of_frost.react&cooldown.frozen_orb.remains>5||buff.fingers_of_frost.react=2\nactions.single_orb+=/blizzard,if=cast_time=0\nactions.single_orb+=/flurry,if=prev_gcd.1.ebonbolt\nactions.single_orb+=/flurry,if=buff.brain_freeze.react&(prev_gcd.1.frostbolt||debuff.packed_ice.remains>execute_time+action.ice_lance.travel_time)\nactions.single_orb+=/comet_storm\nactions.single_orb+=/ebonbolt\nactions.single_orb+=/ray_of_frost,if=debuff.packed_ice.up,interrupt_if=buff.fingers_of_frost.react=2,interrupt_immediate=1\nactions.single_orb+=/blizzard\n\n# In some situations, you can shatter Ice Nova even after already casting Flurry and Ice Lance. Otherwise this action is used when the mage has FoF after casting Flurry, see above.\nactions.single=ice_nova,if=cooldown.ice_nova.ready&debuff.winters_chill.up\nactions.single+=/call_action_list,strict=1,name=single_standard,if=rotation.standard\nactions.single+=/call_action_list,strict=1,name=single_no_lance,if=rotation.no_ice_lance\nactions.single+=/call_action_list,strict=1,name=single_orb,if=rotation.frozen_orb\nactions.single+=/ice_nova\nactions.single+=/use_item,name=tidestorm_codex,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.single+=/use_item,effect_name=cyclotronic_blast,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.single+=/frostbolt\nactions.single+=/call_action_list,name=movement\nactions.single+=/ice_lance\n\n# With Glacial Spike, Rune of Power should be used right before the Glacial Spike combo (i.e. with 5 Icicles and a Brain Freeze). When Ebonbolt is off cooldown, Rune of Power can also be used just with 5 Icicles.\nactions.talent_rop=rune_of_power,if=talent.glacial_spike.enabled&buff.icicles.stack=5&(buff.brain_freeze.react||talent.ebonbolt.enabled&cooldown.ebonbolt.remains<cast_time)\n# Without Glacial Spike, Rune of Power should be used before any bigger cooldown (Ebonbolt, Comet Storm, Ray of Frost) or when Rune of Power is about to reach 2 charges.\nactions.talent_rop+=/rune_of_power,if=!talent.glacial_spike.enabled&(talent.ebonbolt.enabled&cooldown.ebonbolt.remains<cast_time||talent.comet_storm.enabled&cooldown.comet_storm.remains<cast_time||talent.ray_of_frost.enabled&cooldown.ray_of_frost.remains<cast_time||charges_fractional>1.9)",
},
["Fire"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200401.2,
["author"] = "SimC",
["desc"] = "# Fire Mage\n# https://github.com/simulationcraft/simc/\n# April 1, 2020 - 14:51\n\n# Changes:\n# - Use time_to_die rather than target.time_to_die for last-second ability usages.\n# - Update logic re: Lucid Dreams.\n# - Loosen cast requirements for Combustion (i.e., don't hold it for a fresh Meteor cast).\n# - Disable an entry that would result in a hardcast Pyroblast in-game.",
["lists"] = {
["items_low_priority"] = {
{
["enabled"] = true,
["action"] = "tidestorm_codex",
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "tidestorm_codex",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [2]
},
["combustion_phase"] = {
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "lights_judgment",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "bag_of_tricks",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.combustion.down",
["action"] = "living_bomb",
}, -- [3]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [4]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [5]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "charges >= 1 & ( ( action.fire_blast.charges_fractional + ( buff.combustion.remains - buff.blaster_master.duration ) % cooldown.fire_blast.duration - ( buff.combustion.remains ) % ( buff.blaster_master.duration - 0.5 ) ) >= 0 || ! azerite.blaster_master.enabled || ! talent.flame_on.enabled || buff.combustion.remains <= buff.blaster_master.duration || buff.blaster_master.remains < 0.5 || equipped.hyperthread_wristwraps & cooldown.hyperthread_wristwraps_300142.remains < 5 ) & buff.combustion.up & ( ! action.scorch.executing & ! action.pyroblast.in_flight & buff.heating_up.up || action.scorch.executing & buff.hot_streak.down & ( buff.heating_up.down || azerite.blaster_master.enabled ) || azerite.blaster_master.enabled & talent.flame_on.enabled & action.pyroblast.in_flight & buff.heating_up.down & buff.hot_streak.down )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "rune_of_power",
}, -- [8]
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "fire_blast",
["criteria"] = "azerite.blaster_master.enabled & ( essence.memory_of_lucid_dreams.major || ! essence.memory_of_lucid_dreams.minor ) & talent.meteor.enabled & talent.flame_on.enabled & buff.blaster_master.down & ( talent.rune_of_power.enabled & action.rune_of_power.executing & action.rune_of_power.execute_remains < 0.6 || ( variable.time_to_combustion <= 0 || buff.combustion.up ) & ! talent.rune_of_power.enabled & ! action.pyroblast.in_flight & ! action.fireball.in_flight )",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [10]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( essence.memory_of_lucid_dreams.major || buff.hot_streak.react || action.scorch.executing & action.scorch.execute_remains < 0.5 || action.pyroblast.executing & action.pyroblast.execute_remains < 0.5 ) & ( buff.rune_of_power.up || ! talent.rune_of_power.enabled )",
["use_off_gcd"] = 1,
["action"] = "combustion",
}, -- [11]
{
["action"] = "potion",
["enabled"] = true,
}, -- [12]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [13]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [14]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [15]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "( ( talent.flame_patch.enabled & active_enemies > 2 ) || active_enemies > 6 ) & buff.hot_streak.react & ! azerite.blaster_master.enabled",
["action"] = "flamestrike",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & buff.combustion.remains > cast_time",
["action"] = "pyroblast",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react",
["action"] = "pyroblast",
}, -- [19]
{
["action"] = "phoenix_flames",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains > cast_time & buff.combustion.up || buff.combustion.down & cooldown.combustion.remains < cast_time",
["action"] = "scorch",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains < gcd.max & active_enemies > 1",
["action"] = "living_bomb",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains < gcd.max & buff.combustion.up",
["action"] = "dragons_breath",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 30 & talent.searing_touch.enabled",
["action"] = "scorch",
}, -- [24]
},
["active_talents"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.combustion.down & ( variable.time_to_combustion > cooldown.living_bomb.duration || variable.time_to_combustion <= 0 )",
["action"] = "living_bomb",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 0 || ( buff.rune_of_power.up || cooldown.rune_of_power.remains > time_to_die & action.rune_of_power.charges < 1 || ! talent.rune_of_power.enabled ) & ( cooldown.meteor.duration < variable.time_to_combustion || time_to_die < variable.time_to_combustion )",
["action"] = "meteor",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.alexstraszas_fury.enabled & ( buff.combustion.down & ! buff.hot_streak.react || buff.combustion.up & action.fire_blast.charges < action.fire_blast.max_charges & ! buff.hot_streak.react )",
["action"] = "dragons_breath",
}, -- [3]
},
["items_high_priority"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.time_to_combustion <= 0",
["list_name"] = "items_combustion",
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "manifesto_of_madness",
["criteria"] = "! equipped.azsharas_font_of_power & variable.time_to_combustion < 8",
["name"] = "manifesto_of_madness",
}, -- [3]
{
["enabled"] = true,
["action"] = "azsharas_font_of_power",
["criteria"] = "variable.time_to_combustion <= 5 + 15 * variable.font_double_on_use",
["name"] = "azsharas_font_of_power",
}, -- [4]
{
["enabled"] = true,
["action"] = "rotcrusted_voodoo_doll",
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "rotcrusted_voodoo_doll",
}, -- [5]
{
["enabled"] = true,
["action"] = "aquipotent_nautilus",
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "aquipotent_nautilus",
}, -- [6]
{
["enabled"] = true,
["action"] = "shiver_venom_relic",
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "shiver_venom_relic",
}, -- [7]
{
["enabled"] = true,
["action"] = "forbidden_obsidian_claw",
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "forbidden_obsidian_claw",
}, -- [8]
{
["enabled"] = true,
["action"] = "harmonic_dematerializer",
["effect_name"] = "harmonic_dematerializer",
}, -- [9]
{
["enabled"] = true,
["action"] = "malformed_heralds_legwraps",
["criteria"] = "variable.time_to_combustion >= 55 & buff.combustion.down & variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "malformed_heralds_legwraps",
}, -- [10]
{
["enabled"] = true,
["action"] = "ancient_knot_of_wisdom",
["criteria"] = "variable.time_to_combustion >= 55 & buff.combustion.down & variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "ancient_knot_of_wisdom",
}, -- [11]
{
["enabled"] = true,
["action"] = "neural_synapse_enhancer",
["criteria"] = "variable.time_to_combustion >= 45 & buff.combustion.down & variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "neural_synapse_enhancer",
}, -- [12]
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.firestarter.enabled * firestarter.remains + ( cooldown.combustion.remains * ( 1 - variable.kindling_reduction * talent.kindling.enabled ) - action.rune_of_power.execute_time * talent.rune_of_power.enabled ) * ! cooldown.combustion.ready * buff.combustion.down",
["var_name"] = "time_to_combustion",
}, -- [2]
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "cooldown.memory_of_lucid_dreams.remains",
["var_name"] = "time_to_combustion",
["criteria"] = "essence.memory_of_lucid_dreams.major & buff.memory_of_lucid_dreams.down & cooldown.memory_of_lucid_dreams.remains - variable.time_to_combustion <= variable.hold_combustion_threshold",
}, -- [3]
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "cooldown.worldvein_resonance.remains",
["var_name"] = "time_to_combustion",
["criteria"] = "essence.worldvein_resonance.major & buff.worldvein_resonance.down & cooldown.worldvein_resonance.remains - variable.time_to_combustion <= variable.hold_combustion_threshold",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items_high_priority",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "mirror_image",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( variable.time_to_combustion < 10 || time_to_die < variable.time_to_combustion )",
["action"] = "guardian_of_azeroth",
}, -- [7]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [8]
{
["action"] = "reaping_flames",
["enabled"] = true,
}, -- [9]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [10]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [11]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [12]
{
["action"] = "the_unbound_force",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & ( variable.time_to_combustion > full_recharge_time || variable.time_to_combustion > time_to_die )",
["action"] = "rune_of_power",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.time_to_combustion <= 0",
["list_name"] = "combustion_phase",
}, -- [15]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( essence.memory_of_lucid_dreams.major || essence.memory_of_lucid_dreams.minor & azerite.blaster_master.enabled ) & charges = max_charges & ! buff.hot_streak.react & ! ( buff.heating_up.react & ( buff.combustion.up & ( action.fireball.in_flight || action.pyroblast.in_flight || action.scorch.executing ) || target.health.pct <= 30 & action.scorch.executing ) ) & ! ( ! buff.heating_up.react & ! buff.hot_streak.react & buff.combustion.down & ( action.fireball.in_flight || action.pyroblast.in_flight ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [16]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.rune_of_power.enabled & cooldown.rune_of_power.remains < cooldown.fire_blast.full_recharge_time & ( variable.time_to_combustion > action.rune_of_power.full_recharge_time ) & ( cooldown.rune_of_power.remains < time_to_die || action.rune_of_power.charges > 0 ) || variable.time_to_combustion < action.fire_blast.full_recharge_time & variable.time_to_combustion < time_to_die",
["var_name"] = "fire_blast_pooling",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "buff.rune_of_power.up & ( variable.time_to_combustion > 0 )",
["list_name"] = "rop_phase",
}, -- [18]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.rune_of_power.enabled & cooldown.rune_of_power.remains < cooldown.phoenix_flames.full_recharge_time & ( variable.time_to_combustion > action.rune_of_power.full_recharge_time ) & ( cooldown.rune_of_power.remains < time_to_die || action.rune_of_power.charges > 0 ) || variable.time_to_combustion < action.phoenix_flames.full_recharge_time & variable.time_to_combustion < time_to_die",
["var_name"] = "phoenix_pooling",
}, -- [19]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( ! variable.fire_blast_pooling || buff.rune_of_power.up ) & ( variable.time_to_combustion > 0 ) & ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & ! firestarter.active & buff.hot_streak.down & ( ! azerite.blaster_master.enabled || buff.blaster_master.remains < 0.5 )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [20]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "firestarter.active & charges >= 1 & ( ! variable.fire_blast_pooling || buff.rune_of_power.up ) & ( ! azerite.blaster_master.enabled || buff.blaster_master.remains < 0.5 ) & ( ! action.fireball.executing & ! action.pyroblast.in_flight & buff.heating_up.up || action.fireball.executing & buff.hot_streak.down || action.pyroblast.in_flight & buff.heating_up.down & buff.hot_streak.down )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.time_to_combustion > 0",
["list_name"] = "standard_rotation",
}, -- [22]
},
["items_combustion"] = {
{
["enabled"] = true,
["name"] = "ignition_mages_fuse",
["action"] = "ignition_mages_fuse",
}, -- [1]
{
["enabled"] = true,
["action"] = "hyperthread_wristwraps",
["criteria"] = "buff.combustion.up & action.fire_blast.charges = 0 & action.fire_blast.recharge_time > gcd.max",
["name"] = "hyperthread_wristwraps",
}, -- [2]
{
["enabled"] = true,
["name"] = "manifesto_of_madness",
["action"] = "manifesto_of_madness",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["use_off_gcd"] = 1,
["buff_name"] = "manifesto_of_madness_chapter_one",
["action"] = "cancel_buff",
}, -- [4]
{
["enabled"] = true,
["name"] = "azurethos_singed_plumage",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "azurethos_singed_plumage",
}, -- [5]
{
["enabled"] = true,
["action"] = "gladiators_badge",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["effect_name"] = "gladiators_badge",
}, -- [6]
{
["enabled"] = true,
["action"] = "gladiators_medallion",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["effect_name"] = "gladiators_medallion",
}, -- [7]
{
["enabled"] = true,
["name"] = "balefire_branch",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "balefire_branch",
}, -- [8]
{
["enabled"] = true,
["name"] = "shockbiters_fang",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "shockbiters_fang",
}, -- [9]
{
["enabled"] = true,
["name"] = "tzanes_barkspines",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "tzanes_barkspines",
}, -- [10]
{
["enabled"] = true,
["name"] = "ancient_knot_of_wisdom",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "ancient_knot_of_wisdom",
}, -- [11]
{
["enabled"] = true,
["name"] = "neural_synapse_enhancer",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "neural_synapse_enhancer",
}, -- [12]
{
["enabled"] = true,
["name"] = "malformed_heralds_legwraps",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["action"] = "malformed_heralds_legwraps",
}, -- [13]
},
["rop_phase"] = {
{
["action"] = "rune_of_power",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( active_enemies >= variable.hot_streak_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & buff.hot_streak.react",
["action"] = "flamestrike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react",
["action"] = "pyroblast",
}, -- [3]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & ! firestarter.active & ( ! buff.heating_up.react & ! buff.hot_streak.react & ! prev_off_gcd.fire_blast & ( action.fire_blast.charges >= 2 || ( action.phoenix_flames.charges >= 1 & talent.phoenix_flames.enabled ) || ( talent.alexstraszas_fury.enabled & cooldown.dragons_breath.ready ) || ( talent.searing_touch.enabled & target.health.pct <= 30 ) ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & cast_time < buff.pyroclasm.remains & buff.rune_of_power.remains > cast_time",
["action"] = "pyroblast",
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & ! firestarter.active & ( buff.heating_up.react & ( target.health.pct >= 30 || ! talent.searing_touch.enabled ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & ! firestarter.active & talent.searing_touch.enabled & target.health.pct <= 30 & ( buff.heating_up.react & ! action.scorch.executing || ! buff.heating_up.react & ! buff.hot_streak.react )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! prev_gcd.1.phoenix_flames & buff.heating_up.react",
["action"] = "phoenix_flames",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 30 & talent.searing_touch.enabled",
["action"] = "scorch",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "dragons_breath",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) )",
["action"] = "flamestrike",
}, -- [12]
{
["action"] = "fireball",
["enabled"] = true,
}, -- [13]
},
["standard_rotation"] = {
{
["enabled"] = true,
["criteria"] = "( active_enemies >= variable.hot_streak_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & buff.hot_streak.react",
["action"] = "flamestrike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & buff.hot_streak.remains < action.fireball.execute_time",
["action"] = "pyroblast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & ( prev_gcd.1.fireball || firestarter.active || action.pyroblast.in_flight )",
["action"] = "pyroblast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "charges >= 3 & active_enemies > 2 & ! variable.phoenix_pooling",
["action"] = "phoenix_flames",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & target.health.pct <= 30 & talent.searing_touch.enabled",
["action"] = "pyroblast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & cast_time < buff.pyroclasm.remains",
["action"] = "pyroblast",
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( buff.rune_of_power.down & ! firestarter.active ) & ! variable.fire_blast_pooling & ( ( ( action.fireball.executing || action.pyroblast.executing ) & buff.heating_up.react ) || ( talent.searing_touch.enabled & target.health.pct <= 30 & ( buff.heating_up.react & ! action.scorch.executing || ! buff.hot_streak.react & ! buff.heating_up.react & action.scorch.executing & ! action.pyroblast.in_flight & ! action.fireball.in_flight ) ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( buff.heating_up.react || ( ! buff.hot_streak.react & ( action.fire_blast.charges > 0 || talent.searing_touch.enabled & target.health.pct <= 30 ) ) ) & ! variable.phoenix_pooling",
["action"] = "phoenix_flames",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "dragons_breath",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items_low_priority",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 30 & talent.searing_touch.enabled",
["action"] = "scorch",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike )",
["action"] = "flamestrike",
}, -- [13]
{
["action"] = "fireball",
["enabled"] = true,
}, -- [14]
{
["action"] = "scorch",
["enabled"] = true,
}, -- [15]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.manifesto_of_madness || equipped.gladiators_badge || equipped.gladiators_medallion || equipped.ignition_mages_fuse || equipped.tzanes_barkspines || equipped.azurethos_singed_plumage || equipped.ancient_knot_of_wisdom || equipped.shockbiters_fang || equipped.neural_synapse_enhancer || equipped.balefire_branch",
["var_name"] = "combustion_on_use",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.azsharas_font_of_power & variable.combustion_on_use",
["var_name"] = "font_double_on_use",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "20 * ( variable.combustion_on_use & ! variable.font_double_on_use ) + 40 * ( variable.font_double_on_use ) + 25 * ( equipped.azsharas_font_of_power & ! variable.font_double_on_use ) + 8 * ( equipped.manifesto_of_madness & ! variable.font_double_on_use )",
["var_name"] = "on_use_cutoff",
}, -- [4]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "hold_combustion_threshold",
["default"] = "20",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2 * talent.flame_patch.enabled + 99 * ! talent.flame_patch.enabled",
["var_name"] = "hot_streak_flamestrike",
["criteria"] = "variable.hot_streak_flamestrike = 0",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "3 * talent.flame_patch.enabled + 99 * ! talent.flame_patch.enabled",
["var_name"] = "hard_cast_flamestrike",
["criteria"] = "variable.hard_cast_flamestrike = 0",
}, -- [7]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "delay_flamestrike",
["default"] = "25",
}, -- [8]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "kindling_reduction",
["default"] = "0.2",
}, -- [9]
{
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [11]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [12]
{
["action"] = "potion",
["enabled"] = true,
}, -- [13]
{
["action"] = "pyroblast",
["enabled"] = true,
}, -- [14]
},
},
["version"] = 20200401.2,
["warnings"] = "Imported 9 action lists.\n",
["profile"] = "# Fire Mage\n# https://github.com/simulationcraft/simc/\n# April 1, 2020 - 14:51\n\n# Changes:\n# - Use time_to_die rather than target.time_to_die for last-second ability usages.\n# - Update logic re: Lucid Dreams.\n# - Loosen cast requirements for Combustion (i.e., don't hold it for a fresh Meteor cast).\n# - Disable an entry that would result in a hardcast Pyroblast in-game.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/arcane_intellect\nactions.precombat+=/variable,name=combustion_on_use,op=set,value=equipped.manifesto_of_madness||equipped.gladiators_badge||equipped.gladiators_medallion||equipped.ignition_mages_fuse||equipped.tzanes_barkspines||equipped.azurethos_singed_plumage||equipped.ancient_knot_of_wisdom||equipped.shockbiters_fang||equipped.neural_synapse_enhancer||equipped.balefire_branch\nactions.precombat+=/variable,name=font_double_on_use,op=set,value=equipped.azsharas_font_of_power&variable.combustion_on_use\n# Items that are used outside of Combustion are not used after this time if they would put a trinket used with Combustion on a sharded cooldown.\nactions.precombat+=/variable,name=on_use_cutoff,op=set,value=20*(variable.combustion_on_use&!variable.font_double_on_use)+40*(variable.font_double_on_use)+25*(equipped.azsharas_font_of_power&!variable.font_double_on_use)+8*(equipped.manifesto_of_madness&!variable.font_double_on_use)\n# Combustion is only used without Worldvein Resonance or Memory of Lucid Dreams if it will be available at least this many seconds before the essence's cooldown is ready.\nactions.precombat+=/variable,name=hold_combustion_threshold,op=reset,default=20\n# This variable specifies the number of targets at which Hot Streak Flamestrikes outside of Combustion should be used.\nactions.precombat+=/variable,name=hot_streak_flamestrike,op=set,if=variable.hot_streak_flamestrike=0,value=2*talent.flame_patch.enabled+99*!talent.flame_patch.enabled\n# This variable specifies the number of targets at which Hard Cast Flamestrikes outside of Combustion should be used as filler.\nactions.precombat+=/variable,name=hard_cast_flamestrike,op=set,if=variable.hard_cast_flamestrike=0,value=3*talent.flame_patch.enabled+99*!talent.flame_patch.enabled\n# Using Flamestrike after Combustion is over can cause a significant amount of damage to be lost due to the overwriting of Ignite that occurs when the Ignite from your primary Combustion target spreads. This variable is used to specify the amount of time in seconds that must pass after Combustion expires before Flamestrikes will be used normally.\nactions.precombat+=/variable,name=delay_flamestrike,default=25,op=reset\n# With Kindling, Combustion's cooldown will be reduced by a random amount, but the number of crits starts very high after activating Combustion and slows down towards the end of Combustion's cooldown. When making decisions in the APL, Combustion's remaining cooldown is reduced by this fraction to account for Kindling.\nactions.precombat+=/variable,name=kindling_reduction,default=0.2,op=reset\nactions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mirror_image\nactions.precombat+=/potion\nactions.precombat+=/pyroblast\n\n# Executed every time the actor is available.\nactions=counterspell\nactions+=/variable,name=time_to_combustion,op=set,value=talent.firestarter.enabled*firestarter.remains+(cooldown.combustion.remains*(1-variable.kindling_reduction*talent.kindling.enabled)-action.rune_of_power.execute_time*talent.rune_of_power.enabled)*!cooldown.combustion.ready*buff.combustion.down\nactions+=/variable,name=time_to_combustion,op=max,value=cooldown.memory_of_lucid_dreams.remains,if=essence.memory_of_lucid_dreams.major&buff.memory_of_lucid_dreams.down&cooldown.memory_of_lucid_dreams.remains-variable.time_to_combustion<=variable.hold_combustion_threshold\nactions+=/variable,name=time_to_combustion,op=max,value=cooldown.worldvein_resonance.remains,if=essence.worldvein_resonance.major&buff.worldvein_resonance.down&cooldown.worldvein_resonance.remains-variable.time_to_combustion<=variable.hold_combustion_threshold\nactions+=/call_action_list,name=items_high_priority\nactions+=/mirror_image,if=buff.combustion.down\nactions+=/guardian_of_azeroth,if=(variable.time_to_combustion<10||time_to_die<variable.time_to_combustion)\nactions+=/concentrated_flame\nactions+=/reaping_flames\nactions+=/focused_azerite_beam\nactions+=/purifying_blast\nactions+=/ripple_in_space\nactions+=/the_unbound_force\nactions+=/rune_of_power,if=buff.combustion.down&(variable.time_to_combustion>full_recharge_time||variable.time_to_combustion>time_to_die)\nactions+=/call_action_list,name=combustion_phase,if=variable.time_to_combustion<=0\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=(essence.memory_of_lucid_dreams.major||essence.memory_of_lucid_dreams.minor&azerite.blaster_master.enabled)&charges=max_charges&!buff.hot_streak.react&!(buff.heating_up.react&(buff.combustion.up&(action.fireball.in_flight||action.pyroblast.in_flight||action.scorch.executing)||target.health.pct<=30&action.scorch.executing))&!(!buff.heating_up.react&!buff.hot_streak.react&buff.combustion.down&(action.fireball.in_flight||action.pyroblast.in_flight))\nactions+=/variable,name=fire_blast_pooling,value=talent.rune_of_power.enabled&cooldown.rune_of_power.remains<cooldown.fire_blast.full_recharge_time&(variable.time_to_combustion>action.rune_of_power.full_recharge_time)&(cooldown.rune_of_power.remains<time_to_die||action.rune_of_power.charges>0)||variable.time_to_combustion<action.fire_blast.full_recharge_time&variable.time_to_combustion<time_to_die\nactions+=/call_action_list,name=rop_phase,if=buff.rune_of_power.up&(variable.time_to_combustion>0)\nactions+=/variable,name=phoenix_pooling,value=talent.rune_of_power.enabled&cooldown.rune_of_power.remains<cooldown.phoenix_flames.full_recharge_time&(variable.time_to_combustion>action.rune_of_power.full_recharge_time)&(cooldown.rune_of_power.remains<time_to_die||action.rune_of_power.charges>0)||variable.time_to_combustion<action.phoenix_flames.full_recharge_time&variable.time_to_combustion<time_to_die\n# When Hardcasting Flame Strike, Fire Blasts should be used to generate Hot Streaks and to extend Blaster Master.\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=(!variable.fire_blast_pooling||buff.rune_of_power.up)&(variable.time_to_combustion>0)&(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&!firestarter.active&buff.hot_streak.down&(!azerite.blaster_master.enabled||buff.blaster_master.remains<0.5)\n# During Firestarter, Fire Blasts are used similarly to during Combustion. Generally, they are used to generate Hot Streaks when crits will not be wasted and with Blaster Master, they should be spread out to maintain the Blaster Master buff.\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=firestarter.active&charges>=1&(!variable.fire_blast_pooling||buff.rune_of_power.up)&(!azerite.blaster_master.enabled||buff.blaster_master.remains<0.5)&(!action.fireball.executing&!action.pyroblast.in_flight&buff.heating_up.up||action.fireball.executing&buff.hot_streak.down||action.pyroblast.in_flight&buff.heating_up.down&buff.hot_streak.down)\nactions+=/call_action_list,name=standard_rotation,if=variable.time_to_combustion>0\n\nactions.active_talents=living_bomb,if=active_enemies>1&buff.combustion.down&(variable.time_to_combustion>cooldown.living_bomb.duration||variable.time_to_combustion<=0)\nactions.active_talents+=/meteor,if=variable.time_to_combustion<=0||(buff.rune_of_power.up||cooldown.rune_of_power.remains>time_to_die&action.rune_of_power.charges<1||!talent.rune_of_power.enabled)&(cooldown.meteor.duration<variable.time_to_combustion||time_to_die<variable.time_to_combustion)\nactions.active_talents+=/dragons_breath,if=talent.alexstraszas_fury.enabled&(buff.combustion.down&!buff.hot_streak.react||buff.combustion.up&action.fire_blast.charges<action.fire_blast.max_charges&!buff.hot_streak.react)\n\n# Combustion phase prepares abilities with a delay, then launches into the Combustion sequence\nactions.combustion_phase=lights_judgment,if=buff.combustion.down\nactions.combustion_phase+=/bag_of_tricks,if=buff.combustion.down\nactions.combustion_phase+=/living_bomb,if=active_enemies>1&buff.combustion.down\nactions.combustion_phase+=/blood_of_the_enemy\nactions.combustion_phase+=/memory_of_lucid_dreams\nactions.combustion_phase+=/worldvein_resonance\n# During Combustion, Fire Blasts are used to generate Hot Streaks and minimize the amount of time spent executing other spells. For standard Fire, Fire Blasts are only used when Heating Up is active or when a Scorch cast is in progress and Heating Up and Hot Streak are not active. With Blaster Master and Flame On, Fire Blasts can additionally be used while Hot Streak and Heating Up are not active and a Pyroblast is in the air and also while casting Scorch even if Heating Up is already active. The latter allows two Hot Streak Pyroblasts to be cast in succession after the Scorch. Additionally with Blaster Master and Flame On, Fire Blasts should not be used unless Blaster Master is about to expire or there are more than enough Fire Blasts to extend Blaster Master to the end of Combustion.\nactions.combustion_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=charges>=1&((action.fire_blast.charges_fractional+(buff.combustion.remains-buff.blaster_master.duration)%cooldown.fire_blast.duration-(buff.combustion.remains)%(buff.blaster_master.duration-0.5))>=0||!azerite.blaster_master.enabled||!talent.flame_on.enabled||buff.combustion.remains<=buff.blaster_master.duration||buff.blaster_master.remains<0.5||equipped.hyperthread_wristwraps&cooldown.hyperthread_wristwraps_300142.remains<5)&buff.combustion.up&(!action.scorch.executing&!action.pyroblast.in_flight&buff.heating_up.up||action.scorch.executing&buff.hot_streak.down&(buff.heating_up.down||azerite.blaster_master.enabled)||azerite.blaster_master.enabled&talent.flame_on.enabled&action.pyroblast.in_flight&buff.heating_up.down&buff.hot_streak.down)\nactions.combustion_phase+=/rune_of_power,if=buff.combustion.down\n# A Fire Blast should be used to apply Blaster Master while casting Rune of Power when using Blaster Master, Flame On, and Meteor. If only Memory of Lucid Dreams Minor is equipped, this line is ignored because it will sometimes result in going into Combustion with few Fire Blast charges.\nactions.combustion_phase+=/fire_blast,use_while_casting=1,if=azerite.blaster_master.enabled&(essence.memory_of_lucid_dreams.major||!essence.memory_of_lucid_dreams.minor)&talent.meteor.enabled&talent.flame_on.enabled&buff.blaster_master.down&(talent.rune_of_power.enabled&action.rune_of_power.executing&action.rune_of_power.execute_remains<0.6||(variable.time_to_combustion<=0||buff.combustion.up)&!talent.rune_of_power.enabled&!action.pyroblast.in_flight&!action.fireball.in_flight)\nactions.combustion_phase+=/call_action_list,name=active_talents\nactions.combustion_phase+=/combustion,use_off_gcd=1,use_while_casting=1,if=(essence.memory_of_lucid_dreams.major||buff.hot_streak.react||action.scorch.executing&action.scorch.execute_remains<0.5||action.pyroblast.executing&action.pyroblast.execute_remains<0.5)&(buff.rune_of_power.up||!talent.rune_of_power.enabled)\nactions.combustion_phase+=/potion\nactions.combustion_phase+=/blood_fury\nactions.combustion_phase+=/berserking\nactions.combustion_phase+=/fireblood\nactions.combustion_phase+=/ancestral_call\nactions.combustion_phase+=/flamestrike,if=((talent.flame_patch.enabled&active_enemies>2)||active_enemies>6)&buff.hot_streak.react&!azerite.blaster_master.enabled\nactions.combustion_phase+=/pyroblast,if=buff.pyroclasm.react&buff.combustion.remains>cast_time\nactions.combustion_phase+=/pyroblast,if=buff.hot_streak.react\n# Commenting this entry out; it's relying on a reaction time delay when you know your Scorch will crit and you had Heating Up when you cast Scorch.\n# In-game, this is handled more naturally.\n# actions.combustion_phase+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up\nactions.combustion_phase+=/phoenix_flames\nactions.combustion_phase+=/scorch,if=buff.combustion.remains>cast_time&buff.combustion.up||buff.combustion.down&cooldown.combustion.remains<cast_time\nactions.combustion_phase+=/living_bomb,if=buff.combustion.remains<gcd.max&active_enemies>1\nactions.combustion_phase+=/dragons_breath,if=buff.combustion.remains<gcd.max&buff.combustion.up\nactions.combustion_phase+=/scorch,if=target.health.pct<=30&talent.searing_touch.enabled\n\nactions.items_combustion=use_item,name=ignition_mages_fuse\nactions.items_combustion+=/use_item,name=hyperthread_wristwraps,if=buff.combustion.up&action.fire_blast.charges=0&action.fire_blast.recharge_time>gcd.max\nactions.items_combustion+=/use_item,name=manifesto_of_madness\nactions.items_combustion+=/cancel_buff,use_off_gcd=1,name=manifesto_of_madness_chapter_one,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=azurethos_singed_plumage,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,effect_name=gladiators_badge,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,effect_name=gladiators_medallion,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=balefire_branch,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=shockbiters_fang,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=tzanes_barkspines,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=ancient_knot_of_wisdom,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=neural_synapse_enhancer,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=malformed_heralds_legwraps,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\n\nactions.items_high_priority=call_action_list,name=items_combustion,if=variable.time_to_combustion<=0\nactions.items_high_priority+=/use_items\nactions.items_high_priority+=/use_item,name=manifesto_of_madness,if=!equipped.azsharas_font_of_power&variable.time_to_combustion<8\nactions.items_high_priority+=/use_item,name=azsharas_font_of_power,if=variable.time_to_combustion<=5+15*variable.font_double_on_use\nactions.items_high_priority+=/use_item,name=rotcrusted_voodoo_doll,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=aquipotent_nautilus,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=shiver_venom_relic,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=forbidden_obsidian_claw,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,effect_name=harmonic_dematerializer\nactions.items_high_priority+=/use_item,name=malformed_heralds_legwraps,if=variable.time_to_combustion>=55&buff.combustion.down&variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=ancient_knot_of_wisdom,if=variable.time_to_combustion>=55&buff.combustion.down&variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=neural_synapse_enhancer,if=variable.time_to_combustion>=45&buff.combustion.down&variable.time_to_combustion>variable.on_use_cutoff\n\nactions.items_low_priority=use_item,name=tidestorm_codex,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_low_priority+=/use_item,effect_name=cyclotronic_blast,if=variable.time_to_combustion>variable.on_use_cutoff\n\nactions.rop_phase=rune_of_power\nactions.rop_phase+=/flamestrike,if=(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&buff.hot_streak.react\nactions.rop_phase+=/pyroblast,if=buff.hot_streak.react\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&!firestarter.active&(!buff.heating_up.react&!buff.hot_streak.react&!prev_off_gcd.fire_blast&(action.fire_blast.charges>=2||(action.phoenix_flames.charges>=1&talent.phoenix_flames.enabled)||(talent.alexstraszas_fury.enabled&cooldown.dragons_breath.ready)||(talent.searing_touch.enabled&target.health.pct<=30)))\nactions.rop_phase+=/call_action_list,name=active_talents\nactions.rop_phase+=/pyroblast,if=buff.pyroclasm.react&cast_time<buff.pyroclasm.remains&buff.rune_of_power.remains>cast_time\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&!firestarter.active&(buff.heating_up.react&(target.health.pct>=30||!talent.searing_touch.enabled))\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&!firestarter.active&talent.searing_touch.enabled&target.health.pct<=30&(buff.heating_up.react&!action.scorch.executing||!buff.heating_up.react&!buff.hot_streak.react)\n# Commenting this entry out; it's relying on a reaction time delay when you know your Scorch will crit and you had Heating Up when you cast Scorch.\n# In-game, this is handled more naturally.\n# actions.rop_phase+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up&talent.searing_touch.enabled&target.health.pct<=30&!(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))\nactions.rop_phase+=/phoenix_flames,if=!prev_gcd.1.phoenix_flames&buff.heating_up.react\nactions.rop_phase+=/scorch,if=target.health.pct<=30&talent.searing_touch.enabled\nactions.rop_phase+=/dragons_breath,if=active_enemies>2\nactions.rop_phase+=/flamestrike,if=(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))\nactions.rop_phase+=/fireball\n\nactions.standard_rotation=flamestrike,if=(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&buff.hot_streak.react\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&buff.hot_streak.remains<action.fireball.execute_time\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&(prev_gcd.1.fireball||firestarter.active||action.pyroblast.in_flight)\nactions.standard_rotation+=/phoenix_flames,if=charges>=3&active_enemies>2&!variable.phoenix_pooling\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&target.health.pct<=30&talent.searing_touch.enabled\nactions.standard_rotation+=/pyroblast,if=buff.pyroclasm.react&cast_time<buff.pyroclasm.remains\nactions.standard_rotation+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=(buff.rune_of_power.down&!firestarter.active)&!variable.fire_blast_pooling&(((action.fireball.executing||action.pyroblast.executing)&buff.heating_up.react)||(talent.searing_touch.enabled&target.health.pct<=30&(buff.heating_up.react&!action.scorch.executing||!buff.hot_streak.react&!buff.heating_up.react&action.scorch.executing&!action.pyroblast.in_flight&!action.fireball.in_flight)))\n# Commenting this entry out; it's relying on a reaction time delay when you know your Scorch will crit and you had Heating Up when you cast Scorch.\n# In-game, this is handled more naturally.\n# actions.standard_rotation+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up&talent.searing_touch.enabled&target.health.pct<=30&!(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))\nactions.standard_rotation+=/phoenix_flames,if=(buff.heating_up.react||(!buff.hot_streak.react&(action.fire_blast.charges>0||talent.searing_touch.enabled&target.health.pct<=30)))&!variable.phoenix_pooling\nactions.standard_rotation+=/call_action_list,name=active_talents\nactions.standard_rotation+=/dragons_breath,if=active_enemies>1\nactions.standard_rotation+=/call_action_list,name=items_low_priority\nactions.standard_rotation+=/scorch,if=target.health.pct<=30&talent.searing_touch.enabled\n# With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.\nactions.standard_rotation+=/flamestrike,if=active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike)\nactions.standard_rotation+=/fireball\nactions.standard_rotation+=/scorch",
["spec"] = 63,
},
["Fire IV"] = {
["source"] = "https://icy-veins.com/",
["builtIn"] = true,
["date"] = 20200204.1,
["author"] = "Icy-Veins Authors",
["desc"] = "# Fire Mage\n# Based off Icy Veins priority.\n# March 31, 2020",
["lists"] = {
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.combustion.ready",
["action"] = "rune_of_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.combustion.ready",
["action"] = "memory_of_lucid_dreams",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "use_items",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ! talent.rune_of_power.enabled || buff.rune_of_power.up ) & ( cooldown.combustion.ready || cooldown.combustion.remains >= 45 )",
["action"] = "meteor",
}, -- [5]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( ! essence.memory_of_lucid_dreams.major || buff.memory_of_lucid_dreams.up || cooldown.memory_of_lucid_dreams.remains > 115 ) & ( ! talent.meteor.enabled || cooldown.meteor.remains )",
["use_off_gcd"] = 1,
["action"] = "combustion",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up & action.fire_blast.charges = 0 & action.fire_blast.recharge_time > gcd.max",
["name"] = "hyperthread_wristwraps",
["action"] = "hyperthread_wristwraps",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 2",
["action"] = "rune_of_power",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 2.9",
["action"] = "phoenix_flames",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! talent.flame_patch.enabled & ( buff.combustion.up & active_enemies >= 8 || buff.combustion.down & active_enemies >= 5 ) & buff.hot_streak.up",
["action"] = "flamestrike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.flame_patch.enabled & ( buff.combustion.up & active_enemies >= 3 || buff.combustion.down & active_enemies >= 2 ) & buff.hot_streak.up",
["action"] = "flamestrike",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.up & ( buff.combustion.remains > buff.pyroclasm.remains || buff.combustion.down & cooldown.combustion.remains > buff.pyroclasm.remains + 3 ) & ( buff.rune_of_power.remains > buff.pyroclasm.remains || ! talent.rune_of_power.enabled || talent.rune_of_power.enabled & buff.rune_of_power.down & cooldown.rune_of_power.remains > buff.pyroclasm.remains + 3 )",
["action"] = "pyroblast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.up",
["action"] = "pyroblast",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & time_to_die >= 8",
["action"] = "living_bomb",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up & buff.combustion.remains < 1",
["action"] = "dragons_breath",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "dragons_breath",
}, -- [16]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "buff.heating_up.up",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [17]
{
["action"] = "dragons_breath",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "talent.searing_touch.enabled & target.health.pct < 30 & target.time_to_die > cast_time",
["action"] = "scorch",
}, -- [19]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "time_to_die < action.scorch.cast",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "fireball",
}, -- [21]
{
["moving"] = "1",
["action"] = "scorch",
["enabled"] = true,
}, -- [22]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blazing_barrier.down",
["action"] = "blazing_barrier",
}, -- [2]
{
["action"] = "potion",
["enabled"] = true,
}, -- [3]
{
["action"] = "pyroblast",
["enabled"] = true,
}, -- [4]
},
},
["version"] = 20200204.1,
["warnings"] = "Imported 2 action lists.\n",
["profile"] = "# Fire Mage\n# Based off Icy Veins priority.\n# March 31, 2020\n\nactions.precombat=arcane_intellect\nactions.precombat=blazing_barrier,if=buff.blazing_barrier.down\nactions.precombat=potion\nactions.precombat=pyroblast\n\nactions+=/counterspell\nactions+=/rune_of_power,if=cooldown.combustion.ready\nactions+=/memory_of_lucid_dreams,if=cooldown.combustion.ready\nactions+=/use_items,if=buff.combustion.down\nactions+=/meteor,if=(!talent.rune_of_power.enabled||buff.rune_of_power.up)&(cooldown.combustion.ready||cooldown.combustion.remains>=45)\nactions+=/combustion,use_while_casting=1,use_off_gcd=1,if=(!essence.memory_of_lucid_dreams.major||buff.memory_of_lucid_dreams.up||cooldown.memory_of_lucid_dreams.remains>115)&(!talent.meteor.enabled||cooldown.meteor.remains)\nactions+=/use_item,name=hyperthread_wristwraps,if=buff.combustion.up&action.fire_blast.charges=0&action.fire_blast.recharge_time>gcd.max\n# actions+=/hyperthread_wristwraps,if=buff.combustion.up&cooldown.fire_blast.charges=0&(prev.1.fire_blast+prev.2.fire_blast+prev.3.fire_blast>=2)\nactions+=/rune_of_power,if=full_recharge_time<2\n# actions+=/rune_of_power,if=charges_fractional>=1.95&cast<time_to_die\nactions+=/phoenix_flames,if=charges_fractional>=2.9\nactions+=/flamestrike,if=!talent.flame_patch.enabled&(buff.combustion.up&active_enemies>=8||buff.combustion.down&active_enemies>=5)&buff.hot_streak.up\nactions+=/flamestrike,if=talent.flame_patch.enabled&(buff.combustion.up&active_enemies>=3||buff.combustion.down&active_enemies>=2)&buff.hot_streak.up\n# If Combustion or Rune of Power is currently not active, but will be available before the Pyroclasm buff would time out, and you only have one stack of Pyroclasm, you should hold it until the Combustion or Rune of Power is up.\nactions+=/pyroblast,if=buff.pyroclasm.up&(buff.combustion.remains>buff.pyroclasm.remains||buff.combustion.down&cooldown.combustion.remains>buff.pyroclasm.remains+3)&(buff.rune_of_power.remains>buff.pyroclasm.remains||!talent.rune_of_power.enabled||talent.rune_of_power.enabled&buff.rune_of_power.down&cooldown.rune_of_power.remains>buff.pyroclasm.remains+3)\nactions+=/pyroblast,if=buff.hot_streak.up\nactions+=/living_bomb,if=active_enemies>=3&time_to_die>=8\nactions+=/dragons_breath,if=buff.combustion.up&buff.combustion.remains<1\nactions+=/dragons_breath,if=active_enemies>=3\nactions+=/fire_blast,use_while_casting=1,use_off_gcd=1,if=buff.heating_up.up\nactions+=/dragons_breath\nactions+=/scorch,if=talent.searing_touch.enabled&target.health.pct<30&target.time_to_die>cast_time\nactions+=/fire_blast,use_while_casting=1,use_off_gcd=1,if=time_to_die<action.scorch.cast\nactions+=/fireball,if=buff.combustion.down\nactions+=/scorch,moving=1",
["spec"] = 63,
},
["Arcane"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200301,
["spec"] = 62,
["desc"] = "# Arcane Mage\n# https://github.com/simulationcraft/simc/\n# March 1, 2020\n\n# Changes:\n# - start_burn_phase, stop_burn_phase, and average_burn_length are handled by the addon.\n# - target.time_to_die -> (time_to_die) so that we don't excessively burn on trash if we don't want to.\n# - Update potion logic.",
["lists"] = {
["conserve"] = {
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 0",
["action"] = "charged_up",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "nether_tempest",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack <= 2 & ( cooldown.arcane_power.remains > 10 || active_enemies <= 2 )",
["action"] = "arcane_orb",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rule_of_threes.up & buff.arcane_charge.stack > 3",
["action"] = "arcane_blast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & ! buff.arcane_power.react & cooldown.arcane_power.remains > 20",
["name"] = "tidestorm_codex",
["action"] = "tidestorm_codex",
}, -- [6]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.rune_of_power.down & ! buff.arcane_power.react & cooldown.arcane_power.remains > 20",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & ( full_recharge_time <= execute_time || full_recharge_time <= cooldown.arcane_power.remains || time_to_die <= cooldown.arcane_power.remains )",
["action"] = "rune_of_power",
}, -- [8]
{
["enabled"] = true,
["chain"] = "1",
["criteria"] = "mana.pct <= 95 & buff.clearcasting.react & active_enemies < 3",
["action"] = "arcane_missiles",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( ( buff.arcane_charge.stack = buff.arcane_charge.max_stack ) & ( ( mana.pct <= variable.conserve_mana ) || ( talent.rune_of_power.enabled & cooldown.arcane_power.remains > cooldown.rune_of_power.full_recharge_time & mana.pct <= variable.conserve_mana + 25 ) ) || ( talent.arcane_orb.enabled & cooldown.arcane_orb.remains <= gcd & cooldown.arcane_power.remains > 10 ) ) || mana.pct <= ( variable.conserve_mana - 10 )",
["action"] = "arcane_barrage",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "mana.pct <= 95",
["action"] = "supernova",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ( mana.pct >= variable.conserve_mana || buff.arcane_charge.stack = 3 )",
["action"] = "arcane_explosion",
}, -- [12]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [13]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [14]
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["action"] = "spellsteal",
["enabled"] = true,
}, -- [2]
{
["action"] = "remove_curse",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down & ( cooldown.arcane_power.remains <= 4 + 10 * variable.font_double_on_use & cooldown.evocation.remains <= variable.average_burn_length + 4 + 10 * variable.font_double_on_use || time_to_die < cooldown.arcane_power.remains )",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "burn_phase || ( time_to_die < average_burn_length )",
["action"] = "call_action_list",
["list_name"] = "burn",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( cooldown.arcane_power.remains = 0 & cooldown.evocation.remains <= average_burn_length & ( buff.arcane_charge.stack = buff.arcane_charge.max_stack || ( talent.charged_up.enabled & cooldown.charged_up.remains = 0 & buff.arcane_charge.stack <= 1 ) ) )",
["action"] = "call_action_list",
["list_name"] = "burn",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! burn_phase",
["action"] = "call_action_list",
["list_name"] = "conserve",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [9]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["action"] = "summon_arcane_familiar",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "60 + 20 * azerite.equipoise.enabled",
["var_name"] = "conserve_mana",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.azsharas_font_of_power & ( equipped.manifesto_of_madness || equipped.gladiators_badge || equipped.gladiators_medallion || equipped.ignition_mages_fuse || equipped.tzanes_barkspines || equipped.azurethos_singed_plumage || equipped.ancient_knot_of_wisdom || equipped.shockbiters_fang || equipped.neural_synapse_enhancer || equipped.balefire_branch )",
["var_name"] = "font_double_on_use",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "12",
["criteria"] = "variable.font_double_on_use & variable.font_of_power_precombat_channel = 0",
["var_name"] = "font_of_power_precombat_channel",
}, -- [5]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [6]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [7]
{
["action"] = "potion",
["enabled"] = true,
}, -- [8]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [9]
},
["burn"] = {
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack <= 1",
["action"] = "charged_up",
}, -- [1]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "nether_tempest",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rule_of_threes.up & talent.overpowered.enabled & active_enemies < 3",
["action"] = "arcane_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.down",
["action"] = "lights_judgment",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.down",
["action"] = "bag_of_tricks",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.arcane_power.up & ( mana.pct >= 50 || cooldown.arcane_power.remains = 0 ) & ( buff.arcane_charge.stack = buff.arcane_charge.max_stack )",
["action"] = "rune_of_power",
}, -- [7]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [8]
{
["action"] = "arcane_power",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.up || time_to_die < cooldown.arcane_power.remains",
["action"] = "use_items",
}, -- [10]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [11]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [12]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( talent.rune_of_power.enabled & buff.rune_of_power.remains <= buff.presence_of_mind.max_stack * action.arcane_blast.execute_time ) || buff.arcane_power.remains <= buff.presence_of_mind.max_stack * action.arcane_blast.execute_time",
["action"] = "presence_of_mind",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.up & ( ( ! essence.condensed_lifeforce.major || essence.condensed_lifeforce.rank < 2 ) & ( buff.berserking.up || buff.blood_fury.up || ! ( race.troll || race.orc ) ) || buff.guardian_of_azeroth.up ) || time_to_die < cooldown.arcane_power.remains",
["action"] = "potion",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 0 || ( active_enemies < 3 || ( active_enemies < 2 & talent.resonance.enabled ) )",
["action"] = "arcane_orb",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ( buff.arcane_charge.stack = buff.arcane_charge.max_stack )",
["action"] = "arcane_barrage",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "arcane_explosion",
}, -- [18]
{
["enabled"] = true,
["chain"] = "1",
["criteria"] = "buff.clearcasting.react & active_enemies < 3 & ( talent.amplification.enabled || ( ! talent.overpowered.enabled & azerite.arcane_pummeling.rank >= 2 ) || buff.arcane_power.down )",
["action"] = "arcane_missiles",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "arcane_blast",
}, -- [20]
{
["interrupt_if"] = "mana.pct>=85",
["interrupt_immediate"] = "1",
["action"] = "evocation",
["enabled"] = true,
}, -- [21]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [22]
},
["movement"] = {
{
["enabled"] = true,
["criteria"] = "movement.distance >= 10",
["action"] = "blink",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "movement.distance >= 10",
["action"] = "blink",
}, -- [2]
{
["action"] = "presence_of_mind",
["enabled"] = true,
}, -- [3]
{
["action"] = "arcane_missiles",
["enabled"] = true,
}, -- [4]
{
["action"] = "arcane_orb",
["enabled"] = true,
}, -- [5]
{
["action"] = "supernova",
["enabled"] = true,
}, -- [6]
},
["essences"] = {
{
["enabled"] = true,
["criteria"] = "burn_phase & buff.arcane_power.down & buff.rune_of_power.down & buff.arcane_charge.stack = buff.arcane_charge.max_stack || time_to_die < cooldown.arcane_power.remains",
["action"] = "blood_of_the_enemy",
}, -- [1]
{
["enabled"] = true,
["action"] = "concentrated_flame",
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down & ( ! burn_phase || time_to_die < cooldown.arcane_power.remains ) & mana.time_to_max >= execute_time",
["line_cd"] = "6",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down & ( ! burn_phase || time_to_die < cooldown.arcane_power.remains ) & mana.time_to_max >= execute_time",
["action"] = "reaping_flames",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "focused_azerite_beam",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "guardian_of_azeroth",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "purifying_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "ripple_in_space",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "the_unbound_force",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! burn_phase & buff.arcane_power.down & cooldown.arcane_power.remains & buff.arcane_charge.stack = buff.arcane_charge.max_stack & ( ! talent.rune_of_power.enabled || action.rune_of_power.charges ) || time_to_die < cooldown.arcane_power.remains",
["action"] = "memory_of_lucid_dreams",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "burn_phase & buff.arcane_power.down & buff.rune_of_power.down & buff.arcane_charge.stack = buff.arcane_charge.max_stack || time_to_die < cooldown.arcane_power.remains",
["action"] = "worldvein_resonance",
}, -- [10]
},
},
["version"] = 20200301,
["warnings"] = "Imported 6 action lists.\n",
["profile"] = "# Arcane Mage\n# https://github.com/simulationcraft/simc/\n# March 1, 2020\n\n# Changes:\n# - start_burn_phase, stop_burn_phase, and average_burn_length are handled by the addon.\n# - target.time_to_die -> (time_to_die) so that we don't excessively burn on trash if we don't want to.\n# - Update potion logic.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/arcane_intellect\nactions.precombat+=/arcane_familiar\n# conserve_mana is the mana percentage we want to go down to during conserve. It needs to leave enough room to worst case scenario spam AB only during AP.\nactions.precombat+=/variable,name=conserve_mana,op=set,value=60+20*azerite.equipoise.enabled\nactions.precombat+=/variable,name=font_double_on_use,op=set,value=equipped.azsharas_font_of_power&(equipped.manifesto_of_madness||equipped.gladiators_badge||equipped.gladiators_medallion||equipped.ignition_mages_fuse||equipped.tzanes_barkspines||equipped.azurethos_singed_plumage||equipped.ancient_knot_of_wisdom||equipped.shockbiters_fang||equipped.neural_synapse_enhancer||equipped.balefire_branch)\nactions.precombat+=/variable,name=font_of_power_precombat_channel,op=set,value=12,if=variable.font_double_on_use&variable.font_of_power_precombat_channel=0\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mirror_image\nactions.precombat+=/potion\nactions.precombat+=/arcane_blast\n\n# Executed every time the actor is available.\nactions=counterspell\nactions+=/spellsteal\nactions+=/remove_curse\nactions+=/call_action_list,name=essences\nactions+=/use_item,name=azsharas_font_of_power,if=buff.rune_of_power.down&buff.arcane_power.down&(cooldown.arcane_power.remains<=4+10*variable.font_double_on_use&cooldown.evocation.remains<=variable.average_burn_length+4+10*variable.font_double_on_use||time_to_die<cooldown.arcane_power.remains)\n# Go to Burn Phase when already burning, or when boss will die soon.\nactions+=/call_action_list,name=burn,if=burn_phase||(time_to_die<average_burn_length)\n# Start Burn Phase when Arcane Power is ready and Evocation will be ready (on average) before the burn phase is over. Also make sure we got 4 Arcane Charges, or can get 4 Arcane Charges with Charged Up.\nactions+=/call_action_list,name=burn,if=(cooldown.arcane_power.remains=0&cooldown.evocation.remains<=average_burn_length&(buff.arcane_charge.stack=buff.arcane_charge.max_stack||(talent.charged_up.enabled&cooldown.charged_up.remains=0&buff.arcane_charge.stack<=1)))\nactions+=/call_action_list,name=conserve,if=!burn_phase\nactions+=/call_action_list,name=movement\n\n# Increment our burn phase counter. Whenever we enter the `burn` actions without being in a burn phase, it means that we are about to start one.\n# actions.burn=variable,name=total_burns,op=add,value=1,if=!burn_phase\n# actions.burn+=/start_burn_phase,if=!burn_phase\n# End the burn phase when we just evocated.\n# actions.burn+=/stop_burn_phase,if=burn_phase&prev_gcd.1.evocation&(time_to_die)>variable.average_burn_length&burn_phase_duration>0\n# Less than 1 instead of equals to 0, because of pre-cast Arcane Blast\nactions.burn+=/charged_up,if=buff.arcane_charge.stack<=1\nactions.burn+=/mirror_image\nactions.burn+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.rune_of_power.down&buff.arcane_power.down\n# When running Overpowered, and we got a Rule of Threes proc (AKA we got our 4th Arcane Charge via Charged Up), use it before using RoP+AP, because the mana reduction is otherwise largely wasted since the AB was free anyway.\nactions.burn+=/arcane_blast,if=buff.rule_of_threes.up&talent.overpowered.enabled&active_enemies<3\nactions.burn+=/lights_judgment,if=buff.arcane_power.down\nactions.burn+=/bag_of_tricks,if=buff.arcane_power.down\nactions.burn+=/rune_of_power,if=!buff.arcane_power.up&(mana.pct>=50||cooldown.arcane_power.remains=0)&(buff.arcane_charge.stack=buff.arcane_charge.max_stack)\nactions.burn+=/berserking\nactions.burn+=/arcane_power\nactions.burn+=/use_items,if=buff.arcane_power.up||time_to_die<cooldown.arcane_power.remains\nactions.burn+=/blood_fury\nactions.burn+=/fireblood\nactions.burn+=/ancestral_call\nactions.burn+=/presence_of_mind,if=(talent.rune_of_power.enabled&buff.rune_of_power.remains<=buff.presence_of_mind.max_stack*action.arcane_blast.execute_time)||buff.arcane_power.remains<=buff.presence_of_mind.max_stack*action.arcane_blast.execute_time\nactions.burn+=/potion,if=buff.arcane_power.up&((!essence.condensed_lifeforce.major||essence.condensed_lifeforce.rank<2)&(buff.berserking.up||buff.blood_fury.up||!(race.troll||race.orc))||buff.guardian_of_azeroth.up)||time_to_die<cooldown.arcane_power.remains\nactions.burn+=/arcane_orb,if=buff.arcane_charge.stack=0||(active_enemies<3||(active_enemies<2&talent.resonance.enabled))\nactions.burn+=/arcane_barrage,if=active_enemies>=3&(buff.arcane_charge.stack=buff.arcane_charge.max_stack)\nactions.burn+=/arcane_explosion,if=active_enemies>=3\n# Ignore Arcane Missiles during Arcane Power, aside from some very specific exceptions, like not having Overpowered talented & running 3x Arcane Pummeling.\nactions.burn+=/arcane_missiles,if=buff.clearcasting.react&active_enemies<3&(talent.amplification.enabled||(!talent.overpowered.enabled&azerite.arcane_pummeling.rank>=2)||buff.arcane_power.down),chain=1\nactions.burn+=/arcane_blast,if=active_enemies<3\n# Now that we're done burning, we can update the average_burn_length with the length of this burn.\n# actions.burn+=/variable,name=average_burn_length,op=set,value=(variable.average_burn_length*variable.total_burns-variable.average_burn_length+(burn_phase_duration))%variable.total_burns\nactions.burn+=/evocation,interrupt_if=mana.pct>=85,interrupt_immediate=1\n# For the rare occasion where we go oom before evocation is back up. (Usually because we get very bad rng so the burn is cut very short)\nactions.burn+=/arcane_barrage\n\nactions.conserve=mirror_image\nactions.conserve+=/charged_up,if=buff.arcane_charge.stack=0\nactions.conserve+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.rune_of_power.down&buff.arcane_power.down\nactions.conserve+=/arcane_orb,if=buff.arcane_charge.stack<=2&(cooldown.arcane_power.remains>10||active_enemies<=2)\n# Arcane Blast shifts up in priority when running rule of threes.\nactions.conserve+=/arcane_blast,if=buff.rule_of_threes.up&buff.arcane_charge.stack>3\nactions.conserve+=/use_item,name=tidestorm_codex,if=buff.rune_of_power.down&!buff.arcane_power.react&cooldown.arcane_power.remains>20\nactions.conserve+=/use_item,effect_name=cyclotronic_blast,if=buff.rune_of_power.down&!buff.arcane_power.react&cooldown.arcane_power.remains>20\nactions.conserve+=/rune_of_power,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&(full_recharge_time<=execute_time||full_recharge_time<=cooldown.arcane_power.remains||time_to_die<=cooldown.arcane_power.remains)\nactions.conserve+=/arcane_missiles,if=mana.pct<=95&buff.clearcasting.react&active_enemies<3,chain=1\n# During conserve, we still just want to continue not dropping charges as long as possible.So keep 'burning' as long as possible (aka conserve_mana threshhold) and then swap to a 4x AB->Abarr conserve rotation. If we do not have 4 AC, we can dip slightly lower to get a 4th AC. We also sustain at a higher mana percentage when we plan to use a Rune of Power during conserve phase, so we can burn during the Rune of Power.\nactions.conserve+=/arcane_barrage,if=((buff.arcane_charge.stack=buff.arcane_charge.max_stack)&((mana.pct<=variable.conserve_mana)||(talent.rune_of_power.enabled&cooldown.arcane_power.remains>cooldown.rune_of_power.full_recharge_time&mana.pct<=variable.conserve_mana+25))||(talent.arcane_orb.enabled&cooldown.arcane_orb.remains<=gcd&cooldown.arcane_power.remains>10))||mana.pct<=(variable.conserve_mana-10)\n# Supernova is barely worth casting, which is why it is so far down, only just above AB. \nactions.conserve+=/supernova,if=mana.pct<=95\n# Keep 'burning' in aoe situations until conserve_mana pct. After that only cast AE with 3 Arcane charges, since it's almost equal mana cost to a 3 stack AB anyway. At that point AoE rotation will be AB x3->AE->Abarr\nactions.conserve+=/arcane_explosion,if=active_enemies>=3&(mana.pct>=variable.conserve_mana||buff.arcane_charge.stack=3)\nactions.conserve+=/arcane_blast\nactions.conserve+=/arcane_barrage\n\nactions.essences=blood_of_the_enemy,if=burn_phase&buff.arcane_power.down&buff.rune_of_power.down&buff.arcane_charge.stack=buff.arcane_charge.max_stack||time_to_die<cooldown.arcane_power.remains\nactions.essences+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down&buff.arcane_power.down&(!burn_phase||time_to_die<cooldown.arcane_power.remains)&mana.time_to_max>=execute_time\nactions.essences+=/reaping_flames,if=buff.rune_of_power.down&buff.arcane_power.down&(!burn_phase||time_to_die<cooldown.arcane_power.remains)&mana.time_to_max>=execute_time\nactions.essences+=/focused_azerite_beam,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/guardian_of_azeroth,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/purifying_blast,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/ripple_in_space,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/the_unbound_force,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/memory_of_lucid_dreams,if=!burn_phase&buff.arcane_power.down&cooldown.arcane_power.remains&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(!talent.rune_of_power.enabled||action.rune_of_power.charges)||time_to_die<cooldown.arcane_power.remains\nactions.essences+=/worldvein_resonance,if=burn_phase&buff.arcane_power.down&buff.rune_of_power.down&buff.arcane_charge.stack=buff.arcane_charge.max_stack||time_to_die<cooldown.arcane_power.remains\n\nactions.movement=shimmer,if=movement.distance>=10\nactions.movement+=/blink,if=movement.distance>=10\nactions.movement+=/presence_of_mind\nactions.movement+=/arcane_missiles\nactions.movement+=/arcane_orb\nactions.movement+=/supernova",
["author"] = "SimulationCraft",
},
},
},
["Quillick - Thunderhorn"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetRogueMfDOption_20200226"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[73] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["free_revenge"] = true,
},
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Protection Warrior",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
[71] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Arms",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
[72] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["check_ww_range"] = false,
},
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Fury",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["throttleTime"] = false,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Arms"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["author"] = "SimulationCraft",
["desc"] = "# Arms Warrior\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Pummel.\n# - Added Victory Rush/Impending Victory.\n# - Added Battle Shout to precombat APL.\n# - Executioner's Precision is deleted.\n# - Added Use Items.",
["lists"] = {
["single_target"] = {
{
["enabled"] = true,
["criteria"] = "rage < 56 & buff.deadly_calm.down & buff.memory_of_lucid_dreams.down",
["action"] = "skullsplitter",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.deadly_calm.up & ( cooldown.colossus_smash.remains < 2 || ( talent.warbreaker.enabled & cooldown.warbreaker.remains < 2 ) )",
["action"] = "ravager",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! essence.condensed_lifeforce.enabled & ! talent.massacre.enabled & ( target.time_to_pct_20 > 10 || fight_remains > 50 ) || essence.condensed_lifeforce.enabled & ! talent.massacre.enabled & ( target.time_to_pct_20 > 10 || fight_remains > 80 ) || talent.massacre.enabled & ( target.time_to_pct_35 > 10 || fight_remains > 50 )",
["action"] = "colossus_smash",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! essence.condensed_lifeforce.enabled & ! talent.massacre.enabled & ( target.time_to_pct_20 > 10 || fight_remains > 50 ) || essence.condensed_lifeforce.enabled & ! talent.massacre.enabled & ( target.time_to_pct_20 > 10 || fight_remains > 80 ) || talent.massacre.enabled & ( target.time_to_pct_35 > 10 || fight_remains > 50 )",
["action"] = "warbreaker",
}, -- [4]
{
["action"] = "deadly_calm",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.react",
["action"] = "execute",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "cooldown.mortal_strike.remains & debuff.colossus_smash.down & ( ! talent.deadly_calm.enabled || buff.deadly_calm.down ) & ( ( debuff.colossus_smash.up & ! azerite.test_of_might.enabled ) || buff.test_of_might.up ) & buff.memory_of_lucid_dreams.down & rage < 40",
["action"] = "bladestorm",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 2",
["action"] = "cleave",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( ! talent.rend.enabled & dot.deep_wounds.remains & rage < 70 & buff.memory_of_lucid_dreams.down & debuff.colossus_smash.down ) || ( talent.rend.enabled & dot.deep_wounds.remains & dot.rend.remains > gcd & rage < 70 & buff.memory_of_lucid_dreams.down & debuff.colossus_smash.down )",
["action"] = "overpower",
}, -- [9]
{
["action"] = "mortal_strike",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "remains <= duration * 0.3",
["action"] = "rend",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( ( ( buff.memory_of_lucid_dreams.up ) || ( debuff.colossus_smash.up ) || ( buff.deadly_calm.up ) ) & talent.fervor_of_battle.enabled ) || ( ( buff.memory_of_lucid_dreams.up || rage > 89 ) & debuff.colossus_smash.up & buff.test_of_might.down & ! talent.fervor_of_battle.enabled )",
["action"] = "whirlwind",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! talent.fervor_of_battle.enabled & ( buff.memory_of_lucid_dreams.up || debuff.colossus_smash.up )",
["action"] = "slam",
}, -- [13]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled & ( buff.test_of_might.up || debuff.colossus_smash.down & buff.test_of_might.down & rage > 60 )",
["action"] = "whirlwind",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! talent.fervor_of_battle.enabled",
["action"] = "slam",
}, -- [16]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [17]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [18]
},
["default"] = {
{
["action"] = "charge",
["enabled"] = true,
}, -- [1]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( target.health.pct < 21 || talent.massacre.enabled & target.health.pct < 36 ) & ( buff.memory_of_lucid_dreams.up || buff.guardian_of_azeroth.up ) || ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major & ( target.health.pct < 21 || talent.massacre.enabled & target.health.pct < 36 ) & debuff.colossus_smash.up || fight_remains < 25",
["action"] = "potion",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up & buff.test_of_might.up || buff.guardian_of_azeroth.up & debuff.colossus_smash.up || buff.seething_rage.up || ( ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major & ! essence.blood_of_the_enemy.major & debuff.colossus_smash.up )",
["action"] = "blood_fury",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up & buff.test_of_might.up || buff.guardian_of_azeroth.up & debuff.colossus_smash.up || buff.seething_rage.up || ( ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major & ! essence.blood_of_the_enemy.major & debuff.colossus_smash.up )",
["action"] = "berserking",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.down & rage < 50 & ( cooldown.mortal_strike.remains > gcd || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) )",
["action"] = "arcane_torrent",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down",
["action"] = "lights_judgment",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up & buff.test_of_might.up || buff.guardian_of_azeroth.up & debuff.colossus_smash.up || buff.seething_rage.up || ( ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major & ! essence.blood_of_the_enemy.major & debuff.colossus_smash.up )",
["action"] = "fireblood",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up & buff.test_of_might.up || buff.guardian_of_azeroth.up & debuff.colossus_smash.up || buff.seething_rage.up || ( ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major & ! essence.blood_of_the_enemy.major & debuff.colossus_smash.up )",
["action"] = "ancestral_call",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & buff.memory_of_lucid_dreams.down & cooldown.mortal_strike.remains",
["action"] = "bag_of_tricks",
}, -- [10]
{
["enabled"] = true,
["action"] = "ashvanes_razor_coral",
["criteria"] = "! debuff.razor_coral_debuff.up || ( ( target.health.pct < 20.1 || talent.massacre.enabled & target.health.pct < 35.1 ) & ( buff.memory_of_lucid_dreams.up & ( cooldown.memory_of_lucid_dreams.remains < 106 || cooldown.memory_of_lucid_dreams.remains < 117 & fight_remains < 20 & ! talent.massacre.enabled ) || buff.guardian_of_azeroth.up & debuff.colossus_smash.up ) ) || essence.condensed_lifeforce.major & target.health.pct < 20 || ( target.health.pct < 30.1 & debuff.conductive_ink_debuff.up & ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major ) || ( ! debuff.conductive_ink_debuff.up & ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major & debuff.colossus_smash.up )",
["name"] = "ashvanes_razor_coral",
}, -- [11]
{
["enabled"] = true,
["action"] = "azsharas_font_of_power",
["criteria"] = "time_to_die < 70 & ( cooldown.colossus_smash.remains < 12 || ( talent.warbreaker.enabled & cooldown.warbreaker.remains < 12 ) ) || ! debuff.colossus_smash.up & ! buff.test_of_might.up & ! buff.memory_of_lucid_dreams.up & time_to_die > 150",
["name"] = "azsharas_font_of_power",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains < 8 || ( talent.warbreaker.enabled & cooldown.warbreaker.remains < 8 )",
["action"] = "avatar",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains < 8 || ( talent.warbreaker.enabled & cooldown.warbreaker.remains < 8 )",
["action"] = "use_items",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1 & ( cooldown.bladestorm.remains > 10 || cooldown.colossus_smash.remains > 8 || azerite.test_of_might.enabled )",
["action"] = "sweeping_strikes",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( buff.test_of_might.up || ( debuff.colossus_smash.up & ! azerite.test_of_might.enabled ) ) & ( fight_remains > 90 || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) )",
["action"] = "blood_of_the_enemy",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! debuff.colossus_smash.up & ! buff.test_of_might.up",
["action"] = "purifying_blast",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! debuff.colossus_smash.up & ! buff.test_of_might.up",
["action"] = "ripple_in_space",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! debuff.colossus_smash.up & ! buff.test_of_might.up",
["action"] = "worldvein_resonance",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! debuff.colossus_smash.up & ! buff.test_of_might.up",
["action"] = "focused_azerite_beam",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "! debuff.colossus_smash.up & ! buff.test_of_might.up",
["action"] = "reaping_flames",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "! debuff.colossus_smash.up & ! buff.test_of_might.up & dot.concentrated_flame_burn.remains = 0",
["action"] = "concentrated_flame",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "! talent.warbreaker.enabled & cooldown.colossus_smash.remains < 5 & ( fight_remains > 210 || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) || fight_remains < 31 )",
["action"] = "guardian_of_azeroth",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "talent.warbreaker.enabled & cooldown.warbreaker.remains < 5 & ( fight_remains > 210 || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) || fight_remains < 31 )",
["action"] = "guardian_of_azeroth",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "! talent.warbreaker.enabled & cooldown.colossus_smash.remains < 1 & ( fight_remains > 150 || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) )",
["action"] = "memory_of_lucid_dreams",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "talent.warbreaker.enabled & cooldown.warbreaker.remains < 1 & ( fight_remains > 150 || ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) )",
["action"] = "memory_of_lucid_dreams",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 4",
["action"] = "run_action_list",
["list_name"] = "five_target",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "( talent.massacre.enabled & target.health.pct < 35 ) || target.health.pct < 20",
["action"] = "run_action_list",
["list_name"] = "execute",
}, -- [29]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "single_target",
}, -- [30]
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled || ! talent.fervor_of_battle.enabled & time_to_die > 150",
["action"] = "memory_of_lucid_dreams",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled || talent.massacre.enabled & time_to_die > 210 || talent.rend.enabled & ( time_to_die > 210 || time_to_die < 145 )",
["action"] = "guardian_of_azeroth",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "essence.condensed_lifeforce.major",
["potion"] = "potion_of_unbridled_fury",
["action"] = "potion",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major",
["potion"] = "potion_of_focused_resolve",
["action"] = "potion",
}, -- [6]
{
["action"] = "potion",
["enabled"] = true,
}, -- [7]
},
["execute"] = {
{
["enabled"] = true,
["criteria"] = "rage < 52 & buff.deadly_calm.down & buff.memory_of_lucid_dreams.down",
["action"] = "skullsplitter",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.deadly_calm.up & ( cooldown.colossus_smash.remains < 2 || ( talent.warbreaker.enabled & cooldown.warbreaker.remains < 2 ) )",
["action"] = "ravager",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! essence.memory_of_lucid_dreams.major || ( buff.memory_of_lucid_dreams.up || cooldown.memory_of_lucid_dreams.remains > 10 )",
["action"] = "colossus_smash",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! essence.memory_of_lucid_dreams.major || ( buff.memory_of_lucid_dreams.up || cooldown.memory_of_lucid_dreams.remains > 10 )",
["action"] = "warbreaker",
}, -- [4]
{
["action"] = "deadly_calm",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! buff.memory_of_lucid_dreams.up & buff.test_of_might.up & rage < 30 & ! buff.deadly_calm.up",
["action"] = "bladestorm",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 2",
["action"] = "cleave",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.crushing_assault.up & buff.memory_of_lucid_dreams.down",
["action"] = "slam",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "remains <= duration * 0.3 & target.time_to_die > 7",
["action"] = "rend",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.overpower.stack = 2 & talent.dreadnaught.enabled",
["action"] = "mortal_strike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up || buff.deadly_calm.up || debuff.colossus_smash.up || buff.test_of_might.up",
["action"] = "execute",
}, -- [11]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [12]
{
["action"] = "execute",
["enabled"] = true,
}, -- [13]
},
["five_target"] = {
{
["enabled"] = true,
["criteria"] = "rage < 60 & ( ! talent.deadly_calm.enabled || buff.deadly_calm.down )",
["action"] = "skullsplitter",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! talent.warbreaker.enabled || cooldown.warbreaker.remains < 2 )",
["action"] = "ravager",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down",
["action"] = "colossus_smash",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down",
["action"] = "warbreaker",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.down & ( ! talent.deadly_calm.enabled || buff.deadly_calm.down ) & ( ( debuff.colossus_smash.remains > 4.5 & ! azerite.test_of_might.enabled ) || buff.test_of_might.up )",
["action"] = "bladestorm",
}, -- [5]
{
["action"] = "deadly_calm",
["enabled"] = true,
}, -- [6]
{
["action"] = "cleave",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( ! talent.cleave.enabled & dot.deep_wounds.remains < 2 ) || ( buff.sudden_death.react || buff.stone_heart.react ) & ( buff.sweeping_strikes.up || cooldown.sweeping_strikes.remains > 8 )",
["action"] = "execute",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( ! talent.cleave.enabled & dot.deep_wounds.remains < 2 ) || buff.sweeping_strikes.up & buff.overpower.stack = 2 & talent.dreadnaught.enabled",
["action"] = "mortal_strike",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up || ( buff.crushing_assault.up & talent.fervor_of_battle.enabled )",
["action"] = "whirlwind",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.deadly_calm.up || rage > 60",
["action"] = "whirlwind",
}, -- [11]
{
["action"] = "overpower",
["enabled"] = true,
}, -- [12]
{
["action"] = "whirlwind",
["enabled"] = true,
}, -- [13]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [14]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [15]
},
},
["version"] = 20200614,
["warnings"] = "Imported 5 action lists.\n",
["profile"] = "# Arms Warrior\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Pummel.\n# - Added Victory Rush/Impending Victory.\n# - Added Battle Shout to precombat APL.\n# - Executioner's Precision is deleted.\n# - Added Use Items.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/memory_of_lucid_dreams,if=talent.fervor_of_battle.enabled||!talent.fervor_of_battle.enabled&time_to_die>150\nactions.precombat+=/guardian_of_azeroth,if=talent.fervor_of_battle.enabled||talent.massacre.enabled&time_to_die>210||talent.rend.enabled&(time_to_die>210||time_to_die<145)\nactions.precombat+=/potion,name=potion_of_unbridled_fury,if=essence.condensed_lifeforce.major\nactions.precombat+=/potion,name=potion_of_focused_resolve,if=essence.memory_of_lucid_dreams.major\nactions.precombat+=/potion\n\n# Executed every time the actor is available.\nactions=charge\nactions+=/pummel\nactions+=/potion,if=(target.health.pct<21||talent.massacre.enabled&target.health.pct<36)&(buff.memory_of_lucid_dreams.up||buff.guardian_of_azeroth.up)||!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major&(target.health.pct<21||talent.massacre.enabled&target.health.pct<36)&debuff.colossus_smash.up||fight_remains<25\nactions+=/blood_fury,if=buff.memory_of_lucid_dreams.up&buff.test_of_might.up||buff.guardian_of_azeroth.up&debuff.colossus_smash.up||buff.seething_rage.up||(!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major&!essence.blood_of_the_enemy.major&debuff.colossus_smash.up)\nactions+=/berserking,if=buff.memory_of_lucid_dreams.up&buff.test_of_might.up||buff.guardian_of_azeroth.up&debuff.colossus_smash.up||buff.seething_rage.up||(!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major&!essence.blood_of_the_enemy.major&debuff.colossus_smash.up)\nactions+=/arcane_torrent,if=buff.memory_of_lucid_dreams.down&rage<50&(cooldown.mortal_strike.remains>gcd||(target.health.pct<20||talent.massacre.enabled&target.health.pct<35))\nactions+=/lights_judgment,if=debuff.colossus_smash.down\nactions+=/fireblood,if=buff.memory_of_lucid_dreams.up&buff.test_of_might.up||buff.guardian_of_azeroth.up&debuff.colossus_smash.up||buff.seething_rage.up||(!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major&!essence.blood_of_the_enemy.major&debuff.colossus_smash.up)\nactions+=/ancestral_call,if=buff.memory_of_lucid_dreams.up&buff.test_of_might.up||buff.guardian_of_azeroth.up&debuff.colossus_smash.up||buff.seething_rage.up||(!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major&!essence.blood_of_the_enemy.major&debuff.colossus_smash.up)\nactions+=/bag_of_tricks,if=debuff.colossus_smash.down&buff.memory_of_lucid_dreams.down&cooldown.mortal_strike.remains\nactions+=/use_item,name=ashvanes_razor_coral,if=!debuff.razor_coral_debuff.up||((target.health.pct<20.1||talent.massacre.enabled&target.health.pct<35.1)&(buff.memory_of_lucid_dreams.up&(cooldown.memory_of_lucid_dreams.remains<106||cooldown.memory_of_lucid_dreams.remains<117&fight_remains<20&!talent.massacre.enabled)||buff.guardian_of_azeroth.up&debuff.colossus_smash.up))||essence.condensed_lifeforce.major&target.health.pct<20||(target.health.pct<30.1&debuff.conductive_ink_debuff.up&!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major)||(!debuff.conductive_ink_debuff.up&!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major&debuff.colossus_smash.up)\nactions+=/use_item,name=azsharas_font_of_power,if=time_to_die<70&(cooldown.colossus_smash.remains<12||(talent.warbreaker.enabled&cooldown.warbreaker.remains<12))||!debuff.colossus_smash.up&!buff.test_of_might.up&!buff.memory_of_lucid_dreams.up&time_to_die>150\nactions+=/avatar,if=cooldown.colossus_smash.remains<8||(talent.warbreaker.enabled&cooldown.warbreaker.remains<8)\nactions+=/use_items,if=cooldown.colossus_smash.remains<8||(talent.warbreaker.enabled&cooldown.warbreaker.remains<8)\nactions+=/sweeping_strikes,if=spell_targets.whirlwind>1&(cooldown.bladestorm.remains>10||cooldown.colossus_smash.remains>8||azerite.test_of_might.enabled)\nactions+=/blood_of_the_enemy,if=(buff.test_of_might.up||(debuff.colossus_smash.up&!azerite.test_of_might.enabled))&(fight_remains>90||(target.health.pct<20||talent.massacre.enabled&target.health.pct<35))\nactions+=/purifying_blast,if=!debuff.colossus_smash.up&!buff.test_of_might.up\nactions+=/ripple_in_space,if=!debuff.colossus_smash.up&!buff.test_of_might.up\nactions+=/worldvein_resonance,if=!debuff.colossus_smash.up&!buff.test_of_might.up\nactions+=/focused_azerite_beam,if=!debuff.colossus_smash.up&!buff.test_of_might.up\nactions+=/reaping_flames,if=!debuff.colossus_smash.up&!buff.test_of_might.up\nactions+=/concentrated_flame,if=!debuff.colossus_smash.up&!buff.test_of_might.up&dot.concentrated_flame_burn.remains=0\nactions+=/the_unbound_force,if=buff.reckless_force.up\nactions+=/guardian_of_azeroth,if=!talent.warbreaker.enabled&cooldown.colossus_smash.remains<5&(fight_remains>210||(target.health.pct<20||talent.massacre.enabled&target.health.pct<35)||fight_remains<31)\nactions+=/guardian_of_azeroth,if=talent.warbreaker.enabled&cooldown.warbreaker.remains<5&(fight_remains>210||(target.health.pct<20||talent.massacre.enabled&target.health.pct<35)||fight_remains<31)\nactions+=/memory_of_lucid_dreams,if=!talent.warbreaker.enabled&cooldown.colossus_smash.remains<1&(fight_remains>150||(target.health.pct<20||talent.massacre.enabled&target.health.pct<35))\nactions+=/memory_of_lucid_dreams,if=talent.warbreaker.enabled&cooldown.warbreaker.remains<1&(fight_remains>150||(target.health.pct<20||talent.massacre.enabled&target.health.pct<35))\nactions+=/run_action_list,name=five_target,if=spell_targets.whirlwind>4\nactions+=/run_action_list,name=execute,if=(talent.massacre.enabled&target.health.pct<35)||target.health.pct<20\nactions+=/run_action_list,name=single_target\n\nactions.execute=skullsplitter,if=rage<52&buff.deadly_calm.down&buff.memory_of_lucid_dreams.down\nactions.execute+=/ravager,if=!buff.deadly_calm.up&(cooldown.colossus_smash.remains<2||(talent.warbreaker.enabled&cooldown.warbreaker.remains<2))\nactions.execute+=/colossus_smash,if=!essence.memory_of_lucid_dreams.major||(buff.memory_of_lucid_dreams.up||cooldown.memory_of_lucid_dreams.remains>10)\nactions.execute+=/warbreaker,if=!essence.memory_of_lucid_dreams.major||(buff.memory_of_lucid_dreams.up||cooldown.memory_of_lucid_dreams.remains>10)\nactions.execute+=/deadly_calm\nactions.execute+=/bladestorm,if=!buff.memory_of_lucid_dreams.up&buff.test_of_might.up&rage<30&!buff.deadly_calm.up\nactions.execute+=/cleave,if=spell_targets.whirlwind>2\nactions.execute+=/slam,if=buff.crushing_assault.up&buff.memory_of_lucid_dreams.down\nactions.execute+=/rend,if=remains<=duration*0.3&target.time_to_die>7\nactions.execute+=/mortal_strike,if=buff.overpower.stack=2&talent.dreadnaught.enabled\nactions.execute+=/execute,if=buff.memory_of_lucid_dreams.up||buff.deadly_calm.up||debuff.colossus_smash.up||buff.test_of_might.up\nactions.execute+=/overpower\nactions.execute+=/execute\n\nactions.five_target=skullsplitter,if=rage<60&(!talent.deadly_calm.enabled||buff.deadly_calm.down)\nactions.five_target+=/ravager,if=(!talent.warbreaker.enabled||cooldown.warbreaker.remains<2)\nactions.five_target+=/colossus_smash,if=debuff.colossus_smash.down\nactions.five_target+=/warbreaker,if=debuff.colossus_smash.down\nactions.five_target+=/bladestorm,if=buff.sweeping_strikes.down&(!talent.deadly_calm.enabled||buff.deadly_calm.down)&((debuff.colossus_smash.remains>4.5&!azerite.test_of_might.enabled)||buff.test_of_might.up)\nactions.five_target+=/deadly_calm\nactions.five_target+=/cleave\nactions.five_target+=/execute,if=(!talent.cleave.enabled&dot.deep_wounds.remains<2)||(buff.sudden_death.react||buff.stone_heart.react)&(buff.sweeping_strikes.up||cooldown.sweeping_strikes.remains>8)\nactions.five_target+=/mortal_strike,if=(!talent.cleave.enabled&dot.deep_wounds.remains<2)||buff.sweeping_strikes.up&buff.overpower.stack=2&talent.dreadnaught.enabled\nactions.five_target+=/whirlwind,if=debuff.colossus_smash.up||(buff.crushing_assault.up&talent.fervor_of_battle.enabled)\nactions.five_target+=/whirlwind,if=buff.deadly_calm.up||rage>60\nactions.five_target+=/overpower\nactions.five_target+=/whirlwind\nactions.five_target+=/victory_rush\nactions.five_target+=/impending_victory\n\nactions.single_target=skullsplitter,if=rage<56&buff.deadly_calm.down&buff.memory_of_lucid_dreams.down\nactions.single_target+=/ravager,if=!buff.deadly_calm.up&(cooldown.colossus_smash.remains<2||(talent.warbreaker.enabled&cooldown.warbreaker.remains<2))\nactions.single_target+=/colossus_smash,if=!essence.condensed_lifeforce.enabled&!talent.massacre.enabled&(target.time_to_pct_20>10||fight_remains>50)||essence.condensed_lifeforce.enabled&!talent.massacre.enabled&(target.time_to_pct_20>10||fight_remains>80)||talent.massacre.enabled&(target.time_to_pct_35>10||fight_remains>50)\nactions.single_target+=/warbreaker,if=!essence.condensed_lifeforce.enabled&!talent.massacre.enabled&(target.time_to_pct_20>10||fight_remains>50)||essence.condensed_lifeforce.enabled&!talent.massacre.enabled&(target.time_to_pct_20>10||fight_remains>80)||talent.massacre.enabled&(target.time_to_pct_35>10||fight_remains>50)\nactions.single_target+=/deadly_calm\nactions.single_target+=/execute,if=buff.sudden_death.react\nactions.single_target+=/bladestorm,if=cooldown.mortal_strike.remains&debuff.colossus_smash.down&(!talent.deadly_calm.enabled||buff.deadly_calm.down)&((debuff.colossus_smash.up&!azerite.test_of_might.enabled)||buff.test_of_might.up)&buff.memory_of_lucid_dreams.down&rage<40\nactions.single_target+=/cleave,if=spell_targets.whirlwind>2\nactions.single_target+=/overpower,if=(!talent.rend.enabled&dot.deep_wounds.remains&rage<70&buff.memory_of_lucid_dreams.down&debuff.colossus_smash.down)||(talent.rend.enabled&dot.deep_wounds.remains&dot.rend.remains>gcd&rage<70&buff.memory_of_lucid_dreams.down&debuff.colossus_smash.down)\nactions.single_target+=/mortal_strike\nactions.single_target+=/rend,if=remains<=duration*0.3\nactions.single_target+=/whirlwind,if=(((buff.memory_of_lucid_dreams.up)||(debuff.colossus_smash.up)||(buff.deadly_calm.up))&talent.fervor_of_battle.enabled)||((buff.memory_of_lucid_dreams.up||rage>89)&debuff.colossus_smash.up&buff.test_of_might.down&!talent.fervor_of_battle.enabled)\nactions.single_target+=/slam,if=!talent.fervor_of_battle.enabled&(buff.memory_of_lucid_dreams.up||debuff.colossus_smash.up)\nactions.single_target+=/overpower\nactions.single_target+=/whirlwind,if=talent.fervor_of_battle.enabled&(buff.test_of_might.up||debuff.colossus_smash.down&buff.test_of_might.down&rage>60)\nactions.single_target+=/slam,if=!talent.fervor_of_battle.enabled\nactions.single_target+=/victory_rush\nactions.single_target+=/impending_victory",
["spec"] = 71,
},
["Protection Warrior"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["spec"] = 73,
["desc"] = "# Protection Warrior\n# https://github.com/simulationcraft/simc\n# June 14, 2020\n\n# Changes\n# - Add Mitigation logic to new SimC APL.\n# - Delay trinkets (except Grong's) for Avatar.\n# - Lighten Shield Block and Ignore Pain damage intake requirements.\n# - Remove rotational usage of Last Stand.\n# - Use Revenge (when it costs Rage) only if it won't interfere with mitigation.",
["profile"] = "# Protection Warrior\n# https://github.com/simulationcraft/simc\n# June 14, 2020\n\n# Changes\n# - Add Mitigation logic to new SimC APL.\n# - Delay trinkets (except Grong's) for Avatar.\n# - Lighten Shield Block and Ignore Pain damage intake requirements.\n# - Remove rotational usage of Last Stand.\n# - Use Revenge (when it costs Rage) only if it won't interfere with mitigation.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/potion\n\n# Executed every time the actor is available.\nactions=intercept\nactions+=/pummel\nactions+=/shockwave,if=debuff.casting.up&!target.is_boss\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||time_to_die<25\n# use Ignore Pain to avoid rage capping\nactions+=/ignore_pain,if=rage.deficit<25+20*talent.booming_voice.enabled*cooldown.demoralizing_shout.ready\nactions+=/worldvein_resonance,if=cooldown.avatar.remains<=2\nactions+=/memory_of_lucid_dreams,if=cooldown.avatar.remains<=gcd\nactions+=/concentrated_flame,if=buff.avatar.down&!dot.concentrated_flame_burn.remains>0||essence.the_crucible_of_flame.rank<3\n# actions+=/last_stand,if=essence.anima_of_life_and_death.major\nactions+=/heart_essence,if=!(essence.the_crucible_of_flame.major||essence.worldvein_resonance.major||essence.anima_of_life_and_death.major||essence.memory_of_lucid_dreams.major)\nactions+=/use_items,if=cooldown.avatar.remains<=gcd||buff.avatar.up\nactions+=/avatar\nactions+=/call_action_list,name=mitigation,if=incoming_damage_5s>0\nactions+=/run_action_list,name=aoe,if=spell_targets.thunder_clap>=3\nactions+=/call_action_list,name=st\n\nactions.mitigation=ignore_pain,if=incoming_damage_5s\nactions.mitigation+=/shield_block,if=(!talent.bolster.enabled||!buff.last_stand.up)&(charges_fractional>1.8||incoming_damage_5s)\nactions.mitigation+=/demoralizing_shout,if=(target.within10||active_enemies>1)&((incoming_damage_5s>0.15*health.max||health.pct<30)||(!talent.booming_voice.enabled||rage.max-rage<40))\nactions.mitigation+=/last_stand,if=incoming_damage_3s>health&cooldown.anima_of_death.remains<=2\nactions.mitigation+=/shield_wall,if=incoming_damage_5s>health||health.pct<20\n\nactions.aoe=thunder_clap\nactions.aoe+=/demoralizing_shout,if=talent.booming_voice.enabled\nactions.aoe+=/shield_block,if=cooldown.shield_slam.ready&buff.shield_block.down&buff.memory_of_lucid_dreams.up\nactions.aoe+=/shield_slam,if=buff.memory_of_lucid_dreams.up\nactions.aoe+=/dragon_roar\nactions.aoe+=/revenge,if=buff.revenge.up||!toggle.defensives||buff.ignore_pain.up||(buff.shield_block.remains||cooldown.shield_block.charges_fractional<0.8)\nactions.aoe+=/use_item,name=grongs_primal_rage,if=buff.avatar.down||cooldown.thunder_clap.remains>=4\nactions.aoe+=/ravager\nactions.aoe+=/shield_block,if=cooldown.shield_slam.ready&buff.shield_block.down&charges=2\nactions.aoe+=/shield_slam\nactions.aoe+=/victory_rush\nactions.aoe+=/impending_victory\nactions.aoe+=/devastate\n\nactions.st=thunder_clap,if=spell_targets.thunder_clap=2&talent.unstoppable_force.enabled&buff.avatar.up\nactions.st+=/shield_block,if=cooldown.shield_slam.ready&buff.shield_block.down&charges=2\nactions.st+=/shield_slam\nactions.st+=/thunder_clap,if=(talent.unstoppable_force.enabled&buff.avatar.up)\nactions.st+=/demoralizing_shout,if=talent.booming_voice.enabled\nactions.st+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.stack=0\nactions.st+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.stack>7&(cooldown.avatar.remains<5||buff.avatar.up)\nactions.st+=/dragon_roar\nactions.st+=/thunder_clap\nactions.st+=/revenge,if=buff.revenge.up||!toggle.defensives||buff.ignore_pain.up||(buff.shield_block.remains||cooldown.shield_block.charges_fractional<0.8)\nactions.st+=/use_item,name=grongs_primal_rage,if=buff.avatar.down||cooldown.shield_slam.remains>=4\nactions.st+=/ravager\nactions.st+=/victory_rush\nactions.st+=/impending_victory\nactions.st+=/devastate",
["version"] = 20200614,
["warnings"] = "Imported 5 action lists.\n",
["author"] = "SimulationCraft",
["lists"] = {
["default"] = {
{
["action"] = "intercept",
["enabled"] = true,
}, -- [1]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "debuff.casting.up & ! target.is_boss",
["action"] = "shockwave",
}, -- [3]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [4]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [5]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [6]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [7]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [8]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [9]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.avatar.up || time_to_die < 25",
["action"] = "potion",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 25 + 20 * talent.booming_voice.enabled * cooldown.demoralizing_shout.ready",
["action"] = "ignore_pain",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains <= 2",
["action"] = "worldvein_resonance",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains <= gcd",
["action"] = "memory_of_lucid_dreams",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.avatar.down & ! dot.concentrated_flame_burn.remains > 0 || essence.the_crucible_of_flame.rank < 3",
["action"] = "concentrated_flame",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! ( essence.the_crucible_of_flame.major || essence.worldvein_resonance.major || essence.anima_of_life_and_death.major || essence.memory_of_lucid_dreams.major )",
["action"] = "heart_essence",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains <= gcd || buff.avatar.up",
["action"] = "use_items",
}, -- [17]
{
["action"] = "avatar",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s > 0",
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "spell_targets.thunder_clap >= 3",
["action"] = "run_action_list",
["list_name"] = "aoe",
}, -- [20]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "st",
}, -- [21]
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [3]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [4]
{
["action"] = "potion",
["enabled"] = true,
}, -- [5]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s",
["action"] = "ignore_pain",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! talent.bolster.enabled || ! buff.last_stand.up ) & ( charges_fractional > 1.8 || incoming_damage_5s )",
["action"] = "shield_block",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( target.within10 || active_enemies > 1 ) & ( ( incoming_damage_5s > 0.15 * health.max || health.pct < 30 ) || ( ! talent.booming_voice.enabled || rage.max - rage < 40 ) )",
["action"] = "demoralizing_shout",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "incoming_damage_3s > health & cooldown.anima_of_death.remains <= 2",
["action"] = "last_stand",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s > health || health.pct < 20",
["action"] = "shield_wall",
}, -- [5]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.thunder_clap = 2 & talent.unstoppable_force.enabled & buff.avatar.up",
["action"] = "thunder_clap",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.shield_slam.ready & buff.shield_block.down & charges = 2",
["action"] = "shield_block",
}, -- [2]
{
["action"] = "shield_slam",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( talent.unstoppable_force.enabled & buff.avatar.up )",
["action"] = "thunder_clap",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.booming_voice.enabled",
["action"] = "demoralizing_shout",
}, -- [5]
{
["enabled"] = true,
["action"] = "ashvanes_razor_coral",
["criteria"] = "debuff.razor_coral_debuff.stack = 0",
["name"] = "ashvanes_razor_coral",
}, -- [6]
{
["enabled"] = true,
["action"] = "ashvanes_razor_coral",
["criteria"] = "debuff.razor_coral_debuff.stack > 7 & ( cooldown.avatar.remains < 5 || buff.avatar.up )",
["name"] = "ashvanes_razor_coral",
}, -- [7]
{
["action"] = "dragon_roar",
["enabled"] = true,
}, -- [8]
{
["action"] = "thunder_clap",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.revenge.up || ! toggle.defensives || buff.ignore_pain.up || ( buff.shield_block.remains || cooldown.shield_block.charges_fractional < 0.8 )",
["action"] = "revenge",
}, -- [10]
{
["enabled"] = true,
["action"] = "grongs_primal_rage",
["criteria"] = "buff.avatar.down || cooldown.shield_slam.remains >= 4",
["name"] = "grongs_primal_rage",
}, -- [11]
{
["action"] = "ravager",
["enabled"] = true,
}, -- [12]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [13]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [14]
{
["action"] = "devastate",
["enabled"] = true,
}, -- [15]
},
["aoe"] = {
{
["action"] = "thunder_clap",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.booming_voice.enabled",
["action"] = "demoralizing_shout",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.shield_slam.ready & buff.shield_block.down & buff.memory_of_lucid_dreams.up",
["action"] = "shield_block",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.memory_of_lucid_dreams.up",
["action"] = "shield_slam",
}, -- [4]
{
["action"] = "dragon_roar",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.revenge.up || ! toggle.defensives || buff.ignore_pain.up || ( buff.shield_block.remains || cooldown.shield_block.charges_fractional < 0.8 )",
["action"] = "revenge",
}, -- [6]
{
["enabled"] = true,
["action"] = "grongs_primal_rage",
["criteria"] = "buff.avatar.down || cooldown.thunder_clap.remains >= 4",
["name"] = "grongs_primal_rage",
}, -- [7]
{
["action"] = "ravager",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.shield_slam.ready & buff.shield_block.down & charges = 2",
["action"] = "shield_block",
}, -- [9]
{
["action"] = "shield_slam",
["enabled"] = true,
}, -- [10]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [11]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [12]
{
["action"] = "devastate",
["enabled"] = true,
}, -- [13]
},
},
},
["Fury"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200210,
["author"] = "SimC / Archimtiros",
["desc"] = "# Fury Warrior\n# https://github.com/simulationcraft/simc\n# February 10, 2020\n\n# Changes:\n# - Added Pummel.\n# - Disabled movement / Heroic Leap call (not needed for in-game context).\n# - Moved Bladestorm and Dragon Roar above Bloodthirst to improve frequency of recommendations (sims roughly equal).\n# - Added Battle Shout to precombat APL.\n# - Added Victory Rush above single-target Whirlwind.\n# - Added Use Items.",
["lists"] = {
["single_target"] = {
{
["action"] = "siegebreaker",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( buff.recklessness.up || buff.memory_of_lucid_dreams.up ) || ( talent.frothing_berserker.enabled || talent.carnage.enabled & ( buff.enrage.remains < gcd || rage > 90 ) || talent.massacre.enabled & ( buff.enrage.remains < gcd || rage > 90 ) )",
["action"] = "rampage",
}, -- [2]
{
["action"] = "execute",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.bloodlust.up & buff.furious_slash.remains < 3",
["action"] = "furious_slash",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.rampage",
["action"] = "bladestorm",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "dragon_roar",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.enrage.down || azerite.cold_steel_hot_blood.rank > 1",
["action"] = "bloodthirst",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "charges = 2",
["action"] = "raging_blow",
}, -- [8]
{
["action"] = "bloodthirst",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.carnage.enabled || ( talent.massacre.enabled & rage < 80 ) || ( talent.frothing_berserker.enabled & rage < 90 )",
["action"] = "raging_blow",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.furious_slash.enabled",
["action"] = "furious_slash",
}, -- [11]
{
["action"] = "victory_rush",
["enabled"] = true,
}, -- [12]
{
["action"] = "impending_victory",
["enabled"] = true,
}, -- [13]
{
["action"] = "whirlwind",
["enabled"] = true,
}, -- [14]
},
["default"] = {
{
["action"] = "charge",
["enabled"] = true,
}, -- [1]
{
["action"] = "pummel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( raid_event.movement.distance > 25 & raid_event.movement.in > 45 )",
["action"] = "heroic_leap",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.guardian_of_azeroth.up || ( ! essence.condensed_lifeforce.major & target.time_to_die <= 60 )",
["action"] = "potion",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.recklessness.remains < 3",
["action"] = "rampage",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "blood_of_the_enemy",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ! buff.siegebreaker.up",
["action"] = "purifying_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ! buff.siegebreaker.up",
["action"] = "ripple_in_space",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ! buff.siegebreaker.up",
["action"] = "worldvein_resonance",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ! buff.siegebreaker.up",
["action"] = "focused_azerite_beam",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ! buff.siegebreaker.up",
["action"] = "reaping_flames",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ! buff.siegebreaker.up & dot.concentrated_flame_burn.remains = 0",
["action"] = "concentrated_flame",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up & ( time_to_die > 195 || target.health.pct < 20 )",
["action"] = "guardian_of_azeroth",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! buff.recklessness.up",
["action"] = "memory_of_lucid_dreams",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! essence.condensed_lifeforce.major & ! essence.blood_of_the_enemy.major || cooldown.guardian_of_azeroth.remains > 1 || buff.guardian_of_azeroth.up || cooldown.blood_of_the_enemy.remains < gcd",
["action"] = "recklessness",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "spell_targets.whirlwind > 1 & ! buff.meat_cleaver.up",
["action"] = "whirlwind",
}, -- [17]
{
["enabled"] = true,
["action"] = "ashvanes_razor_coral",
["criteria"] = "time_to_die < 20 || ! debuff.razor_coral_debuff.up || ( target.time_to_pct_30 < 5 & debuff.conductive_ink_debuff.up ) || ( ! debuff.conductive_ink_debuff.up & buff.memory_of_lucid_dreams.up || prev_gcd.2.guardian_of_azeroth || prev_gcd.2.recklessness & ( ! essence.memory_of_lucid_dreams.major & ! essence.condensed_lifeforce.major ) )",
["name"] = "ashvanes_razor_coral",
}, -- [18]
{
["enabled"] = true,
["name"] = "ramping_amplitude_gigavolt_engine",
["action"] = "ramping_amplitude_gigavolt_engine",
}, -- [19]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "blood_fury",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "berserking",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & debuff.siegebreaker.down",
["action"] = "lights_judgment",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "fireblood",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "ancestral_call",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & debuff.siegebreaker.down & buff.enrage.up",
["action"] = "bag_of_tricks",
}, -- [26]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "single_target",
}, -- [27]
},
["movement"] = {
{
["action"] = "heroic_leap",
["enabled"] = true,
}, -- [1]
},
["precombat"] = {
{
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
}, -- [3]
{
["action"] = "battle_shout",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [5]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [6]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [7]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [8]
{
["action"] = "recklessness",
["enabled"] = true,
}, -- [9]
{
["action"] = "potion",
["enabled"] = true,
}, -- [10]
},
},
["version"] = 20200210,
["warnings"] = "Imported 4 action lists.\n",
["spec"] = 72,
["profile"] = "# Fury Warrior\n# https://github.com/simulationcraft/simc\n# February 10, 2020\n\n# Changes:\n# - Added Pummel.\n# - Disabled movement / Heroic Leap call (not needed for in-game context).\n# - Moved Bladestorm and Dragon Roar above Bloodthirst to improve frequency of recommendations (sims roughly equal).\n# - Added Battle Shout to precombat APL.\n# - Added Victory Rush above single-target Whirlwind.\n# - Added Use Items.\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat=flask\nactions.precombat+=/food\nactions.precombat+=/augmentation\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/recklessness\nactions.precombat+=/potion\n\n# Executed every time the actor is available.\nactions=charge\nactions+=/pummel\n# This is mostly to prevent cooldowns from being accidentally used during movement.\n# actions+=/run_action_list,name=movement,if=movement.distance>5\nactions+=/heroic_leap,if=(raid_event.movement.distance>25&raid_event.movement.in>45)\nactions+=/potion,if=buff.guardian_of_azeroth.up||(!essence.condensed_lifeforce.major&target.time_to_die<=60)\nactions+=/rampage,if=cooldown.recklessness.remains<3\nactions+=/blood_of_the_enemy,if=buff.recklessness.up\nactions+=/purifying_blast,if=!buff.recklessness.up&!buff.siegebreaker.up\nactions+=/ripple_in_space,if=!buff.recklessness.up&!buff.siegebreaker.up\nactions+=/worldvein_resonance,if=!buff.recklessness.up&!buff.siegebreaker.up\nactions+=/focused_azerite_beam,if=!buff.recklessness.up&!buff.siegebreaker.up\nactions+=/reaping_flames,if=!buff.recklessness.up&!buff.siegebreaker.up\nactions+=/concentrated_flame,if=!buff.recklessness.up&!buff.siegebreaker.up&dot.concentrated_flame_burn.remains=0\nactions+=/the_unbound_force,if=buff.reckless_force.up\nactions+=/guardian_of_azeroth,if=!buff.recklessness.up&(time_to_die>195||target.health.pct<20)\nactions+=/memory_of_lucid_dreams,if=!buff.recklessness.up\nactions+=/recklessness,if=!essence.condensed_lifeforce.major&!essence.blood_of_the_enemy.major||cooldown.guardian_of_azeroth.remains>1||buff.guardian_of_azeroth.up||cooldown.blood_of_the_enemy.remains<gcd\nactions+=/whirlwind,if=spell_targets.whirlwind>1&!buff.meat_cleaver.up\nactions+=/use_item,name=ashvanes_razor_coral,if=time_to_die<20||!debuff.razor_coral_debuff.up||(target.time_to_pct_30<5&debuff.conductive_ink_debuff.up)||(!debuff.conductive_ink_debuff.up&buff.memory_of_lucid_dreams.up||prev_gcd.2.guardian_of_azeroth||prev_gcd.2.recklessness&(!essence.memory_of_lucid_dreams.major&!essence.condensed_lifeforce.major))\nactions+=/use_item,name=ramping_amplitude_gigavolt_engine\nactions+=/use_items\nactions+=/blood_fury,if=buff.recklessness.up\nactions+=/berserking,if=buff.recklessness.up\nactions+=/lights_judgment,if=buff.recklessness.down&debuff.siegebreaker.down\nactions+=/fireblood,if=buff.recklessness.up\nactions+=/ancestral_call,if=buff.recklessness.up\nactions+=/bag_of_tricks,if=buff.recklessness.down&debuff.siegebreaker.down&buff.enrage.up\nactions+=/run_action_list,name=single_target\n\nactions.movement=heroic_leap\n\nactions.single_target=siegebreaker\nactions.single_target+=/rampage,if=(buff.recklessness.up||buff.memory_of_lucid_dreams.up)||(talent.frothing_berserker.enabled||talent.carnage.enabled&(buff.enrage.remains<gcd||rage>90)||talent.massacre.enabled&(buff.enrage.remains<gcd||rage>90))\nactions.single_target+=/execute\nactions.single_target+=/furious_slash,if=!buff.bloodlust.up&buff.furious_slash.remains<3\nactions.single_target+=/bladestorm,if=prev_gcd.1.rampage\nactions.single_target+=/dragon_roar,if=buff.enrage.up\nactions.single_target+=/bloodthirst,if=buff.enrage.down||azerite.cold_steel_hot_blood.rank>1\nactions.single_target+=/raging_blow,if=charges=2\nactions.single_target+=/bloodthirst\nactions.single_target+=/raging_blow,if=talent.carnage.enabled||(talent.massacre.enabled&rage<80)||(talent.frothing_berserker.enabled&rage<90)\nactions.single_target+=/furious_slash,if=talent.furious_slash.enabled\nactions.single_target+=/victory_rush\nactions.single_target+=/impending_victory\nactions.single_target+=/whirlwind",
},
},
},
["Quillikus - Thunderhorn"] = {
["runOnce"] = {
["resetRogueMfDOption_20200226"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetPotionsToDefaults_20190717"] = true,
["enabledArcaneMageOnce_20190309"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[64] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["rotation"] = "standard",
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Frost Mage",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_focused_resolve",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["throttleTime"] = false,
["damageRange"] = 0,
},
[63] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["prevent_hardcasts"] = false,
["reserve_runes"] = 1,
["no_scorch_blast"] = true,
["save_2_runes"] = true,
["pyroblast_pull"] = false,
},
["aoe"] = 3,
["gcdSync"] = false,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Fire",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["throttleTime"] = false,
["damageRange"] = 0,
},
[62] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Arcane",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "potion_of_focused_resolve",
["nameplates"] = true,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["throttleTime"] = false,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Frost Mage"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200525,
["author"] = "SimC",
["desc"] = "# Frost Mage\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Use 'time_to_die' instead of 'target.time_to_die' for last second CD usage.\n# - Redo priority forks for rotation.standard/frozen_orb/no_ice_lance.",
["lists"] = {
["essences_orb"] = {
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down || active_enemies > 3",
["action"] = "focused_azerite_beam",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies < 5 & debuff.packed_ice.down & cooldown.frozen_orb.remains > 5 & ! action.frozen_orb.in_flight & ground_aoe.frozen_orb.remains = 0",
["action"] = "memory_of_lucid_dreams",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.frozen_orb || ground_aoe.frozen_orb.remains > 5",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down || active_enemies > 3",
["action"] = "purifying_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down || active_enemies > 3",
["action"] = "ripple_in_space",
}, -- [5]
{
["enabled"] = true,
["action"] = "concentrated_flame",
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down",
["line_cd"] = "6",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down",
["action"] = "reaping_flames",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.packed_ice.down & cooldown.frozen_orb.remains < 4 || active_enemies > 3",
["action"] = "worldvein_resonance",
}, -- [9]
},
["essences"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "rotation.frozen_orb",
["list_name"] = "essences_orb",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! rotation.frozen_orb",
["list_name"] = "essences_default",
}, -- [2]
},
["single_standard"] = {
{
["enabled"] = true,
["criteria"] = "talent.ebonbolt.enabled & prev_gcd.1.ebonbolt & ( ! talent.glacial_spike.enabled || buff.icicles.stack < 4 || buff.brain_freeze.react )",
["action"] = "flurry",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.glacial_spike.enabled & prev_gcd.1.glacial_spike & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.frostbolt & buff.brain_freeze.react & ( ! talent.glacial_spike.enabled || buff.icicles.stack < 4 )",
["action"] = "flurry",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [4]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || active_enemies > 1 & cast_time = 0 & buff.fingers_of_frost.react < 2",
["action"] = "blizzard",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react",
["action"] = "ice_lance",
}, -- [7]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [8]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! action.frozen_orb.in_flight & ground_aoe.frozen_orb.remains = 0",
["action"] = "ray_of_frost",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cast_time = 0 || active_enemies > 1",
["action"] = "blizzard",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react || prev_gcd.1.ebonbolt || active_enemies > 1 & talent.splitting_ice.enabled",
["action"] = "glacial_spike",
}, -- [12]
},
["talent_rop"] = {
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & talent.glacial_spike.enabled & buff.icicles.stack = 5 & ( buff.brain_freeze.react || talent.ebonbolt.enabled & cooldown.ebonbolt.remains < cast_time )",
["action"] = "rune_of_power",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & ! talent.glacial_spike.enabled & ( talent.ebonbolt.enabled & cooldown.ebonbolt.remains < cast_time || talent.comet_storm.enabled & cooldown.comet_storm.remains < cast_time || talent.ray_of_frost.enabled & cooldown.ray_of_frost.remains < cast_time || charges_fractional > 1.9 )",
["action"] = "rune_of_power",
}, -- [2]
},
["single_orb"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [1]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.ebonbolt & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || active_enemies > 1 & cast_time = 0",
["action"] = "blizzard",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react & cooldown.frozen_orb.remains > 5 || buff.fingers_of_frost.react = 2",
["action"] = "ice_lance",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cast_time = 0",
["action"] = "blizzard",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.ebonbolt",
["action"] = "flurry",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react & ( prev_gcd.1.frostbolt || debuff.packed_ice.remains > execute_time + action.ice_lance.travel_time )",
["action"] = "flurry",
}, -- [8]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [9]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["action"] = "ray_of_frost",
["interrupt_if"] = "buff.fingers_of_frost.react=2",
["interrupt_immediate"] = "1",
["criteria"] = "debuff.packed_ice.up",
}, -- [11]
{
["action"] = "blizzard",
["enabled"] = true,
}, -- [12]
},
["essences_default"] = {
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "focused_azerite_beam",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies < 5 & ( buff.icicles.stack <= 1 || ! talent.glacial_spike.enabled ) & cooldown.frozen_orb.remains > 10 & ( ! rotation.standard || ! action.frozen_orb.in_flight & ground_aoe.frozen_orb.remains = 0 )",
["action"] = "memory_of_lucid_dreams",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( talent.glacial_spike.enabled & buff.icicles.stack = 5 & ( buff.brain_freeze.react || prev_gcd.1.ebonbolt ) ) || ( ( active_enemies > 3 || ! talent.glacial_spike.enabled ) & ( prev_gcd.1.frozen_orb || ground_aoe.frozen_orb.remains > 5 ) )",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "purifying_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "ripple_in_space",
}, -- [5]
{
["enabled"] = true,
["action"] = "concentrated_flame",
["criteria"] = "buff.rune_of_power.down",
["line_cd"] = "6",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down",
["action"] = "reaping_flames",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down || active_enemies > 3",
["action"] = "worldvein_resonance",
}, -- [9]
},
["single_no_lance"] = {
{
["enabled"] = true,
["criteria"] = "talent.ebonbolt.enabled & prev_gcd.1.ebonbolt & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.glacial_spike & buff.brain_freeze.react",
["action"] = "flurry",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [3]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || active_enemies > 1 & ! talent.splitting_ice.enabled",
["action"] = "blizzard",
}, -- [5]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.icicles.stack = 5 & ! buff.brain_freeze.react",
["action"] = "ebonbolt",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react & ( buff.fingers_of_frost.react || prev_gcd.1.flurry ) & ( buff.icicles.max_stack - buff.icicles.stack ) * action.frostbolt.execute_time + action.glacial_spike.cast_time + action.glacial_spike.travel_time < incanters_flow_time_to.5.any & buff.memory_of_lucid_dreams.down",
["action"] = "ice_lance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.brain_freeze.react || prev_gcd.1.ebonbolt || talent.incanters_flow.enabled & cast_time + travel_time > incanters_flow_time_to.5.up & cast_time + travel_time < incanters_flow_time_to.4.down",
["action"] = "glacial_spike",
}, -- [9]
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! rotation.no_ice_lance & prev_gcd.1.flurry & ! buff.fingers_of_frost.react",
["action"] = "ice_lance",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > 3 & talent.freezing_rain.enabled || active_enemies > 4",
["action"] = "call_action_list",
["list_name"] = "aoe",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "single",
}, -- [5]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["action"] = "water_elemental",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [4]
{
["action"] = "potion",
["enabled"] = true,
}, -- [5]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [6]
},
["aoe"] = {
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [1]
{
["action"] = "blizzard",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [3]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [4]
{
["action"] = "ice_nova",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.ebonbolt || buff.brain_freeze.react & ( prev_gcd.1.frostbolt & ( buff.icicles.stack < 4 || ! talent.glacial_spike.enabled ) || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react",
["action"] = "ice_lance",
}, -- [7]
{
["action"] = "ray_of_frost",
["enabled"] = true,
}, -- [8]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [9]
{
["action"] = "glacial_spike",
["enabled"] = true,
}, -- [10]
{
["action"] = "cone_of_cold",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["action"] = "tidestorm_codex",
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["name"] = "tidestorm_codex",
}, -- [12]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["effect_name"] = "cyclotronic_blast",
}, -- [13]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [15]
{
["action"] = "ice_lance",
["enabled"] = true,
}, -- [16]
},
["cooldowns"] = {
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [1]
{
["action"] = "icy_veins",
["enabled"] = true,
}, -- [2]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & ( prev_gcd.1.frozen_orb || time_to_die > 10 + cast_time & time_to_die < 20 )",
["action"] = "rune_of_power",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.rune_of_power.enabled & active_enemies = 1 & cooldown.rune_of_power.full_recharge_time < cooldown.frozen_orb.remains",
["action"] = "call_action_list",
["list_name"] = "talent_rop",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.icy_veins || time_to_die < 30",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["action"] = "balefire_branch",
["criteria"] = "! talent.glacial_spike.enabled || buff.brain_freeze.react & prev_gcd.1.glacial_spike",
["name"] = "balefire_branch",
}, -- [7]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [8]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [9]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [10]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [11]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [12]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
},
["movement"] = {
{
["enabled"] = true,
["criteria"] = "movement.distance > 10",
["action"] = "blink_any",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.ice_floes.down",
["action"] = "ice_floes",
}, -- [2]
},
["single"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.ice_nova.ready & debuff.winters_chill.up",
["action"] = "ice_nova",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "rotation.standard",
["list_name"] = "single_standard",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "rotation.no_ice_lance",
["list_name"] = "single_no_lance",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "rotation.frozen_orb",
["list_name"] = "single_orb",
}, -- [4]
{
["action"] = "ice_nova",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["action"] = "tidestorm_codex",
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["name"] = "tidestorm_codex",
}, -- [6]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.icy_veins.down & buff.rune_of_power.down",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [9]
{
["action"] = "ice_lance",
["enabled"] = true,
}, -- [10]
},
},
["version"] = 20200525,
["warnings"] = "WARNING: The import for 'movement' required some automated changes.\nLine 1: Unsupported action 'blink_any'.\n\nImported 13 action lists.\n",
["profile"] = "# Frost Mage\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Use 'time_to_die' instead of 'target.time_to_die' for last second CD usage.\n# - Redo priority forks for rotation.standard/frozen_orb/no_ice_lance.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/arcane_intellect\nactions.precombat+=/summon_water_elemental\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mirror_image\nactions.precombat+=/potion\nactions.precombat+=/frostbolt\n\n# Executed every time the actor is available.\nactions=counterspell\n# If the mage has FoF after casting instant Flurry, we can delay the Ice Lance and use other high priority action, if available.\nactions+=/ice_lance,if=!rotation.no_ice_lance&prev_gcd.1.flurry&!buff.fingers_of_frost.react\nactions+=/call_action_list,name=cooldowns\n# The target threshold isn't exact. Between 3-5 targets, the differences between the ST and AoE action lists are rather small. However, Freezing Rain prefers using AoE action list sooner as it benefits greatly from the high priority Blizzard action.\nactions+=/call_action_list,name=aoe,if=active_enemies>3&talent.freezing_rain.enabled||active_enemies>4\nactions+=/call_action_list,name=single\n\n# With Freezing Rain, it's better to prioritize using Frozen Orb when both FO and Blizzard are off cooldown. Without Freezing Rain, the converse is true although the difference is miniscule until very high target counts.\nactions.aoe=frozen_orb\nactions.aoe+=/blizzard\nactions.aoe+=/call_action_list,name=essences\nactions.aoe+=/comet_storm\nactions.aoe+=/ice_nova\n# Simplified Flurry conditions from the ST action list. Since the mage is generating far less Brain Freeze charges, the exact condition here isn't all that important.\nactions.aoe+=/flurry,if=prev_gcd.1.ebonbolt||buff.brain_freeze.react&(prev_gcd.1.frostbolt&(buff.icicles.stack<4||!talent.glacial_spike.enabled)||prev_gcd.1.glacial_spike)\nactions.aoe+=/ice_lance,if=buff.fingers_of_frost.react\n# The mage will generally be generating a lot of FoF charges when using the AoE action list. Trying to delay Ray of Frost until there are no FoF charges and no active Frozen Orbs would lead to it not being used at all.\nactions.aoe+=/ray_of_frost\nactions.aoe+=/ebonbolt\nactions.aoe+=/glacial_spike\n# Using Cone of Cold is mostly DPS neutral with the AoE target thresholds. It only becomes decent gain with roughly 7 or more targets.\nactions.aoe+=/cone_of_cold\nactions.aoe+=/use_item,name=tidestorm_codex,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.aoe+=/use_item,effect_name=cyclotronic_blast,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.aoe+=/frostbolt\nactions.aoe+=/call_action_list,name=movement\nactions.aoe+=/ice_lance\n\nactions.cooldowns=guardian_of_azeroth\nactions.cooldowns+=/icy_veins\nactions.cooldowns+=/mirror_image\n# Rune of Power is always used with Frozen Orb. Any leftover charges at the end of the fight should be used, ideally if the boss doesn't die in the middle of the Rune buff.\nactions.cooldowns+=/rune_of_power,if=buff.rune_of_power.down&(prev_gcd.1.frozen_orb||time_to_die>10+cast_time&time_to_die<20)\n# On single target fights, the cooldown of Rune of Power is lower than the cooldown of Frozen Orb, this gives extra Rune of Power charges that should be used with active talents, if possible.\nactions.cooldowns+=/call_action_list,name=talent_rop,if=talent.rune_of_power.enabled&active_enemies=1&cooldown.rune_of_power.full_recharge_time<cooldown.frozen_orb.remains\nactions.cooldowns+=/potion,if=prev_gcd.1.icy_veins||time_to_die<30\nactions.cooldowns+=/use_item,name=balefire_branch,if=!talent.glacial_spike.enabled||buff.brain_freeze.react&prev_gcd.1.glacial_spike\nactions.cooldowns+=/use_items\nactions.cooldowns+=/blood_fury\nactions.cooldowns+=/berserking\nactions.cooldowns+=/lights_judgment\nactions.cooldowns+=/fireblood\nactions.cooldowns+=/ancestral_call\nactions.cooldowns+=/bag_of_tricks\n\n# Essences: Standard and No Ice Lance\nactions.essences_default=focused_azerite_beam,if=buff.rune_of_power.down||active_enemies>3\nactions.essences_default+=/memory_of_lucid_dreams,if=active_enemies<5&(buff.icicles.stack<=1||!talent.glacial_spike.enabled)&cooldown.frozen_orb.remains>10&(!rotation.standard||!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0)\nactions.essences_default+=/blood_of_the_enemy,if=(talent.glacial_spike.enabled&buff.icicles.stack=5&(buff.brain_freeze.react||prev_gcd.1.ebonbolt))||((active_enemies>3||!talent.glacial_spike.enabled)&(prev_gcd.1.frozen_orb||ground_aoe.frozen_orb.remains>5))\nactions.essences_default+=/purifying_blast,if=buff.rune_of_power.down||active_enemies>3\nactions.essences_default+=/ripple_in_space,if=buff.rune_of_power.down||active_enemies>3\nactions.essences_default+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down\nactions.essences_default+=/reaping_flames,if=buff.rune_of_power.down\nactions.essences_default+=/the_unbound_force,if=buff.reckless_force.up\nactions.essences_default+=/worldvein_resonance,if=buff.rune_of_power.down||active_enemies>3\n\n# Essences: Frozen Orb\nactions.essences_orb+=/focused_azerite_beam,if=buff.rune_of_power.down&debuff.packed_ice.down||active_enemies>3\nactions.essences_orb+=/memory_of_lucid_dreams,if=active_enemies<5&debuff.packed_ice.down&cooldown.frozen_orb.remains>5&!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0\nactions.essences_orb+=/blood_of_the_enemy,if=prev_gcd.1.frozen_orb||ground_aoe.frozen_orb.remains>5\nactions.essences_orb+=/purifying_blast,if=buff.rune_of_power.down&debuff.packed_ice.down||active_enemies>3\nactions.essences_orb+=/ripple_in_space,if=buff.rune_of_power.down&debuff.packed_ice.down||active_enemies>3\nactions.essences_orb+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down&debuff.packed_ice.down\nactions.essences_orb+=/reaping_flames,if=buff.rune_of_power.down&debuff.packed_ice.down\nactions.essences_orb+=/the_unbound_force,if=buff.reckless_force.up\nactions.essences_orb+=/worldvein_resonance,if=buff.rune_of_power.down&debuff.packed_ice.down&cooldown.frozen_orb.remains<4||active_enemies>3\n\nactions.essences=call_action_list,strict=1,name=essences_orb,if=rotation.frozen_orb\nactions.essences+=/call_action_list,strict=1,name=essences_default,if=!rotation.frozen_orb\n\nactions.movement=blink_any,if=movement.distance>10\nactions.movement+=/ice_floes,if=buff.ice_floes.down\n\n# Single Target\n# Without GS, Ebonbolt is always shattered. With GS, Ebonbolt is shattered if it would waste Brain Freeze charge (i.e. when the mage starts casting Ebonbolt with Brain Freeze active) or when below 4 Icicles (if Ebonbolt is cast when the mage has 4-5 Icicles, it's better to use the Brain Freeze from it on Glacial Spike).\nactions.single_standard=flurry,if=talent.ebonbolt.enabled&prev_gcd.1.ebonbolt&(!talent.glacial_spike.enabled||buff.icicles.stack<4||buff.brain_freeze.react)\n# Glacial Spike is always shattered.\nactions.single_standard+=/flurry,if=talent.glacial_spike.enabled&prev_gcd.1.glacial_spike&buff.brain_freeze.react\n# Without GS, the mage just tries to shatter as many Frostbolts as possible. With GS, the mage only shatters Frostbolt that would put them at 1-3 Icicle stacks. Difference between shattering Frostbolt with 1-3 Icicles and 1-4 Icicles is small, but 1-3 tends to be better in more situations (the higher GS damage is, the more it leans towards 1-3). Forcing shatter on Frostbolt is still a small gain, so is not caring about FoF. Ice Lance is too weak to warrant delaying Brain Freeze Flurry.\nactions.single_standard+=/flurry,if=prev_gcd.1.frostbolt&buff.brain_freeze.react&(!talent.glacial_spike.enabled||buff.icicles.stack<4)\nactions.single_standard+=/call_action_list,name=essences\nactions.single_standard+=/frozen_orb\n# With Freezing Rain and at least 2 targets, Blizzard needs to be used with higher priority to make sure you can fit both instant Blizzards into a single Freezing Rain. Starting with three targets, Blizzard leaves the low priority filler role and is used on cooldown (and just making sure not to waste Brain Freeze charges) with or without Freezing Rain.\nactions.single_standard+=/blizzard,if=active_enemies>2||active_enemies>1&cast_time=0&buff.fingers_of_frost.react<2\n# Trying to pool charges of FoF for anything isn't worth it. Use them as they come.\nactions.single_standard+=/ice_lance,if=buff.fingers_of_frost.react\nactions.single_standard+=/comet_storm\nactions.single_standard+=/ebonbolt\n# Ray of Frost is used after all Fingers of Frost charges have been used and there isn't active Frozen Orb that could generate more. This is only a small gain against multiple targets, as Ray of Frost isn't too impactful.\nactions.single_standard+=/ray_of_frost,if=!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0\n# Blizzard is used as low priority filler against 2 targets. When using Freezing Rain, it's a medium gain to use the instant Blizzard even against a single target, especially with low mastery.\nactions.single_standard+=/blizzard,if=cast_time=0||active_enemies>1\n# Glacial Spike is used when there's a Brain Freeze proc active (i.e. only when it can be shattered). This is a small to medium gain in most situations. Low mastery leans towards using it when available. When using Splitting Ice and having another target nearby, it's slightly better to use GS when available, as the second target doesn't benefit from shattering the main target.\nactions.single_standard+=/glacial_spike,if=buff.brain_freeze.react||prev_gcd.1.ebonbolt||active_enemies>1&talent.splitting_ice.enabled\n\nactions.single_no_lance=flurry,if=talent.ebonbolt.enabled&prev_gcd.1.ebonbolt&buff.brain_freeze.react\nactions.single_no_lance+=/flurry,if=prev_gcd.1.glacial_spike&buff.brain_freeze.react\nactions.single_no_lance+=/call_action_list,name=essences\nactions.single_no_lance+=/frozen_orb\nactions.single_no_lance+=/blizzard,if=active_enemies>2||active_enemies>1&!talent.splitting_ice.enabled\nactions.single_no_lance+=/comet_storm\nactions.single_no_lance+=/ebonbolt,if=buff.icicles.stack=5&!buff.brain_freeze.react\nactions.single_no_lance+=/ice_lance,if=buff.brain_freeze.react&(buff.fingers_of_frost.react||prev_gcd.1.flurry)&(buff.icicles.max_stack-buff.icicles.stack)*action.frostbolt.execute_time+action.glacial_spike.cast_time+action.glacial_spike.travel_time<incanters_flow_time_to.5.any&buff.memory_of_lucid_dreams.down\nactions.single_no_lance+=/glacial_spike,if=buff.brain_freeze.react||prev_gcd.1.ebonbolt||talent.incanters_flow.enabled&cast_time+travel_time>incanters_flow_time_to.5.up&cast_time+travel_time<incanters_flow_time_to.4.down\n\nactions.single_orb=call_action_list,name=essences\nactions.single_orb+=/frozen_orb\nactions.single_orb+=/flurry,if=prev_gcd.1.ebonbolt&buff.brain_freeze.react\nactions.single_orb+=/blizzard,if=active_enemies>2||active_enemies>1&cast_time=0\nactions.single_orb+=/ice_lance,if=buff.fingers_of_frost.react&cooldown.frozen_orb.remains>5||buff.fingers_of_frost.react=2\nactions.single_orb+=/blizzard,if=cast_time=0\nactions.single_orb+=/flurry,if=prev_gcd.1.ebonbolt\nactions.single_orb+=/flurry,if=buff.brain_freeze.react&(prev_gcd.1.frostbolt||debuff.packed_ice.remains>execute_time+action.ice_lance.travel_time)\nactions.single_orb+=/comet_storm\nactions.single_orb+=/ebonbolt\nactions.single_orb+=/ray_of_frost,if=debuff.packed_ice.up,interrupt_if=buff.fingers_of_frost.react=2,interrupt_immediate=1\nactions.single_orb+=/blizzard\n\n# In some situations, you can shatter Ice Nova even after already casting Flurry and Ice Lance. Otherwise this action is used when the mage has FoF after casting Flurry, see above.\nactions.single=ice_nova,if=cooldown.ice_nova.ready&debuff.winters_chill.up\nactions.single+=/call_action_list,strict=1,name=single_standard,if=rotation.standard\nactions.single+=/call_action_list,strict=1,name=single_no_lance,if=rotation.no_ice_lance\nactions.single+=/call_action_list,strict=1,name=single_orb,if=rotation.frozen_orb\nactions.single+=/ice_nova\nactions.single+=/use_item,name=tidestorm_codex,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.single+=/use_item,effect_name=cyclotronic_blast,if=buff.icy_veins.down&buff.rune_of_power.down\nactions.single+=/frostbolt\nactions.single+=/call_action_list,name=movement\nactions.single+=/ice_lance\n\n# With Glacial Spike, Rune of Power should be used right before the Glacial Spike combo (i.e. with 5 Icicles and a Brain Freeze). When Ebonbolt is off cooldown, Rune of Power can also be used just with 5 Icicles.\nactions.talent_rop=rune_of_power,if=buff.rune_of_power.down&talent.glacial_spike.enabled&buff.icicles.stack=5&(buff.brain_freeze.react||talent.ebonbolt.enabled&cooldown.ebonbolt.remains<cast_time)\n# Without Glacial Spike, Rune of Power should be used before any bigger cooldown (Ebonbolt, Comet Storm, Ray of Frost) or when Rune of Power is about to reach 2 charges.\nactions.talent_rop+=/rune_of_power,if=buff.rune_of_power.down&!talent.glacial_spike.enabled&(talent.ebonbolt.enabled&cooldown.ebonbolt.remains<cast_time||talent.comet_storm.enabled&cooldown.comet_storm.remains<cast_time||talent.ray_of_frost.enabled&cooldown.ray_of_frost.remains<cast_time||charges_fractional>1.9)",
["spec"] = 64,
},
["Fire"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200802,
["author"] = "SimC",
["desc"] = "# Fire Mage\n# https://github.com/simulationcraft/simc/\n# August 2, 2020\n\n# Changes:\n# - Use time_to_die rather than target.time_to_die for last-second ability usages.\n# - Update logic re: Lucid Dreams.\n# - Loosen cast requirements for Combustion (i.e., don't hold it for a fresh Meteor cast).\n# - Disable an entry that would result in a hardcast Pyroblast in-game.\n# - Enable strict checking on a few forks in the APL to reduce workload.",
["lists"] = {
["items_low_priority"] = {
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "tidestorm_codex",
["action"] = "tidestorm_codex",
}, -- [1]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["effect_name"] = "cyclotronic_blast",
}, -- [2]
},
["combustion_phase"] = {
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "lights_judgment",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "bag_of_tricks",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.combustion.down",
["action"] = "living_bomb",
}, -- [3]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [4]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [5]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "charges >= 1 & ( ( action.fire_blast.charges_fractional + ( buff.combustion.remains - buff.blaster_master.duration ) % cooldown.fire_blast.duration - ( buff.combustion.remains ) % ( buff.blaster_master.duration - 0.5 ) ) >= 0 || ! azerite.blaster_master.enabled || ! talent.flame_on.enabled || buff.combustion.remains <= buff.blaster_master.duration || buff.blaster_master.remains < 0.5 || equipped.hyperthread_wristwraps & cooldown.hyperthread_wristwraps_300142.remains < 5 ) & buff.combustion.up & ( ! action.scorch.executing & ! action.pyroblast.in_flight & buff.heating_up.up || action.scorch.executing & buff.hot_streak.down & ( buff.heating_up.down || azerite.blaster_master.enabled ) || azerite.blaster_master.enabled & talent.flame_on.enabled & action.pyroblast.in_flight & buff.heating_up.down & buff.hot_streak.down )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.combustion.down",
["action"] = "rune_of_power",
}, -- [8]
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "fire_blast",
["criteria"] = "azerite.blaster_master.enabled & ( essence.memory_of_lucid_dreams.major || ! essence.memory_of_lucid_dreams.minor ) & talent.meteor.enabled & talent.flame_on.enabled & buff.blaster_master.down & ( talent.rune_of_power.enabled & action.rune_of_power.executing & action.rune_of_power.execute_remains < 0.6 || ( variable.time_to_combustion <= 0 || buff.combustion.up ) & ! talent.rune_of_power.enabled & ! action.pyroblast.in_flight & ! action.fireball.in_flight )",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [10]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( ( action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5 ) || action.meteor.in_flight || essence.memory_of_lucid_dreams.major || buff.hot_streak.react || action.scorch.executing & action.scorch.execute_remains < 0.5 || action.pyroblast.executing & action.pyroblast.execute_remains < 0.5 ) & ( buff.rune_of_power.up || ! talent.rune_of_power.enabled )",
["use_off_gcd"] = 1,
["action"] = "combustion",
}, -- [11]
{
["action"] = "potion",
["enabled"] = true,
}, -- [12]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [13]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [14]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [15]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "( ( talent.flame_patch.enabled & active_enemies > 2 ) || active_enemies > 6 ) & buff.hot_streak.react & ! azerite.blaster_master.enabled",
["action"] = "flamestrike",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & buff.combustion.remains > cast_time",
["action"] = "pyroblast",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react",
["action"] = "pyroblast",
}, -- [19]
{
["action"] = "phoenix_flames",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains > cast_time & buff.combustion.up || buff.combustion.down & cooldown.combustion.remains < cast_time",
["action"] = "scorch",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains < gcd.max & active_enemies > 1",
["action"] = "living_bomb",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains < gcd.max & buff.combustion.up",
["action"] = "dragons_breath",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 30 & talent.searing_touch.enabled",
["action"] = "scorch",
}, -- [24]
},
["active_talents"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.combustion.down & ( variable.time_to_combustion > cooldown.living_bomb.duration || variable.time_to_combustion <= 0 )",
["action"] = "living_bomb",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 0 || ( buff.rune_of_power.up || cooldown.rune_of_power.remains > time_to_die & action.rune_of_power.charges < 1 || ! talent.rune_of_power.enabled ) & ( cooldown.meteor.duration < variable.time_to_combustion || time_to_die < variable.time_to_combustion )",
["action"] = "meteor",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.alexstraszas_fury.enabled & ( buff.combustion.down & ! buff.hot_streak.react || buff.combustion.up & action.fire_blast.charges < action.fire_blast.max_charges & ! buff.hot_streak.react )",
["action"] = "dragons_breath",
}, -- [3]
},
["items_high_priority"] = {
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 0",
["action"] = "call_action_list",
["list_name"] = "items_combustion",
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! equipped.azsharas_font_of_power & variable.time_to_combustion < 8",
["name"] = "manifesto_of_madness",
["action"] = "manifesto_of_madness",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 5 + 15 * variable.font_double_on_use & variable.time_to_combustion > 0",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "rotcrusted_voodoo_doll",
["action"] = "rotcrusted_voodoo_doll",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "aquipotent_nautilus",
["action"] = "aquipotent_nautilus",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "shiver_venom_relic",
["action"] = "shiver_venom_relic",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "forbidden_obsidian_claw",
["action"] = "forbidden_obsidian_claw",
}, -- [8]
{
["enabled"] = true,
["action"] = "harmonic_dematerializer",
["effect_name"] = "harmonic_dematerializer",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion >= 55 & buff.combustion.down & variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "malformed_heralds_legwraps",
["action"] = "malformed_heralds_legwraps",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion >= 55 & buff.combustion.down & variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "ancient_knot_of_wisdom",
["action"] = "ancient_knot_of_wisdom",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion >= 45 & buff.combustion.down & variable.time_to_combustion > variable.on_use_cutoff",
["name"] = "neural_synapse_enhancer",
["action"] = "neural_synapse_enhancer",
}, -- [12]
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.firestarter.enabled * firestarter.remains + ( cooldown.combustion.remains * ( 1 - variable.kindling_reduction * talent.kindling.enabled ) - action.rune_of_power.execute_time * talent.rune_of_power.enabled ) * ! cooldown.combustion.ready * buff.combustion.down",
["var_name"] = "time_to_combustion",
}, -- [2]
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "cooldown.memory_of_lucid_dreams.remains",
["criteria"] = "essence.memory_of_lucid_dreams.major & buff.memory_of_lucid_dreams.down & cooldown.memory_of_lucid_dreams.remains - variable.time_to_combustion <= variable.hold_combustion_threshold",
["var_name"] = "time_to_combustion",
}, -- [3]
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "cooldown.worldvein_resonance.remains",
["criteria"] = "essence.worldvein_resonance.major & buff.worldvein_resonance.down & cooldown.worldvein_resonance.remains - variable.time_to_combustion <= variable.hold_combustion_threshold",
["var_name"] = "time_to_combustion",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items_high_priority",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "mirror_image",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( variable.time_to_combustion < 10 || time_to_die < variable.time_to_combustion )",
["action"] = "guardian_of_azeroth",
}, -- [7]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [8]
{
["action"] = "reaping_flames",
["enabled"] = true,
}, -- [9]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [10]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [11]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [12]
{
["action"] = "the_unbound_force",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.combustion.down & ( variable.time_to_combustion > full_recharge_time || variable.time_to_combustion > target.time_to_die )",
["action"] = "rune_of_power",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 0",
["action"] = "call_action_list",
["list_name"] = "combustion_phase",
}, -- [15]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( essence.memory_of_lucid_dreams.major || essence.memory_of_lucid_dreams.minor & azerite.blaster_master.enabled ) & charges = max_charges & ! buff.hot_streak.react & ! ( buff.heating_up.react & ( buff.combustion.up & ( action.fireball.in_flight || action.pyroblast.in_flight || action.scorch.executing ) || target.health.pct <= 30 & action.scorch.executing ) ) & ! ( ! buff.heating_up.react & ! buff.hot_streak.react & buff.combustion.down & ( action.fireball.in_flight || action.pyroblast.in_flight ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [16]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.rune_of_power.enabled & cooldown.rune_of_power.remains < cooldown.fire_blast.full_recharge_time & ( variable.time_to_combustion > action.rune_of_power.full_recharge_time ) & ( cooldown.rune_of_power.remains < time_to_die || action.rune_of_power.charges > 0 ) || variable.time_to_combustion < action.fire_blast.full_recharge_time & variable.time_to_combustion < time_to_die",
["var_name"] = "fire_blast_pooling",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "buff.rune_of_power.up & ( variable.time_to_combustion > 0 )",
["list_name"] = "rop_phase",
}, -- [18]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.rune_of_power.enabled & cooldown.rune_of_power.remains < cooldown.phoenix_flames.full_recharge_time & ( variable.time_to_combustion > action.rune_of_power.full_recharge_time ) & ( cooldown.rune_of_power.remains < time_to_die || action.rune_of_power.charges > 0 ) || variable.time_to_combustion < action.phoenix_flames.full_recharge_time & variable.time_to_combustion < time_to_die",
["var_name"] = "phoenix_pooling",
}, -- [19]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( ! variable.fire_blast_pooling || buff.rune_of_power.up ) & ( variable.time_to_combustion > 0 ) & ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & ! firestarter.active & buff.hot_streak.down & ( ! azerite.blaster_master.enabled || buff.blaster_master.remains < 0.5 )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [20]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "firestarter.active & charges >= 1 & ( ! variable.fire_blast_pooling || buff.rune_of_power.up ) & ( ! azerite.blaster_master.enabled || buff.blaster_master.remains < 0.5 ) & ( ! action.fireball.executing & ! action.pyroblast.in_flight & buff.heating_up.up || action.fireball.executing & buff.hot_streak.down || action.pyroblast.in_flight & buff.heating_up.down & buff.hot_streak.down )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.time_to_combustion > 0",
["list_name"] = "standard_rotation",
}, -- [22]
},
["items_combustion"] = {
{
["enabled"] = true,
["name"] = "ignition_mages_fuse",
["action"] = "ignition_mages_fuse",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up & action.fire_blast.charges = 0 & action.fire_blast.recharge_time > gcd.max",
["name"] = "hyperthread_wristwraps",
["action"] = "hyperthread_wristwraps",
}, -- [2]
{
["enabled"] = true,
["name"] = "manifesto_of_madness",
["action"] = "manifesto_of_madness",
}, -- [3]
{
["buff_name"] = "manifesto_of_madness_chapter_one",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["use_off_gcd"] = 1,
["action"] = "cancel_buff",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["name"] = "azurethos_singed_plumage",
["use_off_gcd"] = 1,
["action"] = "azurethos_singed_plumage",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [5]
{
["enabled"] = true,
["action"] = "gladiators_badge",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["effect_name"] = "gladiators_badge",
}, -- [6]
{
["enabled"] = true,
["action"] = "gladiators_medallion",
["use_off_gcd"] = 1,
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
["effect_name"] = "gladiators_medallion",
}, -- [7]
{
["enabled"] = true,
["name"] = "balefire_branch",
["use_off_gcd"] = 1,
["action"] = "balefire_branch",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [8]
{
["enabled"] = true,
["name"] = "shockbiters_fang",
["use_off_gcd"] = 1,
["action"] = "shockbiters_fang",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [9]
{
["enabled"] = true,
["name"] = "tzanes_barkspines",
["use_off_gcd"] = 1,
["action"] = "tzanes_barkspines",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [10]
{
["enabled"] = true,
["name"] = "ancient_knot_of_wisdom",
["use_off_gcd"] = 1,
["action"] = "ancient_knot_of_wisdom",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [11]
{
["enabled"] = true,
["name"] = "neural_synapse_enhancer",
["use_off_gcd"] = 1,
["action"] = "neural_synapse_enhancer",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [12]
{
["enabled"] = true,
["name"] = "malformed_heralds_legwraps",
["use_off_gcd"] = 1,
["action"] = "malformed_heralds_legwraps",
["criteria"] = "buff.combustion.up || action.meteor.in_flight & action.meteor.in_flight_remains <= 0.5",
}, -- [13]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.manifesto_of_madness || equipped.gladiators_badge || equipped.gladiators_medallion || equipped.ignition_mages_fuse || equipped.tzanes_barkspines || equipped.azurethos_singed_plumage || equipped.ancient_knot_of_wisdom || equipped.shockbiters_fang || equipped.neural_synapse_enhancer || equipped.balefire_branch",
["var_name"] = "combustion_on_use",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.azsharas_font_of_power & variable.combustion_on_use",
["var_name"] = "font_double_on_use",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "20 * ( variable.combustion_on_use & ! variable.font_double_on_use ) + 40 * ( variable.font_double_on_use ) + 25 * ( equipped.azsharas_font_of_power & ! variable.font_double_on_use ) + 8 * ( equipped.manifesto_of_madness & ! variable.font_double_on_use )",
["var_name"] = "on_use_cutoff",
}, -- [4]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "hold_combustion_threshold",
["default"] = "20",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2 * talent.flame_patch.enabled + 99 * ! talent.flame_patch.enabled",
["criteria"] = "variable.hot_streak_flamestrike = 0",
["var_name"] = "hot_streak_flamestrike",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "3 * talent.flame_patch.enabled + 99 * ! talent.flame_patch.enabled",
["criteria"] = "variable.hard_cast_flamestrike = 0",
["var_name"] = "hard_cast_flamestrike",
}, -- [7]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "delay_flamestrike",
["default"] = "25",
}, -- [8]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "kindling_reduction",
["default"] = "0.2",
}, -- [9]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [10]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [11]
{
["action"] = "potion",
["enabled"] = true,
}, -- [12]
{
["action"] = "pyroblast",
["enabled"] = true,
}, -- [13]
},
["standard_rotation"] = {
{
["enabled"] = true,
["criteria"] = "( active_enemies >= variable.hot_streak_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike ) ) & buff.hot_streak.react",
["action"] = "flamestrike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & buff.hot_streak.remains < action.fireball.execute_time",
["action"] = "pyroblast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & ( prev_gcd.1.fireball || firestarter.active || action.pyroblast.in_flight || moving )",
["action"] = "pyroblast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "charges >= 3 & active_enemies > 2 & ! variable.phoenix_pooling",
["action"] = "phoenix_flames",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & ( target.health.pct <= 30 & talent.searing_touch.enabled || spell_crit >= 1 )",
["action"] = "pyroblast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & cast_time < buff.pyroclasm.remains",
["action"] = "pyroblast",
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( buff.rune_of_power.down & ! firestarter.active ) & ! variable.fire_blast_pooling & ( ( ( action.fireball.executing || action.pyroblast.executing ) & buff.heating_up.react ) || ( ( talent.searing_touch.enabled & target.health.pct <= 30 || spell_crit >= 1 ) & ( buff.heating_up.react & ! action.scorch.executing || ! buff.hot_streak.react & ! buff.heating_up.react & action.scorch.executing & ! action.pyroblast.in_flight & ! action.fireball.in_flight ) ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( buff.heating_up.react || ( ! buff.hot_streak.react & ( action.fire_blast.charges > 0 || talent.searing_touch.enabled & target.health.pct <= 30 || spell_crit >= 1 ) ) ) & ! variable.phoenix_pooling",
["action"] = "phoenix_flames",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "dragons_breath",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items_low_priority",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 30 & talent.searing_touch.enabled || spell_crit >= 1",
["action"] = "scorch",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike )",
["action"] = "flamestrike",
}, -- [13]
{
["action"] = "fireball",
["enabled"] = true,
}, -- [14]
{
["action"] = "scorch",
["enabled"] = true,
}, -- [15]
},
["rop_phase"] = {
{
["enabled"] = true,
["criteria"] = "( active_enemies >= variable.hot_streak_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike || variable.disable_combustion ) ) & buff.hot_streak.react",
["action"] = "flamestrike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react",
["action"] = "pyroblast",
}, -- [2]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike || variable.disable_combustion ) ) & ! firestarter.active & ( ! buff.heating_up.react & ! buff.hot_streak.react & ! prev_off_gcd.fire_blast & ( action.fire_blast.charges >= 2 || ( action.phoenix_flames.charges >= 1 & talent.phoenix_flames.enabled ) || ( talent.alexstraszas_fury.enabled & cooldown.dragons_breath.ready ) || ( talent.searing_touch.enabled & target.health.pct <= 30 || spell_crit >= 1 ) ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & cast_time < buff.pyroclasm.remains & buff.rune_of_power.remains > cast_time",
["action"] = "pyroblast",
}, -- [5]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike || variable.disable_combustion ) ) & ! firestarter.active & ( buff.heating_up.react & spell_crit < 1 & ( target.health.pct >= 30 || ! talent.searing_touch.enabled ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! ( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike || variable.disable_combustion ) ) & ! firestarter.active & ( talent.searing_touch.enabled & target.health.pct <= 30 || spell_crit >= 1 ) & ( buff.heating_up.react & ! action.scorch.executing || ! buff.heating_up.react & ! buff.hot_streak.react )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! prev_gcd.1.phoenix_flames & buff.heating_up.react",
["action"] = "phoenix_flames",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 30 & talent.searing_touch.enabled || spell_crit >= 1",
["action"] = "scorch",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "dragons_breath",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( active_enemies >= variable.hard_cast_flamestrike & ( time - buff.combustion.last_expire > variable.delay_flamestrike || variable.disable_combustion ) )",
["action"] = "flamestrike",
}, -- [11]
{
["action"] = "fireball",
["enabled"] = true,
}, -- [12]
},
},
["version"] = 20200802,
["warnings"] = "Imported 9 action lists.\n",
["spec"] = 63,
["profile"] = "# Fire Mage\n# https://github.com/simulationcraft/simc/\n# August 2, 2020\n\n# Changes:\n# - Use time_to_die rather than target.time_to_die for last-second ability usages.\n# - Update logic re: Lucid Dreams.\n# - Loosen cast requirements for Combustion (i.e., don't hold it for a fresh Meteor cast).\n# - Disable an entry that would result in a hardcast Pyroblast in-game.\n# - Enable strict checking on a few forks in the APL to reduce workload.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/arcane_intellect\nactions.precombat+=/variable,name=combustion_on_use,op=set,value=equipped.manifesto_of_madness||equipped.gladiators_badge||equipped.gladiators_medallion||equipped.ignition_mages_fuse||equipped.tzanes_barkspines||equipped.azurethos_singed_plumage||equipped.ancient_knot_of_wisdom||equipped.shockbiters_fang||equipped.neural_synapse_enhancer||equipped.balefire_branch\nactions.precombat+=/variable,name=font_double_on_use,op=set,value=equipped.azsharas_font_of_power&variable.combustion_on_use\n# Items that are used outside of Combustion are not used after this time if they would put a trinket used with Combustion on a sharded cooldown.\nactions.precombat+=/variable,name=on_use_cutoff,op=set,value=20*(variable.combustion_on_use&!variable.font_double_on_use)+40*(variable.font_double_on_use)+25*(equipped.azsharas_font_of_power&!variable.font_double_on_use)+8*(equipped.manifesto_of_madness&!variable.font_double_on_use)\n# Combustion is only used without Worldvein Resonance or Memory of Lucid Dreams if it will be available at least this many seconds before the essence's cooldown is ready.\nactions.precombat+=/variable,name=hold_combustion_threshold,op=reset,default=20\n# This variable specifies the number of targets at which Hot Streak Flamestrikes outside of Combustion should be used.\nactions.precombat+=/variable,name=hot_streak_flamestrike,op=set,if=variable.hot_streak_flamestrike=0,value=2*talent.flame_patch.enabled+99*!talent.flame_patch.enabled\n# This variable specifies the number of targets at which Hard Cast Flamestrikes outside of Combustion should be used as filler.\nactions.precombat+=/variable,name=hard_cast_flamestrike,op=set,if=variable.hard_cast_flamestrike=0,value=3*talent.flame_patch.enabled+99*!talent.flame_patch.enabled\n# Using Flamestrike after Combustion is over can cause a significant amount of damage to be lost due to the overwriting of Ignite that occurs when the Ignite from your primary Combustion target spreads. This variable is used to specify the amount of time in seconds that must pass after Combustion expires before Flamestrikes will be used normally.\nactions.precombat+=/variable,name=delay_flamestrike,default=25,op=reset\n# With Kindling, Combustion's cooldown will be reduced by a random amount, but the number of crits starts very high after activating Combustion and slows down towards the end of Combustion's cooldown. When making decisions in the APL, Combustion's remaining cooldown is reduced by this fraction to account for Kindling.\nactions.precombat+=/variable,name=kindling_reduction,default=0.2,op=reset\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mirror_image\nactions.precombat+=/potion\nactions.precombat+=/pyroblast\n\n# Executed every time the actor is available.\nactions=counterspell\nactions+=/variable,name=time_to_combustion,op=set,value=talent.firestarter.enabled*firestarter.remains+(cooldown.combustion.remains*(1-variable.kindling_reduction*talent.kindling.enabled)-action.rune_of_power.execute_time*talent.rune_of_power.enabled)*!cooldown.combustion.ready*buff.combustion.down\nactions+=/variable,name=time_to_combustion,op=max,value=cooldown.memory_of_lucid_dreams.remains,if=essence.memory_of_lucid_dreams.major&buff.memory_of_lucid_dreams.down&cooldown.memory_of_lucid_dreams.remains-variable.time_to_combustion<=variable.hold_combustion_threshold\nactions+=/variable,name=time_to_combustion,op=max,value=cooldown.worldvein_resonance.remains,if=essence.worldvein_resonance.major&buff.worldvein_resonance.down&cooldown.worldvein_resonance.remains-variable.time_to_combustion<=variable.hold_combustion_threshold\nactions+=/call_action_list,name=items_high_priority\nactions+=/mirror_image,if=buff.combustion.down\nactions+=/guardian_of_azeroth,if=(variable.time_to_combustion<10||time_to_die<variable.time_to_combustion)\nactions+=/concentrated_flame\nactions+=/reaping_flames\nactions+=/focused_azerite_beam\nactions+=/purifying_blast\nactions+=/ripple_in_space\nactions+=/the_unbound_force\nactions+=/rune_of_power,if=buff.rune_of_power.down&buff.combustion.down&(variable.time_to_combustion>full_recharge_time||variable.time_to_combustion>target.time_to_die)\nactions+=/call_action_list,name=combustion_phase,if=variable.time_to_combustion<=0\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=(essence.memory_of_lucid_dreams.major||essence.memory_of_lucid_dreams.minor&azerite.blaster_master.enabled)&charges=max_charges&!buff.hot_streak.react&!(buff.heating_up.react&(buff.combustion.up&(action.fireball.in_flight||action.pyroblast.in_flight||action.scorch.executing)||target.health.pct<=30&action.scorch.executing))&!(!buff.heating_up.react&!buff.hot_streak.react&buff.combustion.down&(action.fireball.in_flight||action.pyroblast.in_flight))\nactions+=/variable,name=fire_blast_pooling,value=talent.rune_of_power.enabled&cooldown.rune_of_power.remains<cooldown.fire_blast.full_recharge_time&(variable.time_to_combustion>action.rune_of_power.full_recharge_time)&(cooldown.rune_of_power.remains<time_to_die||action.rune_of_power.charges>0)||variable.time_to_combustion<action.fire_blast.full_recharge_time&variable.time_to_combustion<time_to_die\nactions+=/call_action_list,name=rop_phase,strict=1,if=buff.rune_of_power.up&(variable.time_to_combustion>0)\nactions+=/variable,name=phoenix_pooling,value=talent.rune_of_power.enabled&cooldown.rune_of_power.remains<cooldown.phoenix_flames.full_recharge_time&(variable.time_to_combustion>action.rune_of_power.full_recharge_time)&(cooldown.rune_of_power.remains<time_to_die||action.rune_of_power.charges>0)||variable.time_to_combustion<action.phoenix_flames.full_recharge_time&variable.time_to_combustion<time_to_die\n# When Hardcasting Flame Strike, Fire Blasts should be used to generate Hot Streaks and to extend Blaster Master.\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=(!variable.fire_blast_pooling||buff.rune_of_power.up)&(variable.time_to_combustion>0)&(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&!firestarter.active&buff.hot_streak.down&(!azerite.blaster_master.enabled||buff.blaster_master.remains<0.5)\n# During Firestarter, Fire Blasts are used similarly to during Combustion. Generally, they are used to generate Hot Streaks when crits will not be wasted and with Blaster Master, they should be spread out to maintain the Blaster Master buff.\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=firestarter.active&charges>=1&(!variable.fire_blast_pooling||buff.rune_of_power.up)&(!azerite.blaster_master.enabled||buff.blaster_master.remains<0.5)&(!action.fireball.executing&!action.pyroblast.in_flight&buff.heating_up.up||action.fireball.executing&buff.hot_streak.down||action.pyroblast.in_flight&buff.heating_up.down&buff.hot_streak.down)\nactions+=/call_action_list,name=standard_rotation,strict=1,if=variable.time_to_combustion>0\n\nactions.active_talents=living_bomb,if=active_enemies>1&buff.combustion.down&(variable.time_to_combustion>cooldown.living_bomb.duration||variable.time_to_combustion<=0)\nactions.active_talents+=/meteor,if=variable.time_to_combustion<=0||(buff.rune_of_power.up||cooldown.rune_of_power.remains>time_to_die&action.rune_of_power.charges<1||!talent.rune_of_power.enabled)&(cooldown.meteor.duration<variable.time_to_combustion||time_to_die<variable.time_to_combustion)\nactions.active_talents+=/dragons_breath,if=talent.alexstraszas_fury.enabled&(buff.combustion.down&!buff.hot_streak.react||buff.combustion.up&action.fire_blast.charges<action.fire_blast.max_charges&!buff.hot_streak.react)\n\n# Combustion phase prepares abilities with a delay, then launches into the Combustion sequence\nactions.combustion_phase=lights_judgment,if=buff.combustion.down\nactions.combustion_phase+=/bag_of_tricks,if=buff.combustion.down\nactions.combustion_phase+=/living_bomb,if=active_enemies>1&buff.combustion.down\nactions.combustion_phase+=/blood_of_the_enemy\nactions.combustion_phase+=/memory_of_lucid_dreams\nactions.combustion_phase+=/worldvein_resonance\n# During Combustion, Fire Blasts are used to generate Hot Streaks and minimize the amount of time spent executing other spells. For standard Fire, Fire Blasts are only used when Heating Up is active or when a Scorch cast is in progress and Heating Up and Hot Streak are not active. With Blaster Master and Flame On, Fire Blasts can additionally be used while Hot Streak and Heating Up are not active and a Pyroblast is in the air and also while casting Scorch even if Heating Up is already active. The latter allows two Hot Streak Pyroblasts to be cast in succession after the Scorch. Additionally with Blaster Master and Flame On, Fire Blasts should not be used unless Blaster Master is about to expire or there are more than enough Fire Blasts to extend Blaster Master to the end of Combustion.\nactions.combustion_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=charges>=1&((action.fire_blast.charges_fractional+(buff.combustion.remains-buff.blaster_master.duration)%cooldown.fire_blast.duration-(buff.combustion.remains)%(buff.blaster_master.duration-0.5))>=0||!azerite.blaster_master.enabled||!talent.flame_on.enabled||buff.combustion.remains<=buff.blaster_master.duration||buff.blaster_master.remains<0.5||equipped.hyperthread_wristwraps&cooldown.hyperthread_wristwraps_300142.remains<5)&buff.combustion.up&(!action.scorch.executing&!action.pyroblast.in_flight&buff.heating_up.up||action.scorch.executing&buff.hot_streak.down&(buff.heating_up.down||azerite.blaster_master.enabled)||azerite.blaster_master.enabled&talent.flame_on.enabled&action.pyroblast.in_flight&buff.heating_up.down&buff.hot_streak.down)\nactions.combustion_phase+=/rune_of_power,if=buff.rune_of_power.down&buff.combustion.down\n# A Fire Blast should be used to apply Blaster Master while casting Rune of Power when using Blaster Master, Flame On, and Meteor. If only Memory of Lucid Dreams Minor is equipped, this line is ignored because it will sometimes result in going into Combustion with few Fire Blast charges.\nactions.combustion_phase+=/fire_blast,use_while_casting=1,if=azerite.blaster_master.enabled&(essence.memory_of_lucid_dreams.major||!essence.memory_of_lucid_dreams.minor)&talent.meteor.enabled&talent.flame_on.enabled&buff.blaster_master.down&(talent.rune_of_power.enabled&action.rune_of_power.executing&action.rune_of_power.execute_remains<0.6||(variable.time_to_combustion<=0||buff.combustion.up)&!talent.rune_of_power.enabled&!action.pyroblast.in_flight&!action.fireball.in_flight)\nactions.combustion_phase+=/call_action_list,name=active_talents\nactions.combustion_phase+=/combustion,use_off_gcd=1,use_while_casting=1,if=((action.meteor.in_flight&action.meteor.in_flight_remains<=0.5)||action.meteor.in_flight||essence.memory_of_lucid_dreams.major||buff.hot_streak.react||action.scorch.executing&action.scorch.execute_remains<0.5||action.pyroblast.executing&action.pyroblast.execute_remains<0.5)&(buff.rune_of_power.up||!talent.rune_of_power.enabled)\nactions.combustion_phase+=/potion\nactions.combustion_phase+=/blood_fury\nactions.combustion_phase+=/berserking\nactions.combustion_phase+=/fireblood\nactions.combustion_phase+=/ancestral_call\nactions.combustion_phase+=/flamestrike,if=((talent.flame_patch.enabled&active_enemies>2)||active_enemies>6)&buff.hot_streak.react&!azerite.blaster_master.enabled\nactions.combustion_phase+=/pyroblast,if=buff.pyroclasm.react&buff.combustion.remains>cast_time\nactions.combustion_phase+=/pyroblast,if=buff.hot_streak.react\n# Commenting this entry out; it's relying on a reaction time delay when you know your Scorch will crit and you had Heating Up when you cast Scorch.\n# In-game, this is handled more naturally.\n# actions.combustion_phase+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up\nactions.combustion_phase+=/phoenix_flames\nactions.combustion_phase+=/scorch,if=buff.combustion.remains>cast_time&buff.combustion.up||buff.combustion.down&cooldown.combustion.remains<cast_time\nactions.combustion_phase+=/living_bomb,if=buff.combustion.remains<gcd.max&active_enemies>1\nactions.combustion_phase+=/dragons_breath,if=buff.combustion.remains<gcd.max&buff.combustion.up\nactions.combustion_phase+=/scorch,if=target.health.pct<=30&talent.searing_touch.enabled\n\nactions.items_combustion=use_item,name=ignition_mages_fuse\nactions.items_combustion+=/use_item,name=hyperthread_wristwraps,if=buff.combustion.up&action.fire_blast.charges=0&action.fire_blast.recharge_time>gcd.max\nactions.items_combustion+=/use_item,name=manifesto_of_madness\nactions.items_combustion+=/cancel_buff,use_off_gcd=1,name=manifesto_of_madness_chapter_one,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=azurethos_singed_plumage,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,effect_name=gladiators_badge,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,effect_name=gladiators_medallion,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=balefire_branch,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=shockbiters_fang,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=tzanes_barkspines,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=ancient_knot_of_wisdom,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=neural_synapse_enhancer,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\nactions.items_combustion+=/use_item,use_off_gcd=1,name=malformed_heralds_legwraps,if=buff.combustion.up||action.meteor.in_flight&action.meteor.in_flight_remains<=0.5\n\nactions.items_high_priority=call_action_list,name=items_combustion,if=variable.time_to_combustion<=0\nactions.items_high_priority+=/use_items\nactions.items_high_priority+=/use_item,name=manifesto_of_madness,if=!equipped.azsharas_font_of_power&variable.time_to_combustion<8\nactions.items_high_priority+=/use_item,name=azsharas_font_of_power,if=variable.time_to_combustion<=5+15*variable.font_double_on_use&variable.time_to_combustion>0\nactions.items_high_priority+=/use_item,name=rotcrusted_voodoo_doll,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=aquipotent_nautilus,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=shiver_venom_relic,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=forbidden_obsidian_claw,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,effect_name=harmonic_dematerializer\nactions.items_high_priority+=/use_item,name=malformed_heralds_legwraps,if=variable.time_to_combustion>=55&buff.combustion.down&variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=ancient_knot_of_wisdom,if=variable.time_to_combustion>=55&buff.combustion.down&variable.time_to_combustion>variable.on_use_cutoff\nactions.items_high_priority+=/use_item,name=neural_synapse_enhancer,if=variable.time_to_combustion>=45&buff.combustion.down&variable.time_to_combustion>variable.on_use_cutoff\n\nactions.items_low_priority=use_item,name=tidestorm_codex,if=variable.time_to_combustion>variable.on_use_cutoff\nactions.items_low_priority+=/use_item,effect_name=cyclotronic_blast,if=variable.time_to_combustion>variable.on_use_cutoff\n\nactions.rop_phase=flamestrike,if=(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))&buff.hot_streak.react\nactions.rop_phase+=/pyroblast,if=buff.hot_streak.react\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))&!firestarter.active&(!buff.heating_up.react&!buff.hot_streak.react&!prev_off_gcd.fire_blast&(action.fire_blast.charges>=2||(action.phoenix_flames.charges>=1&talent.phoenix_flames.enabled)||(talent.alexstraszas_fury.enabled&cooldown.dragons_breath.ready)||(talent.searing_touch.enabled&target.health.pct<=30||spell_crit>=1)))\nactions.rop_phase+=/call_action_list,name=active_talents\nactions.rop_phase+=/pyroblast,if=buff.pyroclasm.react&cast_time<buff.pyroclasm.remains&buff.rune_of_power.remains>cast_time\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))&!firestarter.active&(buff.heating_up.react&spell_crit<1&(target.health.pct>=30||!talent.searing_touch.enabled))\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))&!firestarter.active&(talent.searing_touch.enabled&target.health.pct<=30||spell_crit>=1)&(buff.heating_up.react&!action.scorch.executing||!buff.heating_up.react&!buff.hot_streak.react)\n# actions.rop_phase+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up&(talent.searing_touch.enabled&target.health.pct<=30||spell_crit>=1)&!(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))\nactions.rop_phase+=/phoenix_flames,if=!prev_gcd.1.phoenix_flames&buff.heating_up.react\nactions.rop_phase+=/scorch,if=target.health.pct<=30&talent.searing_touch.enabled||spell_crit>=1\nactions.rop_phase+=/dragons_breath,if=active_enemies>2\nactions.rop_phase+=/flamestrike,if=(active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))\nactions.rop_phase+=/fireball\n\nactions.standard_rotation=flamestrike,if=(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike))&buff.hot_streak.react\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&buff.hot_streak.remains<action.fireball.execute_time\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&(prev_gcd.1.fireball||firestarter.active||action.pyroblast.in_flight||moving)\nactions.standard_rotation+=/phoenix_flames,if=charges>=3&active_enemies>2&!variable.phoenix_pooling\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&(target.health.pct<=30&talent.searing_touch.enabled||spell_crit>=1)\nactions.standard_rotation+=/pyroblast,if=buff.pyroclasm.react&cast_time<buff.pyroclasm.remains\nactions.standard_rotation+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=(buff.rune_of_power.down&!firestarter.active)&!variable.fire_blast_pooling&(((action.fireball.executing||action.pyroblast.executing)&buff.heating_up.react)||((talent.searing_touch.enabled&target.health.pct<=30||spell_crit>=1)&(buff.heating_up.react&!action.scorch.executing||!buff.hot_streak.react&!buff.heating_up.react&action.scorch.executing&!action.pyroblast.in_flight&!action.fireball.in_flight)))\n# actions.standard_rotation+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up&(talent.searing_touch.enabled&target.health.pct<=30||spell_crit>=1)&!(active_enemies>=variable.hot_streak_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike||variable.disable_combustion))\nactions.standard_rotation+=/phoenix_flames,if=(buff.heating_up.react||(!buff.hot_streak.react&(action.fire_blast.charges>0||talent.searing_touch.enabled&target.health.pct<=30||spell_crit>=1)))&!variable.phoenix_pooling\nactions.standard_rotation+=/call_action_list,name=active_talents\nactions.standard_rotation+=/dragons_breath,if=active_enemies>1\nactions.standard_rotation+=/call_action_list,name=items_low_priority\nactions.standard_rotation+=/scorch,if=target.health.pct<=30&talent.searing_touch.enabled||spell_crit>=1\n# With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.\nactions.standard_rotation+=/flamestrike,if=active_enemies>=variable.hard_cast_flamestrike&(time-buff.combustion.last_expire>variable.delay_flamestrike)\nactions.standard_rotation+=/fireball\nactions.standard_rotation+=/scorch",
},
["Fire IV"] = {
["source"] = "https://icy-veins.com/",
["builtIn"] = true,
["date"] = 20200204.1,
["author"] = "Icy-Veins Authors",
["desc"] = "# Fire Mage\n# Based off Icy Veins priority.\n# March 31, 2020",
["lists"] = {
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.combustion.ready",
["action"] = "rune_of_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.combustion.ready",
["action"] = "memory_of_lucid_dreams",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "use_items",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ! talent.rune_of_power.enabled || buff.rune_of_power.up ) & ( cooldown.combustion.ready || cooldown.combustion.remains >= 45 )",
["action"] = "meteor",
}, -- [5]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( ! essence.memory_of_lucid_dreams.major || buff.memory_of_lucid_dreams.up || cooldown.memory_of_lucid_dreams.remains > 115 ) & ( ! talent.meteor.enabled || cooldown.meteor.remains )",
["use_off_gcd"] = 1,
["action"] = "combustion",
}, -- [6]
{
["enabled"] = true,
["action"] = "hyperthread_wristwraps",
["criteria"] = "buff.combustion.up & action.fire_blast.charges = 0 & action.fire_blast.recharge_time > gcd.max",
["name"] = "hyperthread_wristwraps",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 2",
["action"] = "rune_of_power",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 2.9",
["action"] = "phoenix_flames",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! talent.flame_patch.enabled & ( buff.combustion.up & active_enemies >= 8 || buff.combustion.down & active_enemies >= 5 ) & buff.hot_streak.up",
["action"] = "flamestrike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.flame_patch.enabled & ( buff.combustion.up & active_enemies >= 3 || buff.combustion.down & active_enemies >= 2 ) & buff.hot_streak.up",
["action"] = "flamestrike",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.up & ( buff.combustion.remains > buff.pyroclasm.remains || buff.combustion.down & cooldown.combustion.remains > buff.pyroclasm.remains + 3 ) & ( buff.rune_of_power.remains > buff.pyroclasm.remains || ! talent.rune_of_power.enabled || talent.rune_of_power.enabled & buff.rune_of_power.down & cooldown.rune_of_power.remains > buff.pyroclasm.remains + 3 )",
["action"] = "pyroblast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.up",
["action"] = "pyroblast",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & time_to_die >= 8",
["action"] = "living_bomb",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up & buff.combustion.remains < 1",
["action"] = "dragons_breath",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "dragons_breath",
}, -- [16]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "buff.heating_up.up",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [17]
{
["action"] = "dragons_breath",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "talent.searing_touch.enabled & target.health.pct < 30 & target.time_to_die > cast_time",
["action"] = "scorch",
}, -- [19]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "time_to_die < action.scorch.cast",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "fireball",
}, -- [21]
{
["moving"] = "1",
["action"] = "scorch",
["enabled"] = true,
}, -- [22]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blazing_barrier.down",
["action"] = "blazing_barrier",
}, -- [2]
{
["action"] = "potion",
["enabled"] = true,
}, -- [3]
{
["action"] = "pyroblast",
["enabled"] = true,
}, -- [4]
},
},
["version"] = 20200204.1,
["warnings"] = "Imported 2 action lists.\n",
["spec"] = 63,
["profile"] = "# Fire Mage\n# Based off Icy Veins priority.\n# March 31, 2020\n\nactions.precombat=arcane_intellect\nactions.precombat=blazing_barrier,if=buff.blazing_barrier.down\nactions.precombat=potion\nactions.precombat=pyroblast\n\nactions+=/counterspell\nactions+=/rune_of_power,if=cooldown.combustion.ready\nactions+=/memory_of_lucid_dreams,if=cooldown.combustion.ready\nactions+=/use_items,if=buff.combustion.down\nactions+=/meteor,if=(!talent.rune_of_power.enabled||buff.rune_of_power.up)&(cooldown.combustion.ready||cooldown.combustion.remains>=45)\nactions+=/combustion,use_while_casting=1,use_off_gcd=1,if=(!essence.memory_of_lucid_dreams.major||buff.memory_of_lucid_dreams.up||cooldown.memory_of_lucid_dreams.remains>115)&(!talent.meteor.enabled||cooldown.meteor.remains)\nactions+=/use_item,name=hyperthread_wristwraps,if=buff.combustion.up&action.fire_blast.charges=0&action.fire_blast.recharge_time>gcd.max\n# actions+=/hyperthread_wristwraps,if=buff.combustion.up&cooldown.fire_blast.charges=0&(prev.1.fire_blast+prev.2.fire_blast+prev.3.fire_blast>=2)\nactions+=/rune_of_power,if=full_recharge_time<2\n# actions+=/rune_of_power,if=charges_fractional>=1.95&cast<time_to_die\nactions+=/phoenix_flames,if=charges_fractional>=2.9\nactions+=/flamestrike,if=!talent.flame_patch.enabled&(buff.combustion.up&active_enemies>=8||buff.combustion.down&active_enemies>=5)&buff.hot_streak.up\nactions+=/flamestrike,if=talent.flame_patch.enabled&(buff.combustion.up&active_enemies>=3||buff.combustion.down&active_enemies>=2)&buff.hot_streak.up\n# If Combustion or Rune of Power is currently not active, but will be available before the Pyroclasm buff would time out, and you only have one stack of Pyroclasm, you should hold it until the Combustion or Rune of Power is up.\nactions+=/pyroblast,if=buff.pyroclasm.up&(buff.combustion.remains>buff.pyroclasm.remains||buff.combustion.down&cooldown.combustion.remains>buff.pyroclasm.remains+3)&(buff.rune_of_power.remains>buff.pyroclasm.remains||!talent.rune_of_power.enabled||talent.rune_of_power.enabled&buff.rune_of_power.down&cooldown.rune_of_power.remains>buff.pyroclasm.remains+3)\nactions+=/pyroblast,if=buff.hot_streak.up\nactions+=/living_bomb,if=active_enemies>=3&time_to_die>=8\nactions+=/dragons_breath,if=buff.combustion.up&buff.combustion.remains<1\nactions+=/dragons_breath,if=active_enemies>=3\nactions+=/fire_blast,use_while_casting=1,use_off_gcd=1,if=buff.heating_up.up\nactions+=/dragons_breath\nactions+=/scorch,if=talent.searing_touch.enabled&target.health.pct<30&target.time_to_die>cast_time\nactions+=/fire_blast,use_while_casting=1,use_off_gcd=1,if=time_to_die<action.scorch.cast\nactions+=/fireball,if=buff.combustion.down\nactions+=/scorch,moving=1",
},
["Arcane"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200525,
["spec"] = 62,
["desc"] = "# Arcane Mage\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - start_burn_phase, stop_burn_phase, and average_burn_length are handled by the addon.\n# - target.time_to_die -> (time_to_die) so that we don't excessively burn on trash if we don't want to.\n# - Update potion logic.",
["lists"] = {
["conserve"] = {
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 0",
["action"] = "charged_up",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "nether_tempest",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack <= 2 & ( cooldown.arcane_power.remains > 10 || active_enemies <= 2 )",
["action"] = "arcane_orb",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rule_of_threes.up & buff.arcane_charge.stack > 3",
["action"] = "arcane_blast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & ! buff.arcane_power.react & cooldown.arcane_power.remains > 20",
["name"] = "tidestorm_codex",
["action"] = "tidestorm_codex",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & ! buff.arcane_power.react & cooldown.arcane_power.remains > 20",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & ( full_recharge_time <= execute_time || full_recharge_time <= cooldown.arcane_power.remains || time_to_die <= cooldown.arcane_power.remains )",
["action"] = "rune_of_power",
}, -- [8]
{
["enabled"] = true,
["chain"] = "1",
["criteria"] = "mana.pct <= 95 & buff.clearcasting.react & active_enemies < 3",
["action"] = "arcane_missiles",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( ( buff.arcane_charge.stack = buff.arcane_charge.max_stack ) & ( ( mana.pct <= variable.conserve_mana ) || ( talent.rune_of_power.enabled & cooldown.arcane_power.remains > cooldown.rune_of_power.full_recharge_time & mana.pct <= variable.conserve_mana + 25 ) ) || ( talent.arcane_orb.enabled & cooldown.arcane_orb.remains <= gcd & cooldown.arcane_power.remains > 10 ) ) || mana.pct <= ( variable.conserve_mana - 10 )",
["action"] = "arcane_barrage",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "mana.pct <= 95",
["action"] = "supernova",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ( mana.pct >= variable.conserve_mana || buff.arcane_charge.stack = 3 )",
["action"] = "arcane_explosion",
}, -- [12]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [13]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [14]
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["action"] = "spellsteal",
["enabled"] = true,
}, -- [2]
{
["action"] = "remove_curse",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "essences",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down & ( cooldown.arcane_power.remains <= 4 + 10 * variable.font_double_on_use & cooldown.evocation.remains <= variable.average_burn_length + 4 + 10 * variable.font_double_on_use || time_to_die < cooldown.arcane_power.remains )",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "burn_phase || ( time_to_die < average_burn_length )",
["list_name"] = "burn",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "( cooldown.arcane_power.remains = 0 & cooldown.evocation.remains <= average_burn_length & ( buff.arcane_charge.stack = buff.arcane_charge.max_stack || ( talent.charged_up.enabled & cooldown.charged_up.remains = 0 & buff.arcane_charge.stack <= 1 ) ) )",
["list_name"] = "burn",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "! burn_phase",
["list_name"] = "conserve",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [9]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["action"] = "summon_arcane_familiar",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "60 + 20 * azerite.equipoise.enabled",
["var_name"] = "conserve_mana",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.azsharas_font_of_power & ( equipped.manifesto_of_madness || equipped.gladiators_badge || equipped.gladiators_medallion || equipped.ignition_mages_fuse || equipped.tzanes_barkspines || equipped.azurethos_singed_plumage || equipped.ancient_knot_of_wisdom || equipped.shockbiters_fang || equipped.neural_synapse_enhancer || equipped.balefire_branch )",
["var_name"] = "font_double_on_use",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "12",
["var_name"] = "font_of_power_precombat_channel",
["criteria"] = "variable.font_double_on_use & variable.font_of_power_precombat_channel = 0",
}, -- [5]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [6]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [7]
{
["action"] = "potion",
["enabled"] = true,
}, -- [8]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [9]
},
["burn"] = {
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack <= 1",
["action"] = "charged_up",
}, -- [1]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "nether_tempest",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rule_of_threes.up & talent.overpowered.enabled & active_enemies < 3",
["action"] = "arcane_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.down",
["action"] = "lights_judgment",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.down",
["action"] = "bag_of_tricks",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.arcane_power.up & ( mana.pct >= 50 || cooldown.arcane_power.remains = 0 ) & ( buff.arcane_charge.stack = buff.arcane_charge.max_stack )",
["action"] = "rune_of_power",
}, -- [7]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [8]
{
["action"] = "arcane_power",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.up || time_to_die < cooldown.arcane_power.remains",
["action"] = "use_items",
}, -- [10]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [11]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [12]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( talent.rune_of_power.enabled & buff.rune_of_power.remains <= buff.presence_of_mind.max_stack * action.arcane_blast.execute_time ) || buff.arcane_power.remains <= buff.presence_of_mind.max_stack * action.arcane_blast.execute_time",
["action"] = "presence_of_mind",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.arcane_power.up & ( ( ! essence.condensed_lifeforce.major || essence.condensed_lifeforce.rank < 2 ) & ( buff.berserking.up || buff.blood_fury.up || ! ( race.troll || race.orc ) ) || buff.guardian_of_azeroth.up ) || time_to_die < cooldown.arcane_power.remains",
["action"] = "potion",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 0 || ( active_enemies < 3 || ( active_enemies < 2 & talent.resonance.enabled ) )",
["action"] = "arcane_orb",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ( buff.arcane_charge.stack = buff.arcane_charge.max_stack )",
["action"] = "arcane_barrage",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "arcane_explosion",
}, -- [18]
{
["enabled"] = true,
["chain"] = "1",
["criteria"] = "buff.clearcasting.react & active_enemies < 3 & ( talent.amplification.enabled || ( ! talent.overpowered.enabled & azerite.arcane_pummeling.rank >= 2 ) || buff.arcane_power.down )",
["action"] = "arcane_missiles",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "arcane_blast",
}, -- [20]
{
["interrupt_if"] = "mana.pct>=85",
["interrupt_immediate"] = "1",
["action"] = "evocation",
["enabled"] = true,
}, -- [21]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [22]
},
["essences"] = {
{
["enabled"] = true,
["criteria"] = "burn_phase & buff.arcane_power.down & buff.rune_of_power.down & buff.arcane_charge.stack = buff.arcane_charge.max_stack || time_to_die < cooldown.arcane_power.remains",
["action"] = "blood_of_the_enemy",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down & ( ! burn_phase || time_to_die < cooldown.arcane_power.remains ) & mana.time_to_max >= execute_time",
["action"] = "concentrated_flame",
["line_cd"] = "6",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down & ( ! burn_phase || time_to_die < cooldown.arcane_power.remains ) & mana.time_to_max >= execute_time",
["action"] = "reaping_flames",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "focused_azerite_beam",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "guardian_of_azeroth",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "purifying_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "ripple_in_space",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & buff.arcane_power.down",
["action"] = "the_unbound_force",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! burn_phase & buff.arcane_power.down & cooldown.arcane_power.remains & buff.arcane_charge.stack = buff.arcane_charge.max_stack & ( ! talent.rune_of_power.enabled || action.rune_of_power.charges ) || time_to_die < cooldown.arcane_power.remains",
["action"] = "memory_of_lucid_dreams",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "burn_phase & buff.arcane_power.down & buff.rune_of_power.down & buff.arcane_charge.stack = buff.arcane_charge.max_stack || time_to_die < cooldown.arcane_power.remains",
["action"] = "worldvein_resonance",
}, -- [10]
},
["movement"] = {
{
["enabled"] = true,
["criteria"] = "movement.distance >= 10",
["action"] = "blink",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "movement.distance >= 10",
["action"] = "blink",
}, -- [2]
{
["action"] = "presence_of_mind",
["enabled"] = true,
}, -- [3]
{
["action"] = "arcane_missiles",
["enabled"] = true,
}, -- [4]
{
["action"] = "arcane_orb",
["enabled"] = true,
}, -- [5]
{
["action"] = "supernova",
["enabled"] = true,
}, -- [6]
},
},
["version"] = 20200525,
["warnings"] = "Imported 6 action lists.\n",
["author"] = "SimulationCraft",
["profile"] = "# Arcane Mage\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - start_burn_phase, stop_burn_phase, and average_burn_length are handled by the addon.\n# - target.time_to_die -> (time_to_die) so that we don't excessively burn on trash if we don't want to.\n# - Update potion logic.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/arcane_intellect\nactions.precombat+=/arcane_familiar\n# conserve_mana is the mana percentage we want to go down to during conserve. It needs to leave enough room to worst case scenario spam AB only during AP.\nactions.precombat+=/variable,name=conserve_mana,op=set,value=60+20*azerite.equipoise.enabled\nactions.precombat+=/variable,name=font_double_on_use,op=set,value=equipped.azsharas_font_of_power&(equipped.manifesto_of_madness||equipped.gladiators_badge||equipped.gladiators_medallion||equipped.ignition_mages_fuse||equipped.tzanes_barkspines||equipped.azurethos_singed_plumage||equipped.ancient_knot_of_wisdom||equipped.shockbiters_fang||equipped.neural_synapse_enhancer||equipped.balefire_branch)\nactions.precombat+=/variable,name=font_of_power_precombat_channel,op=set,value=12,if=variable.font_double_on_use&variable.font_of_power_precombat_channel=0\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mirror_image\nactions.precombat+=/potion\nactions.precombat+=/arcane_blast\n\n# Executed every time the actor is available.\nactions=counterspell\nactions+=/spellsteal\nactions+=/remove_curse\nactions+=/call_action_list,name=essences\nactions+=/use_item,name=azsharas_font_of_power,if=buff.rune_of_power.down&buff.arcane_power.down&(cooldown.arcane_power.remains<=4+10*variable.font_double_on_use&cooldown.evocation.remains<=variable.average_burn_length+4+10*variable.font_double_on_use||time_to_die<cooldown.arcane_power.remains)\n# Go to Burn Phase when already burning, or when boss will die soon.\nactions+=/call_action_list,name=burn,if=burn_phase||(time_to_die<average_burn_length)\n# Start Burn Phase when Arcane Power is ready and Evocation will be ready (on average) before the burn phase is over. Also make sure we got 4 Arcane Charges, or can get 4 Arcane Charges with Charged Up.\nactions+=/call_action_list,name=burn,if=(cooldown.arcane_power.remains=0&cooldown.evocation.remains<=average_burn_length&(buff.arcane_charge.stack=buff.arcane_charge.max_stack||(talent.charged_up.enabled&cooldown.charged_up.remains=0&buff.arcane_charge.stack<=1)))\nactions+=/call_action_list,name=conserve,if=!burn_phase\nactions+=/call_action_list,name=movement\n\n# Increment our burn phase counter. Whenever we enter the `burn` actions without being in a burn phase, it means that we are about to start one.\n# actions.burn=variable,name=total_burns,op=add,value=1,if=!burn_phase\n# actions.burn+=/start_burn_phase,if=!burn_phase\n# End the burn phase when we just evocated.\n# actions.burn+=/stop_burn_phase,if=burn_phase&prev_gcd.1.evocation&(time_to_die)>variable.average_burn_length&burn_phase_duration>0\n# Less than 1 instead of equals to 0, because of pre-cast Arcane Blast\nactions.burn+=/charged_up,if=buff.arcane_charge.stack<=1\nactions.burn+=/mirror_image\nactions.burn+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.rune_of_power.down&buff.arcane_power.down\n# When running Overpowered, and we got a Rule of Threes proc (AKA we got our 4th Arcane Charge via Charged Up), use it before using RoP+AP, because the mana reduction is otherwise largely wasted since the AB was free anyway.\nactions.burn+=/arcane_blast,if=buff.rule_of_threes.up&talent.overpowered.enabled&active_enemies<3\nactions.burn+=/lights_judgment,if=buff.arcane_power.down\nactions.burn+=/bag_of_tricks,if=buff.arcane_power.down\nactions.burn+=/rune_of_power,if=buff.rune_of_power.down&!buff.arcane_power.up&(mana.pct>=50||cooldown.arcane_power.remains=0)&(buff.arcane_charge.stack=buff.arcane_charge.max_stack)\nactions.burn+=/berserking\nactions.burn+=/arcane_power\nactions.burn+=/use_items,if=buff.arcane_power.up||time_to_die<cooldown.arcane_power.remains\nactions.burn+=/blood_fury\nactions.burn+=/fireblood\nactions.burn+=/ancestral_call\nactions.burn+=/presence_of_mind,if=(talent.rune_of_power.enabled&buff.rune_of_power.remains<=buff.presence_of_mind.max_stack*action.arcane_blast.execute_time)||buff.arcane_power.remains<=buff.presence_of_mind.max_stack*action.arcane_blast.execute_time\nactions.burn+=/potion,if=buff.arcane_power.up&((!essence.condensed_lifeforce.major||essence.condensed_lifeforce.rank<2)&(buff.berserking.up||buff.blood_fury.up||!(race.troll||race.orc))||buff.guardian_of_azeroth.up)||time_to_die<cooldown.arcane_power.remains\nactions.burn+=/arcane_orb,if=buff.arcane_charge.stack=0||(active_enemies<3||(active_enemies<2&talent.resonance.enabled))\nactions.burn+=/arcane_barrage,if=active_enemies>=3&(buff.arcane_charge.stack=buff.arcane_charge.max_stack)\nactions.burn+=/arcane_explosion,if=active_enemies>=3\n# Ignore Arcane Missiles during Arcane Power, aside from some very specific exceptions, like not having Overpowered talented & running 3x Arcane Pummeling.\nactions.burn+=/arcane_missiles,if=buff.clearcasting.react&active_enemies<3&(talent.amplification.enabled||(!talent.overpowered.enabled&azerite.arcane_pummeling.rank>=2)||buff.arcane_power.down),chain=1\nactions.burn+=/arcane_blast,if=active_enemies<3\n# Now that we're done burning, we can update the average_burn_length with the length of this burn.\n# actions.burn+=/variable,name=average_burn_length,op=set,value=(variable.average_burn_length*variable.total_burns-variable.average_burn_length+(burn_phase_duration))%variable.total_burns\nactions.burn+=/evocation,interrupt_if=mana.pct>=85,interrupt_immediate=1\n# For the rare occasion where we go oom before evocation is back up. (Usually because we get very bad rng so the burn is cut very short)\nactions.burn+=/arcane_barrage\n\nactions.conserve=mirror_image\nactions.conserve+=/charged_up,if=buff.arcane_charge.stack=0\nactions.conserve+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.rune_of_power.down&buff.arcane_power.down\nactions.conserve+=/arcane_orb,if=buff.arcane_charge.stack<=2&(cooldown.arcane_power.remains>10||active_enemies<=2)\n# Arcane Blast shifts up in priority when running rule of threes.\nactions.conserve+=/arcane_blast,if=buff.rule_of_threes.up&buff.arcane_charge.stack>3\nactions.conserve+=/use_item,name=tidestorm_codex,if=buff.rune_of_power.down&!buff.arcane_power.react&cooldown.arcane_power.remains>20\nactions.conserve+=/use_item,effect_name=cyclotronic_blast,if=buff.rune_of_power.down&!buff.arcane_power.react&cooldown.arcane_power.remains>20\nactions.conserve+=/rune_of_power,if=buff.rune_of_power.down&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(full_recharge_time<=execute_time||full_recharge_time<=cooldown.arcane_power.remains||target.time_to_die<=cooldown.arcane_power.remains)\nactions.conserve+=/arcane_missiles,if=mana.pct<=95&buff.clearcasting.react&active_enemies<3,chain=1\n# During conserve, we still just want to continue not dropping charges as long as possible.So keep 'burning' as long as possible (aka conserve_mana threshhold) and then swap to a 4x AB->Abarr conserve rotation. If we do not have 4 AC, we can dip slightly lower to get a 4th AC. We also sustain at a higher mana percentage when we plan to use a Rune of Power during conserve phase, so we can burn during the Rune of Power.\nactions.conserve+=/arcane_barrage,if=((buff.arcane_charge.stack=buff.arcane_charge.max_stack)&((mana.pct<=variable.conserve_mana)||(talent.rune_of_power.enabled&cooldown.arcane_power.remains>cooldown.rune_of_power.full_recharge_time&mana.pct<=variable.conserve_mana+25))||(talent.arcane_orb.enabled&cooldown.arcane_orb.remains<=gcd&cooldown.arcane_power.remains>10))||mana.pct<=(variable.conserve_mana-10)\n# Supernova is barely worth casting, which is why it is so far down, only just above AB. \nactions.conserve+=/supernova,if=mana.pct<=95\n# Keep 'burning' in aoe situations until conserve_mana pct. After that only cast AE with 3 Arcane charges, since it's almost equal mana cost to a 3 stack AB anyway. At that point AoE rotation will be AB x3->AE->Abarr\nactions.conserve+=/arcane_explosion,if=active_enemies>=3&(mana.pct>=variable.conserve_mana||buff.arcane_charge.stack=3)\nactions.conserve+=/arcane_blast\nactions.conserve+=/arcane_barrage\n\nactions.essences=blood_of_the_enemy,if=burn_phase&buff.arcane_power.down&buff.rune_of_power.down&buff.arcane_charge.stack=buff.arcane_charge.max_stack||time_to_die<cooldown.arcane_power.remains\nactions.essences+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down&buff.arcane_power.down&(!burn_phase||time_to_die<cooldown.arcane_power.remains)&mana.time_to_max>=execute_time\nactions.essences+=/reaping_flames,if=buff.rune_of_power.down&buff.arcane_power.down&(!burn_phase||time_to_die<cooldown.arcane_power.remains)&mana.time_to_max>=execute_time\nactions.essences+=/focused_azerite_beam,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/guardian_of_azeroth,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/purifying_blast,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/ripple_in_space,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/the_unbound_force,if=buff.rune_of_power.down&buff.arcane_power.down\nactions.essences+=/memory_of_lucid_dreams,if=!burn_phase&buff.arcane_power.down&cooldown.arcane_power.remains&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(!talent.rune_of_power.enabled||action.rune_of_power.charges)||time_to_die<cooldown.arcane_power.remains\nactions.essences+=/worldvein_resonance,if=burn_phase&buff.arcane_power.down&buff.rune_of_power.down&buff.arcane_charge.stack=buff.arcane_charge.max_stack||time_to_die<cooldown.arcane_power.remains\n\nactions.movement=shimmer,if=movement.distance>=10\nactions.movement+=/blink,if=movement.distance>=10\nactions.movement+=/presence_of_mind\nactions.movement+=/arcane_missiles\nactions.movement+=/arcane_orb\nactions.movement+=/supernova",
},
},
},
["Quillastra - Deathwing"] = {
["runOnce"] = {
["forceReloadClassDefaultOptions_20220306_103"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["forceReloadClassDefaultOptions_20220306_105"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["forceReloadClassDefaultOptions_20220306_102"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["forceSpellFlashBrightness_20221030"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetRogueMfDOption_20200226"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["forceReloadClassDefaultOptions_20220306_104"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[103] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["delay_berserking"] = false,
["owlweave_cat"] = false,
["rip_duration"] = 9,
["filler_regrowth"] = false,
["brutal_charges"] = 2,
},
["maxTime"] = 33,
},
[104] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["catweave_bear"] = false,
["maul_anyway"] = true,
["ironfur_damage_threshold"] = 5,
["maul_rage"] = 20,
["mangle_more"] = false,
["owlweave_bear"] = false,
["shift_for_convoke"] = false,
},
["maxTime"] = 33,
},
[102] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["starlord_cancel"] = false,
["solo_drift"] = false,
["delay_berserking"] = false,
},
["maxTime"] = 33,
},
},
["displays"] = {
["Interrupts"] = {
["rel"] = "CENTER",
["x"] = -185.8329925537109,
["y"] = -389.9986572265625,
},
["Cooldowns"] = {
["rel"] = "CENTER",
["x"] = 138.3331298828125,
["y"] = -374.1657104492188,
},
["Primary"] = {
["y"] = -374.16552734375,
["x"] = -65.8331298828125,
["rel"] = "CENTER",
},
["AOE"] = {
["rel"] = "CENTER",
},
["Defensives"] = {
["rel"] = "CENTER",
["x"] = -185.8332366943359,
["y"] = -334.9992065429688,
},
},
["packs"] = {
["Feral"] = {
["builtIn"] = true,
["date"] = 20230125,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["bloodtalons"] = {
{
["enabled"] = true,
["criteria"] = "( refreshable || 1.4 * persistent_multiplier > dot.rake.pmultiplier ) & buff.bt_rake.down",
["action"] = "rake",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "refreshable & buff.bt_moonfire.down",
["action"] = "lunar_inspiration",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.bt_brutal_slash.down",
["action"] = "brutal_slash",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable & buff.bt_thrash.down",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1 & buff.bt_swipe.down",
["action"] = "swipe_cat",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bt_shred.down",
["action"] = "shred",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.bt_swipe.down",
["action"] = "swipe_cat",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.bt_thrash.down",
["action"] = "thrash_cat",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.bt_rake.down & combo_points > 4",
["action"] = "rake",
}, -- [9]
},
["finisher"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.primal_wrath > 2",
["action"] = "primal_wrath",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "refreshable & spell_targets.primal_wrath > 1",
["action"] = "primal_wrath",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die >= settings.rip_duration",
["action"] = "rip",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["max_energy"] = 1,
["action"] = "ferocious_bite",
["criteria"] = "( dot.rip.ticking || target.time_to_die < settings.rip_duration ) & ( ! buff.bs_inc.up || ( buff.bs_inc.up & ! talent.soul_of_the_forest.enabled ) )",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( dot.rip.ticking || target.time_to_die < settings.rip_duration ) & buff.bs_inc.up & talent.soul_of_the_forest.enabled",
["action"] = "ferocious_bite",
}, -- [5]
},
["clearcasting"] = {
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "thrash_cat",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1",
["action"] = "swipe_cat",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "spell_targets.brutal_slash > 5 & talent.moment_of_clarity.enabled",
["action"] = "brutal_slash",
}, -- [3]
{
["action"] = "shred",
["enabled"] = true,
}, -- [4]
},
["builder"] = {
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "buff.clearcasting.react",
["list_name"] = "clearcasting",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "refreshable || ( buff.sudden_ambush.up & persistent_multiplier > dot.rake.pmultiplier & dot.rake.duration > 6 )",
["action"] = "rake",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "lunar_inspiration",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
}, -- [4]
{
["action"] = "brutal_slash",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1",
["action"] = "swipe_cat",
}, -- [6]
{
["action"] = "shred",
["enabled"] = true,
}, -- [7]
},
["owlweaving"] = {
{
["enabled"] = true,
["action"] = "sunfire",
["line_cd"] = "4*gcd",
}, -- [1]
},
["default"] = {
{
["action"] = "skull_bash",
["enabled"] = true,
}, -- [1]
{
["action"] = "soothe",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.jungle_stalker.up & buff.jungle_stalker.remains < 2 * gcd.max || dot.rake.pmultiplier < persistent_multiplier * class.auras.prowl_base.multiplier",
["action"] = "prowl",
}, -- [3]
{
["action"] = "tigers_fury",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.prowl.up || buff.shadowmeld.up",
["action"] = "rake",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.bloodtalons.enabled & buff.bloodtalons.down",
["var_name"] = "need_bt",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldown",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( ( ! dot.adaptive_swarm_damage.ticking || dot.adaptive_swarm_damage.remains < 2 ) & ( dot.adaptive_swarm_damage.stack < 3 || ! dot.adaptive_swarm_heal.stack > 1 ) & ! action.adaptive_swarm_heal.in_flight & ! action.adaptive_swarm_damage.in_flight & ! action.adaptive_swarm.in_flight ) & target.time_to_die > 5 || active_enemies > 2 & ! dot.adaptive_swarm_damage.ticking & energy < 35 & target.time_to_die > 5",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "combo_points < 2 || combo_points = 2 & buff.bs_inc.up",
["action"] = "feral_frenzy",
}, -- [10]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.swipe_cat > 1 & talent.primal_wrath.enabled",
["list_name"] = "aoe",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.apex_predators_craving.up",
["action"] = "ferocious_bite",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "combo_points = 5",
["list_name"] = "finisher",
}, -- [13]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.need_bt & ! buff.bs_inc.up",
["list_name"] = "bloodtalons",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "combo_points < 5 & buff.bs_inc.up",
["list_name"] = "berserk_builders",
}, -- [15]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "combo_points < 5",
["list_name"] = "builder",
}, -- [16]
},
["berserk_builders"] = {
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "rake",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1",
["action"] = "swipe_cat",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_bt_triggers = 2 & buff.bt_brutal_slash.down",
["action"] = "brutal_slash",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "lunar_inspiration",
["cycle_targets"] = 1,
}, -- [4]
{
["action"] = "shred",
["enabled"] = true,
}, -- [5]
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "combo_points = 5",
["action"] = "primal_wrath",
["description"] = "AoE",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.apex_predators_craving.up & buff.sabertooth.down",
["action"] = "ferocious_bite",
}, -- [2]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "variable.need_bt & active_bt_triggers >= 1",
["list_name"] = "bloodtalons",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["description"] = "At this target count BRS also crushes everything except full thrashes",
["action"] = "brutal_slash",
}, -- [5]
{
["enabled"] = true,
["action"] = "rake",
["cycle_targets"] = 1,
["description"] = "This means that a full rake (5.5+ ticks) is stronger up to 10ish targets",
["criteria"] = "refreshable || active_dot.rake < cycle_enemies",
}, -- [6]
{
["enabled"] = true,
["action"] = "lunar_inspiration",
["cycle_targets"] = 1,
["description"] = "Full Lis beat Swipe up til around 3-ish targets depending on haste",
["criteria"] = "refreshable & cycle_enemies - active_dot.lunar_inspiration > 2",
}, -- [7]
{
["action"] = "swipe_cat",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "action.shred.damage > action.thrash_cat.damage",
["action"] = "shred",
["description"] = "If we have BrS and nothing better to cast, check if Thrash DD beats Shred",
}, -- [9]
{
["action"] = "thrash_cat",
["enabled"] = true,
}, -- [10]
},
["cooldown"] = {
{
["action"] = "berserk",
["enabled"] = true,
}, -- [1]
{
["action"] = "incarnation",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up & combo_points < 3 || boss & fight_remains < 5",
["action"] = "convoke_the_spirits",
}, -- [3]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up & buff.bs_inc.down & combo_points < 4 & buff.sudden_ambush.down & dot.rake.pmultiplier < 1.6 & energy > 40 & druid.rake.ticks_gained_on_refresh > spell_targets.swipe_cat * 2 - 2 & target.time_to_die > 5",
["action"] = "shadowmeld",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.up || boss & fight_remains < cooldown.bs_inc.remains || boss & fight_remains < 35",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["name"] = "manic_grieftorch",
["action"] = "manic_grieftorch",
["criteria"] = "energy.deficit > 40",
}, -- [7]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
["criteria"] = "buff.bs_inc.down & ( talent.incarnation.enabled & cooldown.incarnation.remains < 5 || cooldown.berserk.remains < 5 )",
}, -- [8]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [9]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "buff.prowl.down",
["action"] = "mark_of_the_wild",
}, -- [1]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [2]
{
["action"] = "prowl",
["enabled"] = true,
}, -- [3]
{
["action"] = "cat_form",
["enabled"] = true,
}, -- [4]
},
},
["version"] = 20230125,
["warnings"] = "The import for 'cooldown' required some automated changes.\nLine 8: Converted 'talent.incarnation' to 'talent.incarnation.enabled' (1x).\n\nImported 10 action lists.\n",
["spec"] = 103,
["profile"] = "actions.precombat+=/mark_of_the_wild,if=buff.prowl.down\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/prowl\nactions.precombat+=/cat_form\n\nactions+=/skull_bash\nactions+=/soothe\nactions+=/prowl,if=buff.jungle_stalker.up&buff.jungle_stalker.remains<2*gcd.max||dot.rake.pmultiplier<persistent_multiplier*class.auras.prowl_base.multiplier\nactions+=/tigers_fury\nactions+=/cat_form,if=!buff.cat_form.up\nactions+=/rake,if=buff.prowl.up||buff.shadowmeld.up\nactions+=/variable,name=need_bt,value=talent.bloodtalons.enabled&buff.bloodtalons.down\nactions+=/call_action_list,name=cooldown\nactions+=/adaptive_swarm,cycle_targets=1,if=((!dot.adaptive_swarm_damage.ticking||dot.adaptive_swarm_damage.remains<2)&(dot.adaptive_swarm_damage.stack<3||!dot.adaptive_swarm_heal.stack>1)&!action.adaptive_swarm_heal.in_flight&!action.adaptive_swarm_damage.in_flight&!action.adaptive_swarm.in_flight)&target.time_to_die>5||active_enemies>2&!dot.adaptive_swarm_damage.ticking&energy<35&target.time_to_die>5\nactions+=/feral_frenzy,if=combo_points<2||combo_points=2&buff.bs_inc.up\nactions+=/run_action_list,name=aoe,strict=1,if=spell_targets.swipe_cat>1&talent.primal_wrath.enabled\nactions+=/ferocious_bite,if=buff.apex_predators_craving.up\nactions+=/call_action_list,name=finisher,strict=1,if=combo_points=5\nactions+=/call_action_list,name=bloodtalons,if=variable.need_bt&!buff.bs_inc.up\nactions+=/call_action_list,name=berserk_builders,strict=1,if=combo_points<5&buff.bs_inc.up\nactions+=/call_action_list,name=builder,strict=1,if=combo_points<5\n\n# AoE\n## actions.aoe+=/pool_resource,for_next=1\nactions.aoe+=/primal_wrath,if=combo_points=5\nactions.aoe+=/ferocious_bite,if=buff.apex_predators_craving.up&buff.sabertooth.down\nactions.aoe+=/run_action_list,name=bloodtalons,if=variable.need_bt&active_bt_triggers>=1\n## actions.aoe+=/pool_resource,for_next=1\nactions.aoe+=/thrash_cat,cycle_targets=1,if=refreshable\n# At this target count BRS also crushes everything except full thrashes\nactions.aoe+=/brutal_slash\n## actions.aoe+=/pool_resource,for_next=1\n## TODO: actions.aoe+=/rake,cycle_targets=1,if=((dot.rake.ticks_gained_on_refresh.pmult*(1+talent.doubleclawed_rake.enabled))>(spell_targets.swipe_cat*0.216+3.32))\n# This means that a full rake (5.5+ ticks) is stronger up to 10ish targets\nactions.aoe+=/rake,cycle_targets=1,if=refreshable||active_dot.rake<cycle_enemies\n## TODO: actions.aoe+=/lunar_inspiration,cycle_targets=1,if=max((ticks_gained_on_refresh+1)-(spell_targets.swipe_cat*2.492))\n# Full Lis beat Swipe up til around 3-ish targets depending on haste\nactions.aoe+=/lunar_inspiration,cycle_targets=1,if=refreshable&cycle_enemies-active_dot.lunar_inspiration>2\nactions.aoe+=/swipe_cat\n# If we have BrS and nothing better to cast, check if Thrash DD beats Shred\nactions.aoe+=/shred,if=action.shred.damage>action.thrash_cat.damage\nactions.aoe+=/thrash_cat\n\nactions.bloodtalons+=/rake,cycle_targets=1,if=(refreshable||1.4*persistent_multiplier>dot.rake.pmultiplier)&buff.bt_rake.down\nactions.bloodtalons+=/lunar_inspiration,if=refreshable&buff.bt_moonfire.down\nactions.bloodtalons+=/brutal_slash,if=buff.bt_brutal_slash.down\nactions.bloodtalons+=/thrash_cat,cycle_targets=1,if=refreshable&buff.bt_thrash.down\nactions.bloodtalons+=/swipe_cat,if=spell_targets.swipe_cat>1&buff.bt_swipe.down\nactions.bloodtalons+=/shred,if=buff.bt_shred.down\nactions.bloodtalons+=/swipe_cat,if=buff.bt_swipe.down\nactions.bloodtalons+=/thrash_cat,if=buff.bt_thrash.down\nactions.bloodtalons+=/rake,if=buff.bt_rake.down&combo_points>4\n\nactions.berserk_builders+=/rake,cycle_targets=1,if=refreshable\nactions.berserk_builders+=/swipe_cat,if=spell_targets.swipe_cat>1\nactions.berserk_builders+=/brutal_slash,if=active_bt_triggers=2&buff.bt_brutal_slash.down\nactions.berserk_builders+=/moonfire_cat,cycle_targets=1,if=refreshable\nactions.berserk_builders+=/shred\n\nactions.builder+=/run_action_list,name=clearcasting,if=buff.clearcasting.react\nactions.builder+=/rake,cycle_targets=1,if=refreshable||(buff.sudden_ambush.up&persistent_multiplier>dot.rake.pmultiplier&dot.rake.duration>6)\nactions.builder+=/moonfire_cat,cycle_targets=1,if=refreshable\n## actions.builder+=/pool_resource,for_next=1\nactions.builder+=/thrash_cat,cycle_targets=1,if=refreshable\nactions.builder+=/brutal_slash\nactions.builder+=/swipe_cat,if=spell_targets.swipe_cat>1\nactions.builder+=/shred\n\nactions.clearcasting+=/thrash_cat,if=refreshable\nactions.clearcasting+=/swipe_cat,if=spell_targets.swipe_cat>1\nactions.clearcasting+=/brutal_slash,if=spell_targets.brutal_slash>5&talent.moment_of_clarity.enabled\nactions.clearcasting+=/shred\n\nactions.cooldown+=/berserk\nactions.cooldown+=/incarnation\nactions.cooldown+=/convoke_the_spirits,if=buff.tigers_fury.up&combo_points<3||boss&fight_remains<5\nactions.cooldown+=/berserking\nactions.cooldown+=/shadowmeld,if=buff.tigers_fury.up&buff.bs_inc.down&combo_points<4&buff.sudden_ambush.down&dot.rake.pmultiplier<1.6&energy>40&druid.rake.ticks_gained_on_refresh>spell_targets.swipe_cat*2-2&target.time_to_die>5\nactions.cooldown+=/potion,if=buff.bs_inc.up||boss&fight_remains<cooldown.bs_inc.remains||boss&fight_remains<35\nactions.cooldown+=/use_item,name=manic_grieftorch,if=energy.deficit>40\nactions.cooldown+=/use_item,name=algethar_puzzle_box,if=buff.bs_inc.down&(talent.incarnation&cooldown.incarnation.remains<5||cooldown.berserk.remains<5)\nactions.cooldown+=/use_items\n\nactions.finisher+=/primal_wrath,if=spell_targets.primal_wrath>2\nactions.finisher+=/primal_wrath,cycle_targets=1,if=refreshable&spell_targets.primal_wrath>1\nactions.finisher+=/rip,cycle_targets=1,if=refreshable&target.time_to_die>=settings.rip_duration\n## actions.finisher+=/pool_resource,for_next=1\nactions.finisher+=/ferocious_bite,max_energy=1,if=(dot.rip.ticking||target.time_to_die<settings.rip_duration)&(!buff.bs_inc.up||(buff.bs_inc.up&!talent.soul_of_the_forest.enabled))\nactions.finisher+=/ferocious_bite,if=(dot.rip.ticking||target.time_to_die<settings.rip_duration)&buff.bs_inc.up&talent.soul_of_the_forest.enabled\n\nactions.owlweaving+=/sunfire,line_cd=4*gcd",
},
["Balance"] = {
["source"] = "https://balance-simc.github.io/Balance-SimC/md.html?file=balance.txt",
["builtIn"] = true,
["date"] = 20230208,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "solar_beam",
}, -- [1]
{
["action"] = "soothe",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "wrath",
["criteria"] = "time < gcd.max & ( eclipse.any_next || eclipse.lunar_next )",
["line_cd"] = "5",
}, -- [3]
{
["enabled"] = true,
["action"] = "stellar_flare",
["criteria"] = "refreshable & time < 2 * gcd.max & buff.eclipse_lunar.up",
["line_cd"] = "5",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.starfall > 1",
["var_name"] = "is_aoe",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "6 / spell_haste + talent.natures_balance.enabled + talent.orbit_breaker.enabled * dot.moonfire.ticking * ( buff.orbit_breaker.stack > ( 27 - 2 * buff.solstice.up ) ) * 40",
["var_name"] = "passive_asp",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.remains >= 20 || variable.no_cd_talent || boss & fight_remains < 15",
["action"] = "berserking",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! druid.no_cds & ( buff.ca_inc.remains >= 20 || variable.no_cd_talent || boss & fight_remains < 30 )",
["action"] = "potion",
}, -- [8]
{
["enabled"] = true,
["slots"] = "trinket1",
["action"] = "trinket1",
["criteria"] = "variable.on_use_trinket != 1 & ! trinket.t2.ready_cooldown || ( variable.on_use_trinket = 1 || variable.on_use_trinket = 3 ) & buff.ca_inc.up || variable.no_cd_talent || boss & fight_remains < 20 || variable.on_use_trinket = 0",
}, -- [9]
{
["enabled"] = true,
["slots"] = "trinket2",
["action"] = "trinket2",
["criteria"] = "variable.on_use_trinket != 2 & ! trinket.t1.ready_cooldown || variable.on_use_trinket = 2 & buff.ca_inc.up || variable.no_cd_talent || boss & fight_remains < 20 || variable.on_use_trinket = 0",
}, -- [10]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "variable.is_aoe",
["list_name"] = "aoe",
}, -- [12]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "st",
}, -- [13]
},
["precombat"] = {
{
["action"] = "moonkin_form",
["enabled"] = true,
}, -- [1]
{
["action"] = "mark_of_the_wild",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.celestial_alignment.enabled & ! talent.incarnation_chosen_of_elune.enabled || druid.no_cds",
["var_name"] = "no_cd_talent",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.umbral_intensity.rank = 2",
["var_name"] = "solar_eclipse_st",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "on_use_trinket",
}, -- [5]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff & trinket.t1.cooldown.duration",
["var_name"] = "on_use_trinket",
}, -- [6]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "( trinket.t2.has_use_buff & trinket.t2.cooldown.duration ) * 2",
["var_name"] = "on_use_trinket",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( eclipse.any_next || eclipse.lunar_next )",
["action"] = "wrath",
}, -- [8]
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "! boss & refreshable & ( target.time_to_die - remains ) > 6 & astral_power.deficit > variable.passive_asp + 3",
["action"] = "moonfire",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains ) > 6 - ( spell_targets / 2 ) & astral_power.deficit > variable.passive_asp + 3",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "boss & refreshable & ( target.time_to_die - remains ) > 6 & astral_power.deficit > variable.passive_asp + 3",
["action"] = "moonfire",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! druid.no_cds & ( cooldown.ca_inc.remains < 5 & ! buff.ca_inc.up & ( target.time_to_die > 10 || boss & fight_remains < 25 + 10 * talent.incarnation_chosen_of_elune.enabled ) )",
["var_name"] = "cd_condition_aoe",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_aoe & set_bonus.tier29_4pc & eclipse.any_next",
["action"] = "wrath",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains - spell_targets.starfire ) > 8 + spell_targets.starfire & astral_power.deficit > variable.passive_asp + 8 & spell_targets.starfire < ( 11 - talent.umbral_intensity.rank - talent.astral_smolder.rank ) & variable.cd_condition_aoe",
["action"] = "stellar_flare",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_aoe & ( talent.orbital_strike.enabled & astral_power.deficit < variable.passive_asp + 8 * spell_targets || buff.touch_the_cosmos.up ) || astral_power.deficit < ( variable.passive_asp + 8 + 12 * ( buff.eclipse_lunar.remains < 4 || buff.eclipse_solar.remains < 4 ) )",
["action"] = "starfall",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_aoe",
["action"] = "celestial_alignment",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_aoe",
["action"] = "incarnation",
}, -- [9]
{
["action"] = "warrior_of_elune",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "eclipse.any_next || buff.eclipse_lunar.up & buff.eclipse_lunar.remains < action.wrath.execute_time",
["action"] = "wrath",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 20 & ( ! talent.fungal_growth.enabled || ! talent.waning_twilight.enabled || dot.fungal_growth.remains < 2 & target.time_to_die > 7 & ! prev_gcd.1.wild_mushroom )",
["action"] = "wild_mushroom",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 8 & target.time_to_die > 2",
["action"] = "fury_of_elune",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 40 & ( buff.eclipse_lunar.remains > execute_time || buff.eclipse_solar.remains > execute_time )",
["action"] = "full_moon",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "target.time_to_die > 4 & ( buff.starweavers_warp.up || talent.starlord.enabled & buff.starlord.stack < 3 )",
["action"] = "starfall",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( buff.gathering_starstuff.stack = 3 || buff.umbral_embrace.up ) & astral_power.deficit > variable.passive_asp + ( 8 * ( 1 + 0.4 * buff.warrior_of_elune.up ) )",
["action"] = "starfire",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.starweavers_weft.up & spell_targets.starfire < 3",
["action"] = "starsurge",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains - spell_targets.starfire ) > 8 + spell_targets.starfire & astral_power.deficit > variable.passive_asp + 8 & spell_targets.starfire < ( 11 - talent.umbral_intensity.rank - talent.astral_smolder.rank )",
["action"] = "stellar_flare",
["cycle_targets"] = 1,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 50",
["action"] = "astral_communion",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "astral_power < 50 & spell_targets.starfall < 3 + talent.elunes_guidance.enabled & ( buff.eclipse_lunar.remains > 4 || buff.eclipse_solar.remains > 4 )",
["action"] = "convoke_the_spirits",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 10",
["action"] = "new_moon",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 20 & ( buff.eclipse_lunar.remains > execute_time || buff.eclipse_solar.remains > execute_time )",
["action"] = "half_moon",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 20",
["action"] = "force_of_nature",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "buff.starweavers_weft.up & spell_targets.starfire < 17",
["action"] = "starsurge",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "spell_targets > 1",
["action"] = "starfire",
}, -- [25]
{
["action"] = "wrath",
["enabled"] = true,
}, -- [26]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "fallthru",
}, -- [27]
},
["fallthru"] = {
{
["enabled"] = true,
["criteria"] = "variable.is_aoe",
["action"] = "starfall",
}, -- [1]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "dot.moonfire.remains > remains * 22 / 18",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [3]
{
["action"] = "moonfire",
["enabled"] = true,
}, -- [4]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "refreshable & remains < 2 & ( target.time_to_die - remains ) > 6",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "refreshable & remains < 2 & ( target.time_to_die - remains ) > 6",
["action"] = "moonfire",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "refreshable & astral_power.deficit > variable.passive_asp + 8 & remains < 2 & ( target.time_to_die - remains ) > 8",
["action"] = "stellar_flare",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! druid.no_cds & ( cooldown.ca_inc.remains < 15 & ! buff.ca_inc.up & ( target.time_to_die > 15 || boss & fight_remains < 25 + 10 * talent.incarnation_chosen_of_elune.enabled ) )",
["var_name"] = "cd_condition_st",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_st & set_bonus.tier29_4pc & eclipse.any_next || fight_remains > 10 & ( target.time_to_die <= 2 & astral_power.deficit > 20 || target.time_to_die <= 5 & buff.primordial_arcanic_pulsar.value >= 550 )",
["action"] = "wrath",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_st & buff.touch_the_cosmos.up || buff.primordial_arcanic_pulsar.value >= 560 & buff.starweavers_weft.up",
["action"] = "starsurge",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.primordial_arcanic_pulsar.value >= 550 & ! buff.ca_inc.up",
["action"] = "starfall",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_st",
["action"] = "celestial_alignment",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "variable.cd_condition_st",
["action"] = "incarnation",
}, -- [9]
{
["action"] = "warrior_of_elune",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "eclipse.any_next || buff.eclipse_lunar.up & ( buff.eclipse_lunar.remains < action.wrath.execute_time ) || buff.eclipse_solar.up & ( buff.eclipse_solar.remains < action.wrath.execute_time )",
["var_name"] = "enter_eclipse",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "variable.enter_eclipse & variable.solar_eclipse_st",
["action"] = "starfire",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "variable.enter_eclipse",
["action"] = "wrath",
}, -- [13]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.ca_inc.remains > 4 || ( cooldown.ca_inc.remains > 30 || variable.no_cd_talent ) & ( buff.eclipse_lunar.remains > 4 || buff.eclipse_solar.remains > 4 )",
["var_name"] = "convoke_condition",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "action.convoke_the_spirits.known & cooldown.convoke_the_spirits.ready & variable.convoke_condition",
["action"] = "starsurge",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "variable.convoke_condition",
["action"] = "convoke_the_spirits",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 55",
["action"] = "astral_communion",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 20",
["action"] = "force_of_nature",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 8 & target.time_to_die > 2",
["action"] = "fury_of_elune",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.starweavers_warp.up & ! buff.touch_the_cosmos.up",
["action"] = "starfall",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "talent.starlord.enabled & buff.starlord.stack < 3 || talent.rattle_the_stars.enabled & buff.rattled_stars.up & buff.rattled_stars.remains < gcd.max",
["action"] = "starsurge",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "refreshable & astral_power.deficit > variable.passive_asp + 3",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [22]
{
["enabled"] = true,
["criteria"] = "refreshable & astral_power.deficit > variable.passive_asp + 3",
["action"] = "moonfire",
["cycle_targets"] = 1,
}, -- [23]
{
["enabled"] = true,
["criteria"] = "refreshable & astral_power.deficit > variable.passive_asp + 8",
["action"] = "stellar_flare",
["cycle_targets"] = 1,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 10",
["action"] = "new_moon",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 20 & ( buff.eclipse_lunar.remains > execute_time || buff.eclipse_solar.remains > execute_time )",
["action"] = "half_moon",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + 40 & ( buff.eclipse_lunar.remains > execute_time || buff.eclipse_solar.remains > execute_time )",
["action"] = "full_moon",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "buff.starweavers_weft.up || astral_power.deficit < variable.passive_asp + ( 8 * ( 1 + 0.5 * talent.soul_of_the_forest.enabled * buff.eclipse_solar.up ) ) || talent.astral_communion.enabled & cooldown.astral_communion.remains < 3 || boss & fight_remains < 5",
["action"] = "starsurge",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "target.time_to_die > ( full_recharge_time - 7 ) || boss & fight_remains < 10",
["action"] = "wild_mushroom",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "eclipse.in_lunar & buff.umbral_embrace.react || buff.eclipse_lunar.up & buff.warrior_of_elune.up",
["action"] = "starfire",
}, -- [30]
{
["action"] = "wrath",
["enabled"] = true,
}, -- [31]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "fallthru",
}, -- [32]
},
},
["version"] = 20230208,
["warnings"] = "The import for 'default' required some automated changes.\nLine 6: Converted 'talent.natures_balance' to 'talent.natures_balance.enabled' (1x).\nLine 6: Converted 'talent.orbit_breaker' to 'talent.orbit_breaker.enabled' (1x).\nLine 6: Converted operations in '6%spell_haste+talent.natures_balance.enabled+talent.orbit_breaker.enabled*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*40' to '6/spell_haste+talent.natures_balance.enabled+talent.orbit_breaker.enabled*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*40'.\nLine 9: Converted 'trinket.2.ready_cooldown' to 'trinket.t2.ready_cooldown' (1x).\nLine 10: Converted 'trinket.1.ready_cooldown' to 'trinket.t1.ready_cooldown' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.celestial_alignment' to 'talent.celestial_alignment.enabled' (1x).\nLine 3: Converted 'talent.incarnation_chosen_of_elune' to 'talent.incarnation_chosen_of_elune.enabled' (1x).\nLine 6: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted operations in 'refreshable&(target.time_to_die-remains)>6-(spell_targets%2)&astral_power.deficit>variable.passive_asp+3' to 'refreshable&(target.time_to_die-remains)>6-(spell_targets/2)&astral_power.deficit>variable.passive_asp+3'.\nLine 4: Converted 'talent.incarnation_chosen_of_elune' to 'talent.incarnation_chosen_of_elune.enabled' (1x).\nLine 7: Converted 'talent.orbital_strike' to 'talent.orbital_strike.enabled' (1x).\nLine 12: Converted 'talent.fungal_growth' to 'talent.fungal_growth.enabled' (1x).\nLine 12: Converted 'talent.waning_twilight' to 'talent.waning_twilight.enabled' (1x).\nLine 15: Converted 'talent.starlord' to 'talent.starlord.enabled' (1x).\nLine 20: Converted 'talent.elunes_guidance' to 'talent.elunes_guidance.enabled' (1x).\n\nThe import for 'fallthru' required some automated changes.\nLine 3: Converted operations in 'dot.moonfire.remains>remains*22%18' to 'dot.moonfire.remains>remains*22/18'.\n\nThe import for 'st' required some automated changes.\nLine 4: Converted 'talent.incarnation_chosen_of_elune' to 'talent.incarnation_chosen_of_elune.enabled' (1x).\nLine 21: Converted 'talent.starlord' to 'talent.starlord.enabled' (1x).\nLine 21: Converted 'talent.rattle_the_stars' to 'talent.rattle_the_stars.enabled' (1x).\nLine 28: Converted 'talent.soul_of_the_forest' to 'talent.soul_of_the_forest.enabled' (1x).\nLine 28: Converted 'talent.astral_communion' to 'talent.astral_communion.enabled' (1x).\n\nImported 5 action lists.\n",
["spec"] = 102,
["profile"] = "actions.precombat+=/moonkin_form\nactions.precombat+=/mark_of_the_wild\nactions.precombat+=/variable,name=no_cd_talent,value=!talent.celestial_alignment&!talent.incarnation_chosen_of_elune||druid.no_cds\nactions.precombat+=/variable,name=solar_eclipse_st,value=talent.umbral_intensity.rank=2\nactions.precombat+=/variable,name=on_use_trinket,value=0\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=trinket.1.has_use_buff&trinket.1.cooldown.duration\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=(trinket.2.has_use_buff&trinket.2.cooldown.duration)*2\nactions.precombat+=/wrath,if=(eclipse.any_next||eclipse.lunar_next)\n\n# Executed every time the actor is available.\nactions+=/solar_beam\nactions+=/soothe\nactions+=/wrath,if=time<gcd.max&(eclipse.any_next||eclipse.lunar_next),line_cd=5\nactions+=/stellar_flare,if=refreshable&time<2*gcd.max&buff.eclipse_lunar.up,line_cd=5\nactions+=/variable,name=is_aoe,value=spell_targets.starfall>1\nactions+=/variable,name=passive_asp,value=6%spell_haste+talent.natures_balance+talent.orbit_breaker*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*40\nactions+=/berserking,if=buff.ca_inc.remains>=20||variable.no_cd_talent||boss&fight_remains<15\nactions+=/potion,if=!druid.no_cds&(buff.ca_inc.remains>=20||variable.no_cd_talent||boss&fight_remains<30)\nactions+=/use_items,slots=trinket1,if=variable.on_use_trinket!=1&!trinket.2.ready_cooldown||(variable.on_use_trinket=1||variable.on_use_trinket=3)&buff.ca_inc.up||variable.no_cd_talent||boss&fight_remains<20||variable.on_use_trinket=0\nactions+=/use_items,slots=trinket2,if=variable.on_use_trinket!=2&!trinket.1.ready_cooldown||variable.on_use_trinket=2&buff.ca_inc.up||variable.no_cd_talent||boss&fight_remains<20||variable.on_use_trinket=0\nactions+=/use_items\nactions+=/run_action_list,name=aoe,if=variable.is_aoe\nactions+=/run_action_list,name=st\n\nactions.aoe+=/moonfire,cycle_targets=1,if=!boss&refreshable&(target.time_to_die-remains)>6&astral_power.deficit>variable.passive_asp+3\nactions.aoe+=/sunfire,cycle_targets=1,if=refreshable&(target.time_to_die-remains)>6-(spell_targets%2)&astral_power.deficit>variable.passive_asp+3\nactions.aoe+=/moonfire,cycle_targets=1,if=boss&refreshable&(target.time_to_die-remains)>6&astral_power.deficit>variable.passive_asp+3\nactions.aoe+=/variable,name=cd_condition_aoe,value=!druid.no_cds&(cooldown.ca_inc.remains<5&!buff.ca_inc.up&(target.time_to_die>10||boss&fight_remains<25+10*talent.incarnation_chosen_of_elune))\nactions.aoe+=/wrath,if=variable.cd_condition_aoe&set_bonus.tier29_4pc&eclipse.any_next\nactions.aoe+=/stellar_flare,cycle_targets=1,if=refreshable&(target.time_to_die-remains-spell_targets.starfire)>8+spell_targets.starfire&astral_power.deficit>variable.passive_asp+8&spell_targets.starfire<(11-talent.umbral_intensity.rank-talent.astral_smolder.rank)&variable.cd_condition_aoe\nactions.aoe+=/starfall,if=variable.cd_condition_aoe&(talent.orbital_strike&astral_power.deficit<variable.passive_asp+8*spell_targets||buff.touch_the_cosmos.up)||astral_power.deficit<(variable.passive_asp+8+12*(buff.eclipse_lunar.remains<4||buff.eclipse_solar.remains<4))\nactions.aoe+=/celestial_alignment,if=variable.cd_condition_aoe\nactions.aoe+=/incarnation,if=variable.cd_condition_aoe\nactions.aoe+=/warrior_of_elune\nactions.aoe+=/wrath,if=eclipse.any_next||buff.eclipse_lunar.up&buff.eclipse_lunar.remains<action.wrath.execute_time\nactions.aoe+=/wild_mushroom,if=astral_power.deficit>variable.passive_asp+20&(!talent.fungal_growth||!talent.waning_twilight||dot.fungal_growth.remains<2&target.time_to_die>7&!prev_gcd.1.wild_mushroom)\nactions.aoe+=/fury_of_elune,if=astral_power.deficit>variable.passive_asp+8&target.time_to_die>2\nactions.aoe+=/full_moon,if=astral_power.deficit>variable.passive_asp+40&(buff.eclipse_lunar.remains>execute_time||buff.eclipse_solar.remains>execute_time)\nactions.aoe+=/starfall,if=target.time_to_die>4&(buff.starweavers_warp.up||talent.starlord&buff.starlord.stack<3)\nactions.aoe+=/starfire,if=(buff.gathering_starstuff.stack=3||buff.umbral_embrace.up)&astral_power.deficit>variable.passive_asp+(8*(1+0.4*buff.warrior_of_elune.up))\nactions.aoe+=/starsurge,if=buff.starweavers_weft.up&spell_targets.starfire<3\nactions.aoe+=/stellar_flare,cycle_targets=1,if=refreshable&(target.time_to_die-remains-spell_targets.starfire)>8+spell_targets.starfire&astral_power.deficit>variable.passive_asp+8&spell_targets.starfire<(11-talent.umbral_intensity.rank-talent.astral_smolder.rank)\nactions.aoe+=/astral_communion,if=astral_power.deficit>variable.passive_asp+50\nactions.aoe+=/convoke_the_spirits,if=astral_power<50&spell_targets.starfall<3+talent.elunes_guidance&(buff.eclipse_lunar.remains>4||buff.eclipse_solar.remains>4)\nactions.aoe+=/new_moon,if=astral_power.deficit>variable.passive_asp+10\nactions.aoe+=/half_moon,if=astral_power.deficit>variable.passive_asp+20&(buff.eclipse_lunar.remains>execute_time||buff.eclipse_solar.remains>execute_time)\nactions.aoe+=/force_of_nature,if=astral_power.deficit>variable.passive_asp+20\nactions.aoe+=/starsurge,if=buff.starweavers_weft.up&spell_targets.starfire<17\nactions.aoe+=/starfire,if=spell_targets>1\nactions.aoe+=/wrath\nactions.aoe+=/run_action_list,name=fallthru\n\nactions.fallthru=starfall,if=variable.is_aoe\nactions.fallthru+=/starsurge\nactions.fallthru+=/sunfire,cycle_targets=1,if=dot.moonfire.remains>remains*22%18\nactions.fallthru+=/moonfire\n\nactions.st+=/sunfire,cycle_targets=1,if=refreshable&remains<2&(target.time_to_die-remains)>6\nactions.st+=/moonfire,cycle_targets=1,if=refreshable&remains<2&(target.time_to_die-remains)>6\nactions.st+=/stellar_flare,cycle_targets=1,if=refreshable&astral_power.deficit>variable.passive_asp+8&remains<2&(target.time_to_die-remains)>8\nactions.st+=/variable,name=cd_condition_st,value=!druid.no_cds&(cooldown.ca_inc.remains<15&!buff.ca_inc.up&(target.time_to_die>15||boss&fight_remains<25+10*talent.incarnation_chosen_of_elune))\nactions.st+=/wrath,if=variable.cd_condition_st&set_bonus.tier29_4pc&eclipse.any_next||fight_remains>10&(target.time_to_die<=2&astral_power.deficit>20||target.time_to_die<=5&buff.primordial_arcanic_pulsar.value>=550)\nactions.st+=/starsurge,if=variable.cd_condition_st&buff.touch_the_cosmos.up||buff.primordial_arcanic_pulsar.value>=560&buff.starweavers_weft.up\nactions.st+=/starfall,if=buff.primordial_arcanic_pulsar.value>=550&!buff.ca_inc.up\nactions.st+=/celestial_alignment,if=variable.cd_condition_st\nactions.st+=/incarnation,if=variable.cd_condition_st\nactions.st+=/warrior_of_elune\nactions.st+=/variable,name=enter_eclipse,value=eclipse.any_next||buff.eclipse_lunar.up&(buff.eclipse_lunar.remains<action.wrath.execute_time)||buff.eclipse_solar.up&(buff.eclipse_solar.remains<action.wrath.execute_time)\nactions.st+=/starfire,if=variable.enter_eclipse&variable.solar_eclipse_st\nactions.st+=/wrath,if=variable.enter_eclipse\nactions.st+=/variable,name=convoke_condition,value=buff.ca_inc.remains>4||(cooldown.ca_inc.remains>30||variable.no_cd_talent)&(buff.eclipse_lunar.remains>4||buff.eclipse_solar.remains>4)\nactions.st+=/starsurge,if=action.convoke_the_spirits.known&cooldown.convoke_the_spirits.ready&variable.convoke_condition\nactions.st+=/convoke_the_spirits,if=variable.convoke_condition\nactions.st+=/astral_communion,if=astral_power.deficit>variable.passive_asp+55\nactions.st+=/force_of_nature,if=astral_power.deficit>variable.passive_asp+20\nactions.st+=/fury_of_elune,if=astral_power.deficit>variable.passive_asp+8&target.time_to_die>2\nactions.st+=/starfall,if=buff.starweavers_warp.up&!buff.touch_the_cosmos.up\nactions.st+=/starsurge,if=talent.starlord&buff.starlord.stack<3||talent.rattle_the_stars&buff.rattled_stars.up&buff.rattled_stars.remains<gcd.max\nactions.st+=/sunfire,cycle_targets=1,if=refreshable&astral_power.deficit>variable.passive_asp+3\nactions.st+=/moonfire,cycle_targets=1,if=refreshable&astral_power.deficit>variable.passive_asp+3\nactions.st+=/stellar_flare,cycle_targets=1,if=refreshable&astral_power.deficit>variable.passive_asp+8\nactions.st+=/new_moon,if=astral_power.deficit>variable.passive_asp+10\nactions.st+=/half_moon,if=astral_power.deficit>variable.passive_asp+20&(buff.eclipse_lunar.remains>execute_time||buff.eclipse_solar.remains>execute_time)\nactions.st+=/full_moon,if=astral_power.deficit>variable.passive_asp+40&(buff.eclipse_lunar.remains>execute_time||buff.eclipse_solar.remains>execute_time)\nactions.st+=/starsurge,if=buff.starweavers_weft.up||astral_power.deficit<variable.passive_asp+(8*(1+0.5*talent.soul_of_the_forest*buff.eclipse_solar.up))||talent.astral_communion&cooldown.astral_communion.remains<3||boss&fight_remains<5\nactions.st+=/wild_mushroom,if=target.time_to_die>(full_recharge_time-7)||boss&fight_remains<10\nactions.st+=/starfire,if=eclipse.in_lunar&buff.umbral_embrace.react||buff.eclipse_lunar.up&buff.warrior_of_elune.up\nactions.st+=/wrath\nactions.st+=/run_action_list,name=fallthru",
},
["Guardian"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230209,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["catweave"] = {
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.prowl.up",
["action"] = "rake",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "dot.rake.refreshable || energy < 45",
["action"] = "rake",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.rip.refreshable & combo_points >= 1",
["action"] = "rip",
}, -- [6]
{
["action"] = "convoke_the_spirits",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "combo_points >= 4 & energy > 50",
["action"] = "ferocious_bite",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "combo_points <= 5",
["action"] = "shred",
}, -- [9]
},
["default"] = {
{
["enabled"] = true,
["action"] = "skull_bash",
["description"] = "Executed every time the actor is available.",
["criteria"] = "! buff.prowl.up",
}, -- [1]
{
["action"] = "soothe",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [3]
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ( talent.heart_of_the_wild.enabled & buff.heart_of_the_wild.up ) || ( ( buff.berserk_bear.up || buff.incarnation_guardian_of_ursoc.up ) & ( ! druid.catweave_bear & ! druid.owlweave_bear ) ) )",
["action"] = "potion",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! tanking & druid.catweave_bear & buff.tooth_and_claw.remains < 1.5 & ( buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down ) & ( cooldown.thrash_bear.remains > 0 & cooldown.mangle.remains > 0 & dot.moonfire.remains >= gcd.max + 0.5 ) || ( buff.cat_form.up & energy > 25 & druid.catweave_bear = 1 & buff.tooth_and_claw.remains < 1.5 ) || ( ( talent.heart_of_the_wild.enabled & cooldown.heart_of_the_wild.ready || buff.heart_of_the_wild.up ) & energy > 90 & druid.catweave_bear = 1 & buff.tooth_and_claw.remains < 1.5 )",
["action"] = "run_action_list",
["list_name"] = "catweave",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! tanking & druid.owlweave_bear & buff.tooth_and_claw.remains < 1.5 & ( buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & cooldown.starsurge.up )",
["action"] = "run_action_list",
["list_name"] = "owlweave",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! buff.bear_form.up",
["action"] = "bear_form",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [9]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "bear",
}, -- [10]
},
["bear"] = {
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "( ( ! ticking & time_to_die > 12 ) || ( refreshable & time_to_die > 12 ) ) & active_enemies < 8",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "barkskin",
}, -- [2]
{
["action"] = "bristling_fur",
["enabled"] = true,
}, -- [3]
{
["action"] = "convoke_the_spirits",
["enabled"] = true,
}, -- [4]
{
["action"] = "berserk",
["enabled"] = true,
}, -- [5]
{
["action"] = "incarnation",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.incarnation_guardian_of_ursoc.down & cooldown.incarnation_guardian_of_ursoc.remains > 60 || buff.incarnation_guardian_of_ursoc.up || talent.convoke_the_spirits.enabled",
["action"] = "rage_of_the_sleeper",
}, -- [7]
{
["action"] = "lunar_beam",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( buff.berserk_bear.up || buff.incarnation_guardian_of_ursoc.up )",
["action"] = "berserking",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.rage_of_the_sleeper.up & buff.tooth_and_claw.stack > 0 & active_enemies <= 6 & variable.maul_build = 1",
["action"] = "maul",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.rage_of_the_sleeper.up & buff.tooth_and_claw.stack > 0 & variable.maul_build = 1",
["action"] = "raze",
}, -- [11]
{
["enabled"] = true,
["action"] = "ironfur",
["criteria"] = "tanking & variable.maul_build = 1 & ( ! buff.ironfur.up || rage > 90 )",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "rage > 90 & variable.if_build = 1 || ( buff.incarnation.up || buff.berserk_bear.up ) & rage > 20 & variable.if_build = 1",
["action"] = "ironfur",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.galactic_guardian.up & buff.galactic_guardian.remains <= gcd.max + 0.5",
["action"] = "moonfire",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.gore.up & active_enemies < 11 || buff.vicious_cycle_mangle.stack = 3",
["action"] = "mangle",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( ( buff.incarnation.up || buff.berserk_bear.up ) & active_enemies <= 5 & ( buff.tooth_and_claw.stack >= 2 ) ) & variable.maul_build = 1 & ! talent.thorns_of_iron.enabled",
["action"] = "maul",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "( ( buff.incarnation.up || buff.berserk_bear.up ) & ( buff.tooth_and_claw.stack >= 2 ) ) & variable.maul_build = 1 & ! talent.thorns_of_iron.enabled",
["action"] = "raze",
}, -- [17]
{
["enabled"] = true,
["action"] = "thrash_bear",
["criteria"] = "refreshable || dot.thrash_bear.stack < 3 || active_enemies >= 5",
["cycle_targets"] = 1,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "rage.deficit > 10 & settings.mangle_more",
["action"] = "mangle",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.incarnation_guardian_of_ursoc.down & buff.berserk_bear.down & active_enemies >= 11",
["action"] = "swipe_bear",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( buff.tooth_and_claw.up & active_enemies <= 5 )",
["action"] = "maul",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "active_enemies <= 5 & buff.vicious_cycle_maul.stack >= 3 || active_enemies < 4 & ! talent.vicious_cycle_maul.enabled & variable.maul_build = 1 & ! talent.thorns_of_iron.enabled",
["action"] = "maul",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( buff.tooth_and_claw.up )",
["action"] = "raze",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "buff.vicious_cycle_maul.stack >= 3 || ! talent.vicious_cycle_maul.enabled & variable.maul_build = 1 & ! talent.thorns_of_iron.enabled",
["action"] = "raze",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( buff.incarnation.up & active_enemies <= 4 ) || ( buff.incarnation.up & talent.soul_of_the_forest.enabled & active_enemies <= 5 ) || ( ( rage < 90 ) & active_enemies < 11 ) || ( ( rage < 85 ) & active_enemies < 11 & talent.soul_of_the_forest.enabled )",
["action"] = "mangle",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "thrash_bear",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "dot.thrash_bear.stack > 2",
["action"] = "pulverize",
}, -- [27]
{
["action"] = "thrash_bear",
["enabled"] = true,
}, -- [28]
{
["action"] = "swipe_bear",
["enabled"] = true,
}, -- [29]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > ironfur_damage_threshold & buff.ironfur.remains < 3 * haste",
["action"] = "ironfur",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "health.pct < 65",
["action"] = "regrowth",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "health.pct < 65",
["action"] = "renewal",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 65",
["action"] = "frenzied_regeneration",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ! druid.catweave_bear & ! druid.owlweave_bear ) || active_enemies >= 2",
["action"] = "empower_bond",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 75 & incoming_damage_5s > 0.1 * health.max",
["action"] = "barkskin",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.survival_instincts.down & buff.barkskin.down & health.pct < 60 & incoming_damage_5s > 0.25 * health.max",
["action"] = "survival_instincts",
}, -- [7]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "if_build",
["criteria"] = "talent.layered_mane.enabled & talent.reinforced_fur.enabled",
["value_else"] = "0",
["value"] = "1",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "maul_build",
["criteria"] = "settings.maul_anyway || ( ! talent.layered_mane.enabled & ! talent.reinforced_fur.enabled )",
["value_else"] = "0",
["value"] = "1",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up",
["action"] = "mark_of_the_wild",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ( druid.catweave_bear & buff.cat_form.up || druid.owlweave_bear & buff.moonkin_form.up )",
["action"] = "heart_of_the_wild",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.cat_form.up & druid.catweave_bear",
["action"] = "prowl",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! buff.any_form.up || ! druid.owlweave_bear & ! druid.catweave_bear & ! action.convoke_the_spirits.known",
["action"] = "bear_form",
}, -- [6]
},
["cconvoke"] = {
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up & ! buff.cat_form.up",
["action"] = "heart_of_the_wild",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
}, -- [2]
{
["action"] = "convoke_the_spirits",
["enabled"] = true,
}, -- [3]
},
["owlweave"] = {
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! buff.heart_of_the_wild.up & ! buff.cat_form.up",
["action"] = "heart_of_the_wild",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.galactic_guardian.up & buff.galactic_guardian.remains <= gcd.max + 1",
["action"] = "moonfire",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "dot.sunfire.refreshable",
["action"] = "sunfire",
}, -- [3]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [4]
},
},
["version"] = 20230209,
["warnings"] = "The import for 'default' required some automated changes.\nLine 6: Converted 'talent.heart_of_the_wild' to 'talent.heart_of_the_wild.enabled' (1x).\n\nImported 7 action lists.\n",
["profile"] = "actions.precombat+=/variable,name=if_build,value=1,value_else=0,if=talent.layered_mane.enabled&talent.reinforced_fur.enabled\nactions.precombat+=/variable,name=maul_build,value=1,value_else=0,if=settings.maul_anyway||(!talent.layered_mane.enabled&!talent.reinforced_fur.enabled)\nactions.precombat+=/mark_of_the_wild,if=!buff.prowl.up\nactions.precombat+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&(druid.catweave_bear&buff.cat_form.up||druid.owlweave_bear&buff.moonkin_form.up)\nactions.precombat+=/prowl,if=buff.cat_form.up&druid.catweave_bear\nactions.precombat+=/bear_form,if=!buff.any_form.up||!druid.owlweave_bear&!druid.catweave_bear&!action.convoke_the_spirits.known\n\n# Executed every time the actor is available.\nactions=skull_bash,if=!buff.prowl.up\nactions+=/soothe\nactions+=/use_item,slot=trinket1\nactions+=/use_item,slot=trinket2\nactions+=/potion,if=((talent.heart_of_the_wild.enabled&buff.heart_of_the_wild.up)||((buff.berserk_bear.up||buff.incarnation_guardian_of_ursoc.up)&(!druid.catweave_bear&!druid.owlweave_bear)))\nactions+=/run_action_list,name=catweave,if=!tanking&druid.catweave_bear&buff.tooth_and_claw.remains<1.5&(buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down)&(cooldown.thrash_bear.remains>0&cooldown.mangle.remains>0&dot.moonfire.remains>=gcd+0.5)||(buff.cat_form.up&energy>25&druid.catweave_bear=1&buff.tooth_and_claw.remains<1.5)||((talent.heart_of_the_wild&cooldown.heart_of_the_wild.ready||buff.heart_of_the_wild.up)&energy>90&druid.catweave_bear=1&buff.tooth_and_claw.remains<1.5)\nactions+=/run_action_list,name=owlweave,if=!tanking&druid.owlweave_bear&buff.tooth_and_claw.remains<1.5&(buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&cooldown.starsurge.up)\nactions+=/bear_form,if=!buff.bear_form.up\nactions+=/call_action_list,name=mitigation\nactions+=/run_action_list,name=bear\n\nactions.bear+=/moonfire,cycle_targets=1,if=((!ticking&time_to_die>12)||(refreshable&time_to_die>12))&active_enemies<8\nactions.bear+=/barkskin,if=buff.bear_form.up\nactions.bear+=/bristling_fur\nactions.bear+=/convoke_the_spirits\nactions.bear+=/berserk_bear\nactions.bear+=/incarnation\nactions.bear+=/rage_of_the_sleeper,if=buff.incarnation_guardian_of_ursoc.down&cooldown.incarnation_guardian_of_ursoc.remains>60||buff.incarnation_guardian_of_ursoc.up||talent.convoke_the_spirits.enabled\nactions.bear+=/lunar_beam\nactions.bear+=/berserking,if=(buff.berserk_bear.up||buff.incarnation_guardian_of_ursoc.up)\nactions.bear+=/maul,if=buff.rage_of_the_sleeper.up&buff.tooth_and_claw.stack>0&active_enemies<=6&variable.maul_build=1\nactions.bear+=/raze,if=buff.rage_of_the_sleeper.up&buff.tooth_and_claw.stack>0&variable.maul_build=1\nactions.bear+=/ironfur,cycle_targets=1,if=tanking&variable.maul_build=1&(!buff.ironfur.up||rage>90)\nactions.bear+=/ironfur,if=rage>90&variable.if_build=1||(buff.incarnation.up||buff.berserk_bear.up)&rage>20&variable.if_build=1\nactions.bear+=/moonfire,if=buff.galactic_guardian.up&buff.galactic_guardian.remains<=gcd+0.5\nactions.bear+=/mangle,if=buff.gore.up&active_enemies<11||buff.vicious_cycle_mangle.stack=3\nactions.bear+=/maul,if=((buff.incarnation.up||buff.berserk_bear.up)&active_enemies<=5&(buff.tooth_and_claw.stack>=2))&variable.maul_build=1&!talent.thorns_of_iron.enabled\nactions.bear+=/raze,if=((buff.incarnation.up||buff.berserk_bear.up)&(buff.tooth_and_claw.stack>=2))&variable.maul_build=1&!talent.thorns_of_iron.enabled\nactions.bear+=/thrash_bear,cycle_targets=1,if=refreshable||dot.thrash_bear.stack<3||active_enemies>=5\nactions.bear+=/mangle,if=rage.deficit>10&settings.mangle_more\nactions.bear+=/swipe,if=buff.incarnation_guardian_of_ursoc.down&buff.berserk_bear.down&active_enemies>=11\nactions.bear+=/maul,if=(buff.tooth_and_claw.up&active_enemies<=5)\nactions.bear+=/maul,if=active_enemies<=5&buff.vicious_cycle_maul.stack>=3||active_enemies<4&!talent.vicious_cycle_maul.enabled&variable.maul_build=1&!talent.thorns_of_iron.enabled\nactions.bear+=/raze,if=(buff.tooth_and_claw.up)\nactions.bear+=/raze,if=buff.vicious_cycle_maul.stack>=3||!talent.vicious_cycle_maul.enabled&variable.maul_build=1&!talent.thorns_of_iron.enabled\nactions.bear+=/mangle,if=(buff.incarnation.up&active_enemies<=4)||(buff.incarnation.up&talent.soul_of_the_forest.enabled&active_enemies<=5)||((rage<90)&active_enemies<11)||((rage<85)&active_enemies<11&talent.soul_of_the_forest.enabled)\nactions.bear+=/thrash_bear,if=active_enemies>1\nactions.bear+=/pulverize,if=dot.thrash_bear.stack>2\nactions.bear+=/thrash_bear\nactions.bear+=/swipe_bear\n\nactions.catweave=heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up\nactions.catweave+=/cat_form,if=!buff.cat_form.up\nactions.catweave+=/rake,if=buff.prowl.up\nactions.catweave+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up\nactions.catweave+=/rake,if=dot.rake.refreshable||energy<45\nactions.catweave+=/rip,if=dot.rip.refreshable&combo_points>=1\nactions.catweave+=/convoke_the_spirits\nactions.catweave+=/ferocious_bite,if=combo_points>=4&energy>50\nactions.catweave+=/shred,if=combo_points<=5\n\nactions.cconvoke+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up&!buff.cat_form.up\nactions.cconvoke+=/cat_form,if=!buff.cat_form.up\nactions.cconvoke+=/convoke_the_spirits\n\nactions.mitigation=ironfur,if=tanking&incoming_damage_5s>ironfur_damage_threshold&buff.ironfur.remains<3*haste\nactions.mitigation+=/regrowth,if=health.pct<65\nactions.mitigation+=/renewal,if=health.pct<65\nactions.mitigation+=/frenzied_regeneration,if=tanking&health.pct<65\nactions.mitigation+=/empower_bond,if=(!druid.catweave_bear&!druid.owlweave_bear)||active_enemies>=2\nactions.mitigation+=/barkskin,if=tanking&health.pct<75&incoming_damage_5s>0.1*health.max\nactions.mitigation+=/survival_instincts,if=buff.survival_instincts.down&buff.barkskin.down&health.pct<60&incoming_damage_5s>0.25*health.max\n\nactions.owlweave=heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!buff.heart_of_the_wild.up&!buff.cat_form.up\nactions.owlweave+=/moonfire,if=buff.galactic_guardian.up&buff.galactic_guardian.remains<=gcd+1\nactions.owlweave+=/sunfire,if=dot.sunfire.refreshable\nactions.owlweave+=/starsurge",
["spec"] = 104,
},
["Restoration Druid"] = {
["builtIn"] = true,
["date"] = 20230127.2,
["spec"] = 105,
["desc"] = "Healer priorities are DPS-focused only.",
["lists"] = {
["cat"] = {
{
["enabled"] = true,
["criteria"] = "buff.shadowmeld.up || buff.prowl.up || buff.sudden_ambush.up",
["action"] = "rake",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( cooldown.convoke_the_spirits.remains < 30 || ! talent.convoke_the_spirits.enabled ) & ! buff.heart_of_the_wild.up",
["action"] = "heart_of_the_wild",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 2 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 1 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 3 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 4 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! dot.adaptive_swarm_damage.ticking",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "active_enemies > 2 & talent.moonkin_form.enabled & talent.convoke_the_spirits.enabled & cooldown.convoke_the_spirits.remains <= gcd.max & ( buff.heart_of_the_wild.up || cooldown.heart_of_the_wild.remains > 60 - 30 * talent.cenarius_guidance.enabled || ! talent.heart_of_the_wild.enabled )",
["list_name"] = "owl",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( active_enemies < 2 || ! talent.moonkin_form.enabled ) & ( ! buff.cat_form.up & talent.convoke_the_spirits.enabled & cooldown.convoke_the_spirits.remains <= gcd.max & ( buff.heart_of_the_wild.up || cooldown.heart_of_the_wild.remains > 60 - 30 * talent.cenarius_guidance.enabled || ! talent.heart_of_the_wild.enabled ) )",
["action"] = "cat_form",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( buff.heart_of_the_wild.up || cooldown.heart_of_the_wild.remains > 60 - 30 * talent.cenarius_guidance.enabled || ! talent.heart_of_the_wild.enabled )",
["action"] = "convoke_the_spirits",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "remains <= gcd.max & combo_points > 0 & dot.adaptive_swarm_damage.ticking",
["action"] = "rip",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5 & spell_targets.thrash_cat > 1",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( refreshable & target.time_to_die > 5 ) & ! prev_gcd.1.cat_form & ( active_enemies = 1 || talent.improved_sunfire.enabled )",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up & energy > 50 & ( dot.thrash_cat.refreshable & spell_targets.swipe_cat >= 9 & talent.thrash.enabled )",
["action"] = "cat_form",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( refreshable & time_to_die > 12 & ! ticking || ( prev_gcd.1.sunfire & remains < duration * 0.8 & spell_targets.sunfire = 1 ) ) & ! prev_gcd.1.cat_form",
["action"] = "moonfire",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.moonfire & remains < duration * 0.8",
["action"] = "sunfire",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 || ( active_enemies < 8 & ! buff.cat_form.up )",
["action"] = "starsurge",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "time_to_die < 10 & spell_targets.starfire > 1 & ( ! talent.improved_swipe.enabled || spell_targets.swipe_cat >= 9 )",
["action"] = "starfire",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up & energy > 50",
["action"] = "cat_form",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "( combo_points > 3 & time_to_die < 3 ) || ( combo_points = 5 & energy >= 50 & dot.rip.remains > 10 ) & spell_targets.swipe_cat < 4",
["action"] = "ferocious_bite",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5 & spell_targets.thrash_cat > 2",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.ticking & refreshable",
["action"] = "rake",
["cycle_targets"] = 1,
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( ( refreshable || energy > 90 & remains <= 10 ) & ( combo_points = 5 & time_to_die > remains + 24 || ( remains + combo_points * 4 < time_to_die & remains + 4 + combo_points * 4 > time_to_die ) ) || ! ticking & combo_points > 2 + spell_targets.swipe_cat * 2 )",
["action"] = "rip",
["cycle_targets"] = 1,
}, -- [23]
{
["enabled"] = true,
["max_energy"] = 1,
["action"] = "ferocious_bite",
["criteria"] = "combo_points = combo_points.max & ( dot.rip.ticking || ! talent.rip.enabled )",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "( refreshable & time_to_die > 10 & spell_targets.swipe_cat < 10 ) & ( combo_points < 5 || remains < 1 )",
["action"] = "rake",
["cycle_targets"] = 1,
}, -- [25]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5 & active_enemies < 7 & ! talent.improved_sunfire.enabled",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [26]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
}, -- [27]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & combo_points < 5 & talent.improved_swipe.enabled",
["action"] = "swipe_cat",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "energy > 60 & combo_points < 5",
["action"] = "shred",
}, -- [29]
},
["owl"] = {
{
["enabled"] = true,
["criteria"] = "! buff.moonkin_form.up",
["action"] = "moonkin_form",
}, -- [1]
{
["action"] = "convoke_the_spirits",
["enabled"] = true,
}, -- [2]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "skull_bash",
}, -- [1]
{
["action"] = "solar_beam",
["enabled"] = true,
}, -- [2]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "natures_vigil",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "use_items",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "talent.rake.enabled || buff.cat_form.up",
["list_name"] = "cat",
}, -- [7]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "active_enemies > 2 & talent.moonkin_form.enabled & talent.convoke_the_spirits.enabled & cooldown.convoke_the_spirits.remains <= gcd.max & ( buff.heart_of_the_wild.up || cooldown.heart_of_the_wild.remains > 60 - 30 * talent.cenarius_guidance.enabled || ! talent.heart_of_the_wild.enabled )",
["list_name"] = "owl",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.moonkin_form.enabled & buff.cat_form.down",
["action"] = "moonkin_form",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( buff.heart_of_the_wild.up || cooldown.heart_of_the_wild.remains > 60 - 30 * talent.cenarius_guidance.enabled || ! talent.heart_of_the_wild.enabled )",
["action"] = "convoke_the_spirits",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 2 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 1 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 3 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack = 4 & dot.adaptive_swarm_damage.remains > 2",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! dot.adaptive_swarm_damage.ticking",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5 & talent.improved_sunfire.enabled",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "refreshable & time_to_die > 12",
["action"] = "moonfire",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "active_enemies < 8",
["action"] = "starsurge",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 7 & active_enemies < 7",
["action"] = "sunfire",
["cycle_targets"] = 1,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "spell_targets.starfire > 1",
["action"] = "starfire",
}, -- [20]
{
["action"] = "wrath",
["enabled"] = true,
}, -- [21]
},
["precombat"] = {
{
["action"] = "heart_of_the_wild",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.rake.enabled",
["action"] = "prowl",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.rake.enabled",
["action"] = "cat_form",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.cat_form.down & talent.moonkin_form.enabled",
["action"] = "moonkin_form",
}, -- [4]
},
},
["version"] = 20230127.2,
["warnings"] = "The import for 'cat' required some automated changes.\nLine 24: Converted 'talent.rip' to 'talent.rip.enabled' (1x).\n\nImported 4 action lists.\n",
["author"] = "Makahiki",
["profile"] = "actions.precombat+=/heart_of_the_wild\nactions.precombat+=/prowl,if=talent.rake.enabled\nactions.precombat+=/cat_form,if=talent.rake.enabled\nactions.precombat+=/moonkin_form,if=buff.cat_form.down&talent.moonkin_form.enabled\n\n# Executed every time the actor is available.\nactions+=/skull_bash\nactions+=/solar_beam\nactions+=/berserking\nactions+=/natures_vigil,if=!buff.prowl.up&!buff.shadowmeld.up\n## actions+=/regrowth,if=!buff.prowl.up&!buff.shadowmeld.up&settings.heal_in_groups,line_cd=7\nactions+=/use_items,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/potion,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/run_action_list,name=cat,if=talent.rake.enabled||buff.cat_form.up\nactions+=/run_action_list,name=owl,if=active_enemies>2&talent.moonkin_form.enabled&talent.convoke_the_spirits.enabled&cooldown.convoke_the_spirits.remains<=gcd.max&(buff.heart_of_the_wild.up||cooldown.heart_of_the_wild.remains>60-30*talent.cenarius_guidance.enabled||!talent.heart_of_the_wild.enabled)\nactions+=/moonkin_form,if=talent.moonkin_form.enabled&buff.cat_form.down\nactions+=/convoke_the_spirits,if=(buff.heart_of_the_wild.up||cooldown.heart_of_the_wild.remains>60-30*talent.cenarius_guidance.enabled||!talent.heart_of_the_wild.enabled)\nactions+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=2&dot.adaptive_swarm_damage.remains>2\nactions+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=1&dot.adaptive_swarm_damage.remains>2\nactions+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=3&dot.adaptive_swarm_damage.remains>2\nactions+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=4&dot.adaptive_swarm_damage.remains>2\nactions+=/adaptive_swarm,cycle_targets=1,if=!dot.adaptive_swarm_damage.ticking\nactions+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>5&talent.improved_sunfire.enabled\nactions+=/moonfire,cycle_targets=1,if=refreshable&time_to_die>12\nactions+=/starsurge,if=active_enemies<8\nactions+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>7&active_enemies<7\nactions+=/starfire,if=spell_targets.starfire>1\nactions+=/wrath\n\nactions.cat+=/rake,if=buff.shadowmeld.up||buff.prowl.up||buff.sudden_ambush.up\nactions.cat+=/heart_of_the_wild,if=(cooldown.convoke_the_spirits.remains<30||!talent.convoke_the_spirits.enabled)&!buff.heart_of_the_wild.up\nactions.cat+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=2&dot.adaptive_swarm_damage.remains>2\nactions.cat+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=1&dot.adaptive_swarm_damage.remains>2\nactions.cat+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=3&dot.adaptive_swarm_damage.remains>2\nactions.cat+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack=4&dot.adaptive_swarm_damage.remains>2\nactions.cat+=/adaptive_swarm,cycle_targets=1,if=!dot.adaptive_swarm_damage.ticking\nactions.cat+=/run_action_list,name=owl,if=active_enemies>2&talent.moonkin_form.enabled&talent.convoke_the_spirits.enabled&cooldown.convoke_the_spirits.remains<=gcd.max&(buff.heart_of_the_wild.up||cooldown.heart_of_the_wild.remains>60-30*talent.cenarius_guidance.enabled||!talent.heart_of_the_wild.enabled)\nactions.cat+=/cat_form,if=(active_enemies<2||!talent.moonkin_form.enabled)&(!buff.cat_form.up&talent.convoke_the_spirits.enabled&cooldown.convoke_the_spirits.remains<=gcd.max&(buff.heart_of_the_wild.up||cooldown.heart_of_the_wild.remains>60-30*talent.cenarius_guidance.enabled||!talent.heart_of_the_wild.enabled))\nactions.cat+=/convoke_the_spirits,if=(buff.heart_of_the_wild.up||cooldown.heart_of_the_wild.remains>60-30*talent.cenarius_guidance.enabled||!talent.heart_of_the_wild.enabled)\nactions.cat+=/rip,if=remains<=gcd&combo_points>0&dot.adaptive_swarm_damage.ticking\nactions.cat+=/thrash_cat,cycle_targets=1,if=refreshable&target.time_to_die>5&spell_targets.thrash_cat>1\nactions.cat+=/sunfire,cycle_targets=1,if=(refreshable&target.time_to_die>5)&!prev_gcd.1.cat_form&(active_enemies=1||talent.improved_sunfire.enabled)\nactions.cat+=/cat_form,if=!buff.cat_form.up&energy>50&(dot.thrash_cat.refreshable&spell_targets.swipe_cat>=9&talent.thrash.enabled)\nactions.cat+=/moonfire,cycle_targets=1,if=(refreshable&time_to_die>12&!ticking||(prev_gcd.1.sunfire&remains<duration*0.8&spell_targets.sunfire=1))&!prev_gcd.1.cat_form\nactions.cat+=/sunfire,if=prev_gcd.1.moonfire&remains<duration*0.8\nactions.cat+=/starsurge,if=active_enemies=1||(active_enemies<8&!buff.cat_form.up)\nactions.cat+=/starfire,if=time_to_die<10&spell_targets.starfire>1&(!talent.improved_swipe.enabled||spell_targets.swipe_cat>=9)\nactions.cat+=/cat_form,if=!buff.cat_form.up&energy>50\nactions.cat+=/ferocious_bite,if=(combo_points>3&target.1.time_to_die<3)||(combo_points=5&energy>=50&dot.rip.remains>10)&spell_targets.swipe_cat<4\nactions.cat+=/thrash_cat,cycle_targets=1,if=refreshable&target.time_to_die>5&spell_targets.thrash_cat>2\nactions.cat+=/rake,cycle_targets=1,if=dot.adaptive_swarm_damage.ticking&refreshable\nactions.cat+=/rip,cycle_targets=1,if=((refreshable||energy>90&remains<=10)&(combo_points=5&time_to_die>remains+24||(remains+combo_points*4<time_to_die&remains+4+combo_points*4>time_to_die))||!ticking&combo_points>2+spell_targets.swipe_cat*2)\nactions.cat+=/ferocious_bite,max_energy=1,if=combo_points=combo_points.max&(dot.rip.ticking||!talent.rip)\nactions.cat+=/rake,cycle_targets=1,if=(refreshable&time_to_die>10&spell_targets.swipe_cat<10)&(combo_points<5||remains<1)\nactions.cat+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>5&active_enemies<7&!talent.improved_sunfire.enabled\nactions.cat+=/thrash_cat,cycle_targets=1,if=refreshable&target.time_to_die>5\nactions.cat+=/swipe_cat,if=active_enemies>1&combo_points<5&talent.improved_swipe.enabled\nactions.cat+=/shred,if=energy>60&combo_points<5\n\nactions.owl+=/moonkin_form,if=!buff.moonkin_form.up\nactions.owl+=/convoke_the_spirits",
},
},
},
["Default"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["enabledArcaneMageOnce_20190309"] = true,
["forceReloadClassDefaultOptions_20220306_65"] = true,
["forceReloadClassDefaultOptions_20220306_252"] = true,
["forceReloadClassDefaultOptions_20220306_64"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
["forceReloadClassDefaultOptions_20220306_70"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceReloadClassDefaultOptions_20220306_63"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["resetPotionsToDefaults_20190717"] = true,
["forceReloadClassDefaultOptions_20220306_66"] = true,
["forceReloadClassDefaultOptions_20220306_1468"] = true,
["forceReloadClassDefaultOptions_20220306_62"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["resetRogueMfDOption_20200226"] = true,
["forceReloadClassDefaultOptions_20220306_251"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["forceReloadClassDefaultOptions_20220306_250"] = true,
["forceReloadClassDefaultOptions_20220306_1467"] = true,
["forceSpellFlashBrightness_20221030"] = true,
},
["displays"] = {
["Interrupts"] = {
["rel"] = "CENTER",
["x"] = -55.00000381469727,
},
["Cooldowns"] = {
["rel"] = "CENTER",
["y"] = -280.0000305175781,
},
["Primary"] = {
["rel"] = "CENTER",
["y"] = -114.6553344726563,
["x"] = -66.20655822753906,
},
["AOE"] = {
["rel"] = "CENTER",
["y"] = -113.9077987670898,
["x"] = -67.12610626220703,
},
["Defensives"] = {
["rel"] = "CENTER",
["x"] = -110.0000076293945,
},
},
["specs"] = {
[1467] = {
["settings"] = {
["use_early_chain"] = false,
["use_clipping"] = false,
["use_unravel"] = false,
["use_deep_breath"] = false,
["dragonrage_pad"] = 0.5,
},
},
[63] = {
["maxRefresh"] = 10,
["settings"] = {
["prevent_hardcasts"] = false,
["pyroblast_pull"] = false,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[66] = {
["settings"] = {
["wog_health"] = 40,
["goak_damage"] = 40,
["ds_damage"] = 60,
},
["maxTime"] = 33,
["maxRefresh"] = 10,
["potionsReset"] = 20180919.1,
},
[70] = {
["settings"] = {
["sov_damage"] = 20,
["check_wake_range"] = false,
["desync_toll"] = false,
},
["maxTime"] = 33,
["maxRefresh"] = 10,
["potionsReset"] = 20180919.1,
},
[1468] = {
["settings"] = {
["use_deep_breath"] = true,
["use_unravel"] = false,
},
},
[251] = {
["maxRefresh"] = 10,
["settings"] = {
["bos_rp"] = 50,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[62] = {
["maxRefresh"] = 10,
["settings"] = {
["check_explosion_range"] = true,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[64] = {
["maxRefresh"] = 10,
["settings"] = {
["manual_water_jet"] = false,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[252] = {
["maxRefresh"] = 10,
["settings"] = {
["dps_shell"] = false,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[102] = {
["enhancedRecheck"] = true,
},
[262] = {
["maxRefresh"] = 10,
["settings"] = {
["funnel_damage"] = false,
["stack_buffer"] = 1.1,
},
["aoe"] = 3,
["damageDots"] = true,
["maxTime"] = 33,
["nameplates"] = false,
["package"] = "Elemental",
["potion"] = "potion_of_spectral_intellect",
["potionsReset"] = 20180919.1,
},
[250] = {
["maxRefresh"] = 10,
["settings"] = {
["ibf_damage"] = 40,
["vb_damage"] = 50,
["rt_damage"] = 30,
["save_blood_shield"] = true,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
},
[263] = {
["package"] = "Enhancement",
["maxRefresh"] = 10,
["settings"] = {
["pad_windstrike"] = true,
},
["maxTime"] = 33,
["potionsReset"] = 20180919.1,
["potion"] = "potion_of_spectral_agility",
},
},
["toggles"] = {
["cooldowns"] = {
["value"] = true,
},
},
["packs"] = {
["Holy Paladin"] = {
["builtIn"] = true,
["date"] = 20230327,
["spec"] = 65,
["desc"] = "2023-03-22: Updated for 10.0.7 (Seraphim removed, Avenging Wrath and Avenging Crusader split).",
["lists"] = {
["spenders"] = {
{
["enabled"] = true,
["criteria"] = "! talent.awakening.enabled || active_enemies > 1",
["action"] = "shield_of_the_righteous",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.awakening.enabled & group",
["action"] = "light_of_dawn",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.awakening.enabled",
["action"] = "word_of_glory",
}, -- [3]
},
["default"] = {
{
["action"] = "rebuke",
["enabled"] = true,
}, -- [1]
{
["action"] = "avenging_wrath",
["enabled"] = true,
}, -- [2]
{
["action"] = "avenging_crusader",
["enabled"] = true,
}, -- [3]
{
["action"] = "blessing_of_summer",
["enabled"] = true,
}, -- [4]
{
["action"] = "blessing_of_autumn",
["enabled"] = true,
}, -- [5]
{
["action"] = "blessing_of_winter",
["enabled"] = true,
}, -- [6]
{
["action"] = "blessing_of_spring",
["enabled"] = true,
}, -- [7]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.avenging_crusader.enabled || cooldown.avenging_crusader.remains > gcd.max || holy_power.deficit = 0",
["list_name"] = "spenders",
}, -- [9]
{
["action"] = "divine_toll",
["enabled"] = true,
}, -- [10]
{
["action"] = "lights_hammer",
["enabled"] = true,
}, -- [11]
{
["action"] = "holy_prism",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! consecration.up & target.within10",
["action"] = "consecration",
}, -- [13]
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
}, -- [14]
{
["action"] = "judgment",
["enabled"] = true,
}, -- [15]
{
["action"] = "holy_shock",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "cooldown.holy_shock.remains > gcd.max",
["action"] = "crusader_strike",
}, -- [17]
},
},
["version"] = 20230327,
["warnings"] = "The import for 'spenders' required some automated changes.\nLine 1: Converted 'talent.awakening' to 'talent.awakening.enabled' (1x).\nLine 2: Converted 'talent.awakening' to 'talent.awakening.enabled' (1x).\nLine 3: Converted 'talent.awakening' to 'talent.awakening.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 9: Converted 'talent.avenging_crusader' to 'talent.avenging_crusader.enabled' (1x).\n\nImported 3 action lists.\n",
["profile"] = "actions+=/rebuke\nactions+=/avenging_wrath\nactions+=/avenging_crusader\nactions+=/blessing_of_summer\nactions+=/blessing_of_autumn\nactions+=/blessing_of_winter\nactions+=/blessing_of_spring\nactions+=/use_items\nactions+=/call_action_list,name=spenders,strict=1,if=!talent.avenging_crusader||cooldown.avenging_crusader.remains>gcd.max||holy_power.deficit=0\nactions+=/divine_toll\nactions+=/lights_hammer\nactions+=/holy_prism\nactions+=/consecration,if=!consecration.up&target.within10\nactions+=/hammer_of_wrath\nactions+=/judgment\nactions+=/holy_shock\nactions+=/crusader_strike,if=cooldown.holy_shock.remains>gcd.max\n\nactions.spenders+=/shield_of_the_righteous,if=!talent.awakening||active_enemies>1\nactions.spenders+=/light_of_dawn,if=talent.awakening&group\nactions.spenders+=/word_of_glory,if=talent.awakening",
["author"] = "Kaleokalani",
},
["Unholy"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230320.1,
["spec"] = 252,
["desc"] = "2023-03-13: Update for 10.0.7.\n\n2023-03-20: More updates for 10.0.7.",
["lists"] = {
["aoe_setup"] = {
{
["enabled"] = true,
["criteria"] = "( ! talent.bursting_sores.enabled || death_knight.fwounded_targets >= cycle_enemies || death_knight.fwounded_targets >= 8 || raid_event.adds.exists & raid_event.adds.remains <= 11 & raid_event.adds.remains > 5 )",
["action"] = "any_dnd",
["description"] = "AoE Setup",
}, -- [1]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "death_knight.fwounded_targets < active_enemies & talent.bursting_sores.enabled",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power || fight_remains < 10",
["action"] = "epidemic",
}, -- [3]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "death_knight.fwounded_targets < active_enemies",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "cooldown.apocalypse.remains < variable.apoc_timing & debuff.festering_wound.stack < 4",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ! talent.epidemic.enabled",
["action"] = "death_coil",
}, -- [6]
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power || fight_remains < 10",
["action"] = "epidemic",
["description"] = "Generic AoE",
}, -- [1]
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "variable.pop_wounds",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "! variable.pop_wounds",
["cycle_targets"] = 1,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ! talent.epidemic.enabled",
["action"] = "death_coil",
}, -- [4]
},
["aoe_burst"] = {
{
["enabled"] = true,
["criteria"] = "( ! talent.bursting_sores.enabled || rune < 1 || talent.bursting_sores.enabled & debuff.festering_wound.stack = 0 ) & ! variable.pooling_runic_power & ( active_enemies >= 6 || runic_power.deficit < 30 || buff.festermight.stack = 20 )",
["action"] = "epidemic",
["description"] = "AoE Burst",
}, -- [1]
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "debuff.festering_wound.stack >= 1",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power || fight_remains < 10",
["action"] = "epidemic",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ! talent.epidemic.enabled",
["action"] = "death_coil",
}, -- [4]
{
["action"] = "wound_spender",
["enabled"] = true,
}, -- [5]
},
["racials"] = {
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 20 & ( cooldown.summon_gargoyle.remains < gcd.max || ! talent.summon_gargoyle.enabled || pet.gargoyle.active & rune < 2 & debuff.festering_wound.stack < 1 )",
["action"] = "arcane_torrent",
["description"] = "Racials",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( buff.blood_fury.duration >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= buff.blood_fury.duration || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.blood_fury.duration || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.blood_fury.duration",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( buff.berserking.duration >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= buff.berserking.duration || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.berserking.duration || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.berserking.duration",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.unholy_strength.up & ( ! talent.festermight.enabled || buff.festermight.remains < target.time_to_die || buff.unholy_strength.remains < target.time_to_die )",
["action"] = "lights_judgment",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( pet.gargoyle.remains < 15 & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= 15 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 15 || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= 15",
["action"] = "ancestral_call",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 || ( rune.deficit >= 5 & runic_power.deficit >= 60 )",
["action"] = "arcane_pulse",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( buff.fireblood.duration >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= buff.fireblood.duration || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.fireblood.duration || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.fireblood.duration",
["action"] = "fireblood",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( buff.unholy_strength.up || boss & fight_remains < 5 )",
["action"] = "bag_of_tricks",
}, -- [8]
},
["garg_setup"] = {
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack >= 4 & ( buff.commander_of_the_dead.up & pet.gargoyle.remains < 21 || ! talent.commander_of_the_dead.enabled )",
["action"] = "apocalypse",
["description"] = "Garg Setup",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.commander_of_the_dead.enabled & ( cooldown.dark_transformation.remains < 3 || buff.commander_of_the_dead.up ) || ! talent.commander_of_the_dead.enabled & talent.unholy_assault.enabled & cooldown.unholy_assault.remains < 10 || ! talent.unholy_assault.enabled & ! talent.commander_of_the_dead.enabled",
["action"] = "army_of_the_dead",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > 5",
["action"] = "soul_reaper",
}, -- [3]
{
["enabled"] = true,
["action"] = "summon_gargoyle",
["criteria"] = "buff.commander_of_the_dead.up || ! talent.commander_of_the_dead.enabled & runic_power >= 40",
["use_off_gcd"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "pet.gargoyle.active & pet.gargoyle.remains <= 21",
["action"] = "empower_rune_weapon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "pet.gargoyle.active & pet.gargoyle.remains <= 21",
["action"] = "unholy_assault",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( pet.gargoyle.remains < 30 & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 || cooldown.summon_gargoyle.ready ) & ( buff.dark_transformation.up & buff.dark_transformation.remains < 30 || pet.army_ghoul.active & pet.army_ghoul.remains <= 30 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 30 )",
["action"] = "potion",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.commander_of_the_dead.enabled & runic_power >= 40 || ! talent.commander_of_the_dead.enabled",
["action"] = "dark_transformation",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & debuff.festering_wound.stack > 0",
["action"] = "any_dnd",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack = 0 || talent.apocalypse.enabled & cooldown.apocalypse.ready & debuff.festering_wound.stack < 4 || runic_power < 40",
["action"] = "festering_strike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "rune <= 1",
["action"] = "death_coil",
}, -- [11]
},
["generic"] = {
{
["enabled"] = true,
["criteria"] = "! variable.epidemic_priority & ( ! variable.pooling_runic_power & ( rune < 3 || pet.gargoyle.active || buff.sudden_doom.react || cooldown.apocalypse.remains < 10 & debuff.festering_wound.stack > 3 ) || boss & fight_remains < 10 )",
["action"] = "death_coil",
["description"] = "Generic",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.epidemic_priority & ( ! variable.pooling_runic_power & ( rune < 3 || pet.gargoyle.active || buff.sudden_doom.react || cooldown.apocalypse.remains < 10 & debuff.festering_wound.stack > 3 ) || boss & fight_remains < 10 )",
["action"] = "epidemic",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & ( active_enemies >= 2 || talent.unholy_ground.enabled & ( pet.apoc_ghoul.active & pet.apoc_ghoul.remains >= 10 || pet.gargoyle.active & pet.gargoyle.remains > 5 || pet.army_ghoul.active & pet.army_ghoul.remains > 5 ) ) & death_knight.fwounded_targets >= cycle_enemies",
["action"] = "any_dnd",
}, -- [3]
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "variable.pop_wounds || active_enemies >= 2 & death_and_decay.ticking",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "! variable.pop_wounds",
["cycle_targets"] = 1,
}, -- [5]
{
["action"] = "death_coil",
["enabled"] = true,
}, -- [6]
},
["default"] = {
{
["action"] = "mind_freeze",
["enabled"] = true,
}, -- [1]
{
["action"] = "strangulate",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 40 & ( pet.gargoyle.active || ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > cooldown.antimagic_shell.duration )",
["action"] = "antimagic_shell",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "death_knight.amz_absorb_percent > 0 & runic_power.deficit > 70 & talent.assimilation.enabled & ( pet.gargoyle.active || ! talent.summon_gargoyle.enabled )",
["action"] = "antimagic_zone",
}, -- [4]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Variables",
["criteria"] = "talent.improved_death_coil.enabled & ! talent.coil_of_devastation.enabled & active_enemies >= 3 || talent.coil_of_devastation.enabled & active_enemies >= 4 || ! talent.improved_death_coil.enabled & active_enemies >= 2",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0",
["var_name"] = "epidemic_priority",
}, -- [5]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "garg_setup",
["criteria"] = "active_enemies >= 3 || cooldown.summon_gargoyle.remains > 1 & cooldown.apocalypse.remains > 1 || ! talent.apocalypse.enabled & cooldown.summon_gargoyle.remains > 1 || ! talent.summon_gargoyle.enabled || time > 20",
["value_else"] = "0",
["value"] = "1",
}, -- [6]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "apoc_timing",
["criteria"] = "cooldown.apocalypse.remains < 10 & debuff.festering_wound.stack <= 4 & cooldown.unholy_assault.remains > 10",
["value_else"] = "2",
["value"] = "10",
}, -- [7]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "festermight_tracker",
["criteria"] = "! pet.gargoyle.active & talent.festermight.enabled & buff.festermight.up & ( buff.festermight.remains / ( 5 * gcd.max ) ) >= 1",
["value_else"] = "debuff.festering_wound.stack >= ( 3 - talent.infected_claws.enabled )",
["value"] = "debuff.festering_wound.stack >= 1",
}, -- [8]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "pop_wounds",
["criteria"] = "( cooldown.apocalypse.remains > variable.apoc_timing || ! talent.apocalypse.enabled ) & ( variable.festermight_tracker || debuff.festering_wound.stack >= 1 & ! talent.apocalypse.enabled || debuff.festering_wound.stack >= 1 & cooldown.unholy_assault.remains < 20 & talent.unholy_assault.enabled & variable.st_planning || debuff.rotten_touch.up & debuff.festering_wound.stack >= 1 || debuff.festering_wound.stack > 4 ) || fight_remains < 5 & debuff.festering_wound.stack >= 1",
["value_else"] = "0",
["value"] = "1",
}, -- [9]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "pooling_runic_power",
["criteria"] = "talent.vile_contagion.enabled & cooldown.vile_contagion.remains < 3 & runic_power < 60 & ! variable.st_planning",
["value_else"] = "0",
["value"] = "1",
}, -- [10]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "st_planning",
["criteria"] = "active_enemies <= 3 & ( ! raid_event.adds.exists || raid_event.adds.in > 15 )",
["value_else"] = "0",
["value"] = "1",
}, -- [11]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "adds_remain",
["criteria"] = "active_enemies >= 4 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.remains > 6 )",
["value_else"] = "0",
["value"] = "1",
}, -- [12]
{
["enabled"] = true,
["description"] = "Call Action Lists",
["action"] = "call_action_list",
["list_name"] = "high_priority",
}, -- [13]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "variable.garg_setup = 0",
["list_name"] = "garg_setup",
}, -- [14]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.st_planning",
["list_name"] = "cooldowns",
}, -- [15]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.adds_remain",
["list_name"] = "aoe_cooldowns",
}, -- [16]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "racials",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "variable.adds_remain & cooldown.any_dnd.remains < 10 & ! death_and_decay.ticking",
["action"] = "call_action_list",
["list_name"] = "aoe_setup",
}, -- [19]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 4 & death_and_decay.ticking",
["list_name"] = "aoe_burst",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 4 & ( cooldown.any_dnd.remains > 10 & ! death_and_decay.ticking || ! variable.adds_remain )",
["action"] = "call_action_list",
["list_name"] = "aoe",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies <= 3",
["list_name"] = "generic",
}, -- [22]
},
["precombat"] = {
{
["action"] = "raise_dead",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "army_of_the_dead",
["precombat_time"] = "2",
}, -- [2]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "buff.commander_of_the_dead.up",
["action"] = "summon_gargoyle",
["description"] = "ST/Cleave Cooldowns",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! pet.ghoul.active",
["action"] = "raise_dead",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.apocalypse.remains < 5",
["action"] = "dark_transformation",
}, -- [3]
{
["enabled"] = true,
["action"] = "apocalypse",
["criteria"] = "variable.st_planning & debuff.festering_wound.stack >= 4",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ( pet.gargoyle.active & pet.gargoyle.remains <= 21 || ! talent.summon_gargoyle.enabled & talent.army_of_the_damned.enabled & pet.army_ghoul.active & pet.apoc_ghoul.active || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_damned.enabled & buff.dark_transformation.up || ! talent.summon_gargoyle.enabled & ! talent.summon_gargoyle.enabled & buff.dark_transformation.up ) || boss & fight_remains <= 21",
["action"] = "empower_rune_weapon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "rune < 3 & variable.st_planning",
["action"] = "abomination_limb",
}, -- [6]
{
["enabled"] = true,
["action"] = "unholy_assault",
["criteria"] = "variable.st_planning",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > 5",
["action"] = "soul_reaper",
}, -- [8]
{
["enabled"] = true,
["action"] = "soul_reaper",
["criteria"] = "target.time_to_pct_35 < 5 & active_enemies >= 2 & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["cycle_targets"] = 1,
}, -- [9]
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "gavel_of_the_first_arbiter",
["action"] = "gavel_of_the_first_arbiter",
["description"] = "Trinkets",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
["var_name"] = "trinket_1_exclude",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
["var_name"] = "trinket_2_exclude",
}, -- [3]
{
["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",
}, -- [4]
{
["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",
}, -- [5]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_sync",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % 45 = 0 )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [6]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % 45 = 0 )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [7]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs & ( trinket.t2.has_cooldown & ! variable.trinket_2_exclude || ! trinket.t1.has_cooldown ) || 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 ) )",
["value_else"] = "1",
["value"] = "2",
}, -- [8]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "variable.trinket_1_buffs & ( ( ! talent.summon_gargoyle.enabled & ( ( ! talent.army_of_the_dead.enabled || cooldown.army_of_the_dead.remains_expected > 60 ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) || pet.army_ghoul.active ) || talent.summon_gargoyle.enabled & pet.gargoyle.active || cooldown.summon_gargoyle.remains > 80 ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) & ( variable.trinket_2_exclude || variable.trinket_priority = 1 || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown ) ) || boss & fight_remains < trinket.t1.buff_duration",
}, -- [9]
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "variable.trinket_2_buffs & ( ( ! talent.summon_gargoyle.enabled & ( ( ! talent.army_of_the_dead.enabled || cooldown.army_of_the_dead.remains_expected > 60 ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) || pet.army_ghoul.active ) || talent.summon_gargoyle.enabled & pet.gargoyle.active || cooldown.summon_gargoyle.remains > 80 ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) & ( variable.trinket_1_exclude || variable.trinket_priority = 2 || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown ) ) || boss & trinket.t2.buff_duration",
}, -- [10]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown || ! variable.trinket_2_buffs || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & cooldown.army_of_the_dead.remains_expected > 20 || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & cooldown.dark_transformation.remains > 20 || cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15",
}, -- [11]
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown || ! variable.trinket_1_buffs || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & cooldown.army_of_the_dead.remains_expected > 20 || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & cooldown.dark_transformation.remains > 20 || cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15",
}, -- [12]
},
["aoe_cooldowns"] = {
{
["enabled"] = true,
["action"] = "vile_contagion",
["cycle_targets"] = 1,
["criteria"] = "debuff.festering_wound.stack >= 4 & cooldown.any_dnd.remains < 3",
["description"] = "AoE Cooldowns",
}, -- [1]
{
["action"] = "summon_gargoyle",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "rune < 2 || buff.festermight.stack > 10 || ! talent.festermight.enabled || buff.festermight.up & buff.festermight.remains < 12",
["action"] = "abomination_limb",
}, -- [3]
{
["enabled"] = true,
["action"] = "apocalypse",
["criteria"] = "talent.bursting_sores.enabled & debuff.festering_wound.up & ( ! death_and_decay.ticking & cooldown.death_and_decay.remains & rune < 3 || death_and_decay.ticking & rune = 0 ) || ! talent.bursting_sores.enabled & debuff.festering_wound.stack >= 4",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "unholy_assault",
["criteria"] = "debuff.festering_wound.stack <= 2 || buff.dark_transformation.up",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! pet.ghoul.active",
["action"] = "raise_dead",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( cooldown.any_dnd.remains < 10 & talent.infected_claws.enabled & ( ( cooldown.vile_contagion.remains || raid_event.adds.exists & raid_event.adds.in > 10 ) & death_knight.fwounded_targets < active_enemies || ! talent.vile_contagion.enabled ) & ( raid_event.adds.remains > 5 || ! raid_event.adds.exists ) || ! talent.infected_claws.enabled )",
["action"] = "dark_transformation",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.dark_transformation.up",
["action"] = "empower_rune_weapon",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! buff.dark_transformation.up & cooldown.dark_transformation.remains > 6 || boss & fight_remains < gcd.max",
["action"] = "sacrificial_pact",
}, -- [9]
},
["high_priority"] = {
{
["enabled"] = true,
["criteria"] = "( pet.gargoyle.remains < 30 & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 || cooldown.summon_gargoyle.ready ) & ( buff.dark_transformation.up & buff.dark_transformation.remains < 30 || pet.army_ghoul.active & pet.army_ghoul.remains <= 30 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 30 ) || boss & fight_remains <= 30",
["action"] = "potion",
["description"] = "Priority Actions",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.summon_gargoyle.enabled & cooldown.summon_gargoyle.remains < 2 || ! talent.summon_gargoyle.enabled || boss & fight_remains < 35",
["action"] = "army_of_the_dead",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( active_enemies <= 3 || ! talent.epidemic.enabled ) & ( pet.gargoyle.active & talent.commander_of_the_dead.enabled & buff.commander_of_the_dead.up & cooldown.apocalypse.remains < 5 & buff.commander_of_the_dead.remains > 26 || debuff.death_rot.up & debuff.death_rot.remains < gcd.max )",
["action"] = "death_coil",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 4 & ( talent.commander_of_the_dead.enabled & buff.commander_of_the_dead.up & cooldown.apocalypse.remains < 5 || debuff.death_rot.up & debuff.death_rot.remains < gcd.max )",
["action"] = "epidemic",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.up & ( ! talent.apocalypse.enabled || cooldown.apocalypse.remains > variable.apoc_timing + 3 || active_enemies >= 3 ) & talent.plaguebringer.enabled & ( talent.superstrain.enabled || talent.unholy_blight.enabled ) & buff.plaguebringer.remains < gcd.max",
["action"] = "wound_spender",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.st_planning & ( ( ! talent.apocalypse.enabled || cooldown.apocalypse.remains ) & talent.morbidity.enabled || ! talent.morbidity.enabled ) || variable.adds_remain || boss & fight_remains < 21",
["action"] = "unholy_blight",
}, -- [6]
{
["enabled"] = true,
["action"] = "outbreak",
["criteria"] = "target.time_to_die > dot.virulent_plague.remains & ( dot.virulent_plague.refreshable || talent.superstrain.enabled & ( dot.frost_fever_superstrain.refreshable || dot.blood_plague_superstrain.refreshable ) ) & ( ! talent.unholy_blight.enabled || talent.unholy_blight.enabled & cooldown.unholy_blight.remains > 15 / ( ( talent.superstrain.enabled * 3 ) + ( talent.plaguebringer.enabled * 2 ) + ( talent.ebon_fever.enabled * 2 ) ) )",
["cycle_targets"] = 1,
}, -- [7]
},
},
["version"] = 20230320.1,
["warnings"] = "The import for 'aoe_setup' required some automated changes.\nLine 1: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 2: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 6: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\n\nThe import for 'cooldowns' required some automated changes.\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_damned' to 'talent.army_of_the_damned.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_damned' to 'talent.army_of_the_damned.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\n\nThe import for 'aoe_burst' required some automated changes.\nLine 1: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 1: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 4: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\n\nThe import for 'racials' required some automated changes.\nLine 2: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 3: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 4: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 7: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\n\nThe import for 'garg_setup' required some automated changes.\nLine 1: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 2: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 2: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 2: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 2: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 2: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 4: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 7: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 8: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 8: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 10: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\n\nThe import for 'generic' required some automated changes.\nLine 3: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\n\nThe import for 'aoe_cooldowns' required some automated changes.\nLine 3: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 4: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 4: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 7: Converted 'talent.infected_claws' to 'talent.infected_claws.enabled' (1x).\nLine 7: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 7: Converted 'talent.infected_claws' to 'talent.infected_claws.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 4: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 2: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 2: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 3: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 3: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 4: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 4: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 4: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 4: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 4: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 5: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 5: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 5: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 5: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 5: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted operations in 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%%45=0)' to 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%45=0)'.\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted operations in 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%%45=0)' to 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%45=0)'.\nLine 8: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 8: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 8: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (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.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.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 8: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 8: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 8: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 8: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.t2.has_cooldown&!variable.trinket_2_exclude||!trinket.t1.has_cooldown)||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&(trinket.t2.has_cooldown&!variable.trinket_2_exclude||!trinket.t1.has_cooldown)||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 9: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 9: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 9: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\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 10: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 10: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 10: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 10: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 10: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 10: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 10: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 10: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 10: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 10: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 11: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 11: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 11: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 11: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 11: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 11: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 11: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 11: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 11: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 12: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 12: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 12: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 12: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 12: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 12: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 4: Converted 'talent.assimilation' to 'talent.assimilation.enabled' (1x).\nLine 4: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.improved_death_coil' to 'talent.improved_death_coil.enabled' (1x).\nLine 5: Converted 'talent.coil_of_devastation' to 'talent.coil_of_devastation.enabled' (1x).\nLine 5: Converted 'talent.coil_of_devastation' to 'talent.coil_of_devastation.enabled' (1x).\nLine 5: Converted 'talent.improved_death_coil' to 'talent.improved_death_coil.enabled' (1x).\nLine 6: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 8: Converted 'talent.infected_claws' to 'talent.infected_claws.enabled' (1x).\nLine 8: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 8: Converted operations in '!pet.gargoyle.active&talent.festermight.enabled&buff.festermight.up&(buff.festermight.remains%(5*gcd.max))>=1' to '!pet.gargoyle.active&talent.festermight.enabled&buff.festermight.up&(buff.festermight.remains/(5*gcd.max))>=1'.\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 10: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\n\nThe import for 'high_priority' required some automated changes.\nLine 1: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 2: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 2: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 3: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\nLine 3: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 4: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.plaguebringer' to 'talent.plaguebringer.enabled' (1x).\nLine 5: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 5: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 6: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 6: Converted 'talent.morbidity' to 'talent.morbidity.enabled' (1x).\nLine 6: Converted 'talent.morbidity' to 'talent.morbidity.enabled' (1x).\nLine 7: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 7: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 7: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 7: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 7: Converted 'talent.plaguebringer' to 'talent.plaguebringer.enabled' (1x).\nLine 7: Converted 'talent.ebon_fever' to 'talent.ebon_fever.enabled' (1x).\nLine 7: Converted operations in 'target.time_to_die>dot.virulent_plague.remains&(dot.virulent_plague.refreshable||talent.superstrain.enabled&(dot.frost_fever_superstrain.refreshable||dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight.enabled||talent.unholy_blight.enabled&cooldown.unholy_blight.remains>15%((talent.superstrain.enabled*3)+(talent.plaguebringer.enabled*2)+(talent.ebon_fever.enabled*2)))' to 'target.time_to_die>dot.virulent_plague.remains&(dot.virulent_plague.refreshable||talent.superstrain.enabled&(dot.frost_fever_superstrain.refreshable||dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight.enabled||talent.unholy_blight.enabled&cooldown.unholy_blight.remains>15/((talent.superstrain.enabled*3)+(talent.plaguebringer.enabled*2)+(talent.ebon_fever.enabled*2)))'.\n\nImported 12 action lists.\n",
["profile"] = "actions.precombat+=/raise_dead\nactions.precombat+=/army_of_the_dead,precombat_time=2\n\nactions+=/mind_freeze\nactions+=/strangulate\nactions+=/antimagic_shell,if=runic_power.deficit>40&(pet.gargoyle.active||!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>cooldown.antimagic_shell.duration)\nactions+=/antimagic_zone,if=death_knight.amz_absorb_percent>0&runic_power.deficit>70&talent.assimilation&(pet.gargoyle.active||!talent.summon_gargoyle)\n# Variables\nactions+=/variable,name=epidemic_priority,op=setif,value=1,value_else=0,condition=talent.improved_death_coil&!talent.coil_of_devastation&active_enemies>=3||talent.coil_of_devastation&active_enemies>=4||!talent.improved_death_coil&active_enemies>=2\nactions+=/variable,name=garg_setup,op=setif,value=1,value_else=0,condition=active_enemies>=3||cooldown.summon_gargoyle.remains>1&cooldown.apocalypse.remains>1||!talent.apocalypse&cooldown.summon_gargoyle.remains>1||!talent.summon_gargoyle||time>20\nactions+=/variable,name=apoc_timing,op=setif,value=10,value_else=2,condition=cooldown.apocalypse.remains<10&debuff.festering_wound.stack<=4&cooldown.unholy_assault.remains>10\nactions+=/variable,name=festermight_tracker,op=setif,value=debuff.festering_wound.stack>=1,value_else=debuff.festering_wound.stack>=(3-talent.infected_claws),condition=!pet.gargoyle.active&talent.festermight&buff.festermight.up&(buff.festermight.remains%(5*gcd.max))>=1\nactions+=/variable,name=pop_wounds,op=setif,value=1,value_else=0,condition=(cooldown.apocalypse.remains>variable.apoc_timing||!talent.apocalypse)&(variable.festermight_tracker||debuff.festering_wound.stack>=1&!talent.apocalypse||debuff.festering_wound.stack>=1&cooldown.unholy_assault.remains<20&talent.unholy_assault&variable.st_planning||debuff.rotten_touch.up&debuff.festering_wound.stack>=1||debuff.festering_wound.stack>4)||fight_remains<5&debuff.festering_wound.stack>=1\nactions+=/variable,name=pooling_runic_power,op=setif,value=1,value_else=0,condition=talent.vile_contagion&cooldown.vile_contagion.remains<3&runic_power<60&!variable.st_planning\nactions+=/variable,name=st_planning,op=setif,value=1,value_else=0,condition=active_enemies<=3&(!raid_event.adds.exists||raid_event.adds.in>15)\nactions+=/variable,name=adds_remain,op=setif,value=1,value_else=0,condition=active_enemies>=4&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.remains>6)\n## Use <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> while <a href='https://www.wowhead.com/spell=49206/summon-gargoyle'>Gargoyle</a> is up, as well as <a href='https://www.wowhead.com/spell=275699/apocalypse'>Apocalypse</a> or with <a href='https://www.wowhead.com/spell=63560/dark-transformation'>Dark Transformation</a> if <a href='https://www.wowhead.com/spell=275699/apocalypse'>Apocalypse</a> or <a href='https://www.wowhead.com/spell=49206/summon-gargoyle'>Gargoyle</a> are not talented\n## actions+=/invoke_external_buff,name=power_infusion,if=variable.st_planning&(pet.gargoyle.active&pet.gargoyle.remains<=20||!talent.summon_gargoyle&talent.army_of_the_dead&pet.army_ghoul.active&pet.apoc_ghoul.active||!talent.summon_gargoyle&!talent.army_of_the_dead&buff.dark_transformation.up||!talent.summon_gargoyle&buff.dark_transformation.up||!pet.gargoyle.active&cooldown.summon_gargoyle.remains+5>cooldown.invoke_external_buff.duration||active_enemies>=3&(buff.dark_transformation.up||death_and_decay.ticking))||boss&fight_remains<=21\n# Call Action Lists\nactions+=/call_action_list,name=high_priority\nactions+=/run_action_list,name=garg_setup,strict=1,if=variable.garg_setup=0\nactions+=/call_action_list,name=cooldowns,strict=1,if=variable.st_planning\nactions+=/call_action_list,name=aoe_cooldowns,strict=1,if=variable.adds_remain\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=racials\nactions+=/call_action_list,name=aoe_setup,if=variable.adds_remain&cooldown.any_dnd.remains<10&!death_and_decay.ticking\nactions+=/call_action_list,name=aoe_burst,strict=1,if=active_enemies>=4&death_and_decay.ticking\nactions+=/call_action_list,name=aoe,if=active_enemies>=4&(cooldown.any_dnd.remains>10&!death_and_decay.ticking||!variable.adds_remain)\nactions+=/call_action_list,name=generic,strict=1,if=active_enemies<=3\n\n# Priority Actions\nactions.high_priority+=/potion,if=(pet.gargoyle.remains<30&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60||cooldown.summon_gargoyle.ready)&(buff.dark_transformation.up&buff.dark_transformation.remains<30||pet.army_ghoul.active&pet.army_ghoul.remains<=30||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=30)||boss&fight_remains<=30\nactions.high_priority+=/army_of_the_dead,if=talent.summon_gargoyle&cooldown.summon_gargoyle.remains<2||!talent.summon_gargoyle||boss&fight_remains<35\nactions.high_priority+=/death_coil,if=(active_enemies<=3||!talent.epidemic)&(pet.gargoyle.active&talent.commander_of_the_dead&buff.commander_of_the_dead.up&cooldown.apocalypse.remains<5&buff.commander_of_the_dead.remains>26||debuff.death_rot.up&debuff.death_rot.remains<gcd.max)\nactions.high_priority+=/epidemic,if=active_enemies>=4&(talent.commander_of_the_dead&buff.commander_of_the_dead.up&cooldown.apocalypse.remains<5||debuff.death_rot.up&debuff.death_rot.remains<gcd.max)\nactions.high_priority+=/wound_spender,if=debuff.festering_wound.up&(!talent.apocalypse.enabled||cooldown.apocalypse.remains>variable.apoc_timing+3||active_enemies>=3)&talent.plaguebringer&(talent.superstrain||talent.unholy_blight)&buff.plaguebringer.remains<gcd\nactions.high_priority+=/unholy_blight,if=variable.st_planning&((!talent.apocalypse||cooldown.apocalypse.remains)&talent.morbidity||!talent.morbidity)||variable.adds_remain||boss&fight_remains<21\nactions.high_priority+=/outbreak,cycle_targets=1,if=target.time_to_die>dot.virulent_plague.remains&(dot.virulent_plague.refreshable||talent.superstrain&(dot.frost_fever_superstrain.refreshable||dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight||talent.unholy_blight&cooldown.unholy_blight.remains>15%((talent.superstrain*3)+(talent.plaguebringer*2)+(talent.ebon_fever*2)))\n\n# AoE Cooldowns\nactions.aoe_cooldowns+=/vile_contagion,cycle_targets=1,if=debuff.festering_wound.stack>=4&cooldown.any_dnd.remains<3\nactions.aoe_cooldowns+=/summon_gargoyle\nactions.aoe_cooldowns+=/abomination_limb,if=rune<2||buff.festermight.stack>10||!talent.festermight||buff.festermight.up&buff.festermight.remains<12\nactions.aoe_cooldowns+=/apocalypse,cycle_targets=1,if=talent.bursting_sores&debuff.festering_wound.up&(!death_and_decay.ticking&cooldown.death_and_decay.remains&rune<3||death_and_decay.ticking&rune=0)||!talent.bursting_sores&debuff.festering_wound.stack>=4\nactions.aoe_cooldowns+=/unholy_assault,cycle_targets=1,if=debuff.festering_wound.stack<=2||buff.dark_transformation.up\nactions.aoe_cooldowns+=/raise_dead,if=!pet.ghoul.active\nactions.aoe_cooldowns+=/dark_transformation,if=(cooldown.any_dnd.remains<10&talent.infected_claws&((cooldown.vile_contagion.remains||raid_event.adds.exists&raid_event.adds.in>10)&death_knight.fwounded_targets<active_enemies||!talent.vile_contagion)&(raid_event.adds.remains>5||!raid_event.adds.exists)||!talent.infected_claws)\nactions.aoe_cooldowns+=/empower_rune_weapon,if=buff.dark_transformation.up\nactions.aoe_cooldowns+=/sacrificial_pact,if=!buff.dark_transformation.up&cooldown.dark_transformation.remains>6||boss&fight_remains<gcd\n\n# AoE Setup\nactions.aoe_setup+=/any_dnd,if=(!talent.bursting_sores||death_knight.fwounded_targets>=cycle_enemies||death_knight.fwounded_targets>=8||raid_event.adds.exists&raid_event.adds.remains<=11&raid_event.adds.remains>5)\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=death_knight.fwounded_targets<active_enemies&talent.bursting_sores\nactions.aoe_setup+=/epidemic,if=!variable.pooling_runic_power||fight_remains<10\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=death_knight.fwounded_targets<active_enemies\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=cooldown.apocalypse.remains<variable.apoc_timing&debuff.festering_wound.stack<4\nactions.aoe_setup+=/death_coil,if=!variable.pooling_runic_power&!talent.epidemic\n\n# AoE Burst\nactions.aoe_burst+=/epidemic,if=(!talent.bursting_sores||rune<1||talent.bursting_sores&debuff.festering_wound.stack=0)&!variable.pooling_runic_power&(active_enemies>=6||runic_power.deficit<30||buff.festermight.stack=20)\nactions.aoe_burst+=/wound_spender,cycle_targets=1,if=debuff.festering_wound.stack>=1\nactions.aoe_burst+=/epidemic,if=!variable.pooling_runic_power||fight_remains<10\nactions.aoe_burst+=/death_coil,if=!variable.pooling_runic_power&!talent.epidemic\nactions.aoe_burst+=/wound_spender\n\n# Generic AoE\nactions.aoe+=/epidemic,if=!variable.pooling_runic_power||fight_remains<10\nactions.aoe+=/wound_spender,cycle_targets=1,if=variable.pop_wounds\nactions.aoe+=/festering_strike,cycle_targets=1,if=!variable.pop_wounds\nactions.aoe+=/death_coil,if=!variable.pooling_runic_power&!talent.epidemic\n# ST/Cleave Cooldowns\nactions.cooldowns+=/summon_gargoyle,if=buff.commander_of_the_dead.up\nactions.cooldowns+=/raise_dead,if=!pet.ghoul.active\nactions.cooldowns+=/dark_transformation,if=cooldown.apocalypse.remains<5\nactions.cooldowns+=/apocalypse,cycle_targets=1,if=variable.st_planning&debuff.festering_wound.stack>=4\nactions.cooldowns+=/empower_rune_weapon,if=variable.st_planning&(pet.gargoyle.active&pet.gargoyle.remains<=21||!talent.summon_gargoyle&talent.army_of_the_damned&pet.army_ghoul.active&pet.apoc_ghoul.active||!talent.summon_gargoyle&!talent.army_of_the_damned&buff.dark_transformation.up||!talent.summon_gargoyle&!talent.summon_gargoyle&buff.dark_transformation.up)||boss&fight_remains<=21\nactions.cooldowns+=/abomination_limb,if=rune<3&variable.st_planning\nactions.cooldowns+=/unholy_assault,cycle_targets=1,if=variable.st_planning\nactions.cooldowns+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>5\nactions.cooldowns+=/soul_reaper,cycle_targets=1,if=target.time_to_pct_35<5&active_enemies>=2&target.time_to_die>(dot.soul_reaper.remains+5)\n\n# Garg Setup\nactions.garg_setup+=/apocalypse,if=debuff.festering_wound.stack>=4&(buff.commander_of_the_dead.up&pet.gargoyle.remains<21||!talent.commander_of_the_dead)\nactions.garg_setup+=/army_of_the_dead,if=talent.commander_of_the_dead&(cooldown.dark_transformation.remains<3||buff.commander_of_the_dead.up)||!talent.commander_of_the_dead&talent.unholy_assault&cooldown.unholy_assault.remains<10||!talent.unholy_assault&!talent.commander_of_the_dead\nactions.garg_setup+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>5\nactions.garg_setup+=/summon_gargoyle,use_off_gcd=1,if=buff.commander_of_the_dead.up||!talent.commander_of_the_dead&runic_power>=40\nactions.garg_setup+=/empower_rune_weapon,if=pet.gargoyle.active&pet.gargoyle.remains<=21\nactions.garg_setup+=/unholy_assault,if=pet.gargoyle.active&pet.gargoyle.remains<=21\nactions.garg_setup+=/potion,if=(pet.gargoyle.remains<30&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60||cooldown.summon_gargoyle.ready)&(buff.dark_transformation.up&buff.dark_transformation.remains<30||pet.army_ghoul.active&pet.army_ghoul.remains<=30||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=30)\nactions.garg_setup+=/dark_transformation,if=talent.commander_of_the_dead&runic_power>=40||!talent.commander_of_the_dead\nactions.garg_setup+=/any_dnd,if=!death_and_decay.ticking&debuff.festering_wound.stack>0\nactions.garg_setup+=/festering_strike,if=debuff.festering_wound.stack=0||talent.apocalypse&cooldown.apocalypse.ready&debuff.festering_wound.stack<4||runic_power<40\nactions.garg_setup+=/death_coil,if=rune<=1\n\n# Generic\nactions.generic+=/death_coil,if=!variable.epidemic_priority&(!variable.pooling_runic_power&(rune<3||pet.gargoyle.active||buff.sudden_doom.react||cooldown.apocalypse.remains<10&debuff.festering_wound.stack>3)||boss&fight_remains<10)\nactions.generic+=/epidemic,if=variable.epidemic_priority&(!variable.pooling_runic_power&(rune<3||pet.gargoyle.active||buff.sudden_doom.react||cooldown.apocalypse.remains<10&debuff.festering_wound.stack>3)||boss&fight_remains<10)\nactions.generic+=/any_dnd,if=!death_and_decay.ticking&(active_enemies>=2||talent.unholy_ground&(pet.apoc_ghoul.active&pet.apoc_ghoul.remains>=10||pet.gargoyle.active&pet.gargoyle.remains>5||pet.army_ghoul.active&pet.army_ghoul.remains>5))&death_knight.fwounded_targets>=cycle_enemies\nactions.generic+=/wound_spender,cycle_targets=1,if=variable.pop_wounds||active_enemies>=2&death_and_decay.ticking\nactions.generic+=/festering_strike,cycle_targets=1,if=!variable.pop_wounds\nactions.generic+=/death_coil\n\n# Racials\nactions.racials+=/arcane_torrent,if=runic_power.deficit>20&(cooldown.summon_gargoyle.remains<gcd.max||!talent.summon_gargoyle.enabled||pet.gargoyle.active&rune<2&debuff.festering_wound.stack<1)\nactions.racials+=/blood_fury,if=(buff.blood_fury.duration>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.blood_fury.duration||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.blood_fury.duration||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=buff.blood_fury.duration\nactions.racials+=/berserking,if=(buff.berserking.duration>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.berserking.duration||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.berserking.duration||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=buff.berserking.duration\nactions.racials+=/lights_judgment,if=buff.unholy_strength.up&(!talent.festermight||buff.festermight.remains<target.time_to_die||buff.unholy_strength.remains<target.time_to_die)\nactions.racials+=/ancestral_call,if=(pet.gargoyle.remains<15&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=15||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=15||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=15\nactions.racials+=/arcane_pulse,if=active_enemies>=2||(rune.deficit>=5&runic_power.deficit>=60)\nactions.racials+=/fireblood,if=(buff.fireblood.duration>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.fireblood.duration||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.fireblood.duration||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=buff.fireblood.duration\nactions.racials+=/bag_of_tricks,if=active_enemies=1&(buff.unholy_strength.up||boss&fight_remains<5)\n\n# Trinkets\nactions.trinkets=use_item,name=gavel_of_the_first_arbiter\nactions.trinkets+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.trinkets+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\nactions.trinkets+=/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.trinkets+=/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.trinkets+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%45=0)\nactions.trinkets+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%45=0)\nactions.trinkets+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.2.has_cooldown&!variable.trinket_2_exclude||!trinket.1.has_cooldown)||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.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=variable.trinket_1_buffs&((!talent.summon_gargoyle&((!talent.army_of_the_dead||cooldown.army_of_the_dead.remains_expected>60)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)||pet.army_ghoul.active)||talent.summon_gargoyle&pet.gargoyle.active||cooldown.summon_gargoyle.remains>80)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)&(variable.trinket_2_exclude||variable.trinket_priority=1||trinket.2.cooldown.remains||!trinket.2.has_cooldown))||boss&fight_remains<trinket.1.proc.any_dps.duration\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=variable.trinket_2_buffs&((!talent.summon_gargoyle&((!talent.army_of_the_dead||cooldown.army_of_the_dead.remains_expected>60)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)||pet.army_ghoul.active)||talent.summon_gargoyle&pet.gargoyle.active||cooldown.summon_gargoyle.remains>80)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)&(variable.trinket_1_exclude||variable.trinket_priority=2||trinket.1.cooldown.remains||!trinket.1.has_cooldown))||boss&trinket.2.proc.any_dps.duration\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!trinket.2.has_cooldown||!variable.trinket_2_buffs||!talent.summon_gargoyle&!talent.army_of_the_dead||!talent.summon_gargoyle&talent.army_of_the_dead&cooldown.army_of_the_dead.remains_expected>20||!talent.summon_gargoyle&!talent.army_of_the_dead&cooldown.dark_transformation.remains>20||cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!trinket.1.has_cooldown||!variable.trinket_1_buffs||!talent.summon_gargoyle&!talent.army_of_the_dead||!talent.summon_gargoyle&talent.army_of_the_dead&cooldown.army_of_the_dead.remains_expected>20||!talent.summon_gargoyle&!talent.army_of_the_dead&cooldown.dark_transformation.remains>20||cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15",
["author"] = "SimulationCraft",
},
["Preservation"] = {
["builtIn"] = true,
["date"] = 20230205,
["spec"] = 1468,
["lists"] = {
["default"] = {
{
["action"] = "quell",
["enabled"] = true,
}, -- [1]
{
["action"] = "cauterizing_flame",
["enabled"] = true,
}, -- [2]
{
["action"] = "unravel",
["enabled"] = true,
}, -- [3]
{
["action"] = "deep_breath",
["enabled"] = true,
}, -- [4]
{
["action"] = "potion",
["enabled"] = true,
}, -- [5]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "fight_remains > 14 + cast_time",
["action"] = "fire_breath",
["empower_to"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "fight_remains > 8 + cast_time",
["action"] = "fire_breath",
["empower_to"] = 2,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "fight_remains > 2 + cast_time",
["action"] = "fire_breath",
["empower_to"] = 3,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "fight_remains > cast_time",
["action"] = "fire_breath",
["empower_to"] = 4,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "moving",
["action"] = "hover",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.essence_burst.up & ( ! moving || buff.hover.remains > cast_time )",
["action"] = "disintegrate",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! moving || buff.hover.remains > cast_time",
["action"] = "living_flame",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "moving & buff.hover.down",
["action"] = "azure_strike",
}, -- [14]
},
["precombat"] = {
{
["action"] = "blessing_of_the_bronze",
["enabled"] = true,
}, -- [1]
},
},
["version"] = 20230205,
["warnings"] = "Imported 2 action lists.\n",
["profile"] = "actions.precombat+=/blessing_of_the_bronze\n\nactions+=/quell\nactions+=/cauterizing_flame\nactions+=/unravel\nactions+=/deep_breath\nactions+=/potion\nactions+=/use_items\nactions+=/fire_breath,empower_to=1,if=fight_remains>14+cast_time\nactions+=/fire_breath,empower_to=2,if=fight_remains>8+cast_time\nactions+=/fire_breath,empower_to=3,if=fight_remains>2+cast_time\nactions+=/fire_breath,empower_to=4,if=fight_remains>cast_time\nactions+=/hover,if=moving\nactions+=/disintegrate,if=buff.essence_burst.up&(!moving||buff.hover.remains>cast_time)\nactions+=/living_flame,if=!moving||buff.hover.remains>cast_time\nactions+=/azure_strike,if=moving&buff.hover.down",
["author"] = "Hekili",
},
["Devastation"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/dragonflight/engine/class_modules/apl/apl_evoker.cpp",
["builtIn"] = true,
["date"] = 20230308,
["spec"] = 1467,
["desc"] = "2023-02-14: Added Dragonrage Animosity Padding (dr_padding) setting.\n\n2023-03-08: Routine update from SimulationCraft refining Pyre usage at different target counts and stacks of Charged Blast.",
["lists"] = {
["es"] = {
{
["enabled"] = true,
["action"] = "eternity_surge",
["empower_to"] = 1,
["criteria"] = "spell_targets.pyre <= 1 + talent.eternitys_span.enabled || buff.dragonrage.remains < dr_padding + 1.75 * spell_haste & buff.dragonrage.remains >= 1 * spell_haste",
["description"] = "Eternity Surge, use rank most applicable to targets.",
}, -- [1]
{
["enabled"] = true,
["action"] = "eternity_surge",
["criteria"] = "spell_targets.pyre <= 2 + 2 * talent.eternitys_span.enabled || buff.dragonrage.remains < dr_padding + 2.5 * spell_haste & buff.dragonrage.remains >= 1.75 * spell_haste",
["empower_to"] = 2,
}, -- [2]
{
["enabled"] = true,
["action"] = "eternity_surge",
["criteria"] = "spell_targets.pyre <= 3 + 3 * talent.eternitys_span.enabled || ! talent.font_of_magic.enabled || buff.dragonrage.remains <= dr_padding + 3.25 * spell_haste & buff.dragonrage.remains >= 2.5 * spell_haste",
["empower_to"] = 3,
}, -- [3]
{
["enabled"] = true,
["action"] = "eternity_surge",
["empower_to"] = 4,
}, -- [4]
},
["default"] = {
{
["action"] = "quell",
["enabled"] = true,
}, -- [1]
{
["action"] = "unravel",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up || boss & fight_remains < 35",
["action"] = "potion",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.dragonrage.remains",
["description"] = "Variable that evaluates when next dragonrage is by working out the maximum between the dragonrage cd and your empowers, ignoring CDR effect estimates.",
["var_name"] = "next_dragonrage",
}, -- [4]
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "cooldown.eternity_surge.remains - 2 * gcd.max",
["var_name"] = "next_dragonrage",
}, -- [5]
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "cooldown.fire_breath.remains - gcd.max",
["var_name"] = "next_dragonrage",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1.3 * spell_haste",
["description"] = "Rank 1 empower spell cast time TODO: multiplier should be 1.0 but 1.3 results in more dps for EBF builds",
["var_name"] = "r1_cast_time",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [8]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.pyre >= 3",
["list_name"] = "aoe",
}, -- [9]
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.pyre < 3",
["list_name"] = "st",
}, -- [10]
},
["precombat"] = {
{
["action"] = "blessing_of_the_bronze",
["enabled"] = true,
}, -- [1]
{
["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",
["var_name"] = "trinket_1_buffs",
}, -- [2]
{
["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",
["var_name"] = "trinket_2_buffs",
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Decide which trinket to pair with Dragonrage, prefer 2 minute and 1 minute trinkets",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.dragonrage.duration = 0 || cooldown.dragonrage.duration % trinket.t1.cooldown.duration = 0 )",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0.5",
["var_name"] = "trinket_1_sync",
}, -- [4]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.dragonrage.duration = 0 || cooldown.dragonrage.duration % trinket.t2.cooldown.duration = 0 )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.spoils_of_neltharus",
["description"] = "Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a intellect modifier (currently 1.5x) to give a higher priority to intellect trinkets. The intellect modifier should be changed as intellect priority increases or decreases. As well as a modifier for if a trinket will or will not sync with cooldowns.",
["var_name"] = "trinket_1_manual",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.spoils_of_neltharus",
["var_name"] = "trinket_2_manual",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
["var_name"] = "trinket_1_exclude",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
["var_name"] = "trinket_2_exclude",
}, -- [9]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["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 ) )",
["value_else"] = "1",
["value"] = "2",
}, -- [10]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.firestorm.enabled",
["action"] = "firestorm",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! talent.firestorm.enabled",
["action"] = "living_flame",
}, -- [13]
},
["aoe"] = {
{
["enabled"] = true,
["description"] = "AOE action list, also a mess.",
["criteria"] = "cooldown.fire_breath.remains <= gcd.max & cooldown.eternity_surge.remains < 3 * gcd.max",
["action"] = "dragonrage",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up & ( spell_targets.pyre <= 6 || ! cooldown.fire_breath.up )",
["action"] = "tip_the_scales",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up || ! talent.dragonrage.enabled || cooldown.dragonrage.remains > 10 & talent.everburning_flame.enabled",
["action"] = "call_action_list",
["list_name"] = "fb",
}, -- [3]
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "cooldown.dragonrage.remains > 10 & spell_targets.pyre >= 7",
["empower_to"] = 1,
}, -- [4]
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "cooldown.dragonrage.remains > 10 & spell_targets.pyre >= 6",
["empower_to"] = 2,
}, -- [5]
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "cooldown.dragonrage.remains > 10 & spell_targets.pyre >= 4",
["empower_to"] = 3,
}, -- [6]
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "cooldown.dragonrage.remains > 10 || empowering.fire_breath",
["empower_to"] = 2,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up || ! talent.dragonrage.enabled || cooldown.dragonrage.remains > 15 || empowering.eternity_surge",
["action"] = "call_action_list",
["list_name"] = "es",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up & buff.dragonrage.remains < ( buff.essence_burst.max_stack - buff.essence_burst.stack ) * gcd.max",
["action"] = "azure_strike",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.dragonrage.up",
["action"] = "deep_breath",
}, -- [10]
{
["action"] = "firestorm",
["enabled"] = true,
}, -- [11]
{
["action"] = "shattering_star",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.dragonrage.remains < gcd.max * 6 & cooldown.fire_breath.remains < 6 * gcd.max & cooldown.eternity_surge.remains < 6 * gcd.max",
["action"] = "azure_strike",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.volatility.enabled & buff.charged_blast.stack >= 10",
["action"] = "pyre",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.volatility.enabled & spell_targets.pyre >= 4",
["action"] = "pyre",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.burnout.up & buff.leaping_flames.up & ! buff.essence_burst.up",
["action"] = "living_flame",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "cooldown.dragonrage.remains >= 10 & spell_targets.pyre >= 6",
["action"] = "pyre",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.dragonrage.remains >= 10 & spell_targets.pyre >= 5 & buff.charged_blast.stack >= 3",
["action"] = "pyre",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "cooldown.dragonrage.remains >= 10 & spell_targets.pyre >= 4 & buff.charged_blast.stack >= 12",
["action"] = "pyre",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "cooldown.dragonrage.remains >= 10 & spell_targets.pyre = 3 & buff.charged_blast.stack >= 16",
["action"] = "pyre",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "! talent.shattering_star.enabled || cooldown.shattering_star.remains > 5 || essence > essence.max - 1 || buff.essence_burst.stack = buff.essence_burst.max_stack",
["chain"] = "1",
["action"] = "disintegrate",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "talent.snapfire.enabled & buff.burnout.up",
["action"] = "living_flame",
}, -- [22]
{
["action"] = "azure_strike",
["enabled"] = true,
}, -- [23]
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "spoils_of_neltharus",
["description"] = "Try and get spoils to prvide haste or mastery stats, but if dragonrage gets too short just use it anyway.",
["criteria"] = "buff.dragonrage.up & ( buff.spoils_of_neltharus_mastery.up || buff.spoils_of_neltharus_haste.up || buff.dragonrage.remains + 6 * ( ( cooldown.eternity_surge.remains <= gcd.max * 2 ) + ( cooldown.fire_breath.remains <= gcd.max * 2 ) ) <= 18 ) || boss & fight_remains <= 20",
["action"] = "spoils_of_neltharus",
}, -- [1]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["criteria"] = "buff.dragonrage.up & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 || variable.trinket_2_exclude ) & ! variable.trinket_1_manual || trinket.t1.buff_duration >= fight_remains || trinket.t1.cooldown.duration <= 60 & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled ) & ( ! buff.dragonrage.up || variable.trinket_priority = 1 )",
["description"] = "The trinket with the highest estimated value, will be used first and paired with Dragonrage.",
}, -- [2]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "buff.dragonrage.up & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 || variable.trinket_1_exclude ) & ! variable.trinket_2_manual || trinket.t2.buff_duration >= fight_remains || trinket.t2.cooldown.duration <= 60 & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled ) & ( ! buff.dragonrage.up || variable.trinket_priority = 2 )",
["slot"] = "trinket2",
}, -- [3]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled ) & ! variable.trinket_1_manual",
["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.",
}, -- [4]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs ) & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled ) & ! variable.trinket_2_manual",
["slot"] = "trinket2",
}, -- [5]
},
["st"] = {
{
["enabled"] = true,
["name"] = "kharnalex_the_first_light",
["description"] = "ST Action List, it's a mess",
["criteria"] = "! buff.dragonrage.up & debuff.shattering_star_debuff.down",
["action"] = "kharnalex_the_first_light",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.fire_breath.remains < gcd.max & cooldown.eternity_surge.remains < 2 * gcd.max || boss & fight_remains < 30",
["action"] = "dragonrage",
}, -- [2]
{
["enabled"] = true,
["description"] = "Use to extend DR when an empower cast won't fit inside the DR window anymore. When running FTF use on ES at the start of DR to maximize uses",
["criteria"] = "buff.dragonrage.up & ( buff.dragonrage.remains < variable.r1_cast_time & ( buff.dragonrage.remains > cooldown.fire_breath.remains || buff.dragonrage.remains > cooldown.eternity_surge.remains ) || talent.feed_the_flames.enabled & ! cooldown.fire_breath.up )",
["action"] = "tip_the_scales",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.dragonrage.enabled || variable.next_dragonrage > 15 || ! talent.animosity.enabled || empowering.fire_breath",
["action"] = "call_action_list",
["list_name"] = "fb",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.dragonrage.enabled || variable.next_dragonrage > 15 || ! talent.animosity.enabled || empowering.eternity_surge",
["action"] = "call_action_list",
["list_name"] = "es",
}, -- [5]
{
["enabled"] = true,
["action"] = "wait",
["sec"] = "cooldown.fire_breath.remains",
["description"] = "Wait for FB/ES to be ready if spending another GCD would result in the cast no longer fitting inside of DR",
["criteria"] = "talent.animosity.enabled & buff.dragonrage.up & buff.dragonrage.remains < gcd.max + variable.r1_cast_time * buff.tip_the_scales.down & buff.dragonrage.remains - cooldown.fire_breath.remains >= variable.r1_cast_time * buff.tip_the_scales.down",
}, -- [6]
{
["enabled"] = true,
["sec"] = "cooldown.eternity_surge.remains",
["action"] = "wait",
["criteria"] = "talent.animosity.enabled & buff.dragonrage.up & buff.dragonrage.remains < gcd.max + variable.r1_cast_time & buff.dragonrage.remains - cooldown.eternity_surge.remains > variable.r1_cast_time * buff.tip_the_scales.down",
}, -- [7]
{
["enabled"] = true,
["description"] = "Wait for 2 EBs to use SS while inside DR, otherwise use on CD",
["criteria"] = "! buff.dragonrage.up || buff.essence_burst.stack = buff.essence_burst.max_stack || talent.eye_of_infinity.enabled",
["action"] = "shattering_star",
}, -- [8]
{
["enabled"] = true,
["description"] = "Spend the last 1 or 2 GCDs of DR on fillers to exit with 2 EBs",
["criteria"] = "buff.dragonrage.up & buff.dragonrage.remains < ( buff.essence_burst.max_stack - buff.essence_burst.stack ) * gcd.max & buff.burnout.up",
["action"] = "living_flame",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up & buff.dragonrage.remains < ( buff.essence_burst.max_stack - buff.essence_burst.stack ) * gcd.max",
["action"] = "azure_strike",
}, -- [10]
{
["enabled"] = true,
["description"] = "Hard cast only outside of SS and DR windows, always spend snapfire procs",
["criteria"] = "! buff.dragonrage.up & debuff.shattering_star_debuff.down || buff.snapfire.up",
["action"] = "firestorm",
}, -- [11]
{
["enabled"] = true,
["description"] = "Spend burnout procs without overcapping resources",
["criteria"] = "buff.burnout.up & buff.essence_burst.stack < buff.essence_burst.max_stack & essence < essence.max - 1",
["action"] = "living_flame",
}, -- [12]
{
["enabled"] = true,
["description"] = "Ensure we clip Disintegrate inside DR even with our fillers, Pool 1-2 GCDs before SS is up inside DR",
["criteria"] = "buff.dragonrage.up & ( essence < 3 & ! buff.essence_burst.up || ( talent.shattering_star.enabled & cooldown.shattering_star.remains <= ( buff.essence_burst.max_stack - buff.essence_burst.stack ) * gcd.max ) )",
["action"] = "azure_strike",
}, -- [13]
{
["enabled"] = true,
["chain"] = "1",
["description"] = "In DR chain/clip after the 3rd damage tick, Outside of DR pool 6 seconds before SS unless it would result in overcapping resources TODO: revisit pooling conditions",
["interrupt_if"] = "buff.dragonrage.up&ticks>=2&(evoker.use_clipping||cooldown.fire_breath.up||cooldown.eternity_surge.up)",
["early_chain_if"] = "evoker.use_early_chaining&buff.dragonrage.up&ticks>=2",
["criteria"] = "buff.dragonrage.up || ( ! talent.shattering_star.enabled || cooldown.shattering_star.remains > 6 || essence > essence.max - 1 || buff.essence_burst.stack = buff.essence_burst.max_stack )",
["action"] = "disintegrate",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! buff.dragonrage.up & spell_targets.deep_breath > 1",
["action"] = "deep_breath",
}, -- [15]
{
["action"] = "living_flame",
["enabled"] = true,
}, -- [16]
},
["fb"] = {
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = 1,
["criteria"] = "( 20 + 2 * talent.blast_furnace.rank ) + dot.fire_breath_damage.remains < ( 20 + 2 * talent.blast_furnace.rank ) * 1.3 || buff.dragonrage.remains < dr_padding + 1.75 * spell_haste & buff.dragonrage.remains >= 1 * spell_haste || active_enemies <= 2",
["description"] = "Use Firebreath with some really weird criteria. Override it for st because its not actually useful? Idk. TODO: Someone look at this it's a mess.",
}, -- [1]
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "( 14 + 2 * talent.blast_furnace.rank ) + dot.fire_breath_damage.remains < ( 20 + 2 * talent.blast_furnace.rank ) * 1.3 || buff.dragonrage.remains < dr_padding + 2.5 * spell_haste & buff.dragonrage.remains >= 1.75 * spell_haste",
["empower_to"] = 2,
}, -- [2]
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "( 8 + 2 * talent.blast_furnace.rank ) + dot.fire_breath_damage.remains < ( 20 + 2 * talent.blast_furnace.rank ) * 1.3 || ! talent.font_of_magic.enabled || buff.dragonrage.remains <= dr_padding + 3.25 * spell_haste & buff.dragonrage.remains >= 2.5 * spell_haste",
["empower_to"] = 3,
}, -- [3]
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = 4,
}, -- [4]
},
},
["version"] = 20230308,
["warnings"] = "The import for 'es' required some automated changes.\nLine 1: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 2: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 3: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 3: Converted 'talent.font_of_magic' to 'talent.font_of_magic.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 2: Converted 'trinket.1.has_buff.intellect' to 'trinket.t1.has_buff.intellect' (1x).\nLine 2: Converted 'trinket.1.has_buff.intellect' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 2: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 2: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 2: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 2: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.intellect' to 'trinket.t2.has_buff.intellect' (1x).\nLine 3: Converted 'trinket.2.has_buff.intellect' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 3: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 3: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 3: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 3: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted operations in 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%%trinket.t1.cooldown.duration=0)' to 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%trinket.t1.cooldown.duration=0)'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted operations in 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%%trinket.t2.cooldown.duration=0)' to 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%trinket.t2.cooldown.duration=0)'.\nLine 6: Converted 'trinket.1.is.spoils_of_neltharus' to 'trinket.t1.is.spoils_of_neltharus' (1x).\nLine 7: Converted 'trinket.2.is.spoils_of_neltharus' to 'trinket.t2.is.spoils_of_neltharus' (1x).\nLine 8: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 8: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 9: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 9: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 10: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 10: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 10: Converted 'trinket.2.has_buff.intellect' to 'trinket.t2.has_buff.intellect' (1x).\nLine 10: Converted 'trinket.2.has_buff.intellect' to 'trinket.t2.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 10: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 10: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 10: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 10: Converted 'trinket.1.has_buff.intellect' to 'trinket.t1.has_buff.intellect' (1x).\nLine 10: Converted 'trinket.1.has_buff.intellect' to 'trinket.t1.has_use_buff' (1x).\nLine 10: 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 12: Converted 'talent.firestorm' to 'talent.firestorm.enabled' (1x).\nLine 13: Converted 'talent.firestorm' to 'talent.firestorm.enabled' (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 3: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 3: Converted 'talent.everburning_flame' to 'talent.everburning_flame.enabled' (1x).\nLine 8: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 14: Converted 'talent.volatility' to 'talent.volatility.enabled' (1x).\nLine 15: Converted 'talent.volatility' to 'talent.volatility.enabled' (1x).\nLine 21: Converted 'talent.shattering_star' to 'talent.shattering_star.enabled' (1x).\nLine 22: Converted 'talent.snapfire' to 'talent.snapfire.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 2: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 2: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 3: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 3: Converted 'talent.feed_the_flames' to 'talent.feed_the_flames.enabled' (1x).\nLine 4: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 4: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 5: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 5: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 6: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 7: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 8: Converted 'talent.eye_of_infinity' to 'talent.eye_of_infinity.enabled' (1x).\nLine 8: Converted operations in '!buff.dragonrage.up||buff.essence_burst.stack==buff.essence_burst.max_stack||talent.eye_of_infinity.enabled' to '!buff.dragonrage.up||buff.essence_burst.stack=buff.essence_burst.max_stack||talent.eye_of_infinity.enabled'.\nLine 13: Converted 'talent.shattering_star' to 'talent.shattering_star.enabled' (1x).\nLine 14: Converted 'talent.shattering_star' to 'talent.shattering_star.enabled' (1x).\nLine 14: Converted operations in 'buff.dragonrage.up||(!talent.shattering_star.enabled||cooldown.shattering_star.remains>6||essence>essence.max-1||buff.essence_burst.stack==buff.essence_burst.max_stack)' to 'buff.dragonrage.up||(!talent.shattering_star.enabled||cooldown.shattering_star.remains>6||essence>essence.max-1||buff.essence_burst.stack=buff.essence_burst.max_stack)'.\n\nThe import for 'fb' required some automated changes.\nLine 3: Converted 'talent.font_of_magic' to 'talent.font_of_magic.enabled' (1x).\n\nImported 7 action lists.\n",
["profile"] = "actions.precombat+=/blessing_of_the_bronze\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_buff.intellect||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_buff.intellect||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit\n# Decide which trinket to pair with Dragonrage, prefer 2 minute and 1 minute trinkets\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%%trinket.2.cooldown.duration=0)\n# Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a intellect modifier (currently 1.5x) to give a higher priority to intellect trinkets. The intellect modifier should be changed as intellect priority increases or decreases. As well as a modifier for if a trinket will or will not sync with cooldowns.\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.spoils_of_neltharus\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.spoils_of_neltharus\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\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.intellect)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.intellect)*(variable.trinket_1_sync))\nactions.precombat+=/use_item,name=shadowed_orb_of_torment\nactions.precombat+=/firestorm,if=talent.firestorm\nactions.precombat+=/living_flame,if=!talent.firestorm\n\nactions+=/quell\nactions+=/unravel\nactions+=/potion,if=buff.dragonrage.up||boss&fight_remains<35\n# Variable that evaluates when next dragonrage is by working out the maximum between the dragonrage cd and your empowers, ignoring CDR effect estimates.\nactions+=/variable,name=next_dragonrage,value=cooldown.dragonrage.remains\nactions+=/variable,name=next_dragonrage,op=max,value=cooldown.eternity_surge.remains-2*gcd.max\nactions+=/variable,name=next_dragonrage,op=max,value=cooldown.fire_breath.remains-gcd.max\n# Rank 1 empower spell cast time TODO: multiplier should be 1.0 but 1.3 results in more dps for EBF builds\nactions+=/variable,name=r1_cast_time,value=1.3*spell_haste\nactions+=/call_action_list,name=trinkets\nactions+=/run_action_list,name=aoe,strict=1,if=spell_targets.pyre>=3\nactions+=/run_action_list,name=st,strict=1,if=spell_targets.pyre<3\n\n# ST Action List, it's a mess\nactions.st+=/use_item,name=kharnalex_the_first_light,if=!buff.dragonrage.up&debuff.shattering_star_debuff.down\nactions.st+=/dragonrage,if=cooldown.fire_breath.remains<gcd.max&cooldown.eternity_surge.remains<2*gcd.max||boss&fight_remains<30\n# Use to extend DR when an empower cast won't fit inside the DR window anymore. When running FTF use on ES at the start of DR to maximize uses\nactions.st+=/tip_the_scales,if=buff.dragonrage.up&(buff.dragonrage.remains<variable.r1_cast_time&(buff.dragonrage.remains>cooldown.fire_breath.remains||buff.dragonrage.remains>cooldown.eternity_surge.remains)||talent.feed_the_flames&!cooldown.fire_breath.up)\nactions.st+=/call_action_list,name=fb,if=!talent.dragonrage||variable.next_dragonrage>15||!talent.animosity||empowering.fire_breath\nactions.st+=/call_action_list,name=es,if=!talent.dragonrage||variable.next_dragonrage>15||!talent.animosity||empowering.eternity_surge\n# Wait for FB/ES to be ready if spending another GCD would result in the cast no longer fitting inside of DR\nactions.st+=/wait,sec=cooldown.fire_breath.remains,if=talent.animosity&buff.dragonrage.up&buff.dragonrage.remains<gcd.max+variable.r1_cast_time*buff.tip_the_scales.down&buff.dragonrage.remains-cooldown.fire_breath.remains>=variable.r1_cast_time*buff.tip_the_scales.down\nactions.st+=/wait,sec=cooldown.eternity_surge.remains,if=talent.animosity&buff.dragonrage.up&buff.dragonrage.remains<gcd.max+variable.r1_cast_time&buff.dragonrage.remains-cooldown.eternity_surge.remains>variable.r1_cast_time*buff.tip_the_scales.down\n# Wait for 2 EBs to use SS while inside DR, otherwise use on CD\nactions.st+=/shattering_star,if=!buff.dragonrage.up||buff.essence_burst.stack==buff.essence_burst.max_stack||talent.eye_of_infinity\n# Spend the last 1 or 2 GCDs of DR on fillers to exit with 2 EBs\nactions.st+=/living_flame,if=buff.dragonrage.up&buff.dragonrage.remains<(buff.essence_burst.max_stack-buff.essence_burst.stack)*gcd.max&buff.burnout.up\nactions.st+=/azure_strike,if=buff.dragonrage.up&buff.dragonrage.remains<(buff.essence_burst.max_stack-buff.essence_burst.stack)*gcd.max\n# Hard cast only outside of SS and DR windows, always spend snapfire procs\nactions.st+=/firestorm,if=!buff.dragonrage.up&debuff.shattering_star_debuff.down||buff.snapfire.up\n# Spend burnout procs without overcapping resources\nactions.st+=/living_flame,if=buff.burnout.up&buff.essence_burst.stack<buff.essence_burst.max_stack&essence<essence.max-1\n# Ensure we clip Disintegrate inside DR even with our fillers, Pool 1-2 GCDs before SS is up inside DR\nactions.st+=/azure_strike,if=buff.dragonrage.up&(essence<3&!buff.essence_burst.up||(talent.shattering_star&cooldown.shattering_star.remains<=(buff.essence_burst.max_stack-buff.essence_burst.stack)*gcd.max))\n# In DR chain/clip after the 3rd damage tick, Outside of DR pool 6 seconds before SS unless it would result in overcapping resources TODO: revisit pooling conditions\nactions.st+=/disintegrate,chain=1,early_chain_if=evoker.use_early_chaining&buff.dragonrage.up&ticks>=2,interrupt_if=buff.dragonrage.up&ticks>=2&(evoker.use_clipping||cooldown.fire_breath.up||cooldown.eternity_surge.up),if=buff.dragonrage.up||(!talent.shattering_star||cooldown.shattering_star.remains>6||essence>essence.max-1||buff.essence_burst.stack==buff.essence_burst.max_stack)\nactions.st+=/deep_breath,if=!buff.dragonrage.up&spell_targets.deep_breath>1\nactions.st+=/living_flame\n\n# AOE action list, also a mess.\nactions.aoe+=/dragonrage,if=cooldown.fire_breath.remains<=gcd.max&cooldown.eternity_surge.remains<3*gcd.max\nactions.aoe+=/tip_the_scales,if=buff.dragonrage.up&(spell_targets.pyre<=6||!cooldown.fire_breath.up)\nactions.aoe+=/call_action_list,name=fb,if=buff.dragonrage.up||!talent.dragonrage||cooldown.dragonrage.remains>10&talent.everburning_flame\nactions.aoe+=/fire_breath,empower_to=1,if=cooldown.dragonrage.remains>10&spell_targets.pyre>=7\nactions.aoe+=/fire_breath,empower_to=2,if=cooldown.dragonrage.remains>10&spell_targets.pyre>=6\nactions.aoe+=/fire_breath,empower_to=3,if=cooldown.dragonrage.remains>10&spell_targets.pyre>=4\nactions.aoe+=/fire_breath,empower_to=2,if=cooldown.dragonrage.remains>10||empowering.fire_breath\nactions.aoe+=/call_action_list,name=es,if=buff.dragonrage.up||!talent.dragonrage||cooldown.dragonrage.remains>15||empowering.eternity_surge\nactions.aoe+=/azure_strike,if=buff.dragonrage.up&buff.dragonrage.remains<(buff.essence_burst.max_stack-buff.essence_burst.stack)*gcd.max\nactions.aoe+=/deep_breath,if=!buff.dragonrage.up\nactions.aoe+=/firestorm\nactions.aoe+=/shattering_star\nactions.aoe+=/azure_strike,if=cooldown.dragonrage.remains<gcd.max*6&cooldown.fire_breath.remains<6*gcd.max&cooldown.eternity_surge.remains<6*gcd.max\nactions.aoe+=/pyre,if=talent.volatility&buff.charged_blast.stack>=10\nactions.aoe+=/pyre,if=talent.volatility&spell_targets.pyre>=4\nactions.aoe+=/living_flame,if=buff.burnout.up&buff.leaping_flames.up&!buff.essence_burst.up\nactions.aoe+=/pyre,if=cooldown.dragonrage.remains>=10&spell_targets.pyre>=6\nactions.aoe+=/pyre,if=cooldown.dragonrage.remains>=10&spell_targets.pyre>=5&buff.charged_blast.stack>=3\nactions.aoe+=/pyre,if=cooldown.dragonrage.remains>=10&spell_targets.pyre>=4&buff.charged_blast.stack>=12\nactions.aoe+=/pyre,if=cooldown.dragonrage.remains>=10&spell_targets.pyre=3&buff.charged_blast.stack>=16\nactions.aoe+=/disintegrate,chain=1,if=!talent.shattering_star||cooldown.shattering_star.remains>5||essence>essence.max-1||buff.essence_burst.stack=buff.essence_burst.max_stack\nactions.aoe+=/living_flame,if=talent.snapfire&buff.burnout.up\nactions.aoe+=/azure_strike\n\n# Use Firebreath with some really weird criteria. Override it for st because its not actually useful? Idk. TODO: Someone look at this it's a mess.\nactions.fb+=/fire_breath,empower_to=1,if=(20+2*talent.blast_furnace.rank)+dot.fire_breath_damage.remains<(20+2*talent.blast_furnace.rank)*1.3||buff.dragonrage.remains<dr_padding+1.75*spell_haste&buff.dragonrage.remains>=1*spell_haste||active_enemies<=2\nactions.fb+=/fire_breath,empower_to=2,if=(14+2*talent.blast_furnace.rank)+dot.fire_breath_damage.remains<(20+2*talent.blast_furnace.rank)*1.3||buff.dragonrage.remains<dr_padding+2.5*spell_haste&buff.dragonrage.remains>=1.75*spell_haste\nactions.fb+=/fire_breath,empower_to=3,if=(8+2*talent.blast_furnace.rank)+dot.fire_breath_damage.remains<(20+2*talent.blast_furnace.rank)*1.3||!talent.font_of_magic||buff.dragonrage.remains<=dr_padding+3.25*spell_haste&buff.dragonrage.remains>=2.5*spell_haste\nactions.fb+=/fire_breath,empower_to=4\n\n# Eternity Surge, use rank most applicable to targets.\nactions.es+=/eternity_surge,empower_to=1,if=spell_targets.pyre<=1+talent.eternitys_span||buff.dragonrage.remains<dr_padding+1.75*spell_haste&buff.dragonrage.remains>=1*spell_haste\nactions.es+=/eternity_surge,empower_to=2,if=spell_targets.pyre<=2+2*talent.eternitys_span||buff.dragonrage.remains<dr_padding+2.5*spell_haste&buff.dragonrage.remains>=1.75*spell_haste\nactions.es+=/eternity_surge,empower_to=3,if=spell_targets.pyre<=3+3*talent.eternitys_span||!talent.font_of_magic||buff.dragonrage.remains<=dr_padding+3.25*spell_haste&buff.dragonrage.remains>=2.5*spell_haste\nactions.es+=/eternity_surge,empower_to=4\n\n# Try and get spoils to prvide haste or mastery stats, but if dragonrage gets too short just use it anyway.\nactions.trinkets+=/use_item,name=spoils_of_neltharus,if=buff.dragonrage.up&(buff.spoils_of_neltharus_mastery.up||buff.spoils_of_neltharus_haste.up||buff.dragonrage.remains+6*((cooldown.eternity_surge.remains<=gcd.max*2)+(cooldown.fire_breath.remains<=gcd.max*2))<=18)||boss&fight_remains<=20\n# The trinket with the highest estimated value, will be used first and paired with Dragonrage.\nactions.trinkets+=/use_item,slot=trinket1,if=buff.dragonrage.up&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1||variable.trinket_2_exclude)&!variable.trinket_1_manual||trinket.1.proc.any_dps.duration>=fight_remains||trinket.1.cooldown.duration<=60&(variable.next_dragonrage>20||!talent.dragonrage)&(!buff.dragonrage.up||variable.trinket_priority=1)\nactions.trinkets+=/use_item,slot=trinket2,if=buff.dragonrage.up&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2||variable.trinket_1_exclude)&!variable.trinket_2_manual||trinket.2.proc.any_dps.duration>=fight_remains||trinket.2.cooldown.duration<=60&(variable.next_dragonrage>20||!talent.dragonrage)&(!buff.dragonrage.up||variable.trinket_priority=2)\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,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs)&(variable.next_dragonrage>20||!talent.dragonrage)&!variable.trinket_1_manual\nactions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs)&(variable.next_dragonrage>20||!talent.dragonrage)&!variable.trinket_2_manual",
["author"] = "SimC",
},
["Frost DK"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230327,
["author"] = "SimC",
["desc"] = "2023-02-19: Adjusted variable.pooling_runes such that you are not pooling when you are already at max runes. It is unclear why this check isn't needed in SimulationCraft, but is required in-game.\n\n2023-02-20: Additional adjustments for leveling and/or taking Obliteration without ERW.\n\n2023-03-13: Updates for 10.0.7.\n\n2023-03-21: Fix Breath of Sindragosa.\n\n2023-03-25: Updates (mainly to Obliteration).\n\n2023-03-27: Minor SimC updates.",
["lists"] = {
["single_target"] = {
{
["enabled"] = true,
["criteria"] = "variable.rw_buffs || variable.adds_remain",
["action"] = "remorseless_winter",
["description"] = "Single Target Rotation",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & runic_power.deficit < 20 & ! variable.two_hand_check",
["action"] = "frost_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority",
["action"] = "frostscythe",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up",
["action"] = "obliterate",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.rime.up & talent.icebreaker.rank = 2",
["action"] = "howling_blast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "rune < 4 & runic_power.deficit > 25 & talent.obliteration.enabled & talent.breath_of_sindragosa.enabled",
["action"] = "horn_of_winter",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ( variable.rp_buffs || runic_power.deficit < 25 || debuff.razorice.stack = 5 & talent.shattering_blade.enabled )",
["action"] = "frost_strike",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "variable.rime_buffs",
["action"] = "howling_blast",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ! death_knight.runeforge.razorice & ( debuff.razorice.stack < 5 || debuff.razorice.remains < gcd.max * 3 )",
["action"] = "glacial_advance",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runes",
["action"] = "obliterate",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "rune < 4 & runic_power.deficit > 25 & ( ! talent.breath_of_sindragosa.enabled || cooldown.breath_of_sindragosa.remains > cooldown.horn_of_winter.duration )",
["action"] = "horn_of_winter",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 20",
["action"] = "arcane_torrent",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "frost_strike",
}, -- [13]
},
["cold_heart"] = {
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < gcd.max & ( rune < 2 || ! buff.killing_machine.up & ( ! variable.two_hand_check & buff.cold_heart.stack >= 4 || variable.two_hand_check & buff.cold_heart.stack > 8 ) || buff.killing_machine.up & ( ! variable.two_hand_check & buff.cold_heart.stack > 8 || variable.two_hand_check & buff.cold_heart.stack > 10 ) )",
["action"] = "chains_of_ice",
["description"] = "Cold Heart",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & buff.pillar_of_frost.up & buff.cold_heart.stack >= 10 & ( buff.pillar_of_frost.remains < gcd.max * ( 1 + ( talent.frostwyrms_fury.enabled & cooldown.frostwyrms_fury.ready ) ) || buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max )",
["action"] = "chains_of_ice",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & death_knight.runeforge.fallen_crusader & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains_expected > 15 & ( buff.cold_heart.stack >= 10 & buff.unholy_strength.up || buff.cold_heart.stack >= 13 )",
["action"] = "chains_of_ice",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & ! death_knight.runeforge.fallen_crusader & buff.cold_heart.stack >= 10 & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains_expected > 20",
["action"] = "chains_of_ice",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & ( buff.cold_heart.stack >= 14 & ( buff.unholy_strength.up || buff.chaos_bane.up ) || buff.cold_heart.stack >= 19 || cooldown.pillar_of_frost.remains_expected < 3 & buff.cold_heart.stack >= 14 )",
["action"] = "chains_of_ice",
}, -- [5]
},
["obliteration"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies > 3",
["action"] = "remorseless_winter",
["description"] = "Obliteration Active Rotation",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & buff.rime.up",
["action"] = "howling_blast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max",
["action"] = "frost_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & ! death_and_decay.ticking",
["action"] = "glacial_advance",
}, -- [4]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "buff.killing_machine.up & ! variable.frostscythe_priority",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority",
["action"] = "frostscythe",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! dot.frost_fever.ticking & ! buff.killing_machine.up",
["action"] = "howling_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! death_knight.runeforge.razorice & ! buff.killing_machine.react & ( debuff.razorice.stack < 5 || debuff.razorice.remains < gcd.max * 3 )",
["action"] = "glacial_advance",
}, -- [8]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "! buff.killing_machine.up & ( rune < 2 || variable.rp_buffs || debuff.razorice.stack = 5 & talent.shattering_blade.enabled ) & ! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 )",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.rime.up & ! buff.killing_machine.up",
["action"] = "howling_blast",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & variable.rp_buffs & ! buff.killing_machine.up & active_enemies >= 2",
["action"] = "glacial_advance",
}, -- [11]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "! buff.killing_machine.up & ! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 )",
["cycle_targets"] = 1,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.killing_machine.up & runic_power < 25",
["action"] = "howling_blast",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "rune < 1 & runic_power < 25",
["action"] = "arcane_torrent",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & active_enemies >= 2",
["action"] = "glacial_advance",
}, -- [15]
{
["enabled"] = true,
["action"] = "frost_strike",
["criteria"] = "! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 )",
["cycle_targets"] = 1,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.rime.up",
["action"] = "howling_blast",
}, -- [17]
{
["enabled"] = true,
["action"] = "obliterate",
["cycle_targets"] = 1,
}, -- [18]
},
["breath"] = {
{
["enabled"] = true,
["criteria"] = "variable.rw_buffs || variable.adds_remain",
["action"] = "remorseless_winter",
["description"] = "Breath Active Rotation",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.rime_buffs & runic_power > ( 45 - talent.rage_of_the_frozen_champion.enabled * 8 )",
["action"] = "howling_blast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "rune < 2 & runic_power.deficit > 25",
["action"] = "horn_of_winter",
}, -- [3]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "buff.killing_machine.up & ! variable.frostscythe_priority",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority",
["action"] = "frostscythe",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.frostscythe_priority & runic_power > 45",
["action"] = "frostscythe",
}, -- [6]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "runic_power.deficit > 40 || buff.pillar_of_frost.up & runic_power.deficit > 15",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & runic_power < 32 & rune.time_to_2 > runic_power / 16",
["action"] = "death_and_decay",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "runic_power < 32 & rune.time_to_2 > runic_power / 16",
["action"] = "remorseless_winter",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "runic_power < 32 & rune.time_to_2 > runic_power / 16",
["action"] = "howling_blast",
}, -- [10]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "runic_power.deficit > 25",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.rime.up",
["action"] = "howling_blast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "runic_power < 60",
["action"] = "arcane_torrent",
}, -- [13]
},
["breath_oblit"] = {
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority",
["action"] = "frostscythe",
["description"] = "Breath & Obliteration Active Rotation",
}, -- [1]
{
["enabled"] = true,
["action"] = "obliterate",
["criteria"] = "buff.killing_machine.up",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.rime.up",
["action"] = "howling_blast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.killing_machine.up",
["action"] = "howling_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 25",
["action"] = "horn_of_winter",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 20",
["action"] = "arcane_torrent",
}, -- [6]
},
["default"] = {
{
["action"] = "mind_freeze",
["enabled"] = true,
}, -- [1]
{
["action"] = "strangulate",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1 & ( raid_event.adds.in > 15 || ! raid_event.adds.exists )",
["description"] = "Prevent specified trinkets being used with automatic lines actions.default+=/variable,name=specified_trinket,value=",
["var_name"] = "st_planning",
}, -- [3]
{
["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",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.rime.up & ( talent.rage_of_the_frozen_champion.enabled || talent.avalanche.enabled || talent.icebreaker.enabled )",
["var_name"] = "rime_buffs",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.unleashed_frenzy.enabled & ( buff.unleashed_frenzy.remains < gcd.max * 3 || buff.unleashed_frenzy.stack < 3 ) || talent.icy_talons.enabled & ( buff.icy_talons.remains < gcd.max * 3 || buff.icy_talons.stack < 3 )",
["var_name"] = "rp_buffs",
}, -- [6]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.pillar_of_frost.enabled & buff.pillar_of_frost.up || ! talent.pillar_of_frost.enabled & buff.empower_rune_weapon.up || ! talent.pillar_of_frost.enabled & ! talent.empower_rune_weapon.enabled",
["var_name"] = "cooldown_check",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.frostscythe.enabled & ( buff.killing_machine.up || active_enemies >= 3 ) & ( ! talent.improved_obliterate.enabled & ! talent.frigid_executioner.enabled & ! talent.frostreaper.enabled & ! talent.might_of_the_frozen_wastes.enabled || ! talent.cleaving_strikes.enabled || talent.cleaving_strikes.enabled & ( active_enemies > 6 || ! death_and_decay.ticking & active_enemies > 3 ) )",
["var_name"] = "frostscythe_priority",
}, -- [8]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Formulaic approach to determine the time before these abilities come off cooldown that the simulation should star to pool resources. Capped at 15s in the run_action_list call.",
["criteria"] = "runic_power < 35 & rune < 2 & cooldown.pillar_of_frost.remains_expected < 10",
["value"] = "( ( cooldown.pillar_of_frost.remains_expected + 1 ) / gcd.max ) / ( ( rune + 3 ) * ( runic_power + 5 ) ) * 100",
["action"] = "variable",
["value_else"] = "3",
["var_name"] = "oblit_pooling_time",
}, -- [9]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "breath_pooling_time",
["criteria"] = "runic_power.deficit > 10 & cooldown.breath_of_sindragosa.remains < 10",
["value_else"] = "3",
["value"] = "( ( cooldown.breath_of_sindragosa.remains + 1 ) / gcd.max ) / ( ( rune + 1 ) * ( runic_power + 20 ) ) * 100",
}, -- [10]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "rune < 4 & talent.obliteration.enabled & cooldown.pillar_of_frost.remains_expected < variable.oblit_pooling_time",
["var_name"] = "pooling_runes",
}, -- [11]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.breath_of_sindragosa.enabled & cooldown.breath_of_sindragosa.remains < variable.breath_pooling_time || talent.obliteration.enabled & runic_power < 35 & cooldown.pillar_of_frost.remains_expected < variable.oblit_pooling_time",
["var_name"] = "pooling_runic_power",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 40",
["action"] = "antimagic_shell",
["description"] = "Use <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> while <a href='https://www.wowhead.com/spell=51271/pillar-of-frost'>Pillar of Frost</a> is up, as well as <a href='https://www.wowhead.com/spell=152279/breath-of-sindragosa'>Breath of Sindragosa</a> or on cooldown if <a href='https://www.wowhead.com/spell=51271/pillar-of-frost'>Pillar of Frost</a> and <a href='https://www.wowhead.com/spell=152279/breath-of-sindragosa'>Breath of Sindragosa</a> are not talented",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "death_knight.amz_absorb_percent > 0 & runic_power.deficit > 70 & talent.assimilation.enabled & ( buff.breath_of_sindragosa.up & cooldown.empower_rune_weapon.charges < 2 || ! talent.breath_of_sindragosa.enabled & ! buff.pillar_of_frost.up )",
["action"] = "antimagic_zone",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! dot.frost_fever.ticking & active_enemies >= 2 & ( ! talent.obliteration.enabled || talent.obliteration.enabled & ( ! buff.pillar_of_frost.up || buff.pillar_of_frost.up & ! buff.killing_machine.up ) )",
["action"] = "howling_blast",
["description"] = "Maintain Frost Fever, Icy Talons and Unleashed Frenzy",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & variable.rp_buffs & talent.obliteration.enabled & talent.breath_of_sindragosa.enabled & ! buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time",
["action"] = "glacial_advance",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & variable.rp_buffs & talent.breath_of_sindragosa.enabled & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time",
["action"] = "glacial_advance",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & variable.rp_buffs & ! talent.breath_of_sindragosa.enabled & talent.obliteration.enabled & ! buff.pillar_of_frost.up",
["action"] = "glacial_advance",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & variable.rp_buffs & talent.obliteration.enabled & talent.breath_of_sindragosa.enabled & ! buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time",
["action"] = "frost_strike",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & variable.rp_buffs & talent.breath_of_sindragosa.enabled & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time",
["action"] = "frost_strike",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & variable.rp_buffs & ! talent.breath_of_sindragosa.enabled & talent.obliteration.enabled & ! buff.pillar_of_frost.up",
["action"] = "frost_strike",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & variable.rw_buffs",
["action"] = "remorseless_winter",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & active_enemies >= 3 & variable.adds_remain",
["action"] = "remorseless_winter",
}, -- [23]
{
["enabled"] = true,
["description"] = "Choose Action list to run",
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [24]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [25]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "racials",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "talent.cold_heart.enabled & ( ! buff.killing_machine.up || talent.breath_of_sindragosa.enabled ) & ( ( debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice & ! talent.glacial_advance.enabled & ! talent.avalanche.enabled ) || boss & fight_remains <= gcd.max )",
["action"] = "call_action_list",
["list_name"] = "cold_heart",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "buff.breath_of_sindragosa.up & talent.obliteration.enabled & buff.pillar_of_frost.up",
["action"] = "run_action_list",
["list_name"] = "breath_oblit",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "buff.breath_of_sindragosa.up & ( ! talent.obliteration.enabled || talent.obliteration.enabled & ! buff.pillar_of_frost.up )",
["action"] = "run_action_list",
["list_name"] = "breath",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up",
["action"] = "run_action_list",
["list_name"] = "obliteration",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2",
["action"] = "call_action_list",
["list_name"] = "aoe",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1",
["action"] = "call_action_list",
["list_name"] = "single_target",
}, -- [32]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
["var_name"] = "trinket_1_exclude",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
["var_name"] = "trinket_2_exclude",
}, -- [2]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Evaluates a trinkets cooldown, divided by pillar of frost, empower rune weapon, or breath of sindragosa's cooldown. If it's value has no remainder return 1, else return 0.5.",
["criteria"] = "trinket.t1.has_use_buff & ( talent.pillar_of_frost.enabled & ! talent.breath_of_sindragosa.enabled & ( trinket.t1.cooldown.duration % cooldown.pillar_of_frost.duration = 0 ) || talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.duration % trinket.t1.cooldown.duration = 0 ) )",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0.5",
["var_name"] = "trinket_1_sync",
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "trinket.t2.has_use_buff & ( talent.pillar_of_frost.enabled & ! talent.breath_of_sindragosa.enabled & ( trinket.t2.cooldown.duration % cooldown.pillar_of_frost.duration = 0 ) || talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.duration % trinket.t2.cooldown.duration = 0 ) )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [4]
{
["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",
}, -- [5]
{
["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",
}, -- [6]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["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 ) )",
["value_else"] = "1",
["value"] = "2",
}, -- [7]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.algethar_puzzle_box",
["var_name"] = "trinket_1_manual",
}, -- [8]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.algethar_puzzle_box",
["var_name"] = "trinket_2_manual",
}, -- [9]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.gathering_storm.enabled || talent.everfrost.enabled",
["var_name"] = "rw_buffs",
}, -- [10]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "main_hand.2h",
["var_name"] = "two_hand_check",
}, -- [11]
},
["racials"] = {
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "blood_fury",
["description"] = "Racial Abilities",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "berserking",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "arcane_pulse",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "lights_judgment",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "ancestral_call",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "fireblood",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & buff.unholy_strength.up",
["action"] = "bag_of_tricks",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & buff.pillar_of_frost.up & ( buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max * 3 || buff.pillar_of_frost.remains < gcd.max * 3 )",
["action"] = "bag_of_tricks",
}, -- [8]
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
["criteria"] = "! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains < 2 & ( ! talent.breath_of_sindragosa.enabled || runic_power > 60 & ( buff.breath_of_sindragosa.up || cooldown.breath_of_sindragosa.remains < 2 ) )",
}, -- [1]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! buff.pillar_of_frost.up & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & ( buff.breath_of_sindragosa.up || buff.pillar_of_frost.up ) & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || boss & trinket.t1.buff_duration >= fight_remains",
["description"] = "Trinkets The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.",
}, -- [2]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! buff.pillar_of_frost.up & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & ( buff.breath_of_sindragosa.up || buff.pillar_of_frost.up ) & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || boss & trinket.t2.buff_duration >= fight_remains",
["slot"] = "trinket2",
}, -- [3]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["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.pillar_of_frost.up || ! trinket.t1.cast_time > 0 ) || talent.pillar_of_frost.enabled & cooldown.pillar_of_frost.remains_expected > 20 || ! talent.pillar_of_frost.enabled )",
["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.",
}, -- [4]
{
["enabled"] = true,
["action"] = "trinket2",
["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.pillar_of_frost.up || ! trinket.t2.cast_time > 0 ) || talent.pillar_of_frost.enabled & cooldown.pillar_of_frost.remains_expected > 20 || ! talent.pillar_of_frost.enabled )",
["slot"] = "trinket2",
}, -- [5]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check || boss & fight_remains < 25",
["action"] = "potion",
["description"] = "Cooldowns",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.empower_rune_weapon.up & rune < 6 & ( cooldown.pillar_of_frost.remains_expected < 7 & ( variable.adds_remain || variable.st_planning ) || buff.pillar_of_frost.up ) || boss & fight_remains < 20",
["action"] = "empower_rune_weapon",
}, -- [2]
{
["enabled"] = true,
["action"] = "empower_rune_weapon",
["criteria"] = "buff.breath_of_sindragosa.up & talent.breath_of_sindragosa.enabled & ! buff.empower_rune_weapon.up & ( runic_power < 70 & rune < 3 || time < 10 )",
["use_off_gcd"] = 1,
}, -- [3]
{
["enabled"] = true,
["action"] = "empower_rune_weapon",
["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & ! buff.empower_rune_weapon.up & rune < 5 & ( cooldown.pillar_of_frost.remains_expected < 7 || buff.pillar_of_frost.up || ! talent.pillar_of_frost.enabled )",
["use_off_gcd"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains < 3 & ( variable.adds_remain || variable.st_planning ) || boss & fight_remains < 12",
["action"] = "abomination_limb",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & ( variable.adds_remain || variable.st_planning )",
["action"] = "abomination_limb",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & ( variable.adds_remain || variable.st_planning )",
["action"] = "abomination_limb",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & ( ! death_and_decay.ticking & talent.cleaving_strikes.enabled || ! talent.cleaving_strikes.enabled || active_enemies <= 5 )",
["action"] = "chill_streak",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ( variable.adds_remain || variable.st_planning ) & ( ! talent.empower_rune_weapon.enabled || buff.empower_rune_weapon.up || cooldown.empower_rune_weapon.remains ) || boss & fight_remains < 12",
["action"] = "pillar_of_frost",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & ( variable.adds_remain || variable.st_planning ) & ( ! talent.icecap.enabled & ( runic_power > 70 || cooldown.breath_of_sindragosa.remains > 40 ) || talent.icecap.enabled & ( cooldown.breath_of_sindragosa.remains > 10 || buff.breath_of_sindragosa.up ) )",
["action"] = "pillar_of_frost",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.icecap.enabled & ! talent.obliteration.enabled & ! talent.breath_of_sindragosa.enabled & ( variable.adds_remain || variable.st_planning )",
["action"] = "pillar_of_frost",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! buff.breath_of_sindragosa.up & runic_power > 60 & ( variable.adds_remain || variable.st_planning ) || boss & fight_remains < 30",
["action"] = "breath_of_sindragosa",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.remains < gcd.max * 2 & buff.pillar_of_frost.up & ! talent.obliteration.enabled || ! talent.pillar_of_frost.enabled ) & ( ! raid_event.adds.exists || ( raid_event.adds.in > 15 + raid_event.adds.duration || talent.absolute_zero.enabled & raid_event.adds.in > 15 + raid_event.adds.duration ) ) || boss & fight_remains < 3",
["action"] = "frostwyrms_fury",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.up || raid_event.adds.exists & raid_event.adds.up & raid_event.adds.in > cooldown.pillar_of_frost.remains_expected - raid_event.adds.in - raid_event.adds.duration ) & ( buff.pillar_of_frost.remains < gcd.max * 2 || raid_event.adds.exists & raid_event.adds.remains < gcd.max * 2 )",
["action"] = "frostwyrms_fury",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.up & ! variable.two_hand_check || ! buff.pillar_of_frost.up & variable.two_hand_check & cooldown.pillar_of_frost.remains || ! talent.pillar_of_frost.enabled ) & ( ( buff.pillar_of_frost.remains < gcd.max || buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max ) & ( debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice & ! talent.glacial_advance.enabled ) )",
["action"] = "frostwyrms_fury",
}, -- [15]
{
["action"] = "raise_dead",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "fight_remains > 5 & target.time_to_pct_35 < 5 & active_enemies <= 2 & ( talent.obliteration.enabled & ( buff.pillar_of_frost.up & ! buff.killing_machine.up || ! buff.pillar_of_frost.up ) || talent.breath_of_sindragosa.enabled & ( buff.breath_of_sindragosa.up & runic_power > 40 || ! buff.breath_of_sindragosa.up ) || ! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled )",
["action"] = "soul_reaper",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! talent.glacial_advance.enabled & ! buff.breath_of_sindragosa.up & pet.ghoul.remains < gcd.max * 2 & active_enemies > 3",
["action"] = "sacrificial_pact",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & variable.adds_remain & ( buff.pillar_of_frost.up & buff.pillar_of_frost.remains > 5 & buff.pillar_of_frost.remains < 11 || ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains > 10 || boss & fight_remains < 11 ) & ( active_enemies > 5 || talent.cleaving_strikes.enabled & active_enemies >= 2 )",
["action"] = "any_dnd",
}, -- [19]
},
["aoe"] = {
{
["enabled"] = true,
["description"] = "AoE Action List",
["action"] = "remorseless_winter",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.rime.up || ! dot.frost_fever.ticking",
["action"] = "howling_blast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & variable.rp_buffs",
["action"] = "glacial_advance",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & talent.cleaving_strikes.enabled & death_and_decay.ticking & ! variable.frostscythe_priority",
["action"] = "obliterate",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "glacial_advance",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.frostscythe_priority",
["action"] = "frostscythe",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! variable.frostscythe_priority",
["action"] = "obliterate",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ! talent.glacial_advance.enabled",
["action"] = "frost_strike",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "rune < 2 & runic_power.deficit > 25",
["action"] = "horn_of_winter",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 25",
["action"] = "arcane_torrent",
}, -- [10]
},
},
["version"] = 20230327,
["warnings"] = "The import for 'single_target' required some automated changes.\nLine 6: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 6: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 7: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 11: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\n\nThe import for 'cold_heart' required some automated changes.\nLine 2: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 2: Converted 'talent.frostwyrms_fury' to 'talent.frostwyrms_fury.enabled' (1x).\nLine 3: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 4: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 5: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'breath' required some automated changes.\nLine 2: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 8: Converted operations in '!death_and_decay.ticking&runic_power<32&rune.time_to_2>runic_power%16' to '!death_and_decay.ticking&runic_power<32&rune.time_to_2>runic_power/16'.\nLine 9: Converted operations in 'runic_power<32&rune.time_to_2>runic_power%16' to 'runic_power<32&rune.time_to_2>runic_power/16'.\nLine 10: Converted operations in 'runic_power<32&rune.time_to_2>runic_power%16' to 'runic_power<32&rune.time_to_2>runic_power/16'.\n\nThe import for 'racials' required some automated changes.\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 8: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 5: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 5: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 5: Converted 'talent.icebreaker' to 'talent.icebreaker.enabled' (1x).\nLine 6: Converted 'talent.unleashed_frenzy' to 'talent.unleashed_frenzy.enabled' (1x).\nLine 6: Converted 'talent.icy_talons' to 'talent.icy_talons.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.empower_rune_weapon' to 'talent.empower_rune_weapon.enabled' (1x).\nLine 8: Converted 'talent.frostscythe' to 'talent.frostscythe.enabled' (1x).\nLine 8: Converted 'talent.improved_obliterate' to 'talent.improved_obliterate.enabled' (1x).\nLine 8: Converted 'talent.frigid_executioner' to 'talent.frigid_executioner.enabled' (1x).\nLine 8: Converted 'talent.frostreaper' to 'talent.frostreaper.enabled' (1x).\nLine 8: Converted 'talent.might_of_the_frozen_wastes' to 'talent.might_of_the_frozen_wastes.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 9: Converted operations in '((cooldown.pillar_of_frost.remains_expected+1)%gcd.max)%((rune+3)*(runic_power+5))*100' to '((cooldown.pillar_of_frost.remains_expected+1)/gcd.max)/((rune+3)*(runic_power+5))*100'.\nLine 10: Converted operations in '((cooldown.breath_of_sindragosa.remains+1)%gcd.max)%((rune+1)*(runic_power+20))*100' to '((cooldown.breath_of_sindragosa.remains+1)/gcd.max)/((rune+1)*(runic_power+20))*100'.\nLine 11: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 12: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 12: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 14: Converted 'talent.assimilation' to 'talent.assimilation.enabled' (1x).\nLine 14: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 15: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 15: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 16: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 16: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 18: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 18: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 19: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 19: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 20: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 21: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 21: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 22: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 22: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 23: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 27: Converted 'talent.cold_heart' to 'talent.cold_heart.enabled' (1x).\nLine 27: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 27: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 27: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 28: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 29: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 29: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 30: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 1: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 2: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 2: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 3: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted operations in 'trinket.t1.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t1.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%%trinket.t1.cooldown.duration=0))' to 'trinket.t1.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t1.cooldown.duration%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%trinket.t1.cooldown.duration=0))'.\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 4: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted operations in 'trinket.t2.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t2.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%%trinket.t2.cooldown.duration=0))' to 'trinket.t2.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t2.cooldown.duration%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%trinket.t2.cooldown.duration=0))'.\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 5: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 5: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 5: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 5: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 5: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 6: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 6: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 6: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 6: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 6: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 7: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 7: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 7: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 7: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (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 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 8: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 9: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 10: Converted 'talent.gathering_storm' to 'talent.gathering_storm.enabled' (1x).\nLine 10: Converted 'talent.everfrost' to 'talent.everfrost.enabled' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'cooldowns' required some automated changes.\nLine 2: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 3: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 5: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 6: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 7: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 9: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 9: Converted 'talent.empower_rune_weapon' to 'talent.empower_rune_weapon.enabled' (1x).\nLine 10: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 10: Converted 'talent.icecap' to 'talent.icecap.enabled' (1x).\nLine 10: Converted 'talent.icecap' to 'talent.icecap.enabled' (1x).\nLine 11: Converted 'talent.icecap' to 'talent.icecap.enabled' (1x).\nLine 11: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 11: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 13: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 13: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 13: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 13: Converted 'talent.absolute_zero' to 'talent.absolute_zero.enabled' (1x).\nLine 14: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 15: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 15: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 15: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 15: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 17: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 18: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 19: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 5: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\n\nThe import for 'obliteration' required some automated changes.\nLine 9: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 9: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 12: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 16: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 4: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 8: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\n\nImported 11 action lists.\n",
["profile"] = "actions.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 pillar of frost, empower rune weapon, or breath of sindragosa's cooldown. 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&(talent.pillar_of_frost&!talent.breath_of_sindragosa&(trinket.1.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.duration%%trinket.1.cooldown.duration=0))\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(talent.pillar_of_frost&!talent.breath_of_sindragosa&(trinket.2.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.duration%%trinket.2.cooldown.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+=/variable,name=rw_buffs,value=talent.gathering_storm||talent.everfrost\nactions.precombat+=/variable,name=two_hand_check,value=main_hand.2h\n\nactions+=/mind_freeze\nactions+=/strangulate\n# Prevent specified trinkets being used with automatic lines actions+=/variable,name=specified_trinket,value=\nactions+=/variable,name=st_planning,value=active_enemies=1&(raid_event.adds.in>15||!raid_event.adds.exists)\nactions+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.remains>5)\nactions+=/variable,name=rime_buffs,value=buff.rime.up&(talent.rage_of_the_frozen_champion||talent.avalanche||talent.icebreaker)\nactions+=/variable,name=rp_buffs,value=talent.unleashed_frenzy&(buff.unleashed_frenzy.remains<gcd.max*3||buff.unleashed_frenzy.stack<3)||talent.icy_talons&(buff.icy_talons.remains<gcd.max*3||buff.icy_talons.stack<3)\nactions+=/variable,name=cooldown_check,value=talent.pillar_of_frost&buff.pillar_of_frost.up||!talent.pillar_of_frost&buff.empower_rune_weapon.up||!talent.pillar_of_frost&!talent.empower_rune_weapon\nactions+=/variable,name=frostscythe_priority,value=talent.frostscythe&(buff.killing_machine.up||active_enemies>=3)&(!talent.improved_obliterate&!talent.frigid_executioner&!talent.frostreaper&!talent.might_of_the_frozen_wastes||!talent.cleaving_strikes||talent.cleaving_strikes&(active_enemies>6||!death_and_decay.ticking&active_enemies>3))\n# Formulaic approach to determine the time before these abilities come off cooldown that the simulation should star to pool resources. Capped at 15s in the run_action_list call.\nactions+=/variable,name=oblit_pooling_time,op=setif,value=((cooldown.pillar_of_frost.remains_expected+1)%gcd.max)%((rune+3)*(runic_power+5))*100,value_else=3,condition=runic_power<35&rune<2&cooldown.pillar_of_frost.remains_expected<10\nactions+=/variable,name=breath_pooling_time,op=setif,value=((cooldown.breath_of_sindragosa.remains+1)%gcd.max)%((rune+1)*(runic_power+20))*100,value_else=3,condition=runic_power.deficit>10&cooldown.breath_of_sindragosa.remains<10\nactions+=/variable,name=pooling_runes,value=rune<4&talent.obliteration&cooldown.pillar_of_frost.remains_expected<variable.oblit_pooling_time\nactions+=/variable,name=pooling_runic_power,value=talent.breath_of_sindragosa&cooldown.breath_of_sindragosa.remains<variable.breath_pooling_time||talent.obliteration&runic_power<35&cooldown.pillar_of_frost.remains_expected<variable.oblit_pooling_time\n# Use <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> while <a href='https://www.wowhead.com/spell=51271/pillar-of-frost'>Pillar of Frost</a> is up, as well as <a href='https://www.wowhead.com/spell=152279/breath-of-sindragosa'>Breath of Sindragosa</a> or on cooldown if <a href='https://www.wowhead.com/spell=51271/pillar-of-frost'>Pillar of Frost</a> and <a href='https://www.wowhead.com/spell=152279/breath-of-sindragosa'>Breath of Sindragosa</a> are not talented\n## actions+=/invoke_external_buff,name=power_infusion,if=(buff.pillar_of_frost.up||!talent.pillar_of_frost)&(talent.obliteration||talent.breath_of_sindragosa&buff.breath_of_sindragosa.up||!talent.breath_of_sindragosa&!talent.obliteration)\nactions+=/antimagic_shell,if=runic_power.deficit>40\nactions+=/antimagic_zone,if=death_knight.amz_absorb_percent>0&runic_power.deficit>70&talent.assimilation&(buff.breath_of_sindragosa.up&cooldown.empower_rune_weapon.charges<2||!talent.breath_of_sindragosa&!buff.pillar_of_frost.up)\n# Maintain Frost Fever, Icy Talons and Unleashed Frenzy\nactions+=/howling_blast,if=!dot.frost_fever.ticking&active_enemies>=2&(!talent.obliteration||talent.obliteration&(!buff.pillar_of_frost.up||buff.pillar_of_frost.up&!buff.killing_machine.up))\nactions+=/glacial_advance,if=active_enemies>=2&variable.rp_buffs&talent.obliteration&talent.breath_of_sindragosa&!buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/glacial_advance,if=active_enemies>=2&variable.rp_buffs&talent.breath_of_sindragosa&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/glacial_advance,if=active_enemies>=2&variable.rp_buffs&!talent.breath_of_sindragosa&talent.obliteration&!buff.pillar_of_frost.up\nactions+=/frost_strike,if=active_enemies=1&variable.rp_buffs&talent.obliteration&talent.breath_of_sindragosa&!buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/frost_strike,if=active_enemies=1&variable.rp_buffs&talent.breath_of_sindragosa&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/frost_strike,if=active_enemies=1&variable.rp_buffs&!talent.breath_of_sindragosa&talent.obliteration&!buff.pillar_of_frost.up\nactions+=/remorseless_winter,if=!talent.breath_of_sindragosa&!talent.obliteration&variable.rw_buffs\nactions+=/remorseless_winter,if=talent.obliteration&active_enemies>=3&variable.adds_remain\n# Choose Action list to run\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=racials\nactions+=/call_action_list,name=cold_heart,if=talent.cold_heart&(!buff.killing_machine.up||talent.breath_of_sindragosa)&((debuff.razorice.stack=5||!death_knight.runeforge.razorice&!talent.glacial_advance&!talent.avalanche)||boss&fight_remains<=gcd.max)\nactions+=/run_action_list,name=breath_oblit,if=buff.breath_of_sindragosa.up&talent.obliteration&buff.pillar_of_frost.up\nactions+=/run_action_list,name=breath,if=buff.breath_of_sindragosa.up&(!talent.obliteration||talent.obliteration&!buff.pillar_of_frost.up)\nactions+=/run_action_list,name=obliteration,if=talent.obliteration&buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up\nactions+=/call_action_list,name=aoe,if=active_enemies>=2\nactions+=/call_action_list,name=single_target,if=active_enemies=1\n\n# AoE Action List\nactions.aoe+=/remorseless_winter\nactions.aoe+=/howling_blast,if=buff.rime.up||!dot.frost_fever.ticking\nactions.aoe+=/glacial_advance,if=!variable.pooling_runic_power&variable.rp_buffs\nactions.aoe+=/obliterate,if=buff.killing_machine.up&talent.cleaving_strikes&death_and_decay.ticking&!variable.frostscythe_priority\nactions.aoe+=/glacial_advance,if=!variable.pooling_runic_power\nactions.aoe+=/frostscythe,if=variable.frostscythe_priority\nactions.aoe+=/obliterate,if=!variable.frostscythe_priority\nactions.aoe+=/frost_strike,if=!variable.pooling_runic_power&!talent.glacial_advance\nactions.aoe+=/horn_of_winter,if=rune<2&runic_power.deficit>25\nactions.aoe+=/arcane_torrent,if=runic_power.deficit>25\n\n# Breath Active Rotation\nactions.breath+=/remorseless_winter,if=variable.rw_buffs||variable.adds_remain\nactions.breath+=/howling_blast,if=variable.rime_buffs&runic_power>(45-talent.rage_of_the_frozen_champion*8)\nactions.breath+=/horn_of_winter,if=rune<2&runic_power.deficit>25\nactions.breath+=/obliterate,cycle_targets=1,if=buff.killing_machine.up&!variable.frostscythe_priority\nactions.breath+=/frostscythe,if=buff.killing_machine.up&variable.frostscythe_priority\nactions.breath+=/frostscythe,if=variable.frostscythe_priority&runic_power>45\nactions.breath+=/obliterate,cycle_targets=1,if=runic_power.deficit>40||buff.pillar_of_frost.up&runic_power.deficit>15\nactions.breath+=/death_and_decay,if=!death_and_decay.ticking&runic_power<32&rune.time_to_2>runic_power%16\nactions.breath+=/remorseless_winter,if=runic_power<32&rune.time_to_2>runic_power%16\nactions.breath+=/howling_blast,if=runic_power<32&rune.time_to_2>runic_power%16\nactions.breath+=/obliterate,cycle_targets=1,if=runic_power.deficit>25\nactions.breath+=/howling_blast,if=buff.rime.up\nactions.breath+=/arcane_torrent,if=runic_power<60\n\n# Breath & Obliteration Active Rotation\nactions.breath_oblit+=/frostscythe,if=buff.killing_machine.up&variable.frostscythe_priority\nactions.breath_oblit+=/obliterate,cycle_targets=1,if=buff.killing_machine.up\nactions.breath_oblit+=/howling_blast,if=buff.rime.up\nactions.breath_oblit+=/howling_blast,if=!buff.killing_machine.up\nactions.breath_oblit+=/horn_of_winter,if=runic_power.deficit>25\nactions.breath_oblit+=/arcane_torrent,if=runic_power.deficit>20\n\n# Cold Heart\nactions.cold_heart+=/chains_of_ice,if=boss&fight_remains<gcd.max&(rune<2||!buff.killing_machine.up&(!variable.two_hand_check&buff.cold_heart.stack>=4||variable.two_hand_check&buff.cold_heart.stack>8)||buff.killing_machine.up&(!variable.two_hand_check&buff.cold_heart.stack>8||variable.two_hand_check&buff.cold_heart.stack>10))\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&buff.pillar_of_frost.up&buff.cold_heart.stack>=10&(buff.pillar_of_frost.remains<gcd*(1+(talent.frostwyrms_fury&cooldown.frostwyrms_fury.ready))||buff.unholy_strength.up&buff.unholy_strength.remains<gcd)\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&death_knight.runeforge.fallen_crusader&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains_expected>15&(buff.cold_heart.stack>=10&buff.unholy_strength.up||buff.cold_heart.stack>=13)\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&!death_knight.runeforge.fallen_crusader&buff.cold_heart.stack>=10&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains_expected>20\nactions.cold_heart+=/chains_of_ice,if=talent.obliteration&!buff.pillar_of_frost.up&(buff.cold_heart.stack>=14&(buff.unholy_strength.up||buff.chaos_bane.up)||buff.cold_heart.stack>=19||cooldown.pillar_of_frost.remains_expected<3&buff.cold_heart.stack>=14)\n\n# Cooldowns\nactions.cooldowns+=/potion,if=variable.cooldown_check||boss&fight_remains<25\nactions.cooldowns+=/empower_rune_weapon,if=talent.obliteration&!buff.empower_rune_weapon.up&rune<6&(cooldown.pillar_of_frost.remains_expected<7&(variable.adds_remain||variable.st_planning)||buff.pillar_of_frost.up)||boss&fight_remains<20\nactions.cooldowns+=/empower_rune_weapon,use_off_gcd=1,if=buff.breath_of_sindragosa.up&talent.breath_of_sindragosa&!buff.empower_rune_weapon.up&(runic_power<70&rune<3||time<10)\nactions.cooldowns+=/empower_rune_weapon,use_off_gcd=1,if=!talent.breath_of_sindragosa&!talent.obliteration&!buff.empower_rune_weapon.up&rune<5&(cooldown.pillar_of_frost.remains_expected<7||buff.pillar_of_frost.up||!talent.pillar_of_frost)\nactions.cooldowns+=/abomination_limb,if=talent.obliteration&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains<3&(variable.adds_remain||variable.st_planning)||boss&fight_remains<12\nactions.cooldowns+=/abomination_limb,if=talent.breath_of_sindragosa&(variable.adds_remain||variable.st_planning)\nactions.cooldowns+=/abomination_limb,if=!talent.breath_of_sindragosa&!talent.obliteration&(variable.adds_remain||variable.st_planning)\nactions.cooldowns+=/chill_streak,if=active_enemies>=2&(!death_and_decay.ticking&talent.cleaving_strikes||!talent.cleaving_strikes||active_enemies<=5)\nactions.cooldowns+=/pillar_of_frost,if=talent.obliteration&(variable.adds_remain||variable.st_planning)&(!talent.empower_rune_weapon||buff.empower_rune_weapon.up||cooldown.empower_rune_weapon.remains)||boss&fight_remains<12\nactions.cooldowns+=/pillar_of_frost,if=talent.breath_of_sindragosa&(variable.adds_remain||variable.st_planning)&(!talent.icecap&(runic_power>70||cooldown.breath_of_sindragosa.remains>40)||talent.icecap&(cooldown.breath_of_sindragosa.remains>10||buff.breath_of_sindragosa.up))\nactions.cooldowns+=/pillar_of_frost,if=talent.icecap&!talent.obliteration&!talent.breath_of_sindragosa&(variable.adds_remain||variable.st_planning)\nactions.cooldowns+=/breath_of_sindragosa,if=!buff.breath_of_sindragosa.up&runic_power>60&(variable.adds_remain||variable.st_planning)||boss&fight_remains<30\nactions.cooldowns+=/frostwyrms_fury,if=active_enemies=1&(talent.pillar_of_frost&buff.pillar_of_frost.remains<gcd*2&buff.pillar_of_frost.up&!talent.obliteration||!talent.pillar_of_frost)&(!raid_event.adds.exists||(raid_event.adds.in>15+raid_event.adds.duration||talent.absolute_zero&raid_event.adds.in>15+raid_event.adds.duration))||boss&fight_remains<3\nactions.cooldowns+=/frostwyrms_fury,if=active_enemies>=2&(talent.pillar_of_frost&buff.pillar_of_frost.up||raid_event.adds.exists&raid_event.adds.up&raid_event.adds.in>cooldown.pillar_of_frost.remains_expected-raid_event.adds.in-raid_event.adds.duration)&(buff.pillar_of_frost.remains<gcd*2||raid_event.adds.exists&raid_event.adds.remains<gcd*2)\nactions.cooldowns+=/frostwyrms_fury,if=talent.obliteration&(talent.pillar_of_frost&buff.pillar_of_frost.up&!variable.two_hand_check||!buff.pillar_of_frost.up&variable.two_hand_check&cooldown.pillar_of_frost.remains||!talent.pillar_of_frost)&((buff.pillar_of_frost.remains<gcd||buff.unholy_strength.up&buff.unholy_strength.remains<gcd)&(debuff.razorice.stack=5||!death_knight.runeforge.razorice&!talent.glacial_advance))\nactions.cooldowns+=/raise_dead\nactions.cooldowns+=/soul_reaper,if=fight_remains>5&target.time_to_pct_35<5&active_enemies<=2&(talent.obliteration&(buff.pillar_of_frost.up&!buff.killing_machine.up||!buff.pillar_of_frost.up)||talent.breath_of_sindragosa&(buff.breath_of_sindragosa.up&runic_power>40||!buff.breath_of_sindragosa.up)||!talent.breath_of_sindragosa&!talent.obliteration)\nactions.cooldowns+=/sacrificial_pact,if=!talent.glacial_advance&!buff.breath_of_sindragosa.up&pet.ghoul.remains<gcd*2&active_enemies>3\nactions.cooldowns+=/any_dnd,if=!death_and_decay.ticking&variable.adds_remain&(buff.pillar_of_frost.up&buff.pillar_of_frost.remains>5&buff.pillar_of_frost.remains<11||!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains>10||boss&fight_remains<11)&(active_enemies>5||talent.cleaving_strikes&active_enemies>=2)\n\n# Obliteration Active Rotation\nactions.obliteration+=/remorseless_winter,if=active_enemies>3\nactions.obliteration+=/howling_blast,if=buff.killing_machine.stack<2&buff.pillar_of_frost.remains<gcd&buff.rime.up\nactions.obliteration+=/frost_strike,if=buff.killing_machine.stack<2&buff.pillar_of_frost.remains<gcd\nactions.obliteration+=/glacial_advance,if=buff.killing_machine.stack<2&buff.pillar_of_frost.remains<gcd&!death_and_decay.ticking\nactions.obliteration+=/obliterate,cycle_targets=1,if=buff.killing_machine.up&!variable.frostscythe_priority\nactions.obliteration+=/frostscythe,if=buff.killing_machine.up&variable.frostscythe_priority\nactions.obliteration+=/howling_blast,if=!dot.frost_fever.ticking&!buff.killing_machine.up\nactions.obliteration+=/glacial_advance,if=!death_knight.runeforge.razorice&!buff.killing_machine.react&(debuff.razorice.stack<5||debuff.razorice.remains<gcd*3)\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!buff.killing_machine.up&(rune<2||variable.rp_buffs||debuff.razorice.stack=5&talent.shattering_blade)&!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1)\nactions.obliteration+=/howling_blast,if=buff.rime.up&!buff.killing_machine.up\nactions.obliteration+=/glacial_advance,if=!variable.pooling_runic_power&variable.rp_buffs&!buff.killing_machine.up&active_enemies>=2\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!buff.killing_machine.up&!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1)\nactions.obliteration+=/howling_blast,if=!buff.killing_machine.up&runic_power<25\nactions.obliteration+=/arcane_torrent,if=rune<1&runic_power<25\nactions.obliteration+=/glacial_advance,if=!variable.pooling_runic_power&active_enemies>=2\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1)\nactions.obliteration+=/howling_blast,if=buff.rime.up\nactions.obliteration+=/obliterate,cycle_targets=1\n\n# Racial Abilities\nactions.racials+=/blood_fury,if=variable.cooldown_check\nactions.racials+=/berserking,if=variable.cooldown_check\nactions.racials+=/arcane_pulse,if=variable.cooldown_check\nactions.racials+=/lights_judgment,if=variable.cooldown_check\nactions.racials+=/ancestral_call,if=variable.cooldown_check\nactions.racials+=/fireblood,if=variable.cooldown_check\nactions.racials+=/bag_of_tricks,if=talent.obliteration&!buff.pillar_of_frost.up&buff.unholy_strength.up\nactions.racials+=/bag_of_tricks,if=!talent.obliteration&buff.pillar_of_frost.up&(buff.unholy_strength.up&buff.unholy_strength.remains<gcd*3||buff.pillar_of_frost.remains<gcd*3)\n\n# Single Target Rotation\nactions.single_target+=/remorseless_winter,if=variable.rw_buffs||variable.adds_remain\nactions.single_target+=/frost_strike,if=buff.killing_machine.stack<2&runic_power.deficit<20&!variable.two_hand_check\nactions.single_target+=/frostscythe,if=buff.killing_machine.up&variable.frostscythe_priority\nactions.single_target+=/obliterate,if=buff.killing_machine.up\nactions.single_target+=/howling_blast,if=buff.rime.up&talent.icebreaker.rank=2\nactions.single_target+=/horn_of_winter,if=rune<4&runic_power.deficit>25&talent.obliteration&talent.breath_of_sindragosa\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power&(variable.rp_buffs||runic_power.deficit<25||debuff.razorice.stack=5&talent.shattering_blade)\nactions.single_target+=/howling_blast,if=variable.rime_buffs\nactions.single_target+=/glacial_advance,if=!variable.pooling_runic_power&!death_knight.runeforge.razorice&(debuff.razorice.stack<5||debuff.razorice.remains<gcd*3)\nactions.single_target+=/obliterate,if=!variable.pooling_runes\nactions.single_target+=/horn_of_winter,if=rune<4&runic_power.deficit>25&(!talent.breath_of_sindragosa||cooldown.breath_of_sindragosa.remains>cooldown.horn_of_winter.duration)\nactions.single_target+=/arcane_torrent,if=runic_power.deficit>20\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power\n\nactions.trinkets+=/use_item,name=algethar_puzzle_box,if=!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains<2&(!talent.breath_of_sindragosa||runic_power>60&(buff.breath_of_sindragosa.up||cooldown.breath_of_sindragosa.remains<2))\n# Trinkets The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.\nactions.trinkets+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.pillar_of_frost.up&trinket.1.cast_time>0||!trinket.1.cast_time>0)&(buff.breath_of_sindragosa.up||buff.pillar_of_frost.up)&(variable.trinket_2_exclude||!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||boss&trinket.1.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&(!buff.pillar_of_frost.up&trinket.2.cast_time>0||!trinket.2.cast_time>0)&(buff.breath_of_sindragosa.up||buff.pillar_of_frost.up)&(variable.trinket_1_exclude||!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||boss&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,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.pillar_of_frost.up||!trinket.1.cast_time>0)||talent.pillar_of_frost&cooldown.pillar_of_frost.remains_expected>20||!talent.pillar_of_frost)\nactions.trinkets+=/use_item,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.pillar_of_frost.up||!trinket.2.cast_time>0)||talent.pillar_of_frost&cooldown.pillar_of_frost.remains_expected>20||!talent.pillar_of_frost)",
["spec"] = 251,
},
["Blood"] = {
["source"] = "SimulationCraft",
["builtIn"] = true,
["date"] = 20230308,
["spec"] = 250,
["desc"] = "2023-03-08: Adjust Tombstone logic for Shattering Bones / Death and Decay.",
["lists"] = {
["drw_up"] = {
{
["enabled"] = true,
["criteria"] = "! dot.blood_plague.ticking",
["action"] = "blood_boil",
["description"] = "Use Blood Boil if Blood Plague is not active.",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.bone_shield.stack > 5 & rune >= 2 & runic_power.deficit >= 30 & ! talent.shattering_bone.enabled || ( talent.shattering_bone.enabled & death_and_decay.ticking )",
["action"] = "tombstone",
["description"] = "Use Tombstone if you have 5+ Bone Shield stacks, 2+ runes, 30+ Runic Power, and Shattering Bones is not talented or Death and Decay is not ticking.",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains <= gcd.max || buff.icy_talons.remains <= gcd.max",
["action"] = "death_strike",
["description"] = "Use Death Strike if Coagulatopathy is down or about to expire or if Icy Talons is down or about to expire.",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( buff.bone_shield.remains <= 4 || ( buff.bone_shield.stack < variable.bone_shield_refresh_value + 1 ) ) & runic_power.deficit > 10 & rune.time_to_3 > gcd.max",
["action"] = "deaths_caress",
["description"] = "Use Death's Caress if",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.bone_shield.remains <= 4 || buff.bone_shield.stack < variable.bone_shield_refresh_value ) & runic_power.deficit > 20",
["action"] = "marrowrend",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["action"] = "soul_reaper",
}, -- [6]
{
["enabled"] = true,
["action"] = "soul_reaper",
["criteria"] = "target.time_to_pct_35 < 5 & active_enemies >= 2 & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & ( talent.sanguine_ground.enabled || talent.unholy_ground.enabled )",
["action"] = "death_and_decay",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets.blood_boil > 2 & charges_fractional >= 1.1",
["action"] = "blood_boil",
}, -- [9]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 25 + spell_targets.heart_strike * talent.heartbreaker.enabled * 2 )",
["var_name"] = "heart_strike_rp_drw",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit <= variable.heart_strike_rp_drw || runic_power >= variable.death_strike_dump_amount",
["action"] = "death_strike",
}, -- [11]
{
["action"] = "consumption",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.1 & buff.hemostasis.stack < 5",
["action"] = "blood_boil",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "rune.time_to_2 < gcd.max || runic_power.deficit >= variable.heart_strike_rp_drw",
["action"] = "heart_strike",
}, -- [14]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Interrupt.",
["action"] = "mind_freeze",
}, -- [1]
{
["enabled"] = true,
["description"] = "Interrupt.",
["action"] = "strangulate",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "65",
["description"] = "Death Strike at 65+ Runic Power.",
["var_name"] = "death_strike_dump_amount",
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Refresh Bone Shield at 4 stacks with Death's Caress, Consumption, or Blooddrinker, otherwise 5 stacks.",
["criteria"] = "! talent.deaths_caress.enabled || talent.consumption.enabled || talent.blooddrinker.enabled",
["value"] = "4",
["action"] = "variable",
["value_else"] = "5",
["var_name"] = "bone_shield_refresh_value",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up",
["action"] = "potion",
["description"] = "Use a Potion during Dancing Rune Weapon.",
}, -- [5]
{
["enabled"] = true,
["description"] = "Call the trinkets action list.",
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [6]
{
["enabled"] = true,
["description"] = "Raise Dead if it's off cooldown.",
["action"] = "raise_dead",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s >= ibf_damage & ! ( buff.dancing_rune_weapon.up || buff.vampiric_blood.up )",
["action"] = "icebound_fortitude",
["description"] = "Use Icebound Fortitude if you're taking sufficient damage and you don't have Dancing Rune Weapon or Vampiric Blood up.",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s >= vb_damage & ! ( buff.dancing_rune_weapon.up || buff.icebound_fortitude.up )",
["action"] = "vampiric_blood",
["description"] = "Use Vampiric Blood if you're taking sufficient damage and you don't have Dancing Rune Weapon or Icebound Fortitude up.",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s >= rt_damage & ! ( buff.dancing_rune_weapon.up || buff.vampiric_blood.up || buff.icebound_fortitude.up )",
["action"] = "rune_tap",
["description"] = "Use Rune Tap if you're taking sufficient damage and you don't have Dancing Rune Weapon, Vampiric Blood, or Icebound Fortitude up.",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.blood_shield.up & buff.blood_shield.remains <= gcd.max",
["action"] = "death_strike",
["description"] = "Use Death Strike if your Blood Shield is going to expire.",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! buff.bone_shield.up",
["action"] = "deaths_caress",
["description"] = "Use Death's Caress if Bone Shield is not up.",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & ( talent.unholy_ground.enabled || talent.sanguine_ground.enabled || spell_targets.death_and_decay > 3 || buff.crimson_scourge.up )",
["action"] = "death_and_decay",
["description"] = "Use Death and Decay if it's not already up and you have 4 targets, Unholy Ground, Sanguine Ground, or Crimson Scourge.",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains <= gcd.max || buff.icy_talons.remains <= gcd.max || runic_power >= variable.death_strike_dump_amount || runic_power.deficit <= variable.heart_strike_rp || boss & fight_remains < 10",
["action"] = "death_strike",
["description"] = "Use Death Strike if Coagulatopathy is down or about to expire, if Icy Talons is down or about to expire, if you're below the Death Strike dump amount, if you're below the Heart Strike Runic Power threshold, or if the target is about to die.",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! buff.dancing_rune_weapon.up",
["action"] = "blooddrinker",
["description"] = "Use Blooddrinker if Dancing Rune Weapon is not up.",
}, -- [15]
{
["enabled"] = true,
["description"] = "Call the racials action list.",
["action"] = "call_action_list",
["list_name"] = "racials",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! buff.dancing_rune_weapon.up & ( pet.ghoul.remains < 2 || boss & fight_remains < gcd.max )",
["action"] = "sacrificial_pact",
["description"] = "Use Sacrificial Pact if Dancing Rune Weapon is not active and the Ghoul is about to expire or the bossfight is about to end.",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call the covenants action list if they are active and valid.",
["strict"] = 1,
["criteria"] = "! covenant.none",
["list_name"] = "covenants",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "( rune <= 2 & rune.time_to_4 > gcd.max & charges_fractional >= 1.8 ) || rune.time_to_3 > gcd.max",
["action"] = "blood_tap",
["description"] = "Use Blood Tap if you have 2 or fewer runes, you won't reach 4 charges within the global cooldown, and you're about to cap charges, or if you will not reach 3 runes within global cooldown.",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.tightening_grasp.enabled",
["action"] = "gorefiends_grasp",
["description"] = "Use Gorefiend's Grasp if Tightening Grasp is talented.",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "rune < 6 & runic_power.deficit > 5",
["action"] = "empower_rune_weapon",
["description"] = "Use Empower Ruen Weapon if you have 6 or fewer runes and you're not about to cap Runic Power.",
}, -- [21]
{
["enabled"] = true,
["description"] = "Use Abomination's Limb on cooldown.",
["action"] = "abomination_limb",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "! buff.dancing_rune_weapon.up",
["action"] = "dancing_rune_weapon",
["description"] = "Use Dancing Rune Weapon if it is not already active.",
}, -- [23]
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "Use the drw_up action list if Dancing Rune Weapon is active.",
["strict"] = 1,
["criteria"] = "buff.dancing_rune_weapon.up",
["list_name"] = "drw_up",
}, -- [24]
{
["enabled"] = true,
["description"] = "Call the standard action list (which will not be used if Dancing Rune Weapon is active).",
["action"] = "call_action_list",
["list_name"] = "standard",
}, -- [25]
},
["precombat"] = {
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [1]
},
["standard"] = {
{
["enabled"] = true,
["criteria"] = "buff.bone_shield.stack > 5 & rune >= 2 & runic_power.deficit >= 30 & ! talent.shattering_bone.enabled || ( talent.shattering_bone.enabled & death_and_decay.ticking ) & cooldown.dancing_rune_weapon.remains >= 25",
["action"] = "tombstone",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 10 + spell_targets.heart_strike * talent.heartbreaker.enabled * 2 )",
["var_name"] = "heart_strike_rp",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains <= gcd.max || buff.icy_talons.remains <= gcd.max || runic_power >= variable.death_strike_dump_amount || runic_power.deficit <= variable.heart_strike_rp || boss & fight_remains < 10",
["action"] = "death_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( buff.bone_shield.remains <= 4 || ( buff.bone_shield.stack < variable.bone_shield_refresh_value + 1 ) ) & runic_power.deficit > 10 & ! ( talent.insatiable_blade.enabled & cooldown.dancing_rune_weapon.remains < buff.bone_shield.remains ) & ! talent.consumption.enabled & ! talent.blooddrinker.enabled & rune.time_to_3 > gcd.max",
["action"] = "deaths_caress",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.bone_shield.remains <= 4 || buff.bone_shield.stack < variable.bone_shield_refresh_value ) & runic_power.deficit > 20 & ! ( talent.insatiable_blade.enabled & cooldown.dancing_rune_weapon.remains < buff.bone_shield.remains )",
["action"] = "marrowrend",
}, -- [5]
{
["action"] = "consumption",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["action"] = "soul_reaper",
}, -- [7]
{
["enabled"] = true,
["action"] = "soul_reaper",
["criteria"] = "target.time_to_pct_35 < 5 & active_enemies >= 2 & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "runic_power >= 100",
["action"] = "bonestorm",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.8 & ( buff.hemostasis.stack <= ( 5 - spell_targets.blood_boil ) || spell_targets.blood_boil > 2 )",
["action"] = "blood_boil",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "rune.time_to_4 < gcd.max",
["action"] = "heart_strike",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.1",
["action"] = "blood_boil",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( rune > 1 & ( rune.time_to_3 < gcd.max || buff.bone_shield.stack > 7 ) )",
["action"] = "heart_strike",
}, -- [13]
},
["trinkets"] = {
{
["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 )",
["description"] = "Prioritize damage dealing on use trinkets over trinkets that give buffs",
["var_name"] = "trinket_1_buffs",
}, -- [1]
{
["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 )",
["var_name"] = "trinket_2_buffs",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
["var_name"] = "trinket_1_exclude",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
["var_name"] = "trinket_2_exclude",
}, -- [4]
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs",
["slot"] = "trinket1",
}, -- [5]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs",
["slot"] = "trinket2",
}, -- [6]
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "variable.trinket_1_buffs & ( buff.dancing_rune_weapon.up || ! talent.dancing_rune_weapon.enabled || cooldown.dancing_rune_weapon.remains > 20 ) & ( variable.trinket_2_exclude || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown || variable.trinket_2_buffs )",
["slot"] = "trinket1",
}, -- [7]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "variable.trinket_2_buffs & ( buff.dancing_rune_weapon.up || ! talent.dancing_rune_weapon.enabled || cooldown.dancing_rune_weapon.remains > 20 ) & ( variable.trinket_1_exclude || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown || variable.trinket_1_buffs )",
["slot"] = "trinket2",
}, -- [8]
},
["racials"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.dancing_rune_weapon.ready & ( ! cooldown.blooddrinker.ready || ! talent.blooddrinker.enabled )",
["action"] = "blood_fury",
}, -- [1]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 || rune < 1 & runic_power.deficit > 60",
["action"] = "arcane_pulse",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.unholy_strength.up",
["action"] = "lights_judgment",
}, -- [4]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [5]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [6]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 20",
["action"] = "arcane_torrent",
}, -- [8]
},
["covenants"] = {
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & ( ! buff.deaths_due.up || buff.deaths_due.remains < 4 || buff.crimson_scourge.up )",
["action"] = "deaths_due",
["description"] = "Use Death's Due if Death and Decay is not ticking and you don't have Death's Due or Crimson Scourge up.",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.dancing_rune_weapon.remains > 3 & runic_power >= ( 90 - ( spell_targets.swarming_mist * 3 ) )",
["action"] = "swarming_mist",
["description"] = "Use Swarming Mist if Dancing Rune Weapon is active for 3+ seconds and you have 90+ Runic Power (offset by number of targets).",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "soulbind.pustule_eruption.enabled || soulbind.volatile_solvent.enabled & ! buff.volatile_solvent_humanoid.up",
["description"] = "Use Fleshcraft if you have Pustule Eruption or Volatile Solvent and Volatile Solvent is not active.",
["interrupt_if"] = "soulbind.volatile_solvent",
["interrupt_immediate"] = "1",
["action"] = "fleshcraft",
["interrupt_global"] = "1",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "rune < 3 & runic_power < 100",
["action"] = "shackle_the_unworthy",
["description"] = "Use Shackle the Unworthy if you have 3 or fewer runes and Runic Power is below 100.",
}, -- [4]
},
},
["version"] = 20230308,
["warnings"] = "The import for 'drw_up' required some automated changes.\nLine 2: Converted 'talent.shattering_bone' to 'talent.shattering_bone.enabled' (1x).\nLine 8: Converted 'talent.sanguine_ground' to 'talent.sanguine_ground.enabled' (1x).\nLine 8: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 13: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\nLine 13: Converted 'talent.sanguine_ground' to 'talent.sanguine_ground.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 1: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 1: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 1: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 1: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 1: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 2: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 2: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 2: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 2: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 2: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\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 7: Converted 'talent.dancing_rune_weapon' to 'talent.dancing_rune_weapon.enabled' (1x).\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'.\nLine 7: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 8: Converted 'talent.dancing_rune_weapon' to 'talent.dancing_rune_weapon.enabled' (1x).\nLine 8: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 8: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 8: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'standard' required some automated changes.\nLine 1: Converted 'talent.shattering_bone' to 'talent.shattering_bone.enabled' (1x).\nLine 4: Converted 'talent.insatiable_blade' to 'talent.insatiable_blade.enabled' (1x).\nLine 5: Converted 'talent.insatiable_blade' to 'talent.insatiable_blade.enabled' (1x).\n\nThe import for 'covenants' required some automated changes.\nLine 3: Converted 'soulbind.pustule_eruption' to 'soulbind.pustule_eruption.enabled' (1x).\nLine 3: Converted 'soulbind.volatile_solvent' to 'soulbind.volatile_solvent.enabled' (1x).\n\nImported 7 action lists.\n",
["author"] = "SimC",
["profile"] = "actions.precombat+=/fleshcraft\n\n# Interrupt.\nactions+=/mind_freeze\n# Interrupt.\nactions+=/strangulate\n# Death Strike at 65+ Runic Power.\nactions+=/variable,name=death_strike_dump_amount,value=65\n# Refresh Bone Shield at 4 stacks with Death's Caress, Consumption, or Blooddrinker; otherwise 5 stacks.\nactions+=/variable,name=bone_shield_refresh_value,value=4,op=setif,condition=!talent.deaths_caress.enabled||talent.consumption.enabled||talent.blooddrinker.enabled,value_else=5\n# Use a Potion during Dancing Rune Weapon.\nactions+=/potion,if=buff.dancing_rune_weapon.up\n# Call the trinkets action list.\nactions+=/call_action_list,name=trinkets\n# Raise Dead if it's off cooldown.\nactions+=/raise_dead\n# Use Icebound Fortitude if you're taking sufficient damage and you don't have Dancing Rune Weapon or Vampiric Blood up.\nactions+=/icebound_fortitude,if=tanking&incoming_damage_5s>=ibf_damage&!(buff.dancing_rune_weapon.up||buff.vampiric_blood.up)\n# Use Vampiric Blood if you're taking sufficient damage and you don't have Dancing Rune Weapon or Icebound Fortitude up.\nactions+=/vampiric_blood,if=tanking&incoming_damage_5s>=vb_damage&!(buff.dancing_rune_weapon.up||buff.icebound_fortitude.up)\n# Use Rune Tap if you're taking sufficient damage and you don't have Dancing Rune Weapon, Vampiric Blood, or Icebound Fortitude up.\nactions+=/rune_tap,if=tanking&incoming_damage_5s>=rt_damage&!(buff.dancing_rune_weapon.up||buff.vampiric_blood.up||buff.icebound_fortitude.up)\n# Use Death Strike if your Blood Shield is going to expire.\nactions+=/death_strike,if=buff.blood_shield.up&buff.blood_shield.remains<=gcd.max\n# Use Death's Caress if Bone Shield is not up.\nactions+=/deaths_caress,if=!buff.bone_shield.up\n# Use Death and Decay if it's not already up and you have 4 targets, Unholy Ground, Sanguine Ground, or Crimson Scourge.\nactions+=/death_and_decay,if=!death_and_decay.ticking&(talent.unholy_ground||talent.sanguine_ground||spell_targets.death_and_decay>3||buff.crimson_scourge.up)\n# Use Death Strike if Coagulatopathy is down or about to expire, if Icy Talons is down or about to expire, if you're below the Death Strike dump amount, if you're below the Heart Strike Runic Power threshold, or if the target is about to die.\nactions+=/death_strike,if=buff.coagulopathy.remains<=gcd||buff.icy_talons.remains<=gcd||runic_power>=variable.death_strike_dump_amount||runic_power.deficit<=variable.heart_strike_rp||boss&fight_remains<10\n# Use Blooddrinker if Dancing Rune Weapon is not up.\nactions+=/blooddrinker,if=!buff.dancing_rune_weapon.up\n# Call the racials action list.\nactions+=/call_action_list,name=racials\n# Use Sacrificial Pact if Dancing Rune Weapon is not active and the Ghoul is about to expire or the bossfight is about to end.\nactions+=/sacrificial_pact,if=!buff.dancing_rune_weapon.up&(pet.ghoul.remains<2||boss&fight_remains<gcd)\n# Call the covenants action list if they are active and valid.\nactions+=/call_action_list,name=covenants,strict=1,if=!covenant.none\n# Use Blood Tap if you have 2 or fewer runes, you won't reach 4 charges within the global cooldown, and you're about to cap charges, or if you will not reach 3 runes within global cooldown.\nactions+=/blood_tap,if=(rune<=2&rune.time_to_4>gcd&charges_fractional>=1.8)||rune.time_to_3>gcd\n# Use Gorefiend's Grasp if Tightening Grasp is talented.\nactions+=/gorefiends_grasp,if=talent.tightening_grasp.enabled\n# Use Empower Ruen Weapon if you have 6 or fewer runes and you're not about to cap Runic Power.\nactions+=/empower_rune_weapon,if=rune<6&runic_power.deficit>5\n# Use Abomination's Limb on cooldown.\nactions+=/abomination_limb\n# Use Dancing Rune Weapon if it is not already active.\nactions+=/dancing_rune_weapon,if=!buff.dancing_rune_weapon.up\n# Use the drw_up action list if Dancing Rune Weapon is active.\nactions+=/run_action_list,name=drw_up,strict=1,if=buff.dancing_rune_weapon.up\n# Call the standard action list (which will not be used if Dancing Rune Weapon is active).\nactions+=/call_action_list,name=standard\n\n# Use Death's Due if Death and Decay is not ticking and you don't have Death's Due or Crimson Scourge up.\nactions.covenants=deaths_due,if=!death_and_decay.ticking&(!buff.deaths_due.up||buff.deaths_due.remains<4||buff.crimson_scourge.up)\n# Use Swarming Mist if Dancing Rune Weapon is active for 3+ seconds and you have 90+ Runic Power (offset by number of targets).\nactions.covenants+=/swarming_mist,if=cooldown.dancing_rune_weapon.remains>3&runic_power>=(90-(spell_targets.swarming_mist*3))\n# Use Fleshcraft if you have Pustule Eruption or Volatile Solvent and Volatile Solvent is not active.\nactions.covenants+=/fleshcraft,if=soulbind.pustule_eruption||soulbind.volatile_solvent&!buff.volatile_solvent_humanoid.up,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent\n# Use Shackle the Unworthy if you have 3 or fewer runes and Runic Power is below 100.\nactions.covenants+=/shackle_the_unworthy,if=rune<3&runic_power<100\n\n# Use Blood Boil if Blood Plague is not active.\nactions.drw_up+=/blood_boil,if=!dot.blood_plague.ticking\n# Use Tombstone if you have 5+ Bone Shield stacks, 2+ runes, 30+ Runic Power, and Shattering Bones is not talented or Death and Decay is not ticking.\nactions.drw_up+=/tombstone,if=buff.bone_shield.stack>5&rune>=2&runic_power.deficit>=30&!talent.shattering_bone||(talent.shattering_bone.enabled&death_and_decay.ticking)\n# Use Death Strike if Coagulatopathy is down or about to expire or if Icy Talons is down or about to expire.\nactions.drw_up+=/death_strike,if=buff.coagulopathy.remains<=gcd||buff.icy_talons.remains<=gcd\n# Use Death's Caress if\nactions.drw_up+=/deaths_caress,if=(buff.bone_shield.remains<=4||(buff.bone_shield.stack<variable.bone_shield_refresh_value+1))&runic_power.deficit>10&rune.time_to_3>gcd\nactions.drw_up+=/marrowrend,if=(buff.bone_shield.remains<=4||buff.bone_shield.stack<variable.bone_shield_refresh_value)&runic_power.deficit>20\nactions.drw_up+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>(dot.soul_reaper.remains+5)\nactions.drw_up+=/soul_reaper,cycle_targets=1,if=target.time_to_pct_35<5&active_enemies>=2&target.time_to_die>(dot.soul_reaper.remains+5)\nactions.drw_up+=/death_and_decay,if=!death_and_decay.ticking&(talent.sanguine_ground||talent.unholy_ground)\nactions.drw_up+=/blood_boil,if=spell_targets.blood_boil>2&charges_fractional>=1.1\nactions.drw_up+=/variable,name=heart_strike_rp_drw,value=(25+spell_targets.heart_strike*talent.heartbreaker.enabled*2)\nactions.drw_up+=/death_strike,if=runic_power.deficit<=variable.heart_strike_rp_drw||runic_power>=variable.death_strike_dump_amount\nactions.drw_up+=/consumption\nactions.drw_up+=/blood_boil,if=charges_fractional>=1.1&buff.hemostasis.stack<5\nactions.drw_up+=/heart_strike,if=rune.time_to_2<gcd||runic_power.deficit>=variable.heart_strike_rp_drw\n\nactions.racials=blood_fury,if=cooldown.dancing_rune_weapon.ready&(!cooldown.blooddrinker.ready||!talent.blooddrinker.enabled)\nactions.racials+=/berserking\nactions.racials+=/arcane_pulse,if=active_enemies>=2||rune<1&runic_power.deficit>60\nactions.racials+=/lights_judgment,if=buff.unholy_strength.up\nactions.racials+=/ancestral_call\nactions.racials+=/fireblood\nactions.racials+=/bag_of_tricks\nactions.racials+=/arcane_torrent,if=runic_power.deficit>20\n\nactions.standard+=/tombstone,if=buff.bone_shield.stack>5&rune>=2&runic_power.deficit>=30&!talent.shattering_bone||(talent.shattering_bone.enabled&death_and_decay.ticking)&cooldown.dancing_rune_weapon.remains>=25\nactions.standard+=/variable,name=heart_strike_rp,value=(10+spell_targets.heart_strike*talent.heartbreaker.enabled*2)\nactions.standard+=/death_strike,if=buff.coagulopathy.remains<=gcd||buff.icy_talons.remains<=gcd||runic_power>=variable.death_strike_dump_amount||runic_power.deficit<=variable.heart_strike_rp||boss&fight_remains<10\nactions.standard+=/deaths_caress,if=(buff.bone_shield.remains<=4||(buff.bone_shield.stack<variable.bone_shield_refresh_value+1))&runic_power.deficit>10&!(talent.insatiable_blade&cooldown.dancing_rune_weapon.remains<buff.bone_shield.remains)&!talent.consumption.enabled&!talent.blooddrinker.enabled&rune.time_to_3>gcd\nactions.standard+=/marrowrend,if=(buff.bone_shield.remains<=4||buff.bone_shield.stack<variable.bone_shield_refresh_value)&runic_power.deficit>20&!(talent.insatiable_blade&cooldown.dancing_rune_weapon.remains<buff.bone_shield.remains)\nactions.standard+=/consumption\nactions.standard+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>(dot.soul_reaper.remains+5)\nactions.standard+=/soul_reaper,cycle_targets=1,if=target.time_to_pct_35<5&active_enemies>=2&target.time_to_die>(dot.soul_reaper.remains+5)\nactions.standard+=/bonestorm,if=runic_power>=100\nactions.standard+=/blood_boil,if=charges_fractional>=1.8&(buff.hemostasis.stack<=(5-spell_targets.blood_boil)||spell_targets.blood_boil>2)\nactions.standard+=/heart_strike,if=rune.time_to_4<gcd\nactions.standard+=/blood_boil,if=charges_fractional>=1.1\nactions.standard+=/heart_strike,if=(rune>1&(rune.time_to_3<gcd||buff.bone_shield.stack>7))\n\n# Prioritize damage dealing on use trinkets over trinkets that give buffs\nactions.trinkets+=/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)\nactions.trinkets+=/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)\nactions.trinkets+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.trinkets+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\nactions.trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs\nactions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs\nactions.trinkets+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&(buff.dancing_rune_weapon.up||!talent.dancing_rune_weapon||cooldown.dancing_rune_weapon.remains>20)&(variable.trinket_2_exclude||trinket.2.cooldown.remains||!trinket.2.has_cooldown||variable.trinket_2_buffs)\nactions.trinkets+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&(buff.dancing_rune_weapon.up||!talent.dancing_rune_weapon||cooldown.dancing_rune_weapon.remains>20)&(variable.trinket_1_exclude||trinket.1.cooldown.remains||!trinket.1.has_cooldown||variable.trinket_1_buffs)",
},
["Arcane"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230126,
["spec"] = 62,
["desc"] = "",
["lists"] = {
["aoe_rotation"] = {
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 2",
["action"] = "arcane_orb",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! talent.evocation.enabled || cooldown.evocation.remains > 12 ) & ( ! talent.arcane_surge.enabled || cooldown.arcane_surge.remains > 12 ) & ( ! talent.touch_of_the_magi.enabled || cooldown.touch_of_the_magi.remains > 12 ) & buff.arcane_surge.down",
["action"] = "shifting_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.arcane_surge.down",
["action"] = "ice_nova",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.arcane_surge.down",
["action"] = "nether_tempest",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.clearcasting.react & talent.arcane_harmony.enabled & talent.rune_of_power.enabled & cooldown.rune_of_power.remains < ( gcd.max * 2 )",
["action"] = "arcane_missiles",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack || mana.pct < 10",
["action"] = "arcane_barrage",
}, -- [6]
{
["action"] = "arcane_explosion",
["enabled"] = true,
}, -- [7]
},
["aoe_spark_phase"] = {
{
["enabled"] = true,
["buff_name"] = "presence_of_mind",
["criteria"] = "prev_gcd.1.arcane_blast & cooldown.arcane_surge.remains > 75",
["action"] = "cancel_buff",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.arcane_surge.remains < 75 & cooldown.arcane_surge.remains > 30",
["action"] = "rune_of_power",
}, -- [2]
{
["action"] = "radiant_spark",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["action"] = "timebreaching_talon",
["criteria"] = "cooldown.arcane_surge.remains <= ( gcd.max * 2 )",
["name"] = "timebreaching_talon",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack >= 3 & prev_gcd.1.radiant_spark",
["action"] = "arcane_explosion",
}, -- [5]
{
["enabled"] = true,
["action"] = "arcane_orb",
["criteria"] = "buff.arcane_charge.stack < 3",
["line_cd"] = "15",
}, -- [6]
{
["enabled"] = true,
["action"] = "nether_tempest",
["criteria"] = "talent.arcane_echo.enabled",
["line_cd"] = "15",
}, -- [7]
{
["action"] = "arcane_surge",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.arcane_surge.remains < 75 & debuff.radiant_spark_vulnerability.stack = 4",
["action"] = "arcane_barrage",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( debuff.radiant_spark_vulnerability.stack = 2 & cooldown.arcane_surge.remains > 75 ) || ( debuff.radiant_spark_vulnerability.stack = 1 & cooldown.arcane_surge.remains < 75 )",
["action"] = "arcane_barrage",
}, -- [10]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "prev_gcd.1.arcane_barrage",
["action"] = "touch_of_the_magi",
}, -- [11]
{
["action"] = "presence_of_mind",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "debuff.radiant_spark_vulnerability.stack = 2 || debuff.radiant_spark_vulnerability.stack = 3",
["action"] = "arcane_blast",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( debuff.radiant_spark_vulnerability.stack = 4 & buff.arcane_surge.up ) || ( debuff.radiant_spark_vulnerability.stack = 3 & buff.arcane_surge.down )",
["action"] = "arcane_barrage",
}, -- [14]
},
["aoe_touch_phase"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1 - variable.conserve_mana",
["var_name"] = "conserve_mana",
["criteria"] = "debuff.touch_of_the_magi.remains > 9",
}, -- [1]
{
["action"] = "meteor",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.arcane_bombardment.enabled & target.health.pct < 35 & debuff.touch_of_the_magi.remains <= gcd.max",
["action"] = "arcane_barrage",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & active_enemies >= variable.aoe_target_count & cooldown.arcane_orb.remains <= execute_time",
["action"] = "arcane_barrage",
}, -- [4]
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["criteria"] = "buff.clearcasting.react & ( talent.arcane_echo.enabled || talent.arcane_harmony.enabled )",
}, -- [5]
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["criteria"] = "buff.clearcasting.stack > 1 & talent.conjure_mana_gem.enabled & cooldown.use_mana_gem.ready",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 2",
["action"] = "arcane_orb",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack",
["action"] = "arcane_barrage",
}, -- [8]
{
["action"] = "arcane_explosion",
["enabled"] = true,
}, -- [9]
},
["touch_phase"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1 - variable.conserve_mana",
["var_name"] = "conserve_mana",
["criteria"] = "debuff.touch_of_the_magi.remains > 9",
}, -- [1]
{
["action"] = "meteor",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( ! talent.arcane_bombardment.enabled || target.health.pct > 35 ) & buff.arcane_surge.up & debuff.touch_of_the_magi.remains <= gcd.max",
["action"] = "presence_of_mind",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.presence_of_mind.up & buff.arcane_charge.stack = buff.arcane_charge.max_stack",
["action"] = "arcane_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.arcane_harmony.up || ( talent.arcane_bombardment.enabled & target.health.pct < 35 ) ) & debuff.touch_of_the_magi.remains <= gcd.max",
["action"] = "arcane_barrage",
}, -- [5]
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["criteria"] = "buff.clearcasting.stack > 1 & talent.conjure_mana_gem.enabled & cooldown.use_mana_gem.ready",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.nether_precision.up",
["action"] = "arcane_blast",
}, -- [7]
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["criteria"] = "buff.clearcasting.react & ( debuff.touch_of_the_magi.remains > execute_time || ! talent.presence_of_mind.enabled )",
}, -- [8]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [9]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [10]
},
["rotation"] = {
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 3 & ( buff.bloodlust.down || mana.pct > 70 || cooldown.touch_of_the_magi.remains > 30 )",
["action"] = "arcane_orb",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( ! talent.evocation.enabled || cooldown.evocation.remains > 12 ) & ( ! talent.arcane_surge.enabled || cooldown.arcane_surge.remains > 12 ) & ( ! talent.touch_of_the_magi.enabled || cooldown.touch_of_the_magi.remains > 12 ) & buff.arcane_surge.down & fight_remains > 15",
["action"] = "shifting_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 3 & target.health.pct < 35 & talent.arcane_bombardment.enabled",
["action"] = "presence_of_mind",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.presence_of_mind.up & target.health.pct < 35 & talent.arcane_bombardment.enabled & buff.arcane_charge.stack < 3",
["action"] = "arcane_blast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.clearcasting.react & buff.clearcasting.stack = buff.clearcasting.max_stack",
["action"] = "arcane_missiles",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & ( buff.temporal_warp.up || mana.pct < 10 || ! talent.shifting_power.enabled ) & buff.arcane_surge.down & fight_remains >= 12",
["action"] = "nether_tempest",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & mana.pct < 50 & ! talent.evocation.enabled & fight_remains > 20",
["action"] = "arcane_barrage",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & mana.pct < 70 & variable.conserve_mana & buff.bloodlust.up & cooldown.touch_of_the_magi.remains > 5 & fight_remains > 20",
["action"] = "arcane_barrage",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.clearcasting.react & buff.concentration.up & buff.arcane_charge.stack = buff.arcane_charge.max_stack",
["action"] = "arcane_missiles",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.nether_precision.up",
["action"] = "arcane_blast",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & mana.pct < 60 & variable.conserve_mana & ( ! talent.rune_of_power.enabled || cooldown.rune_of_power.remains > 5 ) & cooldown.touch_of_the_magi.remains > 10 & cooldown.evocation.remains > 40 & fight_remains > 20",
["action"] = "arcane_barrage",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.clearcasting.react & buff.nether_precision.down",
["action"] = "arcane_missiles",
}, -- [12]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [13]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [14]
},
["standard_cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack",
["action"] = "arcane_surge",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_surge & talent.arcane_echo.enabled",
["action"] = "nether_tempest",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.arcane_surge.up & cooldown.touch_of_the_magi.ready",
["action"] = "meteor",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.arcane_surge.up & cooldown.touch_of_the_magi.ready",
["action"] = "arcane_barrage",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.touch_of_the_magi.remains <= ( gcd.max * 2 ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack",
["action"] = "rune_of_power",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.touch_of_the_magi.remains <= ( gcd.max * 2 ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack",
["action"] = "meteor",
}, -- [6]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "prev_gcd.1.arcane_barrage",
["action"] = "touch_of_the_magi",
}, -- [7]
},
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "counterspell",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.arcane_surge.ready",
["action"] = "potion",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.temporal_warp.enabled & buff.exhaustion.up & ( cooldown.arcane_surge.ready || fight_remains <= 40 || buff.arcane_surge.up & fight_remains <= 80 )",
["action"] = "time_warp",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.arcane_surge.down & buff.rune_of_power.down & debuff.touch_of_the_magi.down",
["action"] = "lights_judgment",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.arcane_surge.down & buff.rune_of_power.down & debuff.touch_of_the_magi.down",
["action"] = "bag_of_tricks",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.arcane_surge & ! ( buff.temporal_warp.up & buff.bloodlust.up ) ) || ( buff.arcane_surge.up & debuff.touch_of_the_magi.up )",
["action"] = "berserking",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_surge",
["action"] = "blood_fury",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_surge",
["action"] = "fireblood",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_surge",
["action"] = "ancestral_call",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_surge",
["action"] = "use_items",
}, -- [10]
{
["enabled"] = true,
["action"] = "conjured_chillglobe",
["criteria"] = "mana.pct > 65 & ( ! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20 )",
["name"] = "conjured_chillglobe",
}, -- [11]
{
["enabled"] = true,
["action"] = "darkmoon_deck_rime",
["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20",
["name"] = "darkmoon_deck_rime",
}, -- [12]
{
["enabled"] = true,
["action"] = "darkmoon_deck_dance",
["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20",
["name"] = "darkmoon_deck_dance",
}, -- [13]
{
["enabled"] = true,
["action"] = "darkmoon_deck_inferno",
["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20",
["name"] = "darkmoon_deck_inferno",
}, -- [14]
{
["enabled"] = true,
["action"] = "desperate_invokers_codex",
["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20",
["name"] = "desperate_invokers_codex",
}, -- [15]
{
["enabled"] = true,
["action"] = "iceblood_deathsnare",
["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20",
["name"] = "iceblood_deathsnare",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "fight_remains < 2",
["action"] = "arcane_barrage",
}, -- [17]
{
["enabled"] = true,
["interrupt_if"] = "mana.pct>=95&(!talent.siphon_storm||talent.siphon_storm&fight_remains>10&cooldown.arcane_surge.remains<1)",
["action"] = "evocation",
["criteria"] = "buff.rune_of_power.down & buff.arcane_surge.down & debuff.touch_of_the_magi.down & ( mana.pct < 10 & cooldown.touch_of_the_magi.remains < 25 )",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & debuff.touch_of_the_magi.down & buff.arcane_surge.down & cooldown.arcane_surge.remains < fight_remains & ! mana_gem_charges",
["action"] = "conjure_mana_gem",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.cascading_power.enabled & buff.clearcasting.stack < 2 & buff.arcane_surge.up",
["action"] = "mana_gem",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "! talent.cascading_power.enabled & prev_gcd.1.arcane_surge",
["action"] = "mana_gem",
}, -- [21]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.radiant_spark.enabled & variable.aoe_spark_phase",
["list_name"] = "aoe_spark_phase",
}, -- [22]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.radiant_spark.enabled & variable.spark_phase",
["list_name"] = "spark_phase",
}, -- [23]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "debuff.touch_of_the_magi.up & active_enemies >= variable.aoe_target_count",
["list_name"] = "aoe_touch_phase",
}, -- [24]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "debuff.touch_of_the_magi.up & active_enemies < variable.aoe_target_count",
["list_name"] = "touch_phase",
}, -- [25]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.rop_phase",
["list_name"] = "rop_phase",
}, -- [26]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.radiant_spark.enabled & ( ! talent.rune_of_power.enabled || active_enemies >= variable.aoe_target_count )",
["list_name"] = "standard_cooldowns",
}, -- [27]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= variable.aoe_target_count",
["list_name"] = "aoe_rotation",
}, -- [28]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "rotation",
}, -- [29]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["action"] = "arcane_familiar",
["enabled"] = true,
}, -- [2]
{
["action"] = "conjure_mana_gem",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "opener_min_mana",
["value"] = "225000",
["value_else"] = "200000",
["criteria"] = "talent.arcane_harmony.enabled",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.gladiators_badge || equipped.irideus_fragment || equipped.erupting_spear_fragment || equipped.spoils_of_neltharus || equipped.tome_of_unstable_power || equipped.timebreaching_talon || equipped.horn_of_valor",
["var_name"] = "steroid_trinket_equipped",
}, -- [5]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.siphon_storm.enabled",
["action"] = "arcane_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.siphon_storm.enabled",
["action"] = "evocation",
}, -- [8]
},
["rop_phase"] = {
{
["action"] = "rune_of_power",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.rune_of_power",
["action"] = "arcane_blast",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_blast & prev_gcd.2.rune_of_power",
["action"] = "arcane_blast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_blast & prev_gcd.3.rune_of_power",
["action"] = "arcane_blast",
}, -- [4]
{
["action"] = "arcane_surge",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_blast & prev_gcd.4.rune_of_power",
["action"] = "arcane_blast",
}, -- [6]
{
["enabled"] = true,
["action"] = "nether_tempest",
["criteria"] = "talent.arcane_echo.enabled",
["line_cd"] = "15",
}, -- [7]
{
["action"] = "meteor",
["enabled"] = true,
}, -- [8]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "prev_gcd.1.arcane_barrage",
["action"] = "touch_of_the_magi",
}, -- [10]
},
["spark_phase"] = {
{
["enabled"] = true,
["action"] = "nether_tempest",
["criteria"] = "! ticking & variable.opener & buff.bloodlust.up",
["line_cd"] = "45",
}, -- [1]
{
["action"] = "rune_of_power",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.opener & cooldown.arcane_surge.ready & buff.bloodlust.up & mana >= variable.opener_min_mana & buff.rune_of_power.remains > gcd.max * 4",
["action"] = "arcane_blast",
}, -- [3]
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["criteria"] = "variable.opener & buff.bloodlust.up & buff.clearcasting.react & buff.clearcasting.stack >= 2 & cooldown.radiant_spark.remains < 5 & buff.nether_precision.down",
}, -- [4]
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["criteria"] = "talent.arcane_harmony.enabled & buff.arcane_harmony.stack < 15 & ( ( variable.opener & buff.bloodlust.up ) || buff.clearcasting.react & cooldown.radiant_spark.remains < 5 ) & cooldown.arcane_surge.remains < 30",
}, -- [5]
{
["action"] = "radiant_spark",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "timebreaching_talon",
["criteria"] = "cooldown.arcane_surge.remains <= ( gcd.max * 3 )",
["name"] = "timebreaching_talon",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( prev_gcd.4.radiant_spark & cooldown.arcane_surge.remains <= execute_time ) || ! ticking & prev_gcd.5.radiant_spark",
["action"] = "nether_tempest",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( ! talent.nether_tempest.enabled & prev_gcd.4.radiant_spark ) || prev_gcd.1.nether_tempest",
["action"] = "arcane_surge",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( talent.nether_tempest.enabled & prev_gcd.6.radiant_spark ) || ( ! talent.nether_tempest.enabled & prev_gcd.5.radiant_spark )",
["action"] = "meteor",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cast_time >= gcd.max & execute_time < debuff.radiant_spark_vulnerability.remains & ( ! talent.arcane_bombardment.enabled || target.health.pct >= 35 ) & ( talent.nether_tempest.enabled & prev_gcd.6.radiant_spark || ! talent.nether_tempest.enabled & prev_gcd.5.radiant_spark ) & ! talent.meteor.enabled",
["action"] = "arcane_blast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "debuff.radiant_spark_vulnerability.stack = 4",
["action"] = "arcane_barrage",
}, -- [12]
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "prev_gcd.1.arcane_barrage & ( action.arcane_barrage.in_flight_remains <= 0.2 || gcd.remains <= 0.2 )",
["action"] = "touch_of_the_magi",
}, -- [13]
{
["action"] = "arcane_blast",
["enabled"] = true,
}, -- [14]
{
["action"] = "arcane_barrage",
["enabled"] = true,
}, -- [15]
},
},
["version"] = 20230126,
["warnings"] = "The import for 'aoe_rotation' required some automated changes.\nLine 2: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 2: Converted 'talent.arcane_surge' to 'talent.arcane_surge.enabled' (1x).\nLine 2: Converted 'talent.touch_of_the_magi' to 'talent.touch_of_the_magi.enabled' (1x).\nLine 5: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 5: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'aoe_spark_phase' required some automated changes.\nLine 7: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\n\nThe import for 'aoe_touch_phase' required some automated changes.\nLine 3: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 5: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\nLine 5: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 6: Converted 'talent.conjure_mana_gem' to 'talent.conjure_mana_gem.enabled' (1x).\n\nThe import for 'touch_phase' required some automated changes.\nLine 3: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 5: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 6: Converted 'talent.conjure_mana_gem' to 'talent.conjure_mana_gem.enabled' (1x).\nLine 8: Converted 'talent.presence_of_mind' to 'talent.presence_of_mind.enabled' (1x).\n\nThe import for 'rotation' required some automated changes.\nLine 2: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 2: Converted 'talent.arcane_surge' to 'talent.arcane_surge.enabled' (1x).\nLine 2: Converted 'talent.touch_of_the_magi' to 'talent.touch_of_the_magi.enabled' (1x).\nLine 3: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 4: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 6: Converted 'talent.shifting_power' to 'talent.shifting_power.enabled' (1x).\nLine 7: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 11: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'standard_cooldowns' required some automated changes.\nLine 2: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.temporal_warp' to 'talent.temporal_warp.enabled' (1x).\nLine 20: Converted 'talent.cascading_power' to 'talent.cascading_power.enabled' (1x).\nLine 21: Converted 'talent.cascading_power' to 'talent.cascading_power.enabled' (1x).\nLine 22: Converted 'talent.radiant_spark' to 'talent.radiant_spark.enabled' (1x).\nLine 23: Converted 'talent.radiant_spark' to 'talent.radiant_spark.enabled' (1x).\nLine 27: Converted 'talent.radiant_spark' to 'talent.radiant_spark.enabled' (1x).\nLine 27: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'rop_phase' required some automated changes.\nLine 7: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\n\nThe import for 'spark_phase' required some automated changes.\nLine 5: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 9: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 10: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 10: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 11: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 11: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 11: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 11: Converted 'talent.meteor' to 'talent.meteor.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 7: Converted 'talent.siphon_storm' to 'talent.siphon_storm.enabled' (1x).\nLine 8: Converted 'talent.siphon_storm' to 'talent.siphon_storm.enabled' (1x).\n\nImported 10 action lists.\n",
["profile"] = "actions.precombat+=/arcane_intellect\nactions.precombat+=/arcane_familiar\nactions.precombat+=/conjure_mana_gem\n## actions.precombat+=/variable,name=aoe_target_count,op=reset,default=3\n## actions.precombat+=/variable,name=conserve_mana,op=set,value=0\nactions.precombat+=/variable,name=opener_min_mana,op=setif,condition=talent.arcane_harmony,value=225000,value_else=200000\nactions.precombat+=/variable,name=steroid_trinket_equipped,op=set,value=equipped.gladiators_badge||equipped.irideus_fragment||equipped.erupting_spear_fragment||equipped.spoils_of_neltharus||equipped.tome_of_unstable_power||equipped.timebreaching_talon||equipped.horn_of_valor\nactions.precombat+=/mirror_image\nactions.precombat+=/arcane_blast,if=!talent.siphon_storm\nactions.precombat+=/evocation,if=talent.siphon_storm\n\n# Executed every time the actor is available.\nactions=counterspell\nactions+=/potion,if=cooldown.arcane_surge.ready\nactions+=/time_warp,if=talent.temporal_warp&buff.exhaustion.up&(cooldown.arcane_surge.ready||fight_remains<=40||buff.arcane_surge.up&fight_remains<=80)\nactions+=/lights_judgment,if=buff.arcane_surge.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down\nactions+=/bag_of_tricks,if=buff.arcane_surge.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down\nactions+=/berserking,if=(prev_gcd.1.arcane_surge&!(buff.temporal_warp.up&buff.bloodlust.up))||(buff.arcane_surge.up&debuff.touch_of_the_magi.up)\nactions+=/blood_fury,if=prev_gcd.1.arcane_surge\nactions+=/fireblood,if=prev_gcd.1.arcane_surge\n## Not supported by the addon; cannot control if another player grants Power Infusion.\n## actions+=/invoke_external_buff,name=power_infusion,if=!talent.radiant_spark&prev_gcd.1.arcane_surge\nactions+=/ancestral_call,if=prev_gcd.1.arcane_surge\nactions+=/use_items,if=prev_gcd.1.arcane_surge\n## TODO: actions+=/use_item,name=tinker_breath_of_neltharion,if=cooldown.arcane_surge.remains&buff.rune_of_power.down&buff.arcane_surge.down&debuff.touch_of_the_magi.down\nactions+=/use_item,name=conjured_chillglobe,if=mana.pct>65&(!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20)\nactions+=/use_item,name=darkmoon_deck_rime,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=darkmoon_deck_dance,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=darkmoon_deck_inferno,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=desperate_invokers_codex,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=iceblood_deathsnare,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\n## actions+=/variable,name=aoe_spark_phase,op=set,value=1,if=active_enemies>=variable.aoe_target_count&(action.arcane_orb.charges>0||buff.arcane_charge.stack>=3)&(!talent.rune_of_power||cooldown.rune_of_power.ready)&cooldown.radiant_spark.ready&cooldown.touch_of_the_magi.remains<=(gcd.max*2)\n## actions+=/variable,name=aoe_spark_phase,op=set,value=0,if=variable.aoe_spark_phase&debuff.radiant_spark_vulnerability.down&dot.radiant_spark.remains<5&cooldown.radiant_spark.remains\n## actions+=/variable,name=spark_phase,op=set,value=1,if=buff.arcane_charge.stack>=3&active_enemies<variable.aoe_target_count&(!talent.rune_of_power||cooldown.rune_of_power.ready)&cooldown.radiant_spark.ready&cooldown.touch_of_the_magi.remains<=(gcd.max*7)\n## actions+=/variable,name=spark_phase,op=set,value=0,if=variable.spark_phase&debuff.radiant_spark_vulnerability.down&dot.radiant_spark.remains<5&cooldown.radiant_spark.remains\n## actions+=/variable,name=rop_phase,op=set,value=1,if=talent.rune_of_power&!talent.radiant_spark&buff.arcane_charge.stack>=3&cooldown.rune_of_power.ready&active_enemies<variable.aoe_target_count\n## actions+=/variable,name=rop_phase,op=set,value=0,if=debuff.touch_of_the_magi.up||!talent.rune_of_power\n## actions+=/variable,name=opener,op=set,if=debuff.touch_of_the_magi.up&variable.opener,value=0\n## actions+=/cancel_action,if=action.evocation.channeling&mana.pct>=95&!talent.siphon_storm\n## actions+=/cancel_action,if=action.evocation.channeling&(mana.pct>fight_remains*4)&!(fight_remains>10&cooldown.arcane_surge.remains<1)\nactions+=/arcane_barrage,if=fight_remains<2\nactions+=/evocation,if=buff.rune_of_power.down&buff.arcane_surge.down&debuff.touch_of_the_magi.down&(mana.pct<10&cooldown.touch_of_the_magi.remains<25),interrupt_if=mana.pct>=95&(!talent.siphon_storm||talent.siphon_storm&fight_remains>10&cooldown.arcane_surge.remains<1)\nactions+=/conjure_mana_gem,if=buff.rune_of_power.down&debuff.touch_of_the_magi.down&buff.arcane_surge.down&cooldown.arcane_surge.remains<fight_remains&!mana_gem_charges\nactions+=/use_mana_gem,if=talent.cascading_power&buff.clearcasting.stack<2&buff.arcane_surge.up\nactions+=/use_mana_gem,if=!talent.cascading_power&prev_gcd.1.arcane_surge\nactions+=/call_action_list,name=aoe_spark_phase,strict=1,if=talent.radiant_spark&variable.aoe_spark_phase\nactions+=/call_action_list,name=spark_phase,strict=1,if=talent.radiant_spark&variable.spark_phase\nactions+=/call_action_list,name=aoe_touch_phase,strict=1,if=debuff.touch_of_the_magi.up&active_enemies>=variable.aoe_target_count\nactions+=/call_action_list,name=touch_phase,strict=1,if=debuff.touch_of_the_magi.up&active_enemies<variable.aoe_target_count\nactions+=/call_action_list,name=rop_phase,strict=1,if=variable.rop_phase\nactions+=/call_action_list,name=standard_cooldowns,strict=1,if=!talent.radiant_spark&(!talent.rune_of_power||active_enemies>=variable.aoe_target_count)\nactions+=/call_action_list,name=aoe_rotation,strict=1,if=active_enemies>=variable.aoe_target_count\nactions+=/call_action_list,name=rotation\n\nactions.aoe_rotation=arcane_orb,if=buff.arcane_charge.stack<2\nactions.aoe_rotation+=/shifting_power,if=(!talent.evocation||cooldown.evocation.remains>12)&(!talent.arcane_surge||cooldown.arcane_surge.remains>12)&(!talent.touch_of_the_magi||cooldown.touch_of_the_magi.remains>12)&buff.arcane_surge.down\nactions.aoe_rotation+=/ice_nova,if=buff.arcane_surge.down\nactions.aoe_rotation+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.arcane_surge.down\nactions.aoe_rotation+=/arcane_missiles,if=buff.clearcasting.react&talent.arcane_harmony&talent.rune_of_power&cooldown.rune_of_power.remains<(gcd.max*2)\nactions.aoe_rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack||mana.pct<10\nactions.aoe_rotation+=/arcane_explosion\n\nactions.aoe_spark_phase=cancel_buff,name=presence_of_mind,if=prev_gcd.1.arcane_blast&cooldown.arcane_surge.remains>75\nactions.aoe_spark_phase+=/rune_of_power,if=cooldown.arcane_surge.remains<75&cooldown.arcane_surge.remains>30\nactions.aoe_spark_phase+=/radiant_spark\nactions.aoe_spark_phase+=/use_item,name=timebreaching_talon,if=cooldown.arcane_surge.remains<=(gcd.max*2)\nactions.aoe_spark_phase+=/arcane_explosion,if=buff.arcane_charge.stack>=3&prev_gcd.1.radiant_spark\nactions.aoe_spark_phase+=/arcane_orb,if=buff.arcane_charge.stack<3,line_cd=15\nactions.aoe_spark_phase+=/nether_tempest,if=talent.arcane_echo,line_cd=15\nactions.aoe_spark_phase+=/arcane_surge\n## actions.aoe_spark_phase+=/wait,sec=0.05,if=cooldown.arcane_surge.remains>75&prev_gcd.1.arcane_blast&!talent.presence_of_mind,line_cd=15\n## actions.aoe_spark_phase+=/wait,sec=0.05,if=prev_gcd.1.arcane_surge,line_cd=15\n## actions.aoe_spark_phase+=/wait,sec=0.05,if=cooldown.arcane_surge.remains<75&debuff.radiant_spark_vulnerability.stack=3&!talent.presence_of_mind,line_cd=15\nactions.aoe_spark_phase+=/arcane_barrage,if=cooldown.arcane_surge.remains<75&debuff.radiant_spark_vulnerability.stack=4\nactions.aoe_spark_phase+=/arcane_barrage,if=(debuff.radiant_spark_vulnerability.stack=2&cooldown.arcane_surge.remains>75)||(debuff.radiant_spark_vulnerability.stack=1&cooldown.arcane_surge.remains<75)\nactions.aoe_spark_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage\nactions.aoe_spark_phase+=/presence_of_mind\nactions.aoe_spark_phase+=/arcane_blast,if=debuff.radiant_spark_vulnerability.stack=2||debuff.radiant_spark_vulnerability.stack=3\nactions.aoe_spark_phase+=/arcane_barrage,if=(debuff.radiant_spark_vulnerability.stack=4&buff.arcane_surge.up)||(debuff.radiant_spark_vulnerability.stack=3&buff.arcane_surge.down)\n\nactions.aoe_touch_phase+=/variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana\nactions.aoe_touch_phase+=/meteor\nactions.aoe_touch_phase+=/arcane_barrage,if=talent.arcane_bombardment&target.health.pct<35&debuff.touch_of_the_magi.remains<=gcd.max\nactions.aoe_touch_phase+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&active_enemies>=variable.aoe_target_count&cooldown.arcane_orb.remains<=execute_time\nactions.aoe_touch_phase+=/arcane_missiles,if=buff.clearcasting.react&(talent.arcane_echo||talent.arcane_harmony),chain=1\nactions.aoe_touch_phase+=/arcane_missiles,if=buff.clearcasting.stack>1&talent.conjure_mana_gem&cooldown.use_mana_gem.ready,chain=1\nactions.aoe_touch_phase+=/arcane_orb,if=buff.arcane_charge.stack<2\nactions.aoe_touch_phase+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.aoe_touch_phase+=/arcane_explosion\n\nactions.rop_phase=rune_of_power\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.rune_of_power\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.2.rune_of_power\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.3.rune_of_power\nactions.rop_phase+=/arcane_surge\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.4.rune_of_power\nactions.rop_phase+=/nether_tempest,if=talent.arcane_echo,line_cd=15\nactions.rop_phase+=/meteor\nactions.rop_phase+=/arcane_barrage\nactions.rop_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage\n\nactions.rotation+=/arcane_orb,if=buff.arcane_charge.stack<3&(buff.bloodlust.down||mana.pct>70||cooldown.touch_of_the_magi.remains>30)\nactions.rotation+=/shifting_power,if=(!talent.evocation||cooldown.evocation.remains>12)&(!talent.arcane_surge||cooldown.arcane_surge.remains>12)&(!talent.touch_of_the_magi||cooldown.touch_of_the_magi.remains>12)&buff.arcane_surge.down&fight_remains>15\nactions.rotation+=/presence_of_mind,if=buff.arcane_charge.stack<3&target.health.pct<35&talent.arcane_bombardment\nactions.rotation+=/arcane_blast,if=buff.presence_of_mind.up&target.health.pct<35&talent.arcane_bombardment&buff.arcane_charge.stack<3\nactions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.clearcasting.stack=buff.clearcasting.max_stack\nactions.rotation+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(buff.temporal_warp.up||mana.pct<10||!talent.shifting_power)&buff.arcane_surge.down&fight_remains>=12\nactions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<50&!talent.evocation&fight_remains>20\nactions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<70&variable.conserve_mana&buff.bloodlust.up&cooldown.touch_of_the_magi.remains>5&fight_remains>20\nactions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.concentration.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.rotation+=/arcane_blast,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.nether_precision.up\nactions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<60&variable.conserve_mana&(!talent.rune_of_power||cooldown.rune_of_power.remains>5)&cooldown.touch_of_the_magi.remains>10&cooldown.evocation.remains>40&fight_remains>20\nactions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.nether_precision.down\nactions.rotation+=/arcane_blast\nactions.rotation+=/arcane_barrage\n\nactions.spark_phase+=/nether_tempest,if=!ticking&variable.opener&buff.bloodlust.up,line_cd=45\nactions.spark_phase+=/rune_of_power\nactions.spark_phase+=/arcane_blast,if=variable.opener&cooldown.arcane_surge.ready&buff.bloodlust.up&mana>=variable.opener_min_mana&buff.rune_of_power.remains>gcd.max*4\nactions.spark_phase+=/arcane_missiles,if=variable.opener&buff.bloodlust.up&buff.clearcasting.react&buff.clearcasting.stack>=2&cooldown.radiant_spark.remains<5&buff.nether_precision.down,chain=1\nactions.spark_phase+=/arcane_missiles,if=talent.arcane_harmony&buff.arcane_harmony.stack<15&((variable.opener&buff.bloodlust.up)||buff.clearcasting.react&cooldown.radiant_spark.remains<5)&cooldown.arcane_surge.remains<30,chain=1\nactions.spark_phase+=/radiant_spark\nactions.spark_phase+=/use_item,name=timebreaching_talon,if=cooldown.arcane_surge.remains<=(gcd.max*3)\n## Not supported by addon; cannot control if another player grants you Power Infusion.\n## actions.spark_phase+=/invoke_external_buff,name=power_infusion,if=prev_gcd.1.radiant_spark&cooldown.arcane_surge.remains<=(gcd.max*3)\nactions.spark_phase+=/nether_tempest,if=(prev_gcd.4.radiant_spark&cooldown.arcane_surge.remains<=execute_time)||!ticking&prev_gcd.5.radiant_spark\nactions.spark_phase+=/arcane_surge,if=(!talent.nether_tempest&prev_gcd.4.radiant_spark)||prev_gcd.1.nether_tempest\nactions.spark_phase+=/meteor,if=(talent.nether_tempest&prev_gcd.6.radiant_spark)||(!talent.nether_tempest&prev_gcd.5.radiant_spark)\nactions.spark_phase+=/arcane_blast,if=cast_time>=gcd&execute_time<debuff.radiant_spark_vulnerability.remains&(!talent.arcane_bombardment||target.health.pct>=35)&(talent.nether_tempest&prev_gcd.6.radiant_spark||!talent.nether_tempest&prev_gcd.5.radiant_spark)&!talent.meteor\n## actions.spark_phase+=/wait,sec=0.05,if=!talent.meteor&(talent.nether_tempest&prev_gcd.6.radiant_spark)||(!talent.nether_tempest&prev_gcd.5.radiant_spark),line_cd=15\nactions.spark_phase+=/arcane_barrage,if=debuff.radiant_spark_vulnerability.stack=4\nactions.spark_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage&(action.arcane_barrage.in_flight_remains<=0.2||gcd.remains<=0.2)\nactions.spark_phase+=/arcane_blast\nactions.spark_phase+=/arcane_barrage\n\nactions.standard_cooldowns=arcane_surge,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.standard_cooldowns+=/nether_tempest,if=prev_gcd.1.arcane_surge&talent.arcane_echo\nactions.standard_cooldowns+=/meteor,if=buff.arcane_surge.up&cooldown.touch_of_the_magi.ready\nactions.standard_cooldowns+=/arcane_barrage,if=buff.arcane_surge.up&cooldown.touch_of_the_magi.ready\nactions.standard_cooldowns+=/rune_of_power,if=cooldown.touch_of_the_magi.remains<=(gcd.max*2)&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.standard_cooldowns+=/meteor,if=cooldown.touch_of_the_magi.remains<=(gcd.max*2)&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.standard_cooldowns+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage\n\nactions.touch_phase=variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana\nactions.touch_phase+=/meteor\nactions.touch_phase+=/presence_of_mind,if=(!talent.arcane_bombardment||target.health.pct>35)&buff.arcane_surge.up&debuff.touch_of_the_magi.remains<=gcd.max\nactions.touch_phase+=/arcane_blast,if=buff.presence_of_mind.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.touch_phase+=/arcane_barrage,if=(buff.arcane_harmony.up||(talent.arcane_bombardment&target.health.pct<35))&debuff.touch_of_the_magi.remains<=gcd.max\nactions.touch_phase+=/arcane_missiles,if=buff.clearcasting.stack>1&talent.conjure_mana_gem&cooldown.use_mana_gem.ready,chain=1\nactions.touch_phase+=/arcane_blast,if=buff.nether_precision.up\nactions.touch_phase+=/arcane_missiles,if=buff.clearcasting.react&(debuff.touch_of_the_magi.remains>execute_time||!talent.presence_of_mind),chain=1\nactions.touch_phase+=/arcane_blast\nactions.touch_phase+=/arcane_barrage",
["author"] = "SimulationCraft",
},
["Frost Mage"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230123,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.flurry.charges_fractional < 1",
["action"] = "water_jet",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 7 || active_enemies >= 3 & talent.ice_caller.enabled",
["list_name"] = "aoe",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 7 & ( active_enemies < 3 || ! talent.ice_caller.enabled )",
["list_name"] = "st",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
}, -- [6]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["action"] = "water_elemental",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2",
["action"] = "blizzard",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1",
["action"] = "frostbolt",
}, -- [4]
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "buff.snowstorm.stack = buff.snowstorm.max_stack & debuff.frozen.up & ( prev_gcd.1.frost_nova || prev_gcd.1.ice_nova || prev_off_gcd.freeze )",
["action"] = "cone_of_cold",
}, -- [1]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [2]
{
["action"] = "blizzard",
["enabled"] = true,
}, -- [3]
{
["action"] = "comet_storm",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( target.level < level + 3 || target.is_add ) & ( ! talent.snowstorm.enabled & debuff.frozen.down || cooldown.cone_of_cold.ready & buff.snowstorm.stack = buff.snowstorm.max_stack )",
["action"] = "freeze",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( target.level < level + 3 || target.is_add ) & ( prev_gcd.1.comet_storm || cooldown.cone_of_cold.ready & buff.snowstorm.stack = buff.snowstorm.max_stack & gcd.max < 1 )",
["action"] = "ice_nova",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( target.level < level + 3 || target.is_add ) & active_enemies >= 5 & cooldown.cone_of_cold.ready & buff.snowstorm.stack = buff.snowstorm.max_stack & gcd.max < 1",
["action"] = "frost_nova",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.snowstorm.stack = buff.snowstorm.max_stack",
["action"] = "cone_of_cold",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown_react & remaining_winters_chill = 0 & debuff.winters_chill.down & ( prev_gcd.1.frostbolt || ( active_enemies >= 7 || charges = max_charges ) & buff.fingers_of_frost.react = 0 )",
["action"] = "flurry",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react || debuff.frozen.remains > travel_time || remaining_winters_chill",
["action"] = "ice_lance",
}, -- [10]
{
["action"] = "shifting_power",
["enabled"] = true,
}, -- [11]
{
["action"] = "ice_nova",
["enabled"] = true,
}, -- [12]
{
["action"] = "meteor",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 7",
["action"] = "dragons_breath",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "mana.pct > 30 & active_enemies >= 7",
["action"] = "arcane_explosion",
}, -- [15]
{
["action"] = "ebonbolt",
["enabled"] = true,
}, -- [16]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [17]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "buff.exhaustion.up & buff.bloodlust.down",
["action"] = "time_warp",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_off_gcd.icy_veins || boss & fight_remains < 60",
["action"] = "potion",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & ( buff.icy_veins.down || talent.rune_of_power.enabled )",
["action"] = "icy_veins",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & cooldown.icy_veins.remains > 10",
["action"] = "rune_of_power",
}, -- [4]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [5]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [6]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [7]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [8]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [9]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [10]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.flurry",
["action"] = "meteor",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.flurry",
["action"] = "comet_storm",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown_react & remaining_winters_chill = 0 & debuff.winters_chill.down & ( prev_gcd.1.frostbolt || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 1 & buff.freezing_winds.down",
["action"] = "ray_of_frost",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill",
["action"] = "glacial_spike",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.snowstorm.stack = buff.snowstorm.max_stack & remaining_winters_chill",
["action"] = "cone_of_cold",
}, -- [6]
{
["action"] = "frozen_orb",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 & talent.ice_caller.enabled & talent.freezing_rain.enabled",
["action"] = "blizzard",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down",
["action"] = "shifting_power",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.react & ! prev_gcd.1.glacial_spike || remaining_winters_chill",
["action"] = "ice_lance",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 4",
["action"] = "ice_nova",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "action.flurry.cooldown_react",
["action"] = "glacial_spike",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.flurry.charges_fractional < 1",
["action"] = "ebonbolt",
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
{
["action"] = "frostbolt",
["enabled"] = true,
}, -- [15]
},
["movement"] = {
{
["enabled"] = true,
["criteria"] = "movement.distance > 10",
["action"] = "blink",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.ice_floes.down",
["action"] = "ice_floes",
}, -- [2]
{
["action"] = "ice_nova",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "mana.pct > 30 & active_enemies >= 2",
["action"] = "arcane_explosion",
}, -- [4]
{
["action"] = "fire_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "ice_lance",
["enabled"] = true,
}, -- [6]
},
},
["version"] = 20230123,
["warnings"] = "The import for 'default' required some automated changes.\nLine 4: Converted 'talent.ice_caller' to 'talent.ice_caller.enabled' (1x).\nLine 5: Converted 'talent.ice_caller' to 'talent.ice_caller.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 5: Converted 'talent.snowstorm' to 'talent.snowstorm.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 3: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 8: Converted 'talent.ice_caller' to 'talent.ice_caller.enabled' (1x).\nLine 8: Converted 'talent.freezing_rain' to 'talent.freezing_rain.enabled' (1x).\n\nImported 6 action lists.\n",
["profile"] = "actions.precombat+=/arcane_intellect\nactions.precombat+=/summon_water_elemental\nactions.precombat+=/blizzard,if=active_enemies>=2\nactions.precombat+=/frostbolt,if=active_enemies=1\n\nactions+=/counterspell\nactions+=/water_jet,if=cooldown.flurry.charges_fractional<1\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>=7||active_enemies>=3&talent.ice_caller\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<7&(active_enemies<3||!talent.ice_caller)\nactions+=/call_action_list,name=movement\n\nactions.aoe+=/cone_of_cold,if=buff.snowstorm.stack=buff.snowstorm.max_stack&debuff.frozen.up&(prev_gcd.1.frost_nova||prev_gcd.1.ice_nova||prev_off_gcd.freeze)\nactions.aoe+=/frozen_orb\nactions.aoe+=/blizzard\nactions.aoe+=/comet_storm\nactions.aoe+=/freeze,if=(target.level<level+3||target.is_add)&(!talent.snowstorm&debuff.frozen.down||cooldown.cone_of_cold.ready&buff.snowstorm.stack=buff.snowstorm.max_stack)\nactions.aoe+=/ice_nova,if=(target.level<level+3||target.is_add)&(prev_gcd.1.comet_storm||cooldown.cone_of_cold.ready&buff.snowstorm.stack=buff.snowstorm.max_stack&gcd.max<1)\nactions.aoe+=/frost_nova,if=(target.level<level+3||target.is_add)&active_enemies>=5&cooldown.cone_of_cold.ready&buff.snowstorm.stack=buff.snowstorm.max_stack&gcd.max<1\nactions.aoe+=/cone_of_cold,if=buff.snowstorm.stack=buff.snowstorm.max_stack\nactions.aoe+=/flurry,if=cooldown_react&remaining_winters_chill=0&debuff.winters_chill.down&(prev_gcd.1.frostbolt||(active_enemies>=7||charges=max_charges)&buff.fingers_of_frost.react=0)\nactions.aoe+=/ice_lance,if=buff.fingers_of_frost.react||debuff.frozen.remains>travel_time||remaining_winters_chill\nactions.aoe+=/shifting_power\nactions.aoe+=/ice_nova\nactions.aoe+=/meteor\nactions.aoe+=/dragons_breath,if=active_enemies>=7\nactions.aoe+=/arcane_explosion,if=mana.pct>30&active_enemies>=7\nactions.aoe+=/ebonbolt\nactions.aoe+=/frostbolt\n\nactions.cds+=/time_warp,if=buff.exhaustion.up&buff.bloodlust.down\nactions.cds+=/potion,if=prev_off_gcd.icy_veins||boss&fight_remains<60\nactions.cds+=/icy_veins,if=buff.rune_of_power.down&(buff.icy_veins.down||talent.rune_of_power)\nactions.cds+=/rune_of_power,if=buff.rune_of_power.down&cooldown.icy_veins.remains>10\nactions.cds+=/use_items\n## External buffs are not invoked by the addon, as the player can't choose to trigger them personally.\n## actions.cds+=/invoke_external_buff,name=power_infusion,if=buff.power_infusion.down\n## actions.cds+=/invoke_external_buff,name=blessing_of_summer,if=buff.blessing_of_summer.down\nactions.cds+=/blood_fury\nactions.cds+=/berserking\nactions.cds+=/lights_judgment\nactions.cds+=/fireblood\nactions.cds+=/ancestral_call\n\nactions.movement+=/blink_any,if=movement.distance>10\nactions.movement+=/ice_floes,if=buff.ice_floes.down\nactions.movement+=/ice_nova\nactions.movement+=/arcane_explosion,if=mana.pct>30&active_enemies>=2\nactions.movement+=/fire_blast\nactions.movement+=/ice_lance\n\nactions.st+=/meteor,if=prev_gcd.1.flurry\nactions.st+=/comet_storm,if=prev_gcd.1.flurry\nactions.st+=/flurry,if=cooldown_react&remaining_winters_chill=0&debuff.winters_chill.down&(prev_gcd.1.frostbolt||prev_gcd.1.glacial_spike)\nactions.st+=/ray_of_frost,if=remaining_winters_chill=1&buff.freezing_winds.down\nactions.st+=/glacial_spike,if=remaining_winters_chill\nactions.st+=/cone_of_cold,if=buff.snowstorm.stack=buff.snowstorm.max_stack&remaining_winters_chill\nactions.st+=/frozen_orb\nactions.st+=/blizzard,if=active_enemies>=2&talent.ice_caller&talent.freezing_rain\nactions.st+=/shifting_power,if=buff.rune_of_power.down\nactions.st+=/ice_lance,if=buff.fingers_of_frost.react&!prev_gcd.1.glacial_spike||remaining_winters_chill\nactions.st+=/ice_nova,if=active_enemies>=4\nactions.st+=/glacial_spike,if=action.flurry.cooldown_react\nactions.st+=/ebonbolt,if=cooldown.flurry.charges_fractional<1\nactions.st+=/bag_of_tricks\nactions.st+=/frostbolt",
["spec"] = 64,
},
["Fire"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230127,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["combustion_phase"] = {
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "lights_judgment",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "bag_of_tricks",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.combustion.down",
["action"] = "living_bomb",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Other cooldowns that should be used with Combustion should only be used with an actual Combustion cast and not with a Sun King's Blessing proc.",
["criteria"] = "buff.combustion.remains > variable.skb_duration || fight_remains < 20",
["list_name"] = "combustion_cooldowns",
}, -- [4]
{
["enabled"] = true,
["name"] = "hyperthread_wristwraps",
["action"] = "hyperthread_wristwraps",
["criteria"] = "prev.1.fire_blast + prev.2.fire_blast + prev.3.fire_blast >= 2 & action.fire_blast.charges = 0",
}, -- [5]
{
["enabled"] = true,
["name"] = "neural_synapse_enhancer",
["action"] = "neural_synapse_enhancer",
["criteria"] = "variable.time_to_combustion > 60",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! set_bonus.tier28_4pc & buff.combustion.down & buff.sun_kings_blessing.stack > 2 & talent.rune_of_power.enabled & cooldown.rune_of_power.remains < 20",
["action"] = "cancel_buff",
["buff_name"] = "sun_kings_blessing",
["description"] = "If Sun King's Blessing stacks are high, cancel them before Combustion so that the Sun King's Blessing proc can be safely delayed until after Combustion without risk of expiration.",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time & active_enemies >= variable.combustion_flamestrike",
["action"] = "flamestrike",
["description"] = "If Combustion is down, precast something before activating it.",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > cast_time & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "pyroblast",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.pyroclasm.react & buff.pyroclasm.remains > cast_time",
["action"] = "pyroblast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time & ! conduit.flame_accretion.enabled",
["action"] = "fireball",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time",
["action"] = "scorch",
}, -- [13]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "hot_streak_spells_in_flight = 0 & buff.combustion.down & variable.time_to_combustion <= 0 & ( ! runeforge.disciplinary_command.enabled || buff.disciplinary_command.up || buff.disciplinary_command_frost.up & talent.rune_of_power.enabled & cooldown.buff_disciplinary_command.ready ) & ( ! runeforge.grisly_icicle.enabled || debuff.grisly_icicle.up ) & ( ! covenant.necrolord || cooldown.deathborne.remains || buff.deathborne.up ) & ( ! covenant.venthyr || cooldown.mirrors_of_torment.remains ) & ( action.scorch.executing & action.scorch.execute_remains < variable.combustion_cast_remains || action.fireball.executing & action.fireball.execute_remains < variable.combustion_cast_remains || action.pyroblast.executing & action.pyroblast.execute_remains < variable.combustion_cast_remains || action.flamestrike.executing & action.flamestrike.execute_remains < variable.combustion_cast_remains )",
["use_off_gcd"] = 1,
["action"] = "combustion",
["description"] = "Combustion should be used when the precast is almost finished.",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.down & variable.extended_combustion_remains > variable.skb_duration",
["action"] = "rune_of_power",
["description"] = "Rune of Power can be used in Combustion if it is down, but this should only be done if there is more Combustion time to benefit from than there would be from an SKB Combustion later.",
}, -- [15]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! talent.feel_the_burn.enabled & ! conduit.infernal_cascade.enabled & ! variable.fire_blast_pooling & ( ! set_bonus.tier28_4pc || debuff.mirrors_of_torment.down || buff.sun_kings_blessing_ready.down || action.pyroblast.executing ) & buff.combustion.up & ! ( buff.firestorm.react || buff.hyperthermia.react ) & ! buff.hot_streak.react & hot_streak_spells_in_flight + buff.heating_up.react * ( gcd.remains > 0 ) < 2",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "Without Feel the Burn, just use Fire Blasts when they won't munch crits and when Firestorm is down.",
}, -- [16]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "conduit.infernal_cascade.enabled & ! variable.fire_blast_pooling & ( ! set_bonus.tier28_4pc || debuff.mirrors_of_torment.down || buff.sun_kings_blessing_ready.down || action.pyroblast.executing ) & ( ! equipped.hyperthread_wristwraps || ! cooldown.hyperthread_wristwraps_300142.ready || charges > 1 || debuff.mirrors_of_torment.up ) & ( variable.expected_fire_blasts >= variable.needed_fire_blasts || buff.combustion.remains < gcd.max || variable.extended_combustion_remains <= buff.infernal_cascade.duration || buff.infernal_cascade.stack < 2 || buff.infernal_cascade.remains < gcd.max || cooldown.shifting_power.ready & variable.use_shifting_power || equipped.hyperthread_wristwraps & cooldown.hyperthread_wristwraps_300142.ready ) & buff.combustion.up & ( ! ( buff.firestorm.react || buff.hyperthermia.react ) || buff.infernal_cascade.remains < 0.5 ) & ! buff.hot_streak.react & hot_streak_spells_in_flight + buff.heating_up.react * ( gcd.remains > 0 ) < 2",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [17]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "talent.feel_the_burn.enabled & ! variable.fire_blast_pooling & ( ! set_bonus.tier28_4pc || debuff.mirrors_of_torment.down || buff.sun_kings_blessing_ready.down || action.pyroblast.executing ) & ( ! equipped.hyperthread_wristwraps || ! cooldown.hyperthread_wristwraps_300142.ready || charges > 1 || debuff.mirrors_of_torment.up ) & ( variable.expected_fire_blasts >= variable.needed_fire_blasts || buff.combustion.remains < gcd.max || variable.extended_combustion_remains <= buff.feel_the_burn.duration || buff.feel_the_burn.stack < 2 || buff.feel_the_burn.remains < gcd.max || cooldown.shifting_power.ready & variable.use_shifting_power || equipped.hyperthread_wristwraps & cooldown.hyperthread_wristwraps_300142.ready ) & buff.combustion.up & ( ! ( buff.firestorm.react || buff.hyperthermia.react ) || buff.feel_the_burn.remains < 0.5 ) & ! buff.hot_streak.react & hot_streak_spells_in_flight + buff.heating_up.react * ( gcd.remains > 0 ) < 2",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "( buff.hot_streak.react & active_enemies >= variable.combustion_flamestrike ) || ( ( buff.firestorm.react || buff.hyperthermia.react ) & active_enemies >= variable.combustion_flamestrike - ( runeforge.firestorm.enabled || talent.hyperthermia.enabled ) )",
["action"] = "flamestrike",
["description"] = "Spend Hot Streaks during Combustion at high priority.",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up & 2 * buff.hot_streak.react + buff.heating_up.react + hot_streak_spells_in_flight = 2",
["action"] = "radiant_spark",
["description"] = "Radiant Spark should be used with a Hot Streak ready to use immediately after the cast finishes. This will naturally set up a Hot Streak spent for the final stack of Radiant Spark.",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( buff.firestorm.react || buff.hyperthermia.react )",
["action"] = "pyroblast",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & buff.combustion.up",
["action"] = "pyroblast",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.scorch & buff.heating_up.react & active_enemies < variable.combustion_flamestrike & buff.combustion.up",
["action"] = "pyroblast",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "variable.use_shifting_power & buff.combustion.up & ! action.fire_blast.charges & ( action.phoenix_flames.charges < action.phoenix_flames.max_charges || talent.alexstraszas_fury.enabled )",
["action"] = "shifting_power",
["description"] = "Using Shifting Power during Combustion to restore Fire Blast and Phoenix Flame charges can be beneficial, but usually only on AoE.",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > execute_time + action.flamestrike.cast_time & buff.rune_of_power.remains < action.flamestrike.cast_time & active_enemies >= variable.combustion_flamestrike",
["action"] = "rune_of_power",
["description"] = "If a Sun King's Blessing proc would be used, Rune of Power should be used first if the existing Rune of Power will expire during the cast.",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > cast_time & active_enemies >= variable.combustion_flamestrike & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "flamestrike",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > execute_time + action.pyroblast.cast_time & buff.rune_of_power.remains < action.pyroblast.cast_time",
["action"] = "rune_of_power",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > cast_time & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "pyroblast",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & buff.pyroclasm.remains > cast_time & buff.combustion.remains > cast_time & active_enemies < variable.combustion_flamestrike & ( ! talent.feel_the_burn.enabled || buff.feel_the_burn.remains > execute_time || buff.heating_up.react + hot_streak_spells_in_flight < 2 )",
["action"] = "pyroblast",
["description"] = "Pyroclasm procs should be used in Combustion at higher priority than Phoenix Flames and Scorch.",
}, -- [29]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains > cast_time & buff.flame_accelerant.react",
["action"] = "fireball",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "! talent.alexstraszas_fury.enabled & buff.combustion.up & travel_time < buff.combustion.remains & buff.heating_up.react + hot_streak_spells_in_flight < 2 & ( ! talent.from_the_ashes.enabled || variable.extended_combustion_remains < 10 )",
["action"] = "phoenix_flames",
["description"] = "Use Phoenix Flames and Scorch in Combustion to help generate Hot Streaks when Fire Blasts are not available or need to be conserved.",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains > cast_time & cast_time >= gcd.max",
["action"] = "scorch",
}, -- [32]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains > cast_time",
["action"] = "fireball",
}, -- [33]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains < gcd.max & active_enemies > 1",
["action"] = "living_bomb",
["description"] = "If there isn't enough time left in Combustion for a Phoenix Flames or Scorch to hit inside of Combustion, use something else.",
}, -- [34]
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains < gcd.max",
["action"] = "ice_nova",
}, -- [35]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "! runeforge.disciplinary_command.enabled",
["action"] = "counterspell",
["description"] = "Executed every time the actor is available.",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & action.fire_blast.charges <= 1 & ( cooldown.rune_of_power.remains || ! talent.rune_of_power.enabled ) & ! buff.hot_streak.react & variable.shifting_power_before_combustion",
["action"] = "shifting_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & ( variable.time_to_combustion > action_cooldown - 5 )",
["action"] = "radiant_spark",
["description"] = "Save Radiant Spark for Combustion, but otherwise use it on cooldown.",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.rune_of_power.down & variable.time_to_combustion < variable.combustion_precast_time + execute_time + ( buff.deathborne.duration - buff.combustion.duration ) * runeforge.deaths_fathom.enabled",
["action"] = "deathborne",
["description"] = "Deathborne should always be used with Combustion. With Death's Fathom, it should be used early so that Deathborne will have more stacks during Combustion.",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion < variable.combustion_precast_time + execute_time & buff.combustion.down",
["action"] = "mirrors_of_torment",
["description"] = "Use Mirrors of Torment with Combustion.",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > action_cooldown - 30 * runeforge.sinful_delight.enabled",
["action"] = "mirrors_of_torment",
["description"] = "Also use Mirrors of Torment in between Combustions as long as Combustion will not have to be delayed much for it.",
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["description"] = "For Venthyr, use a Fire Blast charge during Mirrors of Torment cast to avoid capping charges.",
["criteria"] = "action.mirrors_of_torment.executing & full_recharge_time - action.mirrors_of_torment.execute_remains < 4 & ! hot_streak_spells_in_flight & ! buff.hot_streak.react",
["action"] = "fire_blast",
}, -- [7]
{
["enabled"] = true,
["action"] = "gladiators_badge",
["criteria"] = "variable.time_to_combustion > action_cooldown - 5",
["effect_name"] = "gladiators_badge",
}, -- [8]
{
["enabled"] = true,
["name"] = "empyreal_ordnance",
["action"] = "empyreal_ordnance",
["criteria"] = "variable.time_to_combustion <= variable.empyreal_ordnance_delay & variable.time_to_combustion > variable.empyreal_ordnance_delay - 5",
}, -- [9]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
["criteria"] = "( variable.time_to_combustion <= variable.combustion_precast_time + 2 || fight_remains < variable.time_to_combustion ) & buff.combustion.down & ( ! equipped.the_first_sigil || cooldown.the_first_sigil_367241.remains > 40 )",
}, -- [10]
{
["enabled"] = true,
["name"] = "grim_eclipse",
["action"] = "grim_eclipse",
["criteria"] = "variable.time_to_combustion <= 8 || fight_remains < variable.time_to_combustion",
}, -- [11]
{
["enabled"] = true,
["name"] = "moonlit_prism",
["action"] = "moonlit_prism",
["criteria"] = "variable.time_to_combustion <= 5 || fight_remains < variable.time_to_combustion",
}, -- [12]
{
["enabled"] = true,
["name"] = "glyph_of_assimilation",
["action"] = "glyph_of_assimilation",
["criteria"] = "! variable.item_cutoff_active",
}, -- [13]
{
["enabled"] = true,
["name"] = "macabre_sheet_music",
["action"] = "macabre_sheet_music",
["criteria"] = "variable.time_to_combustion <= 5",
}, -- [14]
{
["enabled"] = true,
["description"] = "If using a steroid on-use item, always use Dreadfire Vessel outside of Combustion. Otherwise, prioritize using Dreadfire Vessel with Combustion only if Feel the Burn is enabled and a usage won't be lost over the duration of the fight. This adds a small value to the cooldown of Dreadfire Vessel when doing this calculation because it is unrealstic to assume that it will be used perfectly on cooldown. Note that with Sun King's Blessing, it is possible to sync this with SKB Combustions regardless of on-use trinkets.",
["action"] = "dreadfire_vessel",
["criteria"] = "! variable.item_cutoff_active & ( buff.infernal_cascade.stack = buff.infernal_cascade.max_stack || ! conduit.infernal_cascade.enabled || variable.combustion_on_use & ! ( runeforge.sun_kings_blessing.enabled || talent.sun_kings_blessing.enabled ) || variable.time_to_combustion > interpolated_fight_remains % ( action_cooldown + 10 ) )",
["name"] = "dreadfire_vessel",
}, -- [15]
{
["enabled"] = true,
["description"] = "Soul Igniter should be used in a way that doesn't interfere with other on-use trinkets. Other trinkets do not trigger a shared ICD on it, so it can be used right after any other on-use trinket.",
["action"] = "soul_igniter",
["criteria"] = "( cooldown.hyperthread_wristwraps.remains || ! variable.item_cutoff_active ) & ( ! conduit.infernal_cascade.enabled || buff.infernal_cascade.up || buff.combustion.up ) & ( ! equipped.dreadfire_vessel || cooldown.dreadfire_vessel_349857.remains > 5 )",
["name"] = "soul_igniter",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! conduit.infernal_cascade.enabled & time < 5 || buff.infernal_cascade.stack = buff.infernal_cascade.max_stack",
["action"] = "cancel_buff",
["buff_name"] = "soul_ignition",
["description"] = "Trigger Soul Igniter early with Infernal Cascade or when it was precast.",
}, -- [17]
{
["enabled"] = true,
["description"] = "Items that do not benefit Combustion should just be used outside of Combustion at some point.",
["action"] = "inscrutable_quantum_device",
["criteria"] = "equipped.gladiators_badge & ( buff.combustion.down & variable.time_to_combustion >= variable.on_use_cutoff || variable.on_use_cutoff = 0 )",
["name"] = "inscrutable_quantum_device",
}, -- [18]
{
["enabled"] = true,
["name"] = "flame_of_battle",
["action"] = "flame_of_battle",
["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active",
}, -- [19]
{
["enabled"] = true,
["name"] = "wakeners_frond",
["action"] = "wakeners_frond",
["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active",
}, -- [20]
{
["enabled"] = true,
["name"] = "instructors_divine_bell",
["action"] = "instructors_divine_bell",
["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active",
}, -- [21]
{
["enabled"] = true,
["name"] = "sunblood_amethyst",
["action"] = "sunblood_amethyst",
["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active",
}, -- [22]
{
["enabled"] = true,
["name"] = "scars_of_fraternal_strife",
["action"] = "scars_of_fraternal_strife",
["criteria"] = "buff.scars_of_fraternal_strife_4.down",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "! variable.item_cutoff_active",
["action"] = "use_items",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "runeforge.grisly_icicle.enabled & buff.combustion.down & ( variable.time_to_combustion > action_cooldown || variable.time_to_combustion < variable.combustion_precast_time + execute_time )",
["action"] = "frost_nova",
["description"] = "Use Frost Nova to trigger Grisly Icicle.",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "runeforge.disciplinary_command.enabled & cooldown.buff_disciplinary_command.ready & buff.disciplinary_command_arcane.down & ! buff.disciplinary_command.up & ( variable.time_to_combustion + action.frostbolt.cast_time > cooldown.buff_disciplinary_command.duration || variable.time_to_combustion < 5 )",
["action"] = "counterspell",
["description"] = "Get the Disciplinary Command buff up, unless combustion is soon.",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "runeforge.disciplinary_command.enabled & cooldown.buff_disciplinary_command.ready & buff.disciplinary_command_arcane.down & ! buff.disciplinary_command.up & ( variable.time_to_combustion + execute_time + action.frostbolt.cast_time > cooldown.buff_disciplinary_command.duration || variable.time_to_combustion < 5 & ! talent.rune_of_power.enabled )",
["action"] = "arcane_explosion",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "runeforge.disciplinary_command.enabled & cooldown.buff_disciplinary_command.remains < cast_time & buff.disciplinary_command_frost.down & ! buff.disciplinary_command.up & ( variable.time_to_combustion + cast_time > cooldown.buff_disciplinary_command.duration || variable.time_to_combustion < 5 )",
["action"] = "frostbolt",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "runeforge.disciplinary_command.enabled & cooldown.buff_disciplinary_command.ready & buff.disciplinary_command_frost.down & ! buff.disciplinary_command.up & ( variable.time_to_combustion > cooldown.buff_disciplinary_command.duration || variable.time_to_combustion < 5 )",
["action"] = "frost_nova",
}, -- [29]
{
["enabled"] = true,
["op"] = "set",
["description"] = "Pool as many Fire Blasts as possible for Combustion. Subtract out of the fractional component of the number of Fire Blasts that will naturally recharge during the Combustion phase because pooling anything past that will not grant an extra Fire Blast during Combustion.",
["action"] = "variable",
["value"] = "variable.extended_combustion_remains < variable.time_to_combustion & action.fire_blast.charges_fractional + ( variable.time_to_combustion + action.shifting_power.full_reduction * variable.shifting_power_before_combustion + ( debuff.mirrors_of_torment.max_stack - 1 ) * variable.mot_recharge_amount * covenant.venthyr * ( cooldown.mirrors_of_torment.remains <= variable.time_to_combustion ) ) / cooldown.fire_blast.duration - 1 < cooldown.fire_blast.max_charges + variable.overpool_fire_blasts / cooldown.fire_blast.duration - ( buff.combustion.duration / cooldown.fire_blast.duration ) % 1 & variable.time_to_combustion < fight_remains",
["use_off_gcd"] = 1,
["var_name"] = "fire_blast_pooling",
["use_while_casting"] = 1,
}, -- [30]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 0 || buff.combustion.up || variable.time_to_combustion < variable.combustion_precast_time & cooldown.combustion.remains < variable.combustion_precast_time",
["action"] = "call_action_list",
["list_name"] = "combustion_phase",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.rune_of_power.down & ! ( buff.firestorm.react || buff.hyperthermia.react ) & ( variable.time_to_combustion >= buff.rune_of_power.duration & variable.time_to_combustion > action.fire_blast.full_recharge_time || variable.time_to_combustion > fight_remains ) & ( ! ( runeforge.sun_kings_blessing.enabled || talent.sun_kings_blessing.enabled ) || active_enemies >= variable.hard_cast_flamestrike || buff.sun_kings_blessing_ready.up || buff.sun_kings_blessing.react >= buff.sun_kings_blessing.max_stack - 1 || fight_remains < buff.rune_of_power.duration || firestarter.active )",
["action"] = "rune_of_power",
}, -- [32]
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "variable",
["op"] = "set",
["criteria"] = "! variable.fire_blast_pooling & ( runeforge.sun_kings_blessing.enabled || talent.sun_kings_blessing.enabled )",
["value"] = "searing_touch.active & action.fire_blast.full_recharge_time > 3 * gcd.max",
["use_off_gcd"] = 1,
["description"] = "Adjust the variable that controls Fire Blast usage to save Fire Blasts while Searing Touch is active with Sun King's Blessing.",
["var_name"] = "fire_blast_pooling",
}, -- [33]
{
["enabled"] = true,
["criteria"] = "buff.rune_of_power.up & buff.combustion.down & variable.time_to_combustion > 0",
["action"] = "call_action_list",
["list_name"] = "rop_phase",
}, -- [34]
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "variable",
["op"] = "set",
["criteria"] = "! variable.fire_blast_pooling & talent.rune_of_power.enabled & buff.rune_of_power.down",
["value"] = "( ! ( runeforge.sun_kings_blessing.enabled || talent.sun_kings_blessing.enabled ) || buff.sun_kings_blessing.stack > buff.sun_kings_blessing.max_stack - 1 ) & cooldown.rune_of_power.remains < action.fire_blast.full_recharge_time - action.shifting_power.full_reduction * ( variable.shifting_power_before_combustion & cooldown.shifting_power.remains < cooldown.rune_of_power.remains ) & cooldown.rune_of_power.remains < fight_remains",
["use_off_gcd"] = 1,
["description"] = "Adjust the variable that controls Fire Blast usage to ensure its charges are also pooled for Rune of Power.",
["var_name"] = "fire_blast_pooling",
}, -- [35]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! variable.fire_blast_pooling & variable.time_to_combustion > 0 & active_enemies >= variable.hard_cast_flamestrike & ! firestarter.active & ! buff.hot_streak.react & ( buff.heating_up.react & action.flamestrike.execute_remains < 0.5 || charges_fractional >= 2 )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "When Hardcasting Flamestrike, Fire Blasts should be used to generate Hot Streaks and to extend Feel the Burn.",
}, -- [36]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "firestarter.active & variable.time_to_combustion > 0 & ! variable.fire_blast_pooling & ( ! action.fireball.executing & ! action.pyroblast.in_flight & buff.heating_up.react || action.fireball.executing & ! buff.hot_streak.react || action.pyroblast.in_flight & buff.heating_up.react & ! buff.hot_streak.react )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "During Firestarter, Fire Blasts are used similarly to during Combustion. Generally, they are used to generate Hot Streaks when crits will not be wasted and with Feel the Burn, they should be spread out to maintain the Feel the Burn buff.",
}, -- [37]
{
["enabled"] = true,
["use_while_casting"] = 1,
["description"] = "Avoid capping Fire Blast charges while channeling Shifting Power",
["criteria"] = "action.shifting_power.executing & full_recharge_time < action.shifting_power.tick_reduction",
["action"] = "fire_blast",
}, -- [38]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion > 0 & buff.rune_of_power.down & buff.combustion.down",
["action"] = "call_action_list",
["list_name"] = "standard_rotation",
}, -- [39]
{
["action"] = "scorch",
["enabled"] = true,
}, -- [40]
},
["rop_phase"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hot_streak_flamestrike & ( buff.hot_streak.react || ( buff.firestorm.react || buff.hyperthermia.react ) )",
["action"] = "flamestrike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.deathborne.up & runeforge.deaths_fathom.enabled & variable.time_to_combustion < buff.deathborne.remains & active_enemies >= 2",
["action"] = "fireball",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike & buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > cast_time & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "flamestrike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.sun_kings_blessing_ready.up & buff.sun_kings_blessing_ready.remains > cast_time & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "pyroblast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.firestorm.react || buff.hyperthermia.react )",
["action"] = "pyroblast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react",
["action"] = "pyroblast",
}, -- [6]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! variable.fire_blast_pooling & buff.sun_kings_blessing_ready.down & active_enemies < variable.hard_cast_flamestrike & ! firestarter.active & ( ! buff.heating_up.react & ! buff.hot_streak.react & ! prev_off_gcd.fire_blast & ( action.fire_blast.charges >= 2 || ( talent.alexstraszas_fury.enabled & cooldown.dragons_breath.ready ) || searing_touch.active ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "Use one Fire Blast early in RoP if you don't have either Heating Up or Hot Streak yet and either: (a) have more than two already, (b) have Alexstrasza's Fury ready to use, or (c) Searing Touch is active. Don't do this while hard casting Flamestrikes or when Sun King's Blessing is ready.",
}, -- [7]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! variable.fire_blast_pooling & ! firestarter.active & buff.sun_kings_blessing_ready.down & ( ( ( action.fireball.executing & ( action.fireball.execute_remains < 0.5 || ! ( runeforge.firestorm.enabled || talent.hyperthermia.enabled ) ) || action.pyroblast.executing & ( action.pyroblast.execute_remains < 0.5 || ! ( runeforge.firestorm.enabled || talent.hyperthermia.enabled ) ) ) & buff.heating_up.react ) || ( searing_touch.active & ( buff.heating_up.react & ! action.scorch.executing || ! buff.hot_streak.react & ! buff.heating_up.react & action.scorch.executing & ! hot_streak_spells_in_flight ) ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "Use Fire Blast either during a Fireball/Pyroblast cast when Heating Up is active or during execute with Searing Touch.",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & cast_time < buff.pyroclasm.remains & cast_time < buff.rune_of_power.remains & ( ! ( runeforge.sun_kings_blessing.enabled || talent.sun_kings_blessing.enabled ) || buff.pyroclasm.remains < action.fireball.cast_time + cast_time * buff.pyroclasm.react )",
["action"] = "pyroblast",
["description"] = "actions.rop_phase+=/scorch,if=searing_touch.active&talent.improved_scorch&debuff.improved_scorch.remains<3*gcd.max",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.scorch & buff.heating_up.react & searing_touch.active & active_enemies < variable.hot_streak_flamestrike",
["action"] = "pyroblast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! variable.phoenix_pooling & ( ! hot_streak_spells_in_flight & ( buff.heating_up.react || charges > 1 ) )",
["action"] = "phoenix_flames",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "searing_touch.active",
["action"] = "scorch",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "dragons_breath",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.arcane_explosion & mana.pct >= variable.arcane_explosion_mana",
["action"] = "arcane_explosion",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike",
["action"] = "flamestrike",
["description"] = "With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "talent.tempered_flames.enabled & ! buff.flame_accelerant.react",
["action"] = "pyroblast",
}, -- [17]
{
["action"] = "fireball",
["enabled"] = true,
}, -- [18]
},
["combustion_cooldowns"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.combustion.up",
["action"] = "berserking",
}, -- [3]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [4]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( talent.temporal_warp.enabled || runeforge.temporal_warp.enabled ) & buff.exhaustion.up",
["action"] = "time_warp",
}, -- [6]
{
["enabled"] = true,
["action"] = "gladiators_badge",
["effect_name"] = "gladiators_badge",
}, -- [7]
{
["enabled"] = true,
["name"] = "irideus_fragment",
["action"] = "irideus_fragment",
}, -- [8]
{
["enabled"] = true,
["name"] = "spoils_of_neltharus",
["action"] = "spoils_of_neltharus",
}, -- [9]
{
["enabled"] = true,
["name"] = "tome_of_unstable_power",
["action"] = "tome_of_unstable_power",
}, -- [10]
{
["enabled"] = true,
["name"] = "timebreaching_talon",
["action"] = "timebreaching_talon",
}, -- [11]
{
["enabled"] = true,
["name"] = "voidmenders_shadowgem",
["action"] = "voidmenders_shadowgem",
}, -- [12]
{
["enabled"] = true,
["name"] = "horn_of_valor",
["action"] = "horn_of_valor",
}, -- [13]
},
["active_talents"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.combustion.down & ( variable.time_to_combustion > cooldown.living_bomb.duration || variable.time_to_combustion <= 0 )",
["action"] = "living_bomb",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.time_to_combustion <= 0 || buff.combustion.remains > travel_time || ( cooldown.meteor.duration < variable.time_to_combustion & ! talent.rune_of_power.enabled ) || talent.rune_of_power.enabled & buff.rune_of_power.up & variable.time_to_combustion > action.meteor.cooldown || fight_remains < variable.time_to_combustion",
["action"] = "meteor",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "talent.alexstraszas_fury.enabled & ( buff.combustion.down & ! buff.hot_streak.react )",
["action"] = "dragons_breath",
}, -- [3]
},
["standard_rotation"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hot_streak_flamestrike & ( buff.hot_streak.react || ( buff.firestorm.react || buff.hyperthermia.react ) )",
["action"] = "flamestrike",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.deathborne.up & runeforge.deaths_fathom.enabled & variable.time_to_combustion < buff.deathborne.remains & active_enemies >= 2",
["action"] = "fireball",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( buff.firestorm.react || buff.hyperthermia.react )",
["action"] = "pyroblast",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & buff.hot_streak.remains < action.fireball.execute_time",
["action"] = "pyroblast",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & ( prev_gcd.1.fireball || firestarter.active || action.pyroblast.in_flight )",
["action"] = "pyroblast",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike & buff.sun_kings_blessing_ready.up & ( cooldown.rune_of_power.remains + action.rune_of_power.execute_time + cast_time > buff.sun_kings_blessing_ready.remains || ! talent.rune_of_power.enabled ) & variable.time_to_combustion + cast_time > buff.sun_kings_blessing_ready.remains & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "flamestrike",
["description"] = "Try to get SKB procs inside RoP phases or Combustion phases when possible.",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.sun_kings_blessing_ready.up & ( cooldown.rune_of_power.remains + action.rune_of_power.execute_time + cast_time > buff.sun_kings_blessing_ready.remains || ! talent.rune_of_power.enabled ) & variable.time_to_combustion + cast_time > buff.sun_kings_blessing_ready.remains & buff.sun_kings_blessing_ready.expiration_delay_remains = 0",
["action"] = "pyroblast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.react & searing_touch.active",
["action"] = "pyroblast",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.pyroclasm.react & cast_time < buff.pyroclasm.remains & ( ! ( runeforge.sun_kings_blessing.enabled || talent.sun_kings_blessing.enabled ) || buff.pyroclasm.remains < action.fireball.cast_time + cast_time * buff.pyroclasm.react )",
["action"] = "pyroblast",
}, -- [9]
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! firestarter.active & ! variable.fire_blast_pooling & buff.sun_kings_blessing_ready.down & ( ( ( action.fireball.executing & ( action.fireball.execute_remains < 0.5 || ! ( runeforge.firestorm.enabled || talent.hyperthermia.enabled ) ) || action.pyroblast.executing & ( action.pyroblast.execute_remains < 0.5 || ! ( runeforge.firestorm.enabled || talent.hyperthermia.enabled ) ) ) & buff.heating_up.react ) || ( searing_touch.active & ( buff.heating_up.react & ! action.scorch.executing || ! buff.hot_streak.react & ! buff.heating_up.react & action.scorch.executing & ! hot_streak_spells_in_flight ) ) )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "During the standard rotation, only use Fire Blasts when they are not being pooled for RoP or Combustion. Use Fire Blast either during a Fireball/Pyroblast cast when Heating Up is active or during execute with Searing Touch.",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.scorch & buff.heating_up.react & searing_touch.active & active_enemies < variable.hot_streak_flamestrike",
["action"] = "pyroblast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! variable.phoenix_pooling & ( ! hot_streak_spells_in_flight & ( buff.heating_up.react ) )",
["action"] = "phoenix_flames",
}, -- [12]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "dragons_breath",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "searing_touch.active",
["action"] = "scorch",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.arcane_explosion & mana.pct >= variable.arcane_explosion_mana",
["action"] = "arcane_explosion",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike",
["action"] = "flamestrike",
["description"] = "With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "talent.tempered_flames.enabled & ! buff.flame_accelerant.react",
["action"] = "pyroblast",
}, -- [18]
{
["action"] = "fireball",
["enabled"] = true,
}, -- [19]
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "soul_igniter",
["action"] = "soul_igniter",
["criteria"] = "! variable.combustion_on_use & ! equipped.dreadfire_vessel & ( ! talent.firestarter.enabled || variable.firestarter_combustion )",
}, -- [2]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
["criteria"] = "! equipped.the_first_sigil",
}, -- [3]
{
["action"] = "mirror_image",
["enabled"] = true,
}, -- [4]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [5]
{
["action"] = "pyroblast",
["enabled"] = true,
}, -- [6]
},
},
["version"] = 20230127,
["warnings"] = "The import for 'rop_phase' required some automated changes.\nLine 2: Converted 'runeforge.deaths_fathom' to 'runeforge.deaths_fathom.enabled' (1x).\nLine 7: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 8: Converted 'runeforge.firestorm' to 'runeforge.firestorm.enabled' (1x).\nLine 8: Converted 'talent.hyperthermia' to 'talent.hyperthermia.enabled' (1x).\nLine 8: Converted 'runeforge.firestorm' to 'runeforge.firestorm.enabled' (1x).\nLine 8: Converted 'talent.hyperthermia' to 'talent.hyperthermia.enabled' (1x).\nLine 10: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 10: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 17: Converted 'talent.tempered_flames' to 'talent.tempered_flames.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 1: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 2: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 4: Converted 'runeforge.deaths_fathom' to 'runeforge.deaths_fathom.enabled' (1x).\nLine 6: Converted 'runeforge.sinful_delight' to 'runeforge.sinful_delight.enabled' (1x).\nLine 15: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 15: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 15: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 15: Converted operations in '!variable.item_cutoff_active&(buff.infernal_cascade.stack=buff.infernal_cascade.max_stack||!conduit.infernal_cascade.enabled||variable.combustion_on_use&!(runeforge.sun_kings_blessing.enabled||talent.sun_kings_blessing.enabled)||variable.time_to_combustion>interpolated_fight_remains%%(action_cooldown+10))' to '!variable.item_cutoff_active&(buff.infernal_cascade.stack=buff.infernal_cascade.max_stack||!conduit.infernal_cascade.enabled||variable.combustion_on_use&!(runeforge.sun_kings_blessing.enabled||talent.sun_kings_blessing.enabled)||variable.time_to_combustion>interpolated_fight_remains%(action_cooldown+10))'.\nLine 16: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 17: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 25: Converted 'runeforge.grisly_icicle' to 'runeforge.grisly_icicle.enabled' (1x).\nLine 26: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 27: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 27: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 28: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 29: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 30: Converted operations in 'variable.extended_combustion_remains<variable.time_to_combustion&action.fire_blast.charges_fractional+(variable.time_to_combustion+action.shifting_power.full_reduction*variable.shifting_power_before_combustion+(debuff.mirrors_of_torment.max_stack-1)*variable.mot_recharge_amount*covenant.venthyr*(cooldown.mirrors_of_torment.remains<=variable.time_to_combustion))%cooldown.fire_blast.duration-1<cooldown.fire_blast.max_charges+variable.overpool_fire_blasts%cooldown.fire_blast.duration-(buff.combustion.duration%cooldown.fire_blast.duration)%%1&variable.time_to_combustion<fight_remains' to 'variable.extended_combustion_remains<variable.time_to_combustion&action.fire_blast.charges_fractional+(variable.time_to_combustion+action.shifting_power.full_reduction*variable.shifting_power_before_combustion+(debuff.mirrors_of_torment.max_stack-1)*variable.mot_recharge_amount*covenant.venthyr*(cooldown.mirrors_of_torment.remains<=variable.time_to_combustion))/cooldown.fire_blast.duration-1<cooldown.fire_blast.max_charges+variable.overpool_fire_blasts/cooldown.fire_blast.duration-(buff.combustion.duration/cooldown.fire_blast.duration)%1&variable.time_to_combustion<fight_remains'.\nLine 32: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 32: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 33: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 33: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 35: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 35: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 35: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 2: Converted 'talent.firestarter' to 'talent.firestarter.enabled' (1x).\n\nThe import for 'combustion_cooldowns' required some automated changes.\nLine 6: Converted 'talent.temporal_warp' to 'talent.temporal_warp.enabled' (1x).\nLine 6: Converted 'runeforge.temporal_warp' to 'runeforge.temporal_warp.enabled' (1x).\n\nThe import for 'active_talents' required some automated changes.\nLine 2: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 2: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 3: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\n\nThe import for 'standard_rotation' required some automated changes.\nLine 2: Converted 'runeforge.deaths_fathom' to 'runeforge.deaths_fathom.enabled' (1x).\nLine 6: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 7: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 9: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 9: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 10: Converted 'runeforge.firestorm' to 'runeforge.firestorm.enabled' (1x).\nLine 10: Converted 'talent.hyperthermia' to 'talent.hyperthermia.enabled' (1x).\nLine 10: Converted 'runeforge.firestorm' to 'runeforge.firestorm.enabled' (1x).\nLine 10: Converted 'talent.hyperthermia' to 'talent.hyperthermia.enabled' (1x).\nLine 18: Converted 'talent.tempered_flames' to 'talent.tempered_flames.enabled' (1x).\n\nThe import for 'combustion_phase' required some automated changes.\nLine 8: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 12: Converted 'conduit.flame_accretion' to 'conduit.flame_accretion.enabled' (1x).\nLine 14: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 14: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 14: Converted 'runeforge.grisly_icicle' to 'runeforge.grisly_icicle.enabled' (1x).\nLine 16: Converted 'talent.feel_the_burn' to 'talent.feel_the_burn.enabled' (1x).\nLine 16: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 17: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 18: Converted 'talent.feel_the_burn' to 'talent.feel_the_burn.enabled' (1x).\nLine 19: Converted 'runeforge.firestorm' to 'runeforge.firestorm.enabled' (1x).\nLine 19: Converted 'talent.hyperthermia' to 'talent.hyperthermia.enabled' (1x).\nLine 24: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 29: Converted 'talent.feel_the_burn' to 'talent.feel_the_burn.enabled' (1x).\nLine 31: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 31: Converted 'talent.from_the_ashes' to 'talent.from_the_ashes.enabled' (1x).\n\nImported 7 action lists.\n",
["profile"] = "actions.precombat+=/arcane_intellect\nactions.precombat+=/use_item,name=soul_igniter,if=!variable.combustion_on_use&!equipped.dreadfire_vessel&(!talent.firestarter||variable.firestarter_combustion)\nactions.precombat+=/use_item,name=shadowed_orb_of_torment,if=!equipped.the_first_sigil\nactions.precombat+=/mirror_image\nactions.precombat+=/fleshcraft\nactions.precombat+=/pyroblast\n\n# Executed every time the actor is available.\nactions=counterspell,if=!runeforge.disciplinary_command\nactions+=/shifting_power,if=buff.combustion.down&action.fire_blast.charges<=1&(cooldown.rune_of_power.remains||!talent.rune_of_power)&!buff.hot_streak.react&variable.shifting_power_before_combustion\n# Save Radiant Spark for Combustion, but otherwise use it on cooldown.\nactions+=/radiant_spark,if=buff.combustion.down&(variable.time_to_combustion>cooldown-5)\n# Deathborne should always be used with Combustion. With Death's Fathom, it should be used early so that Deathborne will have more stacks during Combustion.\nactions+=/deathborne,if=buff.combustion.down&buff.rune_of_power.down&variable.time_to_combustion<variable.combustion_precast_time+execute_time+(buff.deathborne.duration-buff.combustion.duration)*runeforge.deaths_fathom\n# Use Mirrors of Torment with Combustion.\nactions+=/mirrors_of_torment,if=variable.time_to_combustion<variable.combustion_precast_time+execute_time&buff.combustion.down\n# Also use Mirrors of Torment in between Combustions as long as Combustion will not have to be delayed much for it.\nactions+=/mirrors_of_torment,if=variable.time_to_combustion>cooldown-30*runeforge.sinful_delight\n# For Venthyr, use a Fire Blast charge during Mirrors of Torment cast to avoid capping charges.\nactions+=/fire_blast,use_while_casting=1,if=action.mirrors_of_torment.executing&full_recharge_time-action.mirrors_of_torment.execute_remains<4&!hot_streak_spells_in_flight&!buff.hot_streak.react\nactions+=/use_item,effect_name=gladiators_badge,if=variable.time_to_combustion>cooldown-5\nactions+=/use_item,name=empyreal_ordnance,if=variable.time_to_combustion<=variable.empyreal_ordnance_delay&variable.time_to_combustion>variable.empyreal_ordnance_delay-5\nactions+=/use_item,name=shadowed_orb_of_torment,if=(variable.time_to_combustion<=variable.combustion_precast_time+2||fight_remains<variable.time_to_combustion)&buff.combustion.down&(!equipped.the_first_sigil||cooldown.the_first_sigil_367241.remains>40)\nactions+=/use_item,name=grim_eclipse,if=variable.time_to_combustion<=8||fight_remains<variable.time_to_combustion\nactions+=/use_item,name=moonlit_prism,if=variable.time_to_combustion<=5||fight_remains<variable.time_to_combustion\nactions+=/use_item,name=glyph_of_assimilation,if=!variable.item_cutoff_active\nactions+=/use_item,name=macabre_sheet_music,if=variable.time_to_combustion<=5\n# If using a steroid on-use item, always use Dreadfire Vessel outside of Combustion. Otherwise, prioritize using Dreadfire Vessel with Combustion only if Feel the Burn is enabled and a usage won't be lost over the duration of the fight. This adds a small value to the cooldown of Dreadfire Vessel when doing this calculation because it is unrealstic to assume that it will be used perfectly on cooldown. Note that with Sun King's Blessing, it is possible to sync this with SKB Combustions regardless of on-use trinkets.\nactions+=/use_item,name=dreadfire_vessel,if=!variable.item_cutoff_active&(buff.infernal_cascade.stack=buff.infernal_cascade.max_stack||!conduit.infernal_cascade||variable.combustion_on_use&!(runeforge.sun_kings_blessing||talent.sun_kings_blessing)||variable.time_to_combustion>interpolated_fight_remains%%(cooldown+10))\n# Soul Igniter should be used in a way that doesn't interfere with other on-use trinkets. Other trinkets do not trigger a shared ICD on it, so it can be used right after any other on-use trinket.\nactions+=/use_item,name=soul_igniter,if=(cooldown.hyperthread_wristwraps.remains||!variable.item_cutoff_active)&(!conduit.infernal_cascade||buff.infernal_cascade.up||buff.combustion.up)&(!equipped.dreadfire_vessel||cooldown.dreadfire_vessel_349857.remains>5)\n# Trigger Soul Igniter early with Infernal Cascade or when it was precast.\nactions+=/cancel_buff,name=soul_ignition,if=!conduit.infernal_cascade&time<5||buff.infernal_cascade.stack=buff.infernal_cascade.max_stack\n# Items that do not benefit Combustion should just be used outside of Combustion at some point.\nactions+=/use_item,name=inscrutable_quantum_device,if=equipped.gladiators_badge&(buff.combustion.down&variable.time_to_combustion>=variable.on_use_cutoff||variable.on_use_cutoff=0)\nactions+=/use_item,name=flame_of_battle,if=equipped.gladiators_badge&!variable.item_cutoff_active\nactions+=/use_item,name=wakeners_frond,if=equipped.gladiators_badge&!variable.item_cutoff_active\nactions+=/use_item,name=instructors_divine_bell,if=equipped.gladiators_badge&!variable.item_cutoff_active\nactions+=/use_item,name=sunblood_amethyst,if=equipped.gladiators_badge&!variable.item_cutoff_active\nactions+=/use_item,name=scars_of_fraternal_strife,if=buff.scars_of_fraternal_strife_4.down\nactions+=/use_items,if=!variable.item_cutoff_active\n# Use Frost Nova to trigger Grisly Icicle.\nactions+=/frost_nova,if=runeforge.grisly_icicle&buff.combustion.down&(variable.time_to_combustion>cooldown||variable.time_to_combustion<variable.combustion_precast_time+execute_time)\n# Get the Disciplinary Command buff up, unless combustion is soon.\nactions+=/counterspell,if=runeforge.disciplinary_command&cooldown.buff_disciplinary_command.ready&buff.disciplinary_command_arcane.down&!buff.disciplinary_command.up&(variable.time_to_combustion+action.frostbolt.cast_time>cooldown.buff_disciplinary_command.duration||variable.time_to_combustion<5)\nactions+=/arcane_explosion,if=runeforge.disciplinary_command&cooldown.buff_disciplinary_command.ready&buff.disciplinary_command_arcane.down&!buff.disciplinary_command.up&(variable.time_to_combustion+execute_time+action.frostbolt.cast_time>cooldown.buff_disciplinary_command.duration||variable.time_to_combustion<5&!talent.rune_of_power)\nactions+=/frostbolt,if=runeforge.disciplinary_command&cooldown.buff_disciplinary_command.remains<cast_time&buff.disciplinary_command_frost.down&!buff.disciplinary_command.up&(variable.time_to_combustion+cast_time>cooldown.buff_disciplinary_command.duration||variable.time_to_combustion<5)\nactions+=/frost_nova,if=runeforge.disciplinary_command&cooldown.buff_disciplinary_command.ready&buff.disciplinary_command_frost.down&!buff.disciplinary_command.up&(variable.time_to_combustion>cooldown.buff_disciplinary_command.duration||variable.time_to_combustion<5)\n# Pool as many Fire Blasts as possible for Combustion. Subtract out of the fractional component of the number of Fire Blasts that will naturally recharge during the Combustion phase because pooling anything past that will not grant an extra Fire Blast during Combustion.\nactions+=/variable,use_off_gcd=1,use_while_casting=1,name=fire_blast_pooling,value=variable.extended_combustion_remains<variable.time_to_combustion&action.fire_blast.charges_fractional+(variable.time_to_combustion+action.shifting_power.full_reduction*variable.shifting_power_before_combustion+(debuff.mirrors_of_torment.max_stack-1)*variable.mot_recharge_amount*covenant.venthyr*(cooldown.mirrors_of_torment.remains<=variable.time_to_combustion))%cooldown.fire_blast.duration-1<cooldown.fire_blast.max_charges+variable.overpool_fire_blasts%cooldown.fire_blast.duration-(buff.combustion.duration%cooldown.fire_blast.duration)%%1&variable.time_to_combustion<fight_remains\nactions+=/call_action_list,name=combustion_phase,if=variable.time_to_combustion<=0||buff.combustion.up||variable.time_to_combustion<variable.combustion_precast_time&cooldown.combustion.remains<variable.combustion_precast_time\nactions+=/rune_of_power,if=buff.combustion.down&buff.rune_of_power.down&!(buff.firestorm.react||buff.hyperthermia.react)&(variable.time_to_combustion>=buff.rune_of_power.duration&variable.time_to_combustion>action.fire_blast.full_recharge_time||variable.time_to_combustion>fight_remains)&(!(runeforge.sun_kings_blessing||talent.sun_kings_blessing)||active_enemies>=variable.hard_cast_flamestrike||buff.sun_kings_blessing_ready.up||buff.sun_kings_blessing.react>=buff.sun_kings_blessing.max_stack-1||fight_remains<buff.rune_of_power.duration||firestarter.active)\n# Adjust the variable that controls Fire Blast usage to save Fire Blasts while Searing Touch is active with Sun King's Blessing.\nactions+=/variable,use_off_gcd=1,use_while_casting=1,name=fire_blast_pooling,value=searing_touch.active&action.fire_blast.full_recharge_time>3*gcd.max,if=!variable.fire_blast_pooling&(runeforge.sun_kings_blessing||talent.sun_kings_blessing)\nactions+=/call_action_list,name=rop_phase,if=buff.rune_of_power.up&buff.combustion.down&variable.time_to_combustion>0\n# Adjust the variable that controls Fire Blast usage to ensure its charges are also pooled for Rune of Power.\nactions+=/variable,use_off_gcd=1,use_while_casting=1,name=fire_blast_pooling,value=(!(runeforge.sun_kings_blessing||talent.sun_kings_blessing)||buff.sun_kings_blessing.stack>buff.sun_kings_blessing.max_stack-1)&cooldown.rune_of_power.remains<action.fire_blast.full_recharge_time-action.shifting_power.full_reduction*(variable.shifting_power_before_combustion&cooldown.shifting_power.remains<cooldown.rune_of_power.remains)&cooldown.rune_of_power.remains<fight_remains,if=!variable.fire_blast_pooling&talent.rune_of_power&buff.rune_of_power.down\n# When Hardcasting Flamestrike, Fire Blasts should be used to generate Hot Streaks and to extend Feel the Burn.\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!variable.fire_blast_pooling&variable.time_to_combustion>0&active_enemies>=variable.hard_cast_flamestrike&!firestarter.active&!buff.hot_streak.react&(buff.heating_up.react&action.flamestrike.execute_remains<0.5||charges_fractional>=2)\n# During Firestarter, Fire Blasts are used similarly to during Combustion. Generally, they are used to generate Hot Streaks when crits will not be wasted and with Feel the Burn, they should be spread out to maintain the Feel the Burn buff.\nactions+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=firestarter.active&variable.time_to_combustion>0&!variable.fire_blast_pooling&(!action.fireball.executing&!action.pyroblast.in_flight&buff.heating_up.react||action.fireball.executing&!buff.hot_streak.react||action.pyroblast.in_flight&buff.heating_up.react&!buff.hot_streak.react)\n# Avoid capping Fire Blast charges while channeling Shifting Power\nactions+=/fire_blast,use_while_casting=1,if=action.shifting_power.executing&full_recharge_time<action.shifting_power.tick_reduction\nactions+=/call_action_list,name=standard_rotation,if=variable.time_to_combustion>0&buff.rune_of_power.down&buff.combustion.down\nactions+=/scorch\n\nactions.active_talents=living_bomb,if=active_enemies>1&buff.combustion.down&(variable.time_to_combustion>cooldown.living_bomb.duration||variable.time_to_combustion<=0)\nactions.active_talents+=/meteor,if=variable.time_to_combustion<=0||buff.combustion.remains>travel_time||(cooldown.meteor.duration<variable.time_to_combustion&!talent.rune_of_power)||talent.rune_of_power&buff.rune_of_power.up&variable.time_to_combustion>action.meteor.cooldown||fight_remains<variable.time_to_combustion\nactions.active_talents+=/dragons_breath,if=talent.alexstraszas_fury&(buff.combustion.down&!buff.hot_streak.react)\n\nactions.combustion_cooldowns=potion\nactions.combustion_cooldowns+=/blood_fury\nactions.combustion_cooldowns+=/berserking,if=buff.combustion.up\nactions.combustion_cooldowns+=/fireblood\nactions.combustion_cooldowns+=/ancestral_call\n## The addon does not invoke external buffs, because they player cannot actually choose to trigger them personally.\n## actions.combustion_cooldowns+=/invoke_external_buff,name=power_infusion,if=buff.power_infusion.down\n## actions.combustion_cooldowns+=/invoke_external_buff,name=blessing_of_summer,if=buff.blessing_of_summer.down\nactions.combustion_cooldowns+=/time_warp,if=(talent.temporal_warp||runeforge.temporal_warp)&buff.exhaustion.up\nactions.combustion_cooldowns+=/use_item,effect_name=gladiators_badge\nactions.combustion_cooldowns+=/use_item,name=irideus_fragment\nactions.combustion_cooldowns+=/use_item,name=spoils_of_neltharus\nactions.combustion_cooldowns+=/use_item,name=tome_of_unstable_power\nactions.combustion_cooldowns+=/use_item,name=timebreaching_talon\nactions.combustion_cooldowns+=/use_item,name=voidmenders_shadowgem\nactions.combustion_cooldowns+=/use_item,name=horn_of_valor\n\nactions.combustion_phase=lights_judgment,if=buff.combustion.down\nactions.combustion_phase+=/bag_of_tricks,if=buff.combustion.down\nactions.combustion_phase+=/living_bomb,if=active_enemies>1&buff.combustion.down\n# Other cooldowns that should be used with Combustion should only be used with an actual Combustion cast and not with a Sun King's Blessing proc.\nactions.combustion_phase+=/call_action_list,name=combustion_cooldowns,if=buff.combustion.remains>variable.skb_duration||fight_remains<20\nactions.combustion_phase+=/use_item,name=hyperthread_wristwraps,if=prev.1.fire_blast+prev.2.fire_blast+prev.3.fire_blast>=2&action.fire_blast.charges=0\nactions.combustion_phase+=/use_item,name=neural_synapse_enhancer,if=variable.time_to_combustion>60\nactions.combustion_phase+=/call_action_list,name=active_talents\n# If Sun King's Blessing stacks are high, cancel them before Combustion so that the Sun King's Blessing proc can be safely delayed until after Combustion without risk of expiration.\nactions.combustion_phase+=/cancel_buff,name=sun_kings_blessing,if=!set_bonus.tier28_4pc&buff.combustion.down&buff.sun_kings_blessing.stack>2&talent.rune_of_power&cooldown.rune_of_power.remains<20\n# If Combustion is down, precast something before activating it.\nactions.combustion_phase+=/flamestrike,if=buff.combustion.down&cooldown.combustion.remains<cast_time&active_enemies>=variable.combustion_flamestrike\nactions.combustion_phase+=/pyroblast,if=buff.combustion.down&buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>cast_time&buff.sun_kings_blessing_ready.expiration_delay_remains=0\nactions.combustion_phase+=/pyroblast,if=buff.combustion.down&buff.pyroclasm.react&buff.pyroclasm.remains>cast_time\nactions.combustion_phase+=/fireball,if=buff.combustion.down&cooldown.combustion.remains<cast_time&!conduit.flame_accretion\nactions.combustion_phase+=/scorch,if=buff.combustion.down&cooldown.combustion.remains<cast_time\n# Combustion should be used when the precast is almost finished.\nactions.combustion_phase+=/combustion,use_off_gcd=1,use_while_casting=1,if=hot_streak_spells_in_flight=0&buff.combustion.down&variable.time_to_combustion<=0&(!runeforge.disciplinary_command||buff.disciplinary_command.up||buff.disciplinary_command_frost.up&talent.rune_of_power&cooldown.buff_disciplinary_command.ready)&(!runeforge.grisly_icicle||debuff.grisly_icicle.up)&(!covenant.necrolord||cooldown.deathborne.remains||buff.deathborne.up)&(!covenant.venthyr||cooldown.mirrors_of_torment.remains)&(action.scorch.executing&action.scorch.execute_remains<variable.combustion_cast_remains||action.fireball.executing&action.fireball.execute_remains<variable.combustion_cast_remains||action.pyroblast.executing&action.pyroblast.execute_remains<variable.combustion_cast_remains||action.flamestrike.executing&action.flamestrike.execute_remains<variable.combustion_cast_remains)\n# Rune of Power can be used in Combustion if it is down, but this should only be done if there is more Combustion time to benefit from than there would be from an SKB Combustion later.\nactions.combustion_phase+=/rune_of_power,if=buff.rune_of_power.down&variable.extended_combustion_remains>variable.skb_duration\n# Without Feel the Burn, just use Fire Blasts when they won't munch crits and when Firestorm is down.\nactions.combustion_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!talent.feel_the_burn&!conduit.infernal_cascade&!variable.fire_blast_pooling&(!set_bonus.tier28_4pc||debuff.mirrors_of_torment.down||buff.sun_kings_blessing_ready.down||action.pyroblast.executing)&buff.combustion.up&!(buff.firestorm.react||buff.hyperthermia.react)&!buff.hot_streak.react&hot_streak_spells_in_flight+buff.heating_up.react*(gcd.remains>0)<2\nactions.combustion_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=conduit.infernal_cascade&!variable.fire_blast_pooling&(!set_bonus.tier28_4pc||debuff.mirrors_of_torment.down||buff.sun_kings_blessing_ready.down||action.pyroblast.executing)&(!equipped.hyperthread_wristwraps||!cooldown.hyperthread_wristwraps_300142.ready||charges>1||debuff.mirrors_of_torment.up)&(variable.expected_fire_blasts>=variable.needed_fire_blasts||buff.combustion.remains<gcd.max||variable.extended_combustion_remains<=buff.infernal_cascade.duration||buff.infernal_cascade.stack<2||buff.infernal_cascade.remains<gcd.max||cooldown.shifting_power.ready&variable.use_shifting_power||equipped.hyperthread_wristwraps&cooldown.hyperthread_wristwraps_300142.ready)&buff.combustion.up&(!(buff.firestorm.react||buff.hyperthermia.react)||buff.infernal_cascade.remains<0.5)&!buff.hot_streak.react&hot_streak_spells_in_flight+buff.heating_up.react*(gcd.remains>0)<2\nactions.combustion_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=talent.feel_the_burn&!variable.fire_blast_pooling&(!set_bonus.tier28_4pc||debuff.mirrors_of_torment.down||buff.sun_kings_blessing_ready.down||action.pyroblast.executing)&(!equipped.hyperthread_wristwraps||!cooldown.hyperthread_wristwraps_300142.ready||charges>1||debuff.mirrors_of_torment.up)&(variable.expected_fire_blasts>=variable.needed_fire_blasts||buff.combustion.remains<gcd.max||variable.extended_combustion_remains<=buff.feel_the_burn.duration||buff.feel_the_burn.stack<2||buff.feel_the_burn.remains<gcd.max||cooldown.shifting_power.ready&variable.use_shifting_power||equipped.hyperthread_wristwraps&cooldown.hyperthread_wristwraps_300142.ready)&buff.combustion.up&(!(buff.firestorm.react||buff.hyperthermia.react)||buff.feel_the_burn.remains<0.5)&!buff.hot_streak.react&hot_streak_spells_in_flight+buff.heating_up.react*(gcd.remains>0)<2\n# Spend Hot Streaks during Combustion at high priority.\nactions.combustion_phase+=/flamestrike,if=(buff.hot_streak.react&active_enemies>=variable.combustion_flamestrike)||((buff.firestorm.react||buff.hyperthermia.react)&active_enemies>=variable.combustion_flamestrike-(runeforge.firestorm||talent.hyperthermia))\n# Radiant Spark should be used with a Hot Streak ready to use immediately after the cast finishes. This will naturally set up a Hot Streak spent for the final stack of Radiant Spark.\nactions.combustion_phase+=/radiant_spark,if=buff.combustion.up&2*buff.hot_streak.react+buff.heating_up.react+hot_streak_spells_in_flight=2\nactions.combustion_phase+=/pyroblast,if=(buff.firestorm.react||buff.hyperthermia.react)\n## With Sun King's Blessing, there is a brief delay before the Sun King's Blessing ready buff is removed after consuming it. It is beneficial to wait for this delay before spending Hot Streaks to not waste a stack.\n## actions.combustion_phase+=/wait,sec=0.01,if=buff.hot_streak.react&active_enemies<variable.combustion_flamestrike&(buff.sun_kings_blessing_ready.expiration_delay_remains||time-buff.sun_kings_blessing_ready.last_expire<variable.skb_delay-0.03)\nactions.combustion_phase+=/pyroblast,if=buff.hot_streak.react&buff.combustion.up\nactions.combustion_phase+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.react&active_enemies<variable.combustion_flamestrike&buff.combustion.up\n# Using Shifting Power during Combustion to restore Fire Blast and Phoenix Flame charges can be beneficial, but usually only on AoE.\nactions.combustion_phase+=/shifting_power,if=variable.use_shifting_power&buff.combustion.up&!action.fire_blast.charges&(action.phoenix_flames.charges<action.phoenix_flames.max_charges||talent.alexstraszas_fury)\n# If a Sun King's Blessing proc would be used, Rune of Power should be used first if the existing Rune of Power will expire during the cast.\nactions.combustion_phase+=/rune_of_power,if=buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>execute_time+action.flamestrike.cast_time&buff.rune_of_power.remains<action.flamestrike.cast_time&active_enemies>=variable.combustion_flamestrike\nactions.combustion_phase+=/flamestrike,if=buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>cast_time&active_enemies>=variable.combustion_flamestrike&buff.sun_kings_blessing_ready.expiration_delay_remains=0\nactions.combustion_phase+=/rune_of_power,if=buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>execute_time+action.pyroblast.cast_time&buff.rune_of_power.remains<action.pyroblast.cast_time\nactions.combustion_phase+=/pyroblast,if=buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>cast_time&buff.sun_kings_blessing_ready.expiration_delay_remains=0\n# Pyroclasm procs should be used in Combustion at higher priority than Phoenix Flames and Scorch.\nactions.combustion_phase+=/pyroblast,if=buff.pyroclasm.react&buff.pyroclasm.remains>cast_time&buff.combustion.remains>cast_time&active_enemies<variable.combustion_flamestrike&(!talent.feel_the_burn||buff.feel_the_burn.remains>execute_time||buff.heating_up.react+hot_streak_spells_in_flight<2)\nactions.combustion_phase+=/fireball,if=buff.combustion.remains>cast_time&buff.flame_accelerant.react\n# Use Phoenix Flames and Scorch in Combustion to help generate Hot Streaks when Fire Blasts are not available or need to be conserved.\nactions.combustion_phase+=/phoenix_flames,if=!talent.alexstraszas_fury&buff.combustion.up&travel_time<buff.combustion.remains&buff.heating_up.react+hot_streak_spells_in_flight<2&(!talent.from_the_ashes||variable.extended_combustion_remains<10)\nactions.combustion_phase+=/scorch,if=buff.combustion.remains>cast_time&cast_time>=gcd.max\nactions.combustion_phase+=/fireball,if=buff.combustion.remains>cast_time\n# If there isn't enough time left in Combustion for a Phoenix Flames or Scorch to hit inside of Combustion, use something else.\nactions.combustion_phase+=/living_bomb,if=buff.combustion.remains<gcd.max&active_enemies>1\nactions.combustion_phase+=/ice_nova,if=buff.combustion.remains<gcd.max\n\nactions.rop_phase=flamestrike,if=active_enemies>=variable.hot_streak_flamestrike&(buff.hot_streak.react||(buff.firestorm.react||buff.hyperthermia.react))\nactions.rop_phase+=/fireball,if=buff.deathborne.up&runeforge.deaths_fathom&variable.time_to_combustion<buff.deathborne.remains&active_enemies>=2\nactions.rop_phase+=/flamestrike,if=active_enemies>=variable.hard_cast_flamestrike&buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>cast_time&buff.sun_kings_blessing_ready.expiration_delay_remains=0\nactions.rop_phase+=/pyroblast,if=buff.sun_kings_blessing_ready.up&buff.sun_kings_blessing_ready.remains>cast_time&buff.sun_kings_blessing_ready.expiration_delay_remains=0\nactions.rop_phase+=/pyroblast,if=(buff.firestorm.react||buff.hyperthermia.react)\nactions.rop_phase+=/pyroblast,if=buff.hot_streak.react\n# Use one Fire Blast early in RoP if you don't have either Heating Up or Hot Streak yet and either: (a) have more than two already, (b) have Alexstrasza's Fury ready to use, or (c) Searing Touch is active. Don't do this while hard casting Flamestrikes or when Sun King's Blessing is ready.\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!variable.fire_blast_pooling&buff.sun_kings_blessing_ready.down&active_enemies<variable.hard_cast_flamestrike&!firestarter.active&(!buff.heating_up.react&!buff.hot_streak.react&!prev_off_gcd.fire_blast&(action.fire_blast.charges>=2||(talent.alexstraszas_fury&cooldown.dragons_breath.ready)||searing_touch.active))\n# Use Fire Blast either during a Fireball/Pyroblast cast when Heating Up is active or during execute with Searing Touch.\nactions.rop_phase+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!variable.fire_blast_pooling&!firestarter.active&buff.sun_kings_blessing_ready.down&(((action.fireball.executing&(action.fireball.execute_remains<0.5||!(runeforge.firestorm||talent.hyperthermia))||action.pyroblast.executing&(action.pyroblast.execute_remains<0.5||!(runeforge.firestorm||talent.hyperthermia)))&buff.heating_up.react)||(searing_touch.active&(buff.heating_up.react&!action.scorch.executing||!buff.hot_streak.react&!buff.heating_up.react&action.scorch.executing&!hot_streak_spells_in_flight)))\nactions.rop_phase+=/call_action_list,name=active_talents\n# actions.rop_phase+=/scorch,if=searing_touch.active&talent.improved_scorch&debuff.improved_scorch.remains<3*gcd.max\nactions.rop_phase+=/pyroblast,if=buff.pyroclasm.react&cast_time<buff.pyroclasm.remains&cast_time<buff.rune_of_power.remains&(!(runeforge.sun_kings_blessing||talent.sun_kings_blessing)||buff.pyroclasm.remains<action.fireball.cast_time+cast_time*buff.pyroclasm.react)\nactions.rop_phase+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.react&searing_touch.active&active_enemies<variable.hot_streak_flamestrike\nactions.rop_phase+=/phoenix_flames,if=!variable.phoenix_pooling&(!hot_streak_spells_in_flight&(buff.heating_up.react||charges>1))\nactions.rop_phase+=/scorch,if=searing_touch.active\nactions.rop_phase+=/dragons_breath,if=active_enemies>2\nactions.rop_phase+=/arcane_explosion,if=active_enemies>=variable.arcane_explosion&mana.pct>=variable.arcane_explosion_mana\n# With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.\nactions.rop_phase+=/flamestrike,if=active_enemies>=variable.hard_cast_flamestrike\nactions.rop_phase+=/pyroblast,if=talent.tempered_flames&!buff.flame_accelerant.react\nactions.rop_phase+=/fireball\n\nactions.standard_rotation=flamestrike,if=active_enemies>=variable.hot_streak_flamestrike&(buff.hot_streak.react||(buff.firestorm.react||buff.hyperthermia.react))\nactions.standard_rotation+=/fireball,if=buff.deathborne.up&runeforge.deaths_fathom&variable.time_to_combustion<buff.deathborne.remains&active_enemies>=2\nactions.standard_rotation+=/pyroblast,if=(buff.firestorm.react||buff.hyperthermia.react)\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&buff.hot_streak.remains<action.fireball.execute_time\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&(prev_gcd.1.fireball||firestarter.active||action.pyroblast.in_flight)\n# Try to get SKB procs inside RoP phases or Combustion phases when possible.\nactions.standard_rotation+=/flamestrike,if=active_enemies>=variable.hard_cast_flamestrike&buff.sun_kings_blessing_ready.up&(cooldown.rune_of_power.remains+action.rune_of_power.execute_time+cast_time>buff.sun_kings_blessing_ready.remains||!talent.rune_of_power)&variable.time_to_combustion+cast_time>buff.sun_kings_blessing_ready.remains&buff.sun_kings_blessing_ready.expiration_delay_remains=0\nactions.standard_rotation+=/pyroblast,if=buff.sun_kings_blessing_ready.up&(cooldown.rune_of_power.remains+action.rune_of_power.execute_time+cast_time>buff.sun_kings_blessing_ready.remains||!talent.rune_of_power)&variable.time_to_combustion+cast_time>buff.sun_kings_blessing_ready.remains&buff.sun_kings_blessing_ready.expiration_delay_remains=0\nactions.standard_rotation+=/pyroblast,if=buff.hot_streak.react&searing_touch.active\nactions.standard_rotation+=/pyroblast,if=buff.pyroclasm.react&cast_time<buff.pyroclasm.remains&(!(runeforge.sun_kings_blessing||talent.sun_kings_blessing)||buff.pyroclasm.remains<action.fireball.cast_time+cast_time*buff.pyroclasm.react)\n# During the standard rotation, only use Fire Blasts when they are not being pooled for RoP or Combustion. Use Fire Blast either during a Fireball/Pyroblast cast when Heating Up is active or during execute with Searing Touch.\nactions.standard_rotation+=/fire_blast,use_off_gcd=1,use_while_casting=1,if=!firestarter.active&!variable.fire_blast_pooling&buff.sun_kings_blessing_ready.down&(((action.fireball.executing&(action.fireball.execute_remains<0.5||!(runeforge.firestorm||talent.hyperthermia))||action.pyroblast.executing&(action.pyroblast.execute_remains<0.5||!(runeforge.firestorm||talent.hyperthermia)))&buff.heating_up.react)||(searing_touch.active&(buff.heating_up.react&!action.scorch.executing||!buff.hot_streak.react&!buff.heating_up.react&action.scorch.executing&!hot_streak_spells_in_flight)))\nactions.standard_rotation+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.react&searing_touch.active&active_enemies<variable.hot_streak_flamestrike\nactions.standard_rotation+=/phoenix_flames,if=!variable.phoenix_pooling&(!hot_streak_spells_in_flight&(buff.heating_up.react))\nactions.standard_rotation+=/call_action_list,name=active_talents\nactions.standard_rotation+=/dragons_breath,if=active_enemies>1\nactions.standard_rotation+=/scorch,if=searing_touch.active\nactions.standard_rotation+=/arcane_explosion,if=active_enemies>=variable.arcane_explosion&mana.pct>=variable.arcane_explosion_mana\n# With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.\nactions.standard_rotation+=/flamestrike,if=active_enemies>=variable.hard_cast_flamestrike\nactions.standard_rotation+=/pyroblast,if=talent.tempered_flames&!buff.flame_accelerant.react\nactions.standard_rotation+=/fireball",
["spec"] = 63,
},
["Retribution"] = {
["builtIn"] = true,
["date"] = 20230330,
["spec"] = 70,
["desc"] = "2023-02-21: Iterate on trinket timing (end of bossfight logic).\n\n2023-03-13: Edits to support finishers during Crusade procs from Retribution Aura.\n\n2023-03-21: 10.0.7 priority update.\n\n2023-03-28: Update potion end-of-fight usage to check for boss.",
["profile"] = "actions.precombat+=/arcane_torrent,if=talent.final_reckoning\nactions.precombat+=/shield_of_vengeance\nactions.precombat+=/variable,name=trinket_1_buffs,value=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\nactions.precombat+=/variable,name=trinket_2_buffs,value=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\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.manic_grieftorch\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.manic_grieftorch\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.1.cooldown.duration=0||trinket.1.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.2.cooldown.duration=0||trinket.2.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.2.cooldown.duration=0)\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))\n\n# Executed every time the actor is available.\nactions+=/rebuke\nactions+=/variable,name=time_to_crusade,op=setif,value=cooldown.crusade.remains<?buff.crusade.remains,value_else=0,condition=talent.crusade\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=generators\n\nactions.cooldowns=potion,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||boss&fight_remains<25\nactions.cooldowns+=/lights_judgment,if=spell_targets.lights_judgment>=2||!raid_event.adds.exists||raid_event.adds.in>75||raid_event.adds.up\nactions.cooldowns+=/fireblood,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10\nactions.cooldowns+=/use_item,name=algethar_puzzle_box,if=(cooldown.avenging_wrath.remains<5&!talent.crusade||variable.time_to_crusade<5&talent.crusade)&(holy_power>=5&time<5||holy_power>=3&time>5)\nactions.cooldowns+=/use_item,slot=trinket1,if=(buff.avenging_wrath.up&cooldown.avenging_wrath.remains>40||buff.crusade.up&buff.crusade.stack=10)&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.proc.any_dps.duration>=fight_remains\nactions.cooldowns+=/use_item,slot=trinket2,if=(buff.avenging_wrath.up&cooldown.avenging_wrath.remains>40||buff.crusade.up&buff.crusade.stack=10)&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.proc.any_dps.duration>=fight_remains\nactions.cooldowns+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(!variable.trinket_1_manual||buff.avenging_wrath.down&buff.crusade.down)&(trinket.2.cooldown.remains||!variable.trinket_2_buffs||!buff.crusade.up&cooldown.crusade.remains>20||!buff.avenging_wrath.up&cooldown.avenging_wrath.remains>20)\nactions.cooldowns+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(!variable.trinket_2_manual||buff.avenging_wrath.down&buff.crusade.down)&(trinket.1.cooldown.remains||!variable.trinket_1_buffs||!buff.crusade.up&cooldown.crusade.remains>20||!buff.avenging_wrath.up&cooldown.avenging_wrath.remains>20)\nactions.cooldowns+=/shield_of_vengeance,if=fight_remains>15\nactions.cooldowns+=/avenging_wrath,if=holy_power>=4&time<5||holy_power>=3&time>5||holy_power>=2&talent.divine_auxiliary&(cooldown.execution.remains=0||cooldown.final_reckoning.remains=0)\nactions.cooldowns+=/crusade,if=buff.crusade.remains<gcd.max&(holy_power>=5&time<5||holy_power>=3&time>5)\nactions.cooldowns+=/execution_sentence,if=(!buff.crusade.up&cooldown.crusade.remains>10||buff.crusade.stack=10||cooldown.avenging_wrath.remains>10)&(holy_power>=3||holy_power>=2&talent.divine_auxiliary)&target.time_to_die>8\nactions.cooldowns+=/final_reckoning,if=(holy_power>=4&time<8||holy_power>=3&time>=8||holy_power>=2&talent.divine_auxiliary)&(cooldown.avenging_wrath.remains>gcd||cooldown.crusade.remains&(!buff.crusade.up||buff.crusade.stack>=10))&(time_to_hpg>0||holy_power=5||holy_power>=2&talent.divine_auxiliary)&(!raid_event.adds.exists||raid_event.adds.up||raid_event.adds.in>40)\n\nactions.finishers+=/variable,name=ds_castable,value=spell_targets.divine_storm>=2||buff.empyrean_power.up\nactions.finishers+=/divine_storm,if=variable.ds_castable&!buff.empyrean_legacy.up&!(buff.divine_arbiter.up&buff.divine_arbiter.stack>24)&((!talent.crusade||cooldown.crusade.remains>gcd*3)&(!talent.execution_sentence||talent.divine_auxiliary||target.time_to_die<8||cooldown.execution_sentence.remains>gcd*2)&(!talent.final_reckoning||talent.divine_auxiliary||cooldown.final_reckoning.remains>gcd*2)||buff.crusade.up&buff.crusade.stack<10)\nactions.finishers+=/justicars_vengeance,if=(!talent.crusade||cooldown.crusade.remains>gcd*3)&(!talent.execution_sentence||talent.divine_auxiliary||target.time_to_die<8||cooldown.execution_sentence.remains>gcd*2)&(!talent.final_reckoning||talent.divine_auxiliary||cooldown.final_reckoning.remains>gcd*2)||buff.crusade.up&buff.crusade.stack<10\nactions.finishers+=/templars_verdict,if=(!talent.crusade||cooldown.crusade.remains>gcd*3)&(!talent.execution_sentence||talent.divine_auxiliary||target.time_to_die<8||cooldown.execution_sentence.remains>gcd*2)&(!talent.final_reckoning||talent.divine_auxiliary||cooldown.final_reckoning.remains>gcd*2)||buff.crusade.up&buff.crusade.stack<10\n\nactions.generators+=/call_action_list,name=finishers,strict=1,if=holy_power=5||(debuff.judgment.up||holy_power=4)&buff.divine_resonance.up\nactions.generators+=/wake_of_ashes,if=holy_power<=2&(cooldown.avenging_wrath.remains||cooldown.crusade.remains)&(!talent.execution_sentence||cooldown.execution_sentence.remains>4||target.time_to_die<8)&(!raid_event.adds.exists||raid_event.adds.in>20||raid_event.adds.up)\nactions.generators+=/divine_toll,if=holy_power<=2&!debuff.judgment.up&(!raid_event.adds.exists||raid_event.adds.in>30||raid_event.adds.up)&(cooldown.avenging_wrath.remains>15||cooldown.crusade.remains>15||fight_remains<8)\nactions.generators+=/call_action_list,name=finishers,strict=1,if=holy_power>=3&buff.crusade.up&buff.crusade.stack<10\nactions.generators+=/templar_slash,if=buff.templar_strikes.remains<gcd&spell_targets.divine_storm>=2\nactions.generators+=/judgment,if=!debuff.judgment.up&(holy_power<=3||!talent.boundless_judgment)&spell_targets.divine_storm>=2\nactions.generators+=/blade_of_justice,if=(holy_power<=3||!talent.holy_blade)&spell_targets.divine_storm>=2\nactions.generators+=/hammer_of_wrath,if=(spell_targets.divine_storm<2||!talent.blessed_champion)&(holy_power<=3||target.health.pct>20||!talent.vanguards_momentum)\nactions.generators+=/templar_slash,if=buff.templar_strikes.remains<gcd\nactions.generators+=/blade_of_justice,if=holy_power<=3||!talent.holy_blade\nactions.generators+=/judgment,if=!debuff.judgment.up&(holy_power<=3||!talent.boundless_judgment)\nactions.generators+=/call_action_list,name=finishers,strict=1,if=(target.health.pct<=20||buff.avenging_wrath.up||buff.crusade.up||buff.empyrean_power.up)\nactions.generators+=/consecration,if=!consecration.up&spell_targets.divine_storm>=2\nactions.generators+=/divine_hammer,if=spell_targets.divine_storm>=2\nactions.generators+=/crusader_strike,if=cooldown.crusader_strike.charges_fractional>=1.75&(holy_power<=2||holy_power<=3&cooldown.blade_of_justice.remains>gcd*2||holy_power=4&cooldown.blade_of_justice.remains>gcd*2&cooldown.judgment.remains>gcd*2)\nactions.generators+=/call_action_list,name=finishers\nactions.generators+=/templar_slash\nactions.generators+=/templar_strike\nactions.generators+=/judgment,if=holy_power<=3||!talent.boundless_judgment\nactions.generators+=/hammer_of_wrath,if=holy_power<=3||target.health.pct>20||!talent.vanguards_momentum\nactions.generators+=/crusader_strike\nactions.generators+=/arcane_torrent\nactions.generators+=/consecration\nactions.generators+=/divine_hammer",
["version"] = 20230330,
["warnings"] = "The import for 'default' required some automated changes.\nLine 2: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'talent.final_reckoning' to 'talent.final_reckoning.enabled' (1x).\nLine 3: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 3: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 3: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 3: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 3: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 3: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 4: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 4: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 4: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 4: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 4: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 6: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted operations in 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.t1.cooldown.duration=0||trinket.t1.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.t1.cooldown.duration=0)' to 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%cooldown.crusade.duration=0||cooldown.crusade.duration%trinket.t1.cooldown.duration=0||trinket.t1.cooldown.duration%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%trinket.t1.cooldown.duration=0)'.\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted operations in 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.t2.cooldown.duration=0||trinket.t2.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.t2.cooldown.duration=0)' to 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%cooldown.crusade.duration=0||cooldown.crusade.duration%trinket.t2.cooldown.duration=0||trinket.t2.cooldown.duration%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%trinket.t2.cooldown.duration=0)'.\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))'.\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'cooldowns' required some automated changes.\nLine 4: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 4: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 5: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (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.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 5: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 6: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (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.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\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'.\nLine 8: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 8: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 10: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 12: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 13: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 13: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\n\nThe import for 'finishers' required some automated changes.\nLine 2: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 2: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 2: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 2: Converted 'talent.final_reckoning' to 'talent.final_reckoning.enabled' (1x).\nLine 2: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 3: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 3: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 3: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 3: Converted 'talent.final_reckoning' to 'talent.final_reckoning.enabled' (1x).\nLine 3: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 4: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 4: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 4: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 4: Converted 'talent.final_reckoning' to 'talent.final_reckoning.enabled' (1x).\nLine 4: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\n\nThe import for 'generators' required some automated changes.\nLine 2: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 6: Converted 'talent.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 7: Converted 'talent.holy_blade' to 'talent.holy_blade.enabled' (1x).\nLine 8: Converted 'talent.blessed_champion' to 'talent.blessed_champion.enabled' (1x).\nLine 8: Converted 'talent.vanguards_momentum' to 'talent.vanguards_momentum.enabled' (1x).\nLine 10: Converted 'talent.holy_blade' to 'talent.holy_blade.enabled' (1x).\nLine 11: Converted 'talent.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 19: Converted 'talent.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 20: Converted 'talent.vanguards_momentum' to 'talent.vanguards_momentum.enabled' (1x).\n\nImported 5 action lists.\n",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "rebuke",
}, -- [1]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "time_to_crusade",
["value"] = "cooldown.crusade.remains <? buff.crusade.remains",
["value_else"] = "0",
["criteria"] = "talent.crusade.enabled",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "generators",
}, -- [4]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "talent.final_reckoning.enabled",
["action"] = "arcane_torrent",
}, -- [1]
{
["action"] = "shield_of_vengeance",
["enabled"] = true,
}, -- [2]
{
["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",
["var_name"] = "trinket_1_buffs",
}, -- [3]
{
["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",
["var_name"] = "trinket_2_buffs",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.manic_grieftorch",
["var_name"] = "trinket_1_manual",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.manic_grieftorch",
["var_name"] = "trinket_2_manual",
}, -- [6]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.crusade.duration = 0 || cooldown.crusade.duration % trinket.t1.cooldown.duration = 0 || trinket.t1.cooldown.duration % cooldown.avenging_wrath.duration = 0 || cooldown.avenging_wrath.duration % trinket.t1.cooldown.duration = 0 )",
}, -- [7]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.crusade.duration = 0 || cooldown.crusade.duration % trinket.t2.cooldown.duration = 0 || trinket.t2.cooldown.duration % cooldown.avenging_wrath.duration = 0 || cooldown.avenging_wrath.duration % trinket.t2.cooldown.duration = 0 )",
}, -- [8]
{
["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 ) )",
}, -- [9]
},
["generators"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "holy_power = 5 || ( debuff.judgment.up || holy_power = 4 ) & buff.divine_resonance.up",
["list_name"] = "finishers",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "holy_power <= 2 & ( cooldown.avenging_wrath.remains || cooldown.crusade.remains ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > 4 || target.time_to_die < 8 ) & ( ! raid_event.adds.exists || raid_event.adds.in > 20 || raid_event.adds.up )",
["action"] = "wake_of_ashes",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "holy_power <= 2 & ! debuff.judgment.up & ( ! raid_event.adds.exists || raid_event.adds.in > 30 || raid_event.adds.up ) & ( cooldown.avenging_wrath.remains > 15 || cooldown.crusade.remains > 15 || fight_remains < 8 )",
["action"] = "divine_toll",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "holy_power >= 3 & buff.crusade.up & buff.crusade.stack < 10",
["list_name"] = "finishers",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.templar_strikes.remains < gcd.max & spell_targets.divine_storm >= 2",
["action"] = "templar_slash",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! debuff.judgment.up & ( holy_power <= 3 || ! talent.boundless_judgment.enabled ) & spell_targets.divine_storm >= 2",
["action"] = "judgment",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( holy_power <= 3 || ! talent.holy_blade.enabled ) & spell_targets.divine_storm >= 2",
["action"] = "blade_of_justice",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( spell_targets.divine_storm < 2 || ! talent.blessed_champion.enabled ) & ( holy_power <= 3 || target.health.pct > 20 || ! talent.vanguards_momentum.enabled )",
["action"] = "hammer_of_wrath",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.templar_strikes.remains < gcd.max",
["action"] = "templar_slash",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 || ! talent.holy_blade.enabled",
["action"] = "blade_of_justice",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! debuff.judgment.up & ( holy_power <= 3 || ! talent.boundless_judgment.enabled )",
["action"] = "judgment",
}, -- [11]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( target.health.pct <= 20 || buff.avenging_wrath.up || buff.crusade.up || buff.empyrean_power.up )",
["list_name"] = "finishers",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! consecration.up & spell_targets.divine_storm >= 2",
["action"] = "consecration",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "spell_targets.divine_storm >= 2",
["action"] = "divine_hammer",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "cooldown.crusader_strike.charges_fractional >= 1.75 & ( holy_power <= 2 || holy_power <= 3 & cooldown.blade_of_justice.remains > gcd.max * 2 || holy_power = 4 & cooldown.blade_of_justice.remains > gcd.max * 2 & cooldown.judgment.remains > gcd.max * 2 )",
["action"] = "crusader_strike",
}, -- [15]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "finishers",
}, -- [16]
{
["action"] = "templar_slash",
["enabled"] = true,
}, -- [17]
{
["action"] = "templar_strike",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 || ! talent.boundless_judgment.enabled",
["action"] = "judgment",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 || target.health.pct > 20 || ! talent.vanguards_momentum.enabled",
["action"] = "hammer_of_wrath",
}, -- [20]
{
["action"] = "crusader_strike",
["enabled"] = true,
}, -- [21]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [22]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [23]
{
["action"] = "divine_hammer",
["enabled"] = true,
}, -- [24]
},
["finishers"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.divine_storm >= 2 || buff.empyrean_power.up",
["var_name"] = "ds_castable",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.ds_castable & ! buff.empyrean_legacy.up & ! ( buff.divine_arbiter.up & buff.divine_arbiter.stack > 24 ) & ( ( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 ) & ( ! talent.execution_sentence.enabled || talent.divine_auxiliary.enabled || target.time_to_die < 8 || cooldown.execution_sentence.remains > gcd.max * 2 ) & ( ! talent.final_reckoning.enabled || talent.divine_auxiliary.enabled || cooldown.final_reckoning.remains > gcd.max * 2 ) || buff.crusade.up & buff.crusade.stack < 10 )",
["action"] = "divine_storm",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 ) & ( ! talent.execution_sentence.enabled || talent.divine_auxiliary.enabled || target.time_to_die < 8 || cooldown.execution_sentence.remains > gcd.max * 2 ) & ( ! talent.final_reckoning.enabled || talent.divine_auxiliary.enabled || cooldown.final_reckoning.remains > gcd.max * 2 ) || buff.crusade.up & buff.crusade.stack < 10",
["action"] = "justicars_vengeance",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 ) & ( ! talent.execution_sentence.enabled || talent.divine_auxiliary.enabled || target.time_to_die < 8 || cooldown.execution_sentence.remains > gcd.max * 2 ) & ( ! talent.final_reckoning.enabled || talent.divine_auxiliary.enabled || cooldown.final_reckoning.remains > gcd.max * 2 ) || buff.crusade.up & buff.crusade.stack < 10",
["action"] = "templars_verdict",
}, -- [4]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || boss & fight_remains < 25",
["action"] = "potion",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "spell_targets.lights_judgment >= 2 || ! raid_event.adds.exists || raid_event.adds.in > 75 || raid_event.adds.up",
["action"] = "lights_judgment",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10",
["action"] = "fireblood",
}, -- [3]
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["criteria"] = "( cooldown.avenging_wrath.remains < 5 & ! talent.crusade.enabled || variable.time_to_crusade < 5 & talent.crusade.enabled ) & ( holy_power >= 5 & time < 5 || holy_power >= 3 & time > 5 )",
["name"] = "algethar_puzzle_box",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 40 || buff.crusade.up & buff.crusade.stack = 10 ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 40 || buff.crusade.up & buff.crusade.stack = 10 ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! variable.trinket_1_buffs & ( ! variable.trinket_1_manual || buff.avenging_wrath.down & buff.crusade.down ) & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs || ! buff.crusade.up & cooldown.crusade.remains > 20 || ! buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 20 )",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ( ! variable.trinket_2_manual || buff.avenging_wrath.down & buff.crusade.down ) & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs || ! buff.crusade.up & cooldown.crusade.remains > 20 || ! buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 20 )",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "fight_remains > 15",
["action"] = "shield_of_vengeance",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "holy_power >= 4 & time < 5 || holy_power >= 3 & time > 5 || holy_power >= 2 & talent.divine_auxiliary.enabled & ( cooldown.execution.remains = 0 || cooldown.final_reckoning.remains = 0 )",
["action"] = "avenging_wrath",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.crusade.remains < gcd.max & ( holy_power >= 5 & time < 5 || holy_power >= 3 & time > 5 )",
["action"] = "crusade",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( ! buff.crusade.up & cooldown.crusade.remains > 10 || buff.crusade.stack = 10 || cooldown.avenging_wrath.remains > 10 ) & ( holy_power >= 3 || holy_power >= 2 & talent.divine_auxiliary.enabled ) & target.time_to_die > 8",
["action"] = "execution_sentence",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( holy_power >= 4 & time < 8 || holy_power >= 3 & time >= 8 || holy_power >= 2 & talent.divine_auxiliary.enabled ) & ( cooldown.avenging_wrath.remains > gcd.max || cooldown.crusade.remains & ( ! buff.crusade.up || buff.crusade.stack >= 10 ) ) & ( time_to_hpg > 0 || holy_power = 5 || holy_power >= 2 & talent.divine_auxiliary.enabled ) & ( ! raid_event.adds.exists || raid_event.adds.up || raid_event.adds.in > 40 )",
["action"] = "final_reckoning",
}, -- [13]
},
},
["author"] = "SimC",
},
["Protection Paladin"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230327,
["author"] = "SimC",
["desc"] = "2023-02-27: Use SotR with Bastion of Light, Divine Purpose, or 3+ Holy Power if Righteous Protector is not talented or is outside its ICD.\n\n2023-03-06: Check for Of Dusk and Dawn buffs before spending using SotR at 3 CP.\n\n2023-03-19: Updated for 10.0.7.\n\n2023-03-21: Oops, Blessed Hammer still exists.\n\n2023-03-26: Updates from SimulationCraft (Avenger's Shield usage for 2pc Tier 29, SotR if ICD is bypassed).",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "rebuke",
}, -- [1]
{
["action"] = "cleanse_toxins",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "standard",
}, -- [6]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "buff.paladin_aura.down",
["action"] = "devotion_aura",
}, -- [1]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [2]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [3]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [4]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "tanking & buff.shield_of_the_righteous.down & ( holy_power.deficit = 0 || buff.divine_purpose.up )",
["action"] = "shield_of_the_righteous",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "health.pct < wog_health & ( holy_power.deficit = 0 || buff.divine_purpose.up || buff.shining_light_free.up )",
["action"] = "word_of_glory",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > goak_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "guardian_of_ancient_kings",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.final_stand.enabled & tanking & incoming_damage_5s > ds_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "divine_shield",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > goak_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "ardent_defender",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "health.pct < 15",
["action"] = "lay_on_hands",
}, -- [6]
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Evaluates a trinkets cooldown, divided by moment of glory or avenging wraths's cooldown. If it's value has no remainder return 1, else return 0.5.",
["criteria"] = "trinket.t1.has_use_buff & ( ( talent.moment_of_glory.enabled & trinket.t1.cooldown.duration % cooldown.moment_of_glory.duration = 0 ) || ( ! talent.moment_of_glory.enabled & trinket.t1.cooldown.duration % cooldown.avenging_wrath.duration = 0 ) )",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["value"] = "1",
}, -- [1]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "trinket.t2.has_use_buff & ( ( talent.moment_of_glory.enabled & trinket.t2.cooldown.duration % cooldown.moment_of_glory.duration = 0 ) || ( ! talent.moment_of_glory.enabled & trinket.t2.cooldown.duration % cooldown.avenging_wrath.duration = 0 ) )",
["value_else"] = "0.5",
["value"] = "1",
}, -- [2]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["criteria"] = "! trinket.t1.has_use_buff & trinket.t2.has_use_buff || trinket.t2.has_use_buff & ( ( 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 ) )",
["value_else"] = "1",
["value"] = "2",
}, -- [3]
{
["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",
["var_name"] = "trinket_1_buffs",
}, -- [4]
{
["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",
["var_name"] = "trinket_2_buffs",
}, -- [5]
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "( buff.moment_of_glory.up || ! talent.moment_of_glory_enabled.enabled & buff.aw_sentinel.up ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || boss & trinket.t1.buff_duration >= fight_remains",
["slot"] = "trinket1",
}, -- [6]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( buff.moment_of_glory.up || ! talent.moment_of_glory_enabled.enabled & buff.aw_sentinel.up ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || boss & trinket.t2.buff_duration >= fight_remains",
["slot"] = "trinket2",
}, -- [7]
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs || ( cooldown.moment_of_glory.remains > 20 || ( ! talent.moment_of_glory.enabled & ( cooldown.sentinel.remains > 20 || cooldown.avenging_wrath.remains > 20 ) ) ) )",
["slot"] = "trinket1",
}, -- [8]
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs || ( cooldown.moment_of_glory.remains > 20 || ( ! talent.moment_of_glory.enabled & ( cooldown.sentinel.remains > 20 || cooldown.avenging_wrath.remains > 20 ) ) ) )",
["slot"] = "trinket2",
}, -- [9]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [10]
},
["cooldowns"] = {
{
["enabled"] = true,
["description"] = "Use Avenger's Shield as first priority before anything else, if t29 2pc is equipped.",
["criteria"] = "time = 0 & set_bonus.tier29_2pc",
["action"] = "avengers_shield",
}, -- [1]
{
["action"] = "avenging_wrath",
["enabled"] = true,
}, -- [2]
{
["action"] = "avenging_wrath",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aw_sentinel.up",
["action"] = "potion",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( buff.aw_sentinel.remains < 15 || ( time > 10 || cooldown.sentinel.remains > 15 || cooldown.avenging_wrath.remains > 15 ) & ( cooldown.avengers_shield.remains & cooldown.judgment.remains & cooldown.hammer_of_wrath.remains ) )",
["action"] = "moment_of_glory",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.aw_sentinel.up",
["action"] = "bastion_of_light",
}, -- [6]
},
["standard"] = {
{
["enabled"] = true,
["description"] = "Use Shield of the Righteous according to Righteous Protector's ICD, but use it asap if it's a free proc (Bugged interaction, this ignores ICD)",
["criteria"] = "( ( ! talent.righteous_protector.enabled || buff.righteous_protector_icd.down ) & holy_power > 2 ) || buff.bastion_of_light.up || buff.divine_purpose.up",
["action"] = "shield_of_the_righteous",
}, -- [1]
{
["enabled"] = true,
["description"] = "Use Avenger's Shield as First Priority when 2pc buff is missing.",
["criteria"] = "buff.moment_of_glory.up || ( set_bonus.tier29_2pc & ( ! buff.ally_of_the_light.up || buff.ally_of_the_light.remains < gcd.max ) )",
["action"] = "avengers_shield",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.aw_sentinel.up",
["action"] = "hammer_of_wrath",
}, -- [3]
{
["enabled"] = true,
["action"] = "judgment",
["criteria"] = "charges = 2 || ! talent.crusaders_judgment.enabled",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "time > 20 || ( ( buff.aw_sentinel.up || ! talent.avenging_wrath.enabled & ! talent.sentinel.enabled ) & ( buff.moment_of_glory.up || ! talent.moment_of_glory.enabled ) )",
["action"] = "divine_toll",
}, -- [5]
{
["action"] = "avengers_shield",
["enabled"] = true,
}, -- [6]
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["action"] = "judgment",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! consecration.up",
["action"] = "consecration",
}, -- [9]
{
["action"] = "eye_of_tyr",
["enabled"] = true,
}, -- [10]
{
["action"] = "blessed_hammer",
["enabled"] = true,
}, -- [11]
{
["action"] = "hammer_of_the_righteous",
["enabled"] = true,
}, -- [12]
{
["action"] = "crusader_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.shining_light_free.up",
["action"] = "word_of_glory",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "holy_power < 5",
["action"] = "arcane_torrent",
}, -- [15]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [16]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [17]
},
},
["version"] = 20230327,
["warnings"] = "The import for 'trinkets' required some automated changes.\nLine 1: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 1: Converted operations in 'trinket.t1.has_use_buff&((talent.moment_of_glory.enabled&trinket.t1.cooldown.duration%%cooldown.moment_of_glory.duration=0)||(!talent.moment_of_glory.enabled&trinket.t1.cooldown.duration%%cooldown.avenging_wrath.duration=0))' to 'trinket.t1.has_use_buff&((talent.moment_of_glory.enabled&trinket.t1.cooldown.duration%cooldown.moment_of_glory.duration=0)||(!talent.moment_of_glory.enabled&trinket.t1.cooldown.duration%cooldown.avenging_wrath.duration=0))'.\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted operations in 'trinket.t2.has_use_buff&((talent.moment_of_glory.enabled&trinket.t2.cooldown.duration%%cooldown.moment_of_glory.duration=0)||(!talent.moment_of_glory.enabled&trinket.t2.cooldown.duration%%cooldown.avenging_wrath.duration=0))' to 'trinket.t2.has_use_buff&((talent.moment_of_glory.enabled&trinket.t2.cooldown.duration%cooldown.moment_of_glory.duration=0)||(!talent.moment_of_glory.enabled&trinket.t2.cooldown.duration%cooldown.avenging_wrath.duration=0))'.\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 3: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 3: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\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 3: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 3: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted operations in '!trinket.t1.has_use_buff&trinket.t2.has_use_buff||trinket.t2.has_use_buff&((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 '!trinket.t1.has_use_buff&trinket.t2.has_use_buff||trinket.t2.has_use_buff&((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 4: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 4: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 4: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 4: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 4: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 4: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 5: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 5: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 5: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 5: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 5: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'talent.moment_of_glory_enabled' to 'talent.moment_of_glory_enabled.enabled' (1x).\nLine 6: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 6: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 7: Converted 'talent.moment_of_glory_enabled' to 'talent.moment_of_glory_enabled.enabled' (1x).\nLine 7: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (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.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 7: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 8: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 9: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 9: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'standard' required some automated changes.\nLine 5: Converted 'talent.avenging_wrath' to 'talent.avenging_wrath.enabled' (1x).\nLine 5: Converted 'talent.sentinel' to 'talent.sentinel.enabled' (1x).\n\nImported 6 action lists.\n",
["profile"] = "actions.precombat+=/devotion_aura,if=buff.paladin_aura.down\nactions.precombat+=/lights_judgment\nactions.precombat+=/arcane_torrent\nactions.precombat+=/consecration\n\n# Executed every time the actor is available.\nactions=rebuke\nactions+=/cleanse_toxins\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=mitigation\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=standard\n\n# Use Avenger's Shield as first priority before anything else, if t29 2pc is equipped.\nactions.cooldowns+=/avengers_shield,if=time=0&set_bonus.tier29_2pc\nactions.cooldowns+=/avenging_wrath\nactions.cooldowns+=/sentinel\nactions.cooldowns+=/potion,if=buff.aw_sentinel.up\nactions.cooldowns+=/moment_of_glory,if=(buff.aw_sentinel.remains<15||(time>10||cooldown.sentinel.remains>15||cooldown.avenging_wrath.remains>15)&(cooldown.avengers_shield.remains&cooldown.judgment.remains&cooldown.hammer_of_wrath.remains))\nactions.cooldowns+=/bastion_of_light,if=buff.aw_sentinel.up\n\nactions.mitigation=shield_of_the_righteous,if=tanking&buff.shield_of_the_righteous.down&(holy_power.deficit=0||buff.divine_purpose.up)\nactions.mitigation+=/word_of_glory,if=health.pct<wog_health&(holy_power.deficit=0||buff.divine_purpose.up||buff.shining_light_free.up)\nactions.mitigation+=/guardian_of_ancient_kings,if=tanking&incoming_damage_5s>goak_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/divine_shield,if=talent.final_stand.enabled&tanking&incoming_damage_5s>ds_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/ardent_defender,if=tanking&incoming_damage_5s>goak_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/lay_on_hands,if=health.pct<15\n\n# Use Shield of the Righteous according to Righteous Protector's ICD, but use it asap if it's a free proc (Bugged interaction, this ignores ICD)\nactions.standard+=/shield_of_the_righteous,if=((!talent.righteous_protector.enabled||buff.righteous_protector_icd.down)&holy_power>2)||buff.bastion_of_light.up||buff.divine_purpose.up\n# Use Avenger's Shield as First Priority when 2pc buff is missing.\nactions.standard+=/avengers_shield,if=buff.moment_of_glory.up||(set_bonus.tier29_2pc&(!buff.ally_of_the_light.up||buff.ally_of_the_light.remains<gcd))\nactions.standard+=/hammer_of_wrath,if=buff.aw_sentinel.up\nactions.standard+=/judgment,cycle_targets=1,if=charges=2||!talent.crusaders_judgment.enabled\nactions.standard+=/divine_toll,if=time>20||((buff.aw_sentinel.up||!talent.avenging_wrath&!talent.sentinel)&(buff.moment_of_glory.up||!talent.moment_of_glory.enabled))\nactions.standard+=/avengers_shield\nactions.standard+=/hammer_of_wrath\nactions.standard+=/judgment,cycle_targets=1\nactions.standard+=/consecration,if=!consecration.up\nactions.standard+=/eye_of_tyr\nactions.standard+=/blessed_hammer\nactions.standard+=/hammer_of_the_righteous\nactions.standard+=/crusader_strike\nactions.standard+=/word_of_glory,if=buff.shining_light_free.up\nactions.standard+=/arcane_torrent,if=holy_power<5\nactions.standard+=/lights_judgment\nactions.standard+=/consecration\n\n# Evaluates a trinkets cooldown, divided by moment of glory or avenging wraths's cooldown. If it's value has no remainder return 1, else return 0.5.\nactions.trinkets+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&((talent.moment_of_glory.enabled&trinket.1.cooldown.duration%%cooldown.moment_of_glory.duration=0)||(!talent.moment_of_glory.enabled&trinket.1.cooldown.duration%%cooldown.avenging_wrath.duration=0))\nactions.trinkets+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&((talent.moment_of_glory.enabled&trinket.2.cooldown.duration%%cooldown.moment_of_glory.duration=0)||(!talent.moment_of_glory.enabled&trinket.2.cooldown.duration%%cooldown.avenging_wrath.duration=0))\nactions.trinkets+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!trinket.1.has_use_buff&trinket.2.has_use_buff||trinket.2.has_use_buff&((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.trinkets+=/variable,name=trinket_1_buffs,value=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\nactions.trinkets+=/variable,name=trinket_2_buffs,value=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\nactions.trinkets+=/use_item,slot=trinket1,if=(buff.moment_of_glory.up||!talent.moment_of_glory_enabled&buff.aw_sentinel.up)&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||boss&trinket.1.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,slot=trinket2,if=(buff.moment_of_glory.up||!talent.moment_of_glory_enabled&buff.aw_sentinel.up)&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||boss&trinket.2.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs||(cooldown.moment_of_glory.remains>20||(!talent.moment_of_glory.enabled&(cooldown.sentinel.remains>20||cooldown.avenging_wrath.remains>20))))\nactions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs||(cooldown.moment_of_glory.remains>20||(!talent.moment_of_glory.enabled&(cooldown.sentinel.remains>20||cooldown.avenging_wrath.remains>20))))\nactions.trinkets+=/use_items",
["spec"] = 66,
},
},
},
["Quillisium - Deathwing"] = {
["runOnce"] = {
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["forceSpellFlashBrightness_20221030"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetPotionsToDefaults_20190717"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["forceReloadClassDefaultOptions_20220306_267"] = true,
["resetRogueMfDOption_20200226"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["forceReloadClassDefaultOptions_20220306_265"] = true,
["forceReloadClassDefaultOptions_20220306_266"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[266] = {
["debuffPadding"] = 0,
["settings"] = {
["dcon_imps"] = 0,
},
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["maxTime"] = 33,
["maxRefresh"] = 10,
["buffPadding"] = 0,
},
[267] = {
["debuffPadding"] = 0,
["settings"] = {
["default_pet"] = "summon_sayaad",
["cleave_apl"] = false,
},
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["maxTime"] = 33,
["maxRefresh"] = 10,
["buffPadding"] = 0,
},
[265] = {
["debuffPadding"] = 0,
["settings"] = {
["manage_ds_ticks"] = false,
},
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["maxTime"] = 33,
["maxRefresh"] = 10,
["buffPadding"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
["rel"] = "CENTER",
["x"] = -55.00000381469727,
},
["Cooldowns"] = {
["rel"] = "CENTER",
["y"] = -280.0000305175781,
},
["Primary"] = {
["y"] = -343.6209411621094,
["x"] = -62.5289306640625,
["rel"] = "CENTER",
},
["AOE"] = {
["rel"] = "CENTER",
},
["Defensives"] = {
["rel"] = "CENTER",
["x"] = -110.0000076293945,
},
},
["packs"] = {
["Demonology"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/dragonflight/engine/class_modules/apl/warlock.cpp",
["builtIn"] = true,
["date"] = 20230401,
["spec"] = 266,
["desc"] = "2023-03-30: Update from SimC, including internal variable.next_tyrant calculation.\n\n2023-04-01: Modify sim to avoid bad Tyrants due to downtime.",
["lists"] = {
["items"] = {
{
["enabled"] = true,
["action"] = "timebreaching_talon",
["criteria"] = "buff.demonic_power.up || ! talent.summon_demonic_tyrant.enabled & ( buff.nether_portal.up || ! talent.nether_portal.enabled )",
["name"] = "timebreaching_talon",
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
},
["default"] = {
{
["action"] = "axe_toss",
["enabled"] = true,
}, -- [1]
{
["action"] = "devour_magic",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.summon_demonic_tyrant.enabled & ( ( variable.next_tyrant - time ) <= ( variable.tyrant_prep_start + 2 ) & cooldown.summon_demonic_tyrant.remains <= gcd.max || cooldown.summon_demonic_tyrant.remains_expected <= variable.tyrant_prep_start )",
["list_name"] = "tyrant",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "boss & time_to_die < 2 * gcd.max",
["action"] = "implosion",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! talent.summon_demonic_tyrant.enabled & soul_shard > 2 || boss & time_to_die < 30",
["action"] = "nether_portal",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.nether_portal.up",
["action"] = "hand_of_guldan",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "buff.demonic_power.up || ! talent.summon_demonic_tyrant.enabled & ( buff.nether_portal.up || ! talent.nether_portal.enabled )",
["list_name"] = "ogcd",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected > action_cooldown",
["action"] = "call_dreadstalkers",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! talent.summon_demonic_tyrant.enabled || time_to_die < 14",
["action"] = "call_dreadstalkers",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! talent.summon_demonic_tyrant.enabled || boss & time_to_die < cooldown.summon_demonic_tyrant.remains_expected",
["action"] = "grimoire_felguard",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! talent.summon_demonic_tyrant.enabled || cooldown.summon_demonic_tyrant.remains_expected > action_cooldown + variable.tyrant_prep_start || boss & time_to_die < cooldown.summon_demonic_tyrant.remains_expected",
["action"] = "summon_vilefiend",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "cooldown.demonic_strength.remains",
["action"] = "guillotine",
}, -- [13]
{
["action"] = "demonic_strength",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! pet.demonic_tyrant.active",
["action"] = "bilescourge_bombers",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "soul_shard < 5 & talent.fel_covenant.enabled & buff.fel_covenant.remains < 5",
["action"] = "shadow_bolt",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "two_cast_imps > 0 & buff.tyrant.down & active_enemies > 1 + ( talent.sacrificed_souls.enabled )",
["action"] = "implosion",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.wild_imps.stack > 9 & buff.tyrant.up & active_enemies > 2 + ( 1 * talent.sacrificed_souls.enabled ) & cooldown.call_dreadstalkers.remains > 17 & talent.the_expendables.enabled",
["action"] = "implosion",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "soul_shard < 5 & active_enemies > 1",
["action"] = "soul_strike",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.tormented_soul.stack = 10",
["action"] = "summon_soulkeeper",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.up & soul_shard < 4",
["action"] = "demonbolt",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.stack < 1 & ( buff.dreadstalkers.remains > 3 || buff.dreadstalkers.down )",
["action"] = "power_siphon",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "soul_shard > 2 & ( ! talent.summon_demonic_tyrant.enabled || cooldown.summon_demonic_tyrant.remains_expected > variable.tyrant_prep_start + 2 )",
["action"] = "hand_of_guldan",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "doom",
["cycle_targets"] = 1,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "soul_shard < 5",
["action"] = "soul_strike",
}, -- [25]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [26]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive & ! buff.grimoire_of_sacrifice.up",
["action"] = "fel_domination",
}, -- [1]
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "14 + talent.grimoire_felguard.rank + talent.summon_vilefiend.rank",
["var_name"] = "tyrant_prep_start",
}, -- [3]
{
["action"] = "power_siphon",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "soul_shards < 5 & ( boss || action.demonbolt.cast = 0 & ! buff.power_siphon.up )",
["action"] = "demonbolt",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "soul_shards < 5 & ! ( boss || action.demonbolt.cast = 0 & ! buff.power_siphon.up )",
["action"] = "shadow_bolt",
}, -- [6]
},
["tyrant"] = {
{
["enabled"] = true,
["criteria"] = "time < 2 & soul_shard < 5",
["action"] = "shadow_bolt",
}, -- [1]
{
["action"] = "nether_portal",
["enabled"] = true,
}, -- [2]
{
["action"] = "grimoire_felguard",
["enabled"] = true,
}, -- [3]
{
["action"] = "summon_vilefiend",
["enabled"] = true,
}, -- [4]
{
["action"] = "call_dreadstalkers",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["action"] = "soulburn",
["criteria"] = "buff.nether_portal.up & soul_shard >= 2",
["line_cd"] = "40",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( buff.dreadstalkers.up || cooldown.call_dreadstalkers.remains > 0 ) & variable.next_tyrant - time > 2 & ( buff.nether_portal.up || soul_shard > 2 & variable.next_tyrant - time < 12 || soul_shard = 5 )",
["action"] = "hand_of_guldan",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( buff.dreadstalkers.up || cooldown.call_dreadstalkers.remains > 0 ) & talent.soulbound_tyrant.enabled & variable.next_tyrant - time < 4 & variable.next_tyrant - time > action.summon_demonic_tyrant.cast_time",
["action"] = "hand_of_guldan",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( buff.dreadstalkers.up || cooldown.call_dreadstalkers.remains > 0 ) & variable.next_tyrant - time < cast_time * 2 + 1",
["action"] = "summon_demonic_tyrant",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.up",
["action"] = "demonbolt",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.wild_imps.stack > 1 & ! buff.nether_portal.up",
["action"] = "power_siphon",
}, -- [11]
{
["action"] = "soul_strike",
["enabled"] = true,
}, -- [12]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [13]
},
["ogcd"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [2]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [3]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [4]
},
},
["version"] = 20230401,
["warnings"] = "The import for 'items' required some automated changes.\nLine 1: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 1: Converted 'talent.nether_portal' to 'talent.nether_portal.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 5: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 8: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 8: Converted 'talent.nether_portal' to 'talent.nether_portal.enabled' (1x).\nLine 10: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 11: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 12: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 16: Converted 'talent.fel_covenant' to 'talent.fel_covenant.enabled' (1x).\nLine 18: Converted 'talent.the_expendables' to 'talent.the_expendables.enabled' (1x).\nLine 23: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\n\nThe import for 'tyrant' required some automated changes.\nLine 8: Converted 'talent.soulbound_tyrant' to 'talent.soulbound_tyrant.enabled' (1x).\n\nImported 5 action lists.\n",
["author"] = "SimC",
["profile"] = "actions.precombat+=/fel_domination,if=time>0&!pet.alive&!buff.grimoire_of_sacrifice.up\nactions.precombat+=/summon_pet\nactions.precombat+=/variable,name=tyrant_prep_start,op=set,value=14+talent.grimoire_felguard.rank+talent.summon_vilefiend.rank\nactions.precombat+=/power_siphon\nactions.precombat+=/demonbolt,if=soul_shards<5&(boss||action.demonbolt.cast=0&!buff.power_siphon.up)\nactions.precombat+=/shadow_bolt,if=soul_shards<5&!(boss||action.demonbolt.cast=0&!buff.power_siphon.up)\n\nactions+=/axe_toss\nactions+=/devour_magic\nactions+=/call_action_list,name=tyrant,if=talent.summon_demonic_tyrant&((variable.next_tyrant-time)<=(variable.tyrant_prep_start+2)&cooldown.summon_demonic_tyrant.remains<=gcd.max||cooldown.summon_demonic_tyrant.remains_expected<=variable.tyrant_prep_start)\nactions+=/implosion,if=boss&time_to_die<2*gcd\nactions+=/nether_portal,if=!talent.summon_demonic_tyrant&soul_shard>2||boss&time_to_die<30\nactions+=/hand_of_guldan,if=buff.nether_portal.up\nactions+=/call_action_list,name=items\nactions+=/call_action_list,name=ogcd,if=buff.demonic_power.up||!talent.summon_demonic_tyrant&(buff.nether_portal.up||!talent.nether_portal)\nactions+=/call_dreadstalkers,if=cooldown.summon_demonic_tyrant.remains_expected>cooldown\nactions+=/call_dreadstalkers,if=!talent.summon_demonic_tyrant||time_to_die<14\nactions+=/grimoire_felguard,if=!talent.summon_demonic_tyrant||boss&time_to_die<cooldown.summon_demonic_tyrant.remains_expected\nactions+=/summon_vilefiend,if=!talent.summon_demonic_tyrant||cooldown.summon_demonic_tyrant.remains_expected>cooldown+variable.tyrant_prep_start||boss&time_to_die<cooldown.summon_demonic_tyrant.remains_expected\nactions+=/guillotine,if=cooldown.demonic_strength.remains\nactions+=/demonic_strength\nactions+=/bilescourge_bombers,if=!pet.demonic_tyrant.active\nactions+=/shadow_bolt,if=soul_shard<5&talent.fel_covenant&buff.fel_covenant.remains<5\nactions+=/implosion,if=two_cast_imps>0&buff.tyrant.down&active_enemies>1+(talent.sacrificed_souls.enabled)\nactions+=/implosion,if=buff.wild_imps.stack>9&buff.tyrant.up&active_enemies>2+(1*talent.sacrificed_souls.enabled)&cooldown.call_dreadstalkers.remains>17&talent.the_expendables\nactions+=/soul_strike,if=soul_shard<5&active_enemies>1\nactions+=/summon_soulkeeper,if=active_enemies>1&buff.tormented_soul.stack=10\nactions+=/demonbolt,if=buff.demonic_core.up&soul_shard<4\nactions+=/power_siphon,if=buff.demonic_core.stack<1&(buff.dreadstalkers.remains>3||buff.dreadstalkers.down)\nactions+=/hand_of_guldan,if=soul_shard>2&(!talent.summon_demonic_tyrant||cooldown.summon_demonic_tyrant.remains_expected>variable.tyrant_prep_start+2)\nactions+=/doom,cycle_targets=1,if=refreshable\nactions+=/soul_strike,if=soul_shard<5\nactions+=/shadow_bolt\n\nactions.items+=/use_item,name=timebreaching_talon,if=buff.demonic_power.up||!talent.summon_demonic_tyrant&(buff.nether_portal.up||!talent.nether_portal)\nactions.items+=/use_items\n\nactions.ogcd+=/potion\nactions.ogcd+=/berserking\nactions.ogcd+=/blood_fury\nactions.ogcd+=/fireblood\n\nactions.tyrant+=/shadow_bolt,if=time<2&soul_shard<5\nactions.tyrant+=/nether_portal\nactions.tyrant+=/grimoire_felguard\nactions.tyrant+=/summon_vilefiend\nactions.tyrant+=/call_dreadstalkers\nactions.tyrant+=/soulburn,if=buff.nether_portal.up&soul_shard>=2,line_cd=40\nactions.tyrant+=/hand_of_guldan,if=(buff.dreadstalkers.up||cooldown.call_dreadstalkers.remains>0)&variable.next_tyrant-time>2&(buff.nether_portal.up||soul_shard>2&variable.next_tyrant-time<12||soul_shard=5)\nactions.tyrant+=/hand_of_guldan,if=(buff.dreadstalkers.up||cooldown.call_dreadstalkers.remains>0)&talent.soulbound_tyrant&variable.next_tyrant-time<4&variable.next_tyrant-time>action.summon_demonic_tyrant.cast_time\nactions.tyrant+=/summon_demonic_tyrant,if=(buff.dreadstalkers.up||cooldown.call_dreadstalkers.remains>0)&variable.next_tyrant-time<cast_time*2+1\nactions.tyrant+=/demonbolt,if=buff.demonic_core.up\nactions.tyrant+=/power_siphon,if=buff.wild_imps.stack>1&!buff.nether_portal.up\nactions.tyrant+=/soul_strike\nactions.tyrant+=/shadow_bolt",
},
["Affliction"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230319,
["spec"] = 265,
["desc"] = "2023-03-05: Routine update that adds Unstable Affliction and Malefic Rapture (with Malefic Affliction + Doom Blossom) to AOE action list.\n\n2023-03-19: Update for 10.0.7.",
["profile"] = "actions.precombat=fel_domination,if=time>0&!pet.alive&!buff.grimoire_of_sacrifice.up\nactions.precombat+=/summon_pet\nactions.precombat+=/variable,name=cleave_apl,default=0,op=reset\nactions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled\nactions.precombat+=/seed_of_corruption,if=spell_targets.seed_of_corruption_aoe>3\nactions.precombat+=/haunt\nactions.precombat+=/unstable_affliction,if=active_dot.unstable_affliction=0&!ticking&!talent.soul_swap\nactions.precombat+=/shadow_bolt\n\nactions+=/call_action_list,name=variables\nactions+=/call_action_list,name=ogcd\nactions+=/call_action_list,name=items\nactions+=/call_action_list,name=cleave,strict=1,if=active_enemies>1&active_enemies<4||variable.cleave_apl\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>3\nactions+=/malefic_rapture,if=talent.dread_touch&talent.malefic_affliction&debuff.dread_touch.remains<2&buff.malefic_affliction.stack=3\nactions+=/soul_swap_exhale,if=buff.soul_swap.up&buff.soul_swap.unstable_affliction&(active_dot.unstable_affliction=0&!dot.unstable_affliction.ticking||!dot.unstable_affliction.ticking&dot.unstable_affliction.remains<5)\nactions+=/unstable_affliction,if=active_dot.unstable_affliction=0&!ticking||ticking&remains<5\nactions+=/agony,if=remains<5\nactions+=/corruption,if=remains<5\nactions+=/siphon_life,if=remains<5\nactions+=/haunt\nactions+=/drain_soul,if=talent.shadow_embrace&(debuff.shadow_embrace.stack<3||debuff.shadow_embrace.remains<3)\nactions+=/shadow_bolt,if=talent.shadow_embrace&(debuff.shadow_embrace.stack<3||debuff.shadow_embrace.remains<3)\nactions+=/phantom_singularity,if=!talent.soul_rot||cooldown.soul_rot.remains<=execute_time\nactions+=/vile_taint,if=!talent.soul_rot||cooldown.soul_rot.remains<=execute_time||talent.souleaters_gluttony.rank<2&cooldown.soul_rot.remains>=12\nactions+=/soul_rot,if=variable.vt_up&variable.ps_up\nactions+=/summon_darkglare,if=variable.ps_up&variable.vt_up&variable.sr_up||!talent.soul_rot\nactions+=/malefic_rapture,if=soul_shard>4||(talent.tormented_crescendo&buff.tormented_crescendo.stack=1&soul_shard>3)\nactions+=/malefic_rapture,if=talent.malefic_affliction&buff.malefic_affliction.stack<3\nactions+=/malefic_rapture,if=talent.tormented_crescendo&buff.tormented_crescendo.react&!debuff.dread_touch.react\nactions+=/malefic_rapture,if=talent.tormented_crescendo&buff.tormented_crescendo.stack=2\nactions+=/malefic_rapture,if=variable.cd_dots_up||variable.vt_up&soul_shard>1\nactions+=/malefic_rapture,if=talent.tormented_crescendo&talent.nightfall&buff.tormented_crescendo.react&buff.nightfall.react\nactions+=/drain_life,if=buff.inevitable_demise.stack>48||buff.inevitable_demise.stack>20&time_to_die<4\nactions+=/drain_soul,if=buff.nightfall.react\nactions+=/shadow_bolt,if=buff.nightfall.react\nactions+=/agony,if=refreshable\nactions+=/corruption,if=refreshable\nactions+=/drain_soul,interrupt=1\nactions+=/shadow_bolt\n\nactions.aoe+=/haunt\nactions.aoe+=/vile_taint\nactions.aoe+=/phantom_singularity\nactions.aoe+=/soul_rot\nactions.aoe+=/unstable_affliction,if=active_dot.unstable_affliction=0&!ticking||ticking&remains<5\nactions.aoe+=/seed_of_corruption,if=dot.corruption.remains<5\nactions.aoe+=/malefic_rapture,if=talent.malefic_affliction&buff.malefic_affliction.stack<3&talent.doom_blossom\nactions.aoe+=/agony,cycle_targets=1,if=remains<5&active_dot.agony<5\nactions.aoe+=/summon_darkglare\nactions.aoe+=/seed_of_corruption,if=talent.sow_the_seeds\nactions.aoe+=/malefic_rapture\nactions.aoe+=/drain_life,if=(buff.soul_rot.up||!talent.soul_rot)&buff.inevitable_demise.stack>10\nactions.aoe+=/summon_soulkeeper,if=buff.tormented_soul.stack=10||buff.tormented_soul.stack>3&boss&fight_remains<10\nactions.aoe+=/siphon_life,cycle_targets=1,if=remains<5&active_dot.siphon_life<3\nactions.aoe+=/drain_soul,interrupt_global=1\nactions.aoe+=/shadow_bolt\n\nactions.cleave+=/malefic_rapture,if=soul_shard=5\nactions.cleave+=/haunt\nactions.cleave+=/soul_swap_exhale,if=buff.soul_swap.up&buff.soul_swap.unstable_affliction&(active_dot.unstable_affliction=0&!dot.unstable_affliction.ticking||!dot.unstable_affliction.ticking&dot.unstable_affliction.remains<5)\n# Note: For some reason, Unstable Affliction dot count is not always accurate. This is a workaround.\nactions.cleave+=/unstable_affliction,if=active_dot.unstable_affliction=0&!ticking||ticking&remains<5\nactions.cleave+=/agony,if=remains<5\nactions.cleave+=/agony,cycle_targets=1,if=remains<5\nactions.cleave+=/siphon_life,if=remains<5\nactions.cleave+=/siphon_life,cycle_targets=1,if=remains<3\nactions.cleave+=/seed_of_corruption,if=!talent.absolute_corruption&dot.corruption.remains<5\nactions.cleave+=/corruption,cycle_targets=1,if=remains<5&(talent.absolute_corruption||!talent.seed_of_corruption)\nactions.cleave+=/phantom_singularity\nactions.cleave+=/vile_taint\nactions.cleave+=/soul_rot\nactions.cleave+=/summon_darkglare\nactions.cleave+=/malefic_rapture,if=talent.malefic_affliction&buff.malefic_affliction.stack<3\nactions.cleave+=/malefic_rapture,if=talent.dread_touch&debuff.dread_touch.remains<gcd\nactions.cleave+=/malefic_rapture,if=!talent.dread_touch&buff.tormented_crescendo.up\nactions.cleave+=/malefic_rapture,if=!talent.dread_touch&(dot.soul_rot.remains>cast_time||dot.phantom_singularity.remains>cast_time||dot.vile_taint_dot.remains>cast_time||pet.darkglare.active)\nactions.cleave+=/drain_soul,if=buff.nightfall.react\nactions.cleave+=/shadow_bolt,if=buff.nightfall.react\nactions.cleave+=/drain_life,if=buff.inevitable_demise.stack>48||buff.inevitable_demise.stack>20&boss&fight_remains<4\nactions.cleave+=/drain_life,if=buff.soul_rot.up&buff.inevitable_demise.stack>10\nactions.cleave+=/agony,cycle_targets=1,if=refreshable\nactions.cleave+=/corruption,cycle_targets=1,if=refreshable\nactions.cleave+=/drain_soul,interrupt_global=1\nactions.cleave+=/shadow_bolt\n\nactions.items+=/use_items,if=variable.cds_active\nactions.items+=/use_item,name=desperate_invokers_codex\nactions.items+=/use_item,name=conjured_chillglobe\n\nactions.ogcd+=/potion,if=variable.cds_active\nactions.ogcd+=/berserking,if=variable.cds_active\nactions.ogcd+=/blood_fury,if=variable.cds_active\n## actions.ogcd+=/invoke_external_buff,name=power_infusion,if=variable.cds_active\nactions.ogcd+=/fireblood,if=variable.cds_active\n\nactions.variables+=/variable,name=ps_up,op=set,value=dot.phantom_singularity.ticking||!talent.phantom_singularity\nactions.variables+=/variable,name=vt_up,op=set,value=dot.vile_taint_dot.ticking||!talent.vile_taint\nactions.variables+=/variable,name=sr_up,op=set,value=dot.soul_rot.ticking||!talent.soul_rot\nactions.variables+=/variable,name=cd_dots_up,op=set,value=variable.ps_up&variable.vt_up&variable.sr_up\nactions.variables+=/variable,name=has_cds,op=set,value=talent.phantom_singularity||talent.vile_taint||talent.soul_rot||talent.summon_darkglare\nactions.variables+=/variable,name=cds_active,op=set,value=!variable.has_cds||(pet.darkglare.active||variable.cd_dots_up||buff.power_infusion.react)",
["version"] = 20230319,
["warnings"] = "The import for 'default' required some automated changes.\nLine 6: Converted 'talent.dread_touch' to 'talent.dread_touch.enabled' (1x).\nLine 6: Converted 'talent.malefic_affliction' to 'talent.malefic_affliction.enabled' (1x).\nLine 13: Converted 'talent.shadow_embrace' to 'talent.shadow_embrace.enabled' (1x).\nLine 14: Converted 'talent.shadow_embrace' to 'talent.shadow_embrace.enabled' (1x).\nLine 15: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 16: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 18: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 19: Converted 'talent.tormented_crescendo' to 'talent.tormented_crescendo.enabled' (1x).\nLine 20: Converted 'talent.malefic_affliction' to 'talent.malefic_affliction.enabled' (1x).\nLine 21: Converted 'talent.tormented_crescendo' to 'talent.tormented_crescendo.enabled' (1x).\nLine 22: Converted 'talent.tormented_crescendo' to 'talent.tormented_crescendo.enabled' (1x).\nLine 24: Converted 'talent.tormented_crescendo' to 'talent.tormented_crescendo.enabled' (1x).\nLine 24: Converted 'talent.nightfall' to 'talent.nightfall.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 7: Converted 'talent.soul_swap' to 'talent.soul_swap.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 7: Converted 'talent.malefic_affliction' to 'talent.malefic_affliction.enabled' (1x).\nLine 7: Converted 'talent.doom_blossom' to 'talent.doom_blossom.enabled' (1x).\nLine 10: Converted 'talent.sow_the_seeds' to 'talent.sow_the_seeds.enabled' (1x).\nLine 12: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\n\nThe import for 'variables' required some automated changes.\nLine 1: Converted 'talent.phantom_singularity' to 'talent.phantom_singularity.enabled' (1x).\nLine 2: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 3: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 5: Converted 'talent.phantom_singularity' to 'talent.phantom_singularity.enabled' (1x).\nLine 5: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 5: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 5: Converted 'talent.summon_darkglare' to 'talent.summon_darkglare.enabled' (1x).\n\nThe import for 'cleave' required some automated changes.\nLine 9: Converted 'talent.absolute_corruption' to 'talent.absolute_corruption.enabled' (1x).\nLine 10: Converted 'talent.absolute_corruption' to 'talent.absolute_corruption.enabled' (1x).\nLine 10: Converted 'talent.seed_of_corruption' to 'talent.seed_of_corruption.enabled' (1x).\nLine 15: Converted 'talent.malefic_affliction' to 'talent.malefic_affliction.enabled' (1x).\nLine 16: Converted 'talent.dread_touch' to 'talent.dread_touch.enabled' (1x).\nLine 17: Converted 'talent.dread_touch' to 'talent.dread_touch.enabled' (1x).\nLine 18: Converted 'talent.dread_touch' to 'talent.dread_touch.enabled' (1x).\n\nImported 7 action lists.\n",
["lists"] = {
["items"] = {
{
["enabled"] = true,
["criteria"] = "variable.cds_active",
["action"] = "use_items",
}, -- [1]
{
["enabled"] = true,
["name"] = "desperate_invokers_codex",
["action"] = "desperate_invokers_codex",
}, -- [2]
{
["enabled"] = true,
["name"] = "conjured_chillglobe",
["action"] = "conjured_chillglobe",
}, -- [3]
},
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "variables",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "ogcd",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 1 & active_enemies < 4 || variable.cleave_apl",
["list_name"] = "cleave",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 3",
["list_name"] = "aoe",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.dread_touch.enabled & talent.malefic_affliction.enabled & debuff.dread_touch.remains < 2 & buff.malefic_affliction.stack = 3",
["action"] = "malefic_rapture",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.soul_swap.up & buff.soul_swap.unstable_affliction & ( active_dot.unstable_affliction = 0 & ! dot.unstable_affliction.ticking || ! dot.unstable_affliction.ticking & dot.unstable_affliction.remains < 5 )",
["action"] = "soul_swap_exhale",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_dot.unstable_affliction = 0 & ! ticking || ticking & remains < 5",
["action"] = "unstable_affliction",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "remains < 5",
["action"] = "agony",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "remains < 5",
["action"] = "corruption",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "remains < 5",
["action"] = "siphon_life",
}, -- [11]
{
["action"] = "haunt",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.shadow_embrace.enabled & ( debuff.shadow_embrace.stack < 3 || debuff.shadow_embrace.remains < 3 )",
["action"] = "drain_soul",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.shadow_embrace.enabled & ( debuff.shadow_embrace.stack < 3 || debuff.shadow_embrace.remains < 3 )",
["action"] = "shadow_bolt",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! talent.soul_rot.enabled || cooldown.soul_rot.remains <= execute_time",
["action"] = "phantom_singularity",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "! talent.soul_rot.enabled || cooldown.soul_rot.remains <= execute_time || talent.souleaters_gluttony.rank < 2 & cooldown.soul_rot.remains >= 12",
["action"] = "vile_taint",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "variable.vt_up & variable.ps_up",
["action"] = "soul_rot",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "variable.ps_up & variable.vt_up & variable.sr_up || ! talent.soul_rot.enabled",
["action"] = "summon_darkglare",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "soul_shard > 4 || ( talent.tormented_crescendo.enabled & buff.tormented_crescendo.stack = 1 & soul_shard > 3 )",
["action"] = "malefic_rapture",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.malefic_affliction.enabled & buff.malefic_affliction.stack < 3",
["action"] = "malefic_rapture",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & buff.tormented_crescendo.react & ! debuff.dread_touch.react",
["action"] = "malefic_rapture",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & buff.tormented_crescendo.stack = 2",
["action"] = "malefic_rapture",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "variable.cd_dots_up || variable.vt_up & soul_shard > 1",
["action"] = "malefic_rapture",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & talent.nightfall.enabled & buff.tormented_crescendo.react & buff.nightfall.react",
["action"] = "malefic_rapture",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.inevitable_demise.stack > 48 || buff.inevitable_demise.stack > 20 & time_to_die < 4",
["action"] = "drain_life",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.nightfall.react",
["action"] = "drain_soul",
}, -- [26]
{
["enabled"] = true,
["criteria"] = "buff.nightfall.react",
["action"] = "shadow_bolt",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "agony",
}, -- [28]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "corruption",
}, -- [29]
{
["interrupt"] = "1",
["action"] = "drain_soul",
["enabled"] = true,
}, -- [30]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [31]
},
["cleave"] = {
{
["enabled"] = true,
["criteria"] = "soul_shard = 5",
["action"] = "malefic_rapture",
}, -- [1]
{
["action"] = "haunt",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.soul_swap.up & buff.soul_swap.unstable_affliction & ( active_dot.unstable_affliction = 0 & ! dot.unstable_affliction.ticking || ! dot.unstable_affliction.ticking & dot.unstable_affliction.remains < 5 )",
["action"] = "soul_swap_exhale",
}, -- [3]
{
["enabled"] = true,
["action"] = "unstable_affliction",
["description"] = "Note: For some reason, Unstable Affliction dot count is not always accurate. This is a workaround.",
["criteria"] = "active_dot.unstable_affliction = 0 & ! ticking || ticking & remains < 5",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "remains < 5",
["action"] = "agony",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "remains < 5",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "remains < 5",
["action"] = "siphon_life",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "remains < 3",
["action"] = "siphon_life",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! talent.absolute_corruption.enabled & dot.corruption.remains < 5",
["action"] = "seed_of_corruption",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "remains < 5 & ( talent.absolute_corruption.enabled || ! talent.seed_of_corruption.enabled )",
["action"] = "corruption",
["cycle_targets"] = 1,
}, -- [10]
{
["action"] = "phantom_singularity",
["enabled"] = true,
}, -- [11]
{
["action"] = "vile_taint",
["enabled"] = true,
}, -- [12]
{
["action"] = "soul_rot",
["enabled"] = true,
}, -- [13]
{
["action"] = "summon_darkglare",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.malefic_affliction.enabled & buff.malefic_affliction.stack < 3",
["action"] = "malefic_rapture",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "talent.dread_touch.enabled & debuff.dread_touch.remains < gcd.max",
["action"] = "malefic_rapture",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! talent.dread_touch.enabled & buff.tormented_crescendo.up",
["action"] = "malefic_rapture",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! talent.dread_touch.enabled & ( dot.soul_rot.remains > cast_time || dot.phantom_singularity.remains > cast_time || dot.vile_taint_dot.remains > cast_time || pet.darkglare.active )",
["action"] = "malefic_rapture",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.nightfall.react",
["action"] = "drain_soul",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.nightfall.react",
["action"] = "shadow_bolt",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.inevitable_demise.stack > 48 || buff.inevitable_demise.stack > 20 & boss & fight_remains < 4",
["action"] = "drain_life",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.soul_rot.up & buff.inevitable_demise.stack > 10",
["action"] = "drain_life",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [23]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "corruption",
["cycle_targets"] = 1,
}, -- [24]
{
["enabled"] = true,
["action"] = "drain_soul",
["interrupt_global"] = "1",
}, -- [25]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [26]
},
["aoe"] = {
{
["action"] = "haunt",
["enabled"] = true,
}, -- [1]
{
["action"] = "vile_taint",
["enabled"] = true,
}, -- [2]
{
["action"] = "phantom_singularity",
["enabled"] = true,
}, -- [3]
{
["action"] = "soul_rot",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_dot.unstable_affliction = 0 & ! ticking || ticking & remains < 5",
["action"] = "unstable_affliction",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.corruption.remains < 5",
["action"] = "seed_of_corruption",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.malefic_affliction.enabled & buff.malefic_affliction.stack < 3 & talent.doom_blossom.enabled",
["action"] = "malefic_rapture",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "remains < 5 & active_dot.agony < 5",
["action"] = "agony",
["cycle_targets"] = 1,
}, -- [8]
{
["action"] = "summon_darkglare",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.sow_the_seeds.enabled",
["action"] = "seed_of_corruption",
}, -- [10]
{
["action"] = "malefic_rapture",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( buff.soul_rot.up || ! talent.soul_rot.enabled ) & buff.inevitable_demise.stack > 10",
["action"] = "drain_life",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.tormented_soul.stack = 10 || buff.tormented_soul.stack > 3 & boss & fight_remains < 10",
["action"] = "summon_soulkeeper",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "remains < 5 & active_dot.siphon_life < 3",
["action"] = "siphon_life",
["cycle_targets"] = 1,
}, -- [14]
{
["enabled"] = true,
["action"] = "drain_soul",
["interrupt_global"] = "1",
}, -- [15]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [16]
},
["variables"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "dot.phantom_singularity.ticking || ! talent.phantom_singularity.enabled",
["var_name"] = "ps_up",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "dot.vile_taint_dot.ticking || ! talent.vile_taint.enabled",
["var_name"] = "vt_up",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "dot.soul_rot.ticking || ! talent.soul_rot.enabled",
["var_name"] = "sr_up",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.ps_up & variable.vt_up & variable.sr_up",
["var_name"] = "cd_dots_up",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.phantom_singularity.enabled || talent.vile_taint.enabled || talent.soul_rot.enabled || talent.summon_darkglare.enabled",
["var_name"] = "has_cds",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! variable.has_cds || ( pet.darkglare.active || variable.cd_dots_up || buff.power_infusion.react )",
["var_name"] = "cds_active",
}, -- [6]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive & ! buff.grimoire_of_sacrifice.up",
["action"] = "fel_domination",
}, -- [1]
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "cleave_apl",
["default"] = "0",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "talent.grimoire_of_sacrifice.enabled",
["action"] = "grimoire_of_sacrifice",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.seed_of_corruption_aoe > 3",
["action"] = "seed_of_corruption",
}, -- [5]
{
["action"] = "haunt",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_dot.unstable_affliction = 0 & ! ticking & ! talent.soul_swap.enabled",
["action"] = "unstable_affliction",
}, -- [7]
{
["action"] = "shadow_bolt",
["enabled"] = true,
}, -- [8]
},
["ogcd"] = {
{
["enabled"] = true,
["criteria"] = "variable.cds_active",
["action"] = "potion",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "variable.cds_active",
["action"] = "berserking",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "variable.cds_active",
["action"] = "blood_fury",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.cds_active",
["action"] = "fireblood",
}, -- [4]
},
},
["author"] = "SimC",
},
["Destruction"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230314,
["author"] = "SimC",
["desc"] = "2023-02-20: Setting added to Destruction options for Funnel Damage in AOE. This uses the cleave action list instead of the AOE action list. It continues to recommend Chaos Bolt rather than spending Soul Shards on Rain of Fire.\n\n2023-03-13: Routine update from SimulationCraft.\n\n2023-03-14: Respect cycle_enemies when multidotting Immolate.",
["lists"] = {
["items"] = {
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || ! talent.summon_infernal.enabled || boss & fight_remains < 21 || trinket.t1.cooldown.duration < cooldown.summon_infernal.remains + 5",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || ! talent.summon_infernal.enabled || boss & fight_remains < 21 || trinket.t2.cooldown.duration < cooldown.summon_infernal.remains + 5",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( ! talent.rain_of_chaos.enabled & fight_remains < cooldown.summon_infernal.remains + trinket.t1.cooldown.duration & fight_remains > trinket.t1.cooldown.duration ) || boss & fight_remains < cooldown.summon_infernal.remains || ( trinket.t2.cooldown.remains > 0 & trinket.t2.cooldown.remains < cooldown.summon_infernal.remains )",
["action"] = "trinket1",
["slot"] = "trinket1",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ! talent.rain_of_chaos.enabled & fight_remains < cooldown.summon_infernal.remains + trinket.t2.cooldown.duration & fight_remains > trinket.t2.cooldown.duration ) || boss & fight_remains < cooldown.summon_infernal.remains || ( trinket.t1.cooldown.remains > 0 & trinket.t1.cooldown.remains < cooldown.summon_infernal.remains )",
["action"] = "trinket2",
["slot"] = "trinket2",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ! talent.rain_of_chaos.enabled & fight_remains < cooldown.summon_infernal.remains + cooldown.erupting_spear_fragment.duration & fight_remains > cooldown.erupting_spear_fragment.duration ) || boss & fight_remains < cooldown.summon_infernal.remains || cooldown.erupting_spear_fragment.duration < cooldown.summon_infernal.remains + 5",
["name"] = "erupting_spear_fragment",
["action"] = "erupting_spear_fragment",
}, -- [5]
{
["enabled"] = true,
["name"] = "desperate_invokers_codex",
["action"] = "desperate_invokers_codex",
}, -- [6]
{
["enabled"] = true,
["name"] = "iceblood_deathsnare",
["action"] = "iceblood_deathsnare",
}, -- [7]
{
["enabled"] = true,
["name"] = "conjured_chillglobe",
["action"] = "conjured_chillglobe",
}, -- [8]
},
["default"] = {
{
["action"] = "spell_lock",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "ogcd",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! settings.cleave_apl & ( active_enemies >= 3 - ( talent.inferno.enabled & ! talent.madness_of_the_azjaqir.enabled ) ) & ! ( ! talent.inferno.enabled & talent.madness_of_the_azjaqir.enabled & talent.chaos_incarnate.enabled & active_enemies < 4 )",
["list_name"] = "aoe",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "settings.cleave_apl & active_enemies > 1",
["list_name"] = "cleave",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( talent.roaring_blaze.enabled & debuff.conflagrate.remains < 1.5 ) || charges = max_charges",
["action"] = "conflagrate",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "soul_shard < 4.7 & ( charges > 2 || boss & fight_remains < cooldown.dimensional_rift.duration )",
["action"] = "dimensional_rift",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15",
["action"] = "cataclysm",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.raging_demonfire.enabled",
["action"] = "channel_demonfire",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "soul_shard <= 3.5 & ( debuff.conflagrate.remains > cast_time + travel_time || ! talent.roaring_blaze.enabled & buff.backdraft.up )",
["action"] = "soul_fire",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( ( dot.immolate.refreshable & talent.internal_combustion.enabled ) || dot.immolate.remains < 3 ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + action.soul_fire.cast_time > dot.immolate.remains ) & target.time_to_die > 8",
["action"] = "immolate",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.cry_havoc.enabled & ( ( buff.ritual_of_ruin.up & pet.infernal.active & talent.burn_to_ashes.enabled ) || ( ( buff.ritual_of_ruin.up || pet.infernal.active ) & ! talent.burn_to_ashes.enabled ) )",
["action"] = "havoc",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || pet.blasphemy.active || soul_shard >= 4",
["action"] = "chaos_bolt",
}, -- [13]
{
["action"] = "summon_infernal",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "talent.ruin.rank > 1 & ! ( talent.diabolic_embers.enabled & talent.avatar_of_destruction.enabled & ( talent.burn_to_ashes.enabled || talent.chaos_incarnate.enabled ) ) & dot.immolate.remains > cast_time",
["action"] = "channel_demonfire",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.down & soul_shard >= 1.5 & ! talent.roaring_blaze.enabled",
["action"] = "conflagrate",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.burn_to_ashes.up & cast_time + action.chaos_bolt.cast_time < buff.madness_cb.remains",
["action"] = "incinerate",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.rain_of_chaos.remains > cast_time",
["action"] = "chaos_bolt",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.up & ! talent.eradication.enabled & ! talent.madness_of_the_azjaqir.enabled",
["action"] = "chaos_bolt",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.madness_cb.up",
["action"] = "chaos_bolt",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "! ( talent.diabolic_embers.enabled & talent.avatar_of_destruction.enabled & ( talent.burn_to_ashes.enabled || talent.chaos_incarnate.enabled ) ) & dot.immolate.remains > cast_time",
["action"] = "channel_demonfire",
}, -- [21]
{
["action"] = "dimensional_rift",
["enabled"] = true,
}, -- [22]
{
["enabled"] = true,
["criteria"] = "soul_shard > 3.5",
["action"] = "chaos_bolt",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "talent.soul_conduit.enabled & ! talent.madness_of_the_azjaqir.enabled || ! talent.backdraft.enabled",
["action"] = "chaos_bolt",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 5 & fight_remains > cast_time + travel_time",
["action"] = "chaos_bolt",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "charges > ( max_charges - 1 ) || time_to_die < gcd.max * charges",
["action"] = "conflagrate",
}, -- [26]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [27]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive",
["action"] = "fel_domination",
}, -- [1]
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["name"] = "tome_of_monstrous_constructions",
["action"] = "tome_of_monstrous_constructions",
}, -- [3]
{
["enabled"] = true,
["name"] = "soleahs_secret_technique",
["action"] = "soleahs_secret_technique",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "talent.grimoire_of_sacrifice.enabled",
["action"] = "grimoire_of_sacrifice",
}, -- [5]
{
["enabled"] = true,
["name"] = "shadowed_orb_of_torment",
["action"] = "shadowed_orb_of_torment",
}, -- [6]
{
["action"] = "soul_fire",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15",
["action"] = "cataclysm",
}, -- [8]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [9]
},
["aoe"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "havoc_active & havoc_remains > gcd.max & active_enemies < 5 + ( talent.cry_havoc.enabled & ! talent.inferno.enabled )",
["list_name"] = "havoc",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active",
["action"] = "rain_of_fire",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "pet.blasphemy.active",
["action"] = "rain_of_fire",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "soul_shard >= ( 4.5 - 0.1 * active_dot.immolate )",
["action"] = "rain_of_fire",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "soul_shard > 3.5 - ( 0.1 * active_enemies ) & ! talent.rain_of_fire.enabled",
["action"] = "chaos_bolt",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15",
["action"] = "cataclysm",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "dot.immolate.remains > cast_time & talent.raging_demonfire.enabled",
["action"] = "channel_demonfire",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "cycle_enemies > 1 & ( ! cooldown.summon_infernal.up || ! talent.summon_infernal.enabled )",
["action"] = "havoc",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "dot.immolate.refreshable & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) & ( ! talent.raging_demonfire.enabled || cooldown.channel_demonfire.remains > remains ) & active_dot.immolate <= cycle_enemies & ! havoc_active & target.time_to_die > 18",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.tormented_soul.stack = 10 || buff.tormented_soul.stack > 3 & boss & fight_remains < 10",
["action"] = "summon_soulkeeper",
}, -- [10]
{
["action"] = "summon_infernal",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( debuff.pyrogenics.down || buff.madness_rof.up ) & active_enemies <= 4",
["action"] = "rain_of_fire",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "dot.immolate.remains > cast_time",
["action"] = "channel_demonfire",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( ( dot.immolate.refreshable & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) ) || cycle_enemies > active_dot.immolate ) & target.time_to_die > 10 & ! havoc_active",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( dot.immolate.refreshable || ( dot.immolate.remains < 2 & dot.immolate.remains < havoc_remains ) || ! dot.immolate.ticking ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) & target.time_to_die > 11",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.up",
["action"] = "soul_fire",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "talent.fire_and_brimstone.enabled & buff.backdraft.up",
["action"] = "incinerate",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.stack < 2 || ! talent.backdraft.enabled",
["action"] = "conflagrate",
}, -- [18]
{
["action"] = "dimensional_rift",
["enabled"] = true,
}, -- [19]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [20]
},
["havoc"] = {
{
["enabled"] = true,
["criteria"] = "talent.backdraft.enabled & buff.backdraft.down & soul_shard >= 1 & soul_shard <= 4",
["action"] = "conflagrate",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains & soul_shard < 2.5",
["action"] = "soul_fire",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "soul_shard < 4.5 & talent.raging_demonfire.rank = 2 & active_enemies > 2",
["action"] = "channel_demonfire",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ( dot.immolate.refreshable & target.time_to_die > 5 ) || ( ( dot.immolate.remains < 2 & dot.immolate.remains < havoc_remains ) || ! dot.immolate.ticking ) & target.time_to_die > 11 ) & soul_shard < 4.5",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ( talent.cry_havoc.enabled & ! talent.inferno.enabled ) || ! talent.rain_of_fire.enabled ) & cast_time < havoc_remains",
["action"] = "chaos_bolt",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains & ( active_enemies <= 3 - talent.inferno.enabled + ( talent.madness_of_the_azjaqir.enabled & ! talent.inferno.enabled ) )",
["action"] = "chaos_bolt",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & talent.inferno.enabled",
["action"] = "rain_of_fire",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( active_enemies >= 4 - talent.inferno.enabled + talent.madness_of_the_azjaqir.enabled )",
["action"] = "rain_of_fire",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & ( talent.avatar_of_destruction.enabled || talent.rain_of_chaos.enabled & buff.rain_of_chaos.up ) & talent.inferno.enabled",
["action"] = "rain_of_fire",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! talent.backdraft.enabled",
["action"] = "conflagrate",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains",
["action"] = "incinerate",
}, -- [11]
},
["cleave"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "havoc_active & havoc_remains > gcd.max",
["list_name"] = "havoc",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.havoc.remains <= 10 || talent.mayhem.enabled",
["var_name"] = "pool_soul_shards",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( talent.roaring_blaze.enabled & debuff.conflagrate.remains < 1.5 ) || charges = max_charges",
["action"] = "conflagrate",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "soul_shard < 4.7 & ( charges > 2 || boss & fight_remains < cooldown.dimensional_rift.duration )",
["action"] = "dimensional_rift",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15",
["action"] = "cataclysm",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.raging_demonfire.enabled",
["action"] = "channel_demonfire",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "soul_shard <= 3.5 & ( debuff.conflagrate.remains > cast_time + travel_time || ! talent.roaring_blaze.enabled & buff.backdraft.up ) & ! variable.pool_soul_shards",
["action"] = "soul_fire",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "refreshable & ( dot.immolate.remains < cooldown.havoc.remains || ! dot.immolate.ticking ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > remains ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + ( ! talent.mayhem.enabled * action.soul_fire.cast_time ) > dot.immolate.remains ) & target.time_to_die > 15",
["action"] = "immolate",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( ! cooldown.summon_infernal.up || ! talent.summon_infernal.enabled ) & target.time_to_die > 8",
["action"] = "havoc",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || pet.blasphemy.active || soul_shard >= 4",
["action"] = "chaos_bolt",
}, -- [10]
{
["action"] = "summon_infernal",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.ruin.rank > 1 & ! ( talent.diabolic_embers.enabled & talent.avatar_of_destruction.enabled & ( talent.burn_to_ashes.enabled || talent.chaos_incarnate.enabled ) )",
["action"] = "channel_demonfire",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.down & soul_shard >= 1.5 & ! variable.pool_soul_shards",
["action"] = "conflagrate",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.burn_to_ashes.up & cast_time + action.chaos_bolt.cast_time < buff.madness_cb.remains",
["action"] = "incinerate",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.rain_of_chaos.remains > cast_time",
["action"] = "chaos_bolt",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.backdraft.up & ! variable.pool_soul_shards",
["action"] = "chaos_bolt",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "talent.eradication.enabled & ! variable.pool_soul_shards & debuff.eradication.remains < cast_time & ! action.chaos_bolt.in_flight",
["action"] = "chaos_bolt",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.madness_cb.up & ( ! variable.pool_soul_shards || talent.burn_to_ashes.enabled & buff.burn_to_ashes.stack = 0 || talent.soul_fire.enabled )",
["action"] = "chaos_bolt",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "soul_shard <= 4 & talent.mayhem.enabled",
["action"] = "soul_fire",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "! ( talent.diabolic_embers.enabled & talent.avatar_of_destruction.enabled & ( talent.burn_to_ashes.enabled || talent.chaos_incarnate.enabled ) )",
["action"] = "channel_demonfire",
}, -- [20]
{
["action"] = "dimensional_rift",
["enabled"] = true,
}, -- [21]
{
["enabled"] = true,
["criteria"] = "soul_shard > 3.5 & ! variable.pool_soul_shards",
["action"] = "chaos_bolt",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "! variable.pool_soul_shards & ( talent.soul_conduit.enabled & ! talent.madness_of_the_azjaqir.enabled || ! talent.backdraft.enabled )",
["action"] = "chaos_bolt",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 5 & time_to_die > cast_time + travel_time",
["action"] = "chaos_bolt",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.tormented_soul.stack = 10 || buff.tormented_soul.stack > 3 & boss & fight_remains < 10",
["action"] = "summon_soulkeeper",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "charges > ( max_charges - 1 ) || time_to_die < gcd.max * charges",
["action"] = "conflagrate",
}, -- [26]
{
["action"] = "incinerate",
["enabled"] = true,
}, -- [27]
},
["ogcd"] = {
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || ! talent.summon_infernal.enabled",
["action"] = "potion",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || ! talent.summon_infernal.enabled || ( fight_remains < ( cooldown.summon_infernal.remains + cooldown.berserking.duration ) & ( fight_remains > cooldown.berserking.duration ) ) || boss & fight_remains < cooldown.summon_infernal.remains",
["action"] = "berserking",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || ! talent.summon_infernal.enabled || ( fight_remains < cooldown.summon_infernal.remains + 10 + cooldown.blood_fury.duration & fight_remains > cooldown.blood_fury.duration ) || boss & fight_remains < cooldown.summon_infernal.remains",
["action"] = "blood_fury",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "pet.infernal.active || ! talent.summon_infernal.enabled || ( fight_remains < cooldown.summon_infernal.remains + 10 + cooldown.fireblood.duration & fight_remains > cooldown.fireblood.duration ) || boss & fight_remains < cooldown.summon_infernal.remains",
["action"] = "fireblood",
}, -- [4]
},
},
["version"] = 20230314,
["warnings"] = "The import for 'items' required some automated changes.\nLine 1: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 2: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'talent.rain_of_chaos' to 'talent.rain_of_chaos.enabled' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\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.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'talent.rain_of_chaos' to 'talent.rain_of_chaos.enabled' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\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.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted 'talent.rain_of_chaos' to 'talent.rain_of_chaos.enabled' (1x).\nLine 5: Converted 'trinket.erupting_spear_fragment.cooldown.duration' to 'cooldown.erupting_spear_fragment.duration'.\nLine 5: Converted 'trinket.erupting_spear_fragment.cooldown.duration' to 'cooldown.erupting_spear_fragment.duration'.\nLine 5: Converted 'trinket.erupting_spear_fragment.cooldown.duration' to 'cooldown.erupting_spear_fragment.duration'.\n\nThe import for 'default' required some automated changes.\nLine 4: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 4: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 4: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 4: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 4: Converted 'talent.chaos_incarnate' to 'talent.chaos_incarnate.enabled' (1x).\nLine 6: Converted 'talent.roaring_blaze' to 'talent.roaring_blaze.enabled' (1x).\nLine 9: Converted 'talent.raging_demonfire' to 'talent.raging_demonfire.enabled' (1x).\nLine 10: Converted 'talent.roaring_blaze' to 'talent.roaring_blaze.enabled' (1x).\nLine 11: Converted 'talent.internal_combustion' to 'talent.internal_combustion.enabled' (1x).\nLine 11: Converted 'talent.cataclysm' to 'talent.cataclysm.enabled' (1x).\nLine 11: Converted 'talent.soul_fire' to 'talent.soul_fire.enabled' (1x).\nLine 12: Converted 'talent.cry_havoc' to 'talent.cry_havoc.enabled' (1x).\nLine 12: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 12: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 15: Converted 'talent.diabolic_embers' to 'talent.diabolic_embers.enabled' (1x).\nLine 15: Converted 'talent.avatar_of_destruction' to 'talent.avatar_of_destruction.enabled' (1x).\nLine 15: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 15: Converted 'talent.chaos_incarnate' to 'talent.chaos_incarnate.enabled' (1x).\nLine 16: Converted 'talent.roaring_blaze' to 'talent.roaring_blaze.enabled' (1x).\nLine 19: Converted 'talent.eradication' to 'talent.eradication.enabled' (1x).\nLine 19: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 21: Converted 'talent.diabolic_embers' to 'talent.diabolic_embers.enabled' (1x).\nLine 21: Converted 'talent.avatar_of_destruction' to 'talent.avatar_of_destruction.enabled' (1x).\nLine 21: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 21: Converted 'talent.chaos_incarnate' to 'talent.chaos_incarnate.enabled' (1x).\nLine 24: Converted 'talent.soul_conduit' to 'talent.soul_conduit.enabled' (1x).\nLine 24: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 24: Converted 'talent.backdraft' to 'talent.backdraft.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 1: Converted 'talent.cry_havoc' to 'talent.cry_havoc.enabled' (1x).\nLine 1: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 5: Converted 'talent.rain_of_fire' to 'talent.rain_of_fire.enabled' (1x).\nLine 7: Converted 'talent.raging_demonfire' to 'talent.raging_demonfire.enabled' (1x).\nLine 8: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 9: Converted 'talent.raging_demonfire' to 'talent.raging_demonfire.enabled' (1x).\nLine 18: Converted 'talent.backdraft' to 'talent.backdraft.enabled' (1x).\n\nThe import for 'cleave' required some automated changes.\nLine 2: Converted 'talent.mayhem' to 'talent.mayhem.enabled' (1x).\nLine 6: Converted 'talent.raging_demonfire' to 'talent.raging_demonfire.enabled' (1x).\nLine 7: Converted 'talent.roaring_blaze' to 'talent.roaring_blaze.enabled' (1x).\nLine 8: Converted 'talent.cataclysm' to 'talent.cataclysm.enabled' (1x).\nLine 8: Converted 'talent.soul_fire' to 'talent.soul_fire.enabled' (1x).\nLine 8: Converted 'talent.mayhem' to 'talent.mayhem.enabled' (1x).\nLine 9: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 12: Converted 'talent.diabolic_embers' to 'talent.diabolic_embers.enabled' (1x).\nLine 12: Converted 'talent.avatar_of_destruction' to 'talent.avatar_of_destruction.enabled' (1x).\nLine 12: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 12: Converted 'talent.chaos_incarnate' to 'talent.chaos_incarnate.enabled' (1x).\nLine 17: Converted 'talent.eradication' to 'talent.eradication.enabled' (1x).\nLine 18: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 18: Converted 'talent.soul_fire' to 'talent.soul_fire.enabled' (1x).\nLine 19: Converted 'talent.mayhem' to 'talent.mayhem.enabled' (1x).\nLine 20: Converted 'talent.diabolic_embers' to 'talent.diabolic_embers.enabled' (1x).\nLine 20: Converted 'talent.avatar_of_destruction' to 'talent.avatar_of_destruction.enabled' (1x).\nLine 20: Converted 'talent.burn_to_ashes' to 'talent.burn_to_ashes.enabled' (1x).\nLine 20: Converted 'talent.chaos_incarnate' to 'talent.chaos_incarnate.enabled' (1x).\nLine 23: Converted 'talent.soul_conduit' to 'talent.soul_conduit.enabled' (1x).\nLine 23: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 23: Converted 'talent.backdraft' to 'talent.backdraft.enabled' (1x).\n\nThe import for 'havoc' required some automated changes.\nLine 1: Converted 'talent.backdraft' to 'talent.backdraft.enabled' (1x).\nLine 5: Converted 'talent.cry_havoc' to 'talent.cry_havoc.enabled' (1x).\nLine 5: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 5: Converted 'talent.rain_of_fire' to 'talent.rain_of_fire.enabled' (1x).\nLine 6: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 6: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 6: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 7: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 8: Converted 'talent.inferno' to 'talent.inferno.enabled' (1x).\nLine 8: Converted 'talent.madness_of_the_azjaqir' to 'talent.madness_of_the_azjaqir.enabled' (1x).\nLine 9: Converted 'talent.avatar_of_destruction' to 'talent.avatar_of_destruction.enabled' (1x).\nLine 9: Converted 'talent.rain_of_chaos' to 'talent.rain_of_chaos.enabled' (1x).\nLine 10: Converted 'talent.backdraft' to 'talent.backdraft.enabled' (1x).\n\nThe import for 'ogcd' required some automated changes.\nLine 1: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 2: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 3: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 4: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\n\nImported 7 action lists.\n",
["spec"] = 267,
["profile"] = "actions.precombat=fel_domination,if=time>0&!pet.alive\nactions.precombat+=/summon_pet\nactions.precombat+=/use_item,name=tome_of_monstrous_constructions\nactions.precombat+=/use_item,name=soleahs_secret_technique\nactions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled\nactions.precombat+=/use_item,name=shadowed_orb_of_torment\nactions.precombat+=/soul_fire\nactions.precombat+=/cataclysm,if=raid_event.adds.in>15\nactions.precombat+=/incinerate\n\nactions=spell_lock\nactions+=/call_action_list,name=items\nactions+=/call_action_list,name=ogcd\n## actions+=/variable,name=havoc_immo_time,op=set,condition=active_havoc,value=dot.immolate.remains,value_else=0\n## actions+=/cycling_variable,name=havoc_immo_time,op=add,value=dot.immolate.remains*debuff.havoc.up\nactions+=/call_action_list,name=aoe,strict=1,if=!settings.cleave_apl&(active_enemies>=3-(talent.inferno&!talent.madness_of_the_azjaqir))&!(!talent.inferno&talent.madness_of_the_azjaqir&talent.chaos_incarnate&active_enemies<4)\nactions+=/call_action_list,name=cleave,strict=1,if=settings.cleave_apl&active_enemies>1\nactions+=/conflagrate,if=(talent.roaring_blaze&debuff.conflagrate.remains<1.5)||charges=max_charges\nactions+=/dimensional_rift,if=soul_shard<4.7&(charges>2||boss&fight_remains<cooldown.dimensional_rift.duration)\nactions+=/cataclysm,if=raid_event.adds.in>15\nactions+=/channel_demonfire,if=talent.raging_demonfire\nactions+=/soul_fire,if=soul_shard<=3.5&(debuff.conflagrate.remains>cast_time+travel_time||!talent.roaring_blaze&buff.backdraft.up)\nactions+=/immolate,if=((dot.immolate.refreshable&talent.internal_combustion)||dot.immolate.remains<3)&(!talent.cataclysm||cooldown.cataclysm.remains>dot.immolate.remains)&(!talent.soul_fire||cooldown.soul_fire.remains+action.soul_fire.cast_time>dot.immolate.remains)&target.time_to_die>8\nactions+=/havoc,if=talent.cry_havoc&((buff.ritual_of_ruin.up&pet.infernal.active&talent.burn_to_ashes)||((buff.ritual_of_ruin.up||pet.infernal.active)&!talent.burn_to_ashes))\nactions+=/chaos_bolt,if=pet.infernal.active||pet.blasphemy.active||soul_shard>=4\nactions+=/summon_infernal\nactions+=/channel_demonfire,if=talent.ruin.rank>1&!(talent.diabolic_embers&talent.avatar_of_destruction&(talent.burn_to_ashes||talent.chaos_incarnate))&dot.immolate.remains>cast_time\nactions+=/conflagrate,if=buff.backdraft.down&soul_shard>=1.5&!talent.roaring_blaze\nactions+=/incinerate,if=buff.burn_to_ashes.up&cast_time+action.chaos_bolt.cast_time<buff.madness_cb.remains\nactions+=/chaos_bolt,if=buff.rain_of_chaos.remains>cast_time\nactions+=/chaos_bolt,if=buff.backdraft.up&!talent.eradication&!talent.madness_of_the_azjaqir\nactions+=/chaos_bolt,if=buff.madness_cb.up\nactions+=/channel_demonfire,if=!(talent.diabolic_embers&talent.avatar_of_destruction&(talent.burn_to_ashes||talent.chaos_incarnate))&dot.immolate.remains>cast_time\nactions+=/dimensional_rift\nactions+=/chaos_bolt,if=soul_shard>3.5\nactions+=/chaos_bolt,if=talent.soul_conduit&!talent.madness_of_the_azjaqir||!talent.backdraft\nactions+=/chaos_bolt,if=boss&fight_remains<5&fight_remains>cast_time+travel_time\nactions+=/conflagrate,if=charges>(max_charges-1)||time_to_die<gcd.max*charges\nactions+=/incinerate\n\nactions.aoe+=/call_action_list,name=havoc,strict=1,if=havoc_active&havoc_remains>gcd.max&active_enemies<5+(talent.cry_havoc&!talent.inferno)\nactions.aoe+=/rain_of_fire,if=pet.infernal.active\nactions.aoe+=/rain_of_fire,if=pet.blasphemy.active\nactions.aoe+=/rain_of_fire,if=soul_shard>=(4.5-0.1*active_dot.immolate)\nactions.aoe+=/chaos_bolt,if=soul_shard>3.5-(0.1*active_enemies)&!talent.rain_of_fire\nactions.aoe+=/cataclysm,if=raid_event.adds.in>15\nactions.aoe+=/channel_demonfire,if=dot.immolate.remains>cast_time&talent.raging_demonfire\nactions.aoe+=/havoc,cycle_targets=1,if=cycle_enemies>1&(!cooldown.summon_infernal.up||!talent.summon_infernal)\nactions.aoe+=/immolate,cycle_targets=1,if=dot.immolate.refreshable&(!talent.cataclysm.enabled||cooldown.cataclysm.remains>dot.immolate.remains)&(!talent.raging_demonfire||cooldown.channel_demonfire.remains>remains)&active_dot.immolate<=cycle_enemies&!havoc_active&target.time_to_die>18\nactions.aoe+=/summon_soulkeeper,if=buff.tormented_soul.stack=10||buff.tormented_soul.stack>3&boss&fight_remains<10\nactions.aoe+=/summon_infernal\nactions.aoe+=/rain_of_fire,if=(debuff.pyrogenics.down||buff.madness_rof.up)&active_enemies<=4\nactions.aoe+=/channel_demonfire,if=dot.immolate.remains>cast_time\nactions.aoe+=/immolate,cycle_targets=1,if=((dot.immolate.refreshable&(!talent.cataclysm.enabled||cooldown.cataclysm.remains>dot.immolate.remains))||cycle_enemies>active_dot.immolate)&target.time_to_die>10&!havoc_active\nactions.aoe+=/immolate,cycle_targets=1,if=(dot.immolate.refreshable||(dot.immolate.remains<2&dot.immolate.remains<havoc_remains)||!dot.immolate.ticking)&(!talent.cataclysm.enabled||cooldown.cataclysm.remains>dot.immolate.remains)&target.time_to_die>11\nactions.aoe+=/soul_fire,if=buff.backdraft.up\nactions.aoe+=/incinerate,if=talent.fire_and_brimstone.enabled&buff.backdraft.up\nactions.aoe+=/conflagrate,if=buff.backdraft.stack<2||!talent.backdraft\nactions.aoe+=/dimensional_rift\nactions.aoe+=/incinerate\n\nactions.cleave=call_action_list,name=havoc,strict=1,if=havoc_active&havoc_remains>gcd.max\nactions.cleave+=/variable,name=pool_soul_shards,value=cooldown.havoc.remains<=10||talent.mayhem\nactions.cleave+=/conflagrate,if=(talent.roaring_blaze.enabled&debuff.conflagrate.remains<1.5)||charges=max_charges\nactions.cleave+=/dimensional_rift,if=soul_shard<4.7&(charges>2||boss&fight_remains<cooldown.dimensional_rift.duration)\nactions.cleave+=/cataclysm,if=raid_event.adds.in>15\nactions.cleave+=/channel_demonfire,if=talent.raging_demonfire\nactions.cleave+=/soul_fire,if=soul_shard<=3.5&(debuff.conflagrate.remains>cast_time+travel_time||!talent.roaring_blaze&buff.backdraft.up)&!variable.pool_soul_shards\nactions.cleave+=/immolate,cycle_targets=1,if=refreshable&(dot.immolate.remains<cooldown.havoc.remains||!dot.immolate.ticking)&(!talent.cataclysm||cooldown.cataclysm.remains>remains)&(!talent.soul_fire||cooldown.soul_fire.remains+(!talent.mayhem*action.soul_fire.cast_time)>dot.immolate.remains)&target.time_to_die>15\nactions.cleave+=/havoc,cycle_targets=1,if=(!cooldown.summon_infernal.up||!talent.summon_infernal)&target.time_to_die>8\nactions.cleave+=/chaos_bolt,if=pet.infernal.active||pet.blasphemy.active||soul_shard>=4\nactions.cleave+=/summon_infernal\nactions.cleave+=/channel_demonfire,if=talent.ruin.rank>1&!(talent.diabolic_embers&talent.avatar_of_destruction&(talent.burn_to_ashes||talent.chaos_incarnate))\nactions.cleave+=/conflagrate,if=buff.backdraft.down&soul_shard>=1.5&!variable.pool_soul_shards\nactions.cleave+=/incinerate,if=buff.burn_to_ashes.up&cast_time+action.chaos_bolt.cast_time<buff.madness_cb.remains\nactions.cleave+=/chaos_bolt,if=buff.rain_of_chaos.remains>cast_time\nactions.cleave+=/chaos_bolt,if=buff.backdraft.up&!variable.pool_soul_shards\nactions.cleave+=/chaos_bolt,if=talent.eradication&!variable.pool_soul_shards&debuff.eradication.remains<cast_time&!action.chaos_bolt.in_flight\nactions.cleave+=/chaos_bolt,if=buff.madness_cb.up&(!variable.pool_soul_shards||talent.burn_to_ashes&buff.burn_to_ashes.stack=0||talent.soul_fire)\nactions.cleave+=/soul_fire,if=soul_shard<=4&talent.mayhem\nactions.cleave+=/channel_demonfire,if=!(talent.diabolic_embers&talent.avatar_of_destruction&(talent.burn_to_ashes||talent.chaos_incarnate))\nactions.cleave+=/dimensional_rift\nactions.cleave+=/chaos_bolt,if=soul_shard>3.5&!variable.pool_soul_shards\nactions.cleave+=/chaos_bolt,if=!variable.pool_soul_shards&(talent.soul_conduit&!talent.madness_of_the_azjaqir||!talent.backdraft)\nactions.cleave+=/chaos_bolt,if=boss&fight_remains<5&time_to_die>cast_time+travel_time\nactions.cleave+=/summon_soulkeeper,if=buff.tormented_soul.stack=10||buff.tormented_soul.stack>3&boss&fight_remains<10\nactions.cleave+=/conflagrate,if=charges>(max_charges-1)||time_to_die<gcd.max*charges\nactions.cleave+=/incinerate\n\nactions.havoc=conflagrate,if=talent.backdraft&buff.backdraft.down&soul_shard>=1&soul_shard<=4\nactions.havoc+=/soul_fire,if=cast_time<havoc_remains&soul_shard<2.5\nactions.havoc+=/channel_demonfire,if=soul_shard<4.5&talent.raging_demonfire.rank=2&active_enemies>2\nactions.havoc+=/immolate,cycle_targets=1,if=((dot.immolate.refreshable&target.time_to_die>5)||((dot.immolate.remains<2&dot.immolate.remains<havoc_remains)||!dot.immolate.ticking)&target.time_to_die>11)&soul_shard<4.5\nactions.havoc+=/chaos_bolt,if=((talent.cry_havoc&!talent.inferno)||!talent.rain_of_fire)&cast_time<havoc_remains\nactions.havoc+=/chaos_bolt,if=cast_time<havoc_remains&(active_enemies<=3-talent.inferno+(talent.madness_of_the_azjaqir&!talent.inferno))\nactions.havoc+=/rain_of_fire,if=active_enemies>=3&talent.inferno\nactions.havoc+=/rain_of_fire,if=(active_enemies>=4-talent.inferno+talent.madness_of_the_azjaqir)\nactions.havoc+=/rain_of_fire,if=active_enemies>2&(talent.avatar_of_destruction||talent.rain_of_chaos&buff.rain_of_chaos.up)&talent.inferno.enabled\nactions.havoc+=/conflagrate,if=!talent.backdraft\nactions.havoc+=/incinerate,if=cast_time<havoc_remains\n\nactions.items+=/use_item,slot=trinket1,if=pet.infernal.active||!talent.summon_infernal||boss&fight_remains<21||trinket.1.cooldown.duration<cooldown.summon_infernal.remains+5\nactions.items+=/use_item,slot=trinket2,if=pet.infernal.active||!talent.summon_infernal||boss&fight_remains<21||trinket.2.cooldown.duration<cooldown.summon_infernal.remains+5\nactions.items+=/use_item,slot=trinket1,if=(!talent.rain_of_chaos&fight_remains<cooldown.summon_infernal.remains+trinket.1.cooldown.duration&fight_remains>trinket.1.cooldown.duration)||boss&fight_remains<cooldown.summon_infernal.remains||(trinket.2.cooldown.remains>0&trinket.2.cooldown.remains<cooldown.summon_infernal.remains)\nactions.items+=/use_item,slot=trinket2,if=(!talent.rain_of_chaos&fight_remains<cooldown.summon_infernal.remains+trinket.2.cooldown.duration&fight_remains>trinket.2.cooldown.duration)||boss&fight_remains<cooldown.summon_infernal.remains||(trinket.1.cooldown.remains>0&trinket.1.cooldown.remains<cooldown.summon_infernal.remains)\nactions.items+=/use_item,name=erupting_spear_fragment,if=(!talent.rain_of_chaos&fight_remains<cooldown.summon_infernal.remains+trinket.erupting_spear_fragment.cooldown.duration&fight_remains>trinket.erupting_spear_fragment.cooldown.duration)||boss&fight_remains<cooldown.summon_infernal.remains||trinket.erupting_spear_fragment.cooldown.duration<cooldown.summon_infernal.remains+5\nactions.items+=/use_item,name=desperate_invokers_codex\nactions.items+=/use_item,name=iceblood_deathsnare\nactions.items+=/use_item,name=conjured_chillglobe\n\nactions.ogcd=potion,if=pet.infernal.active||!talent.summon_infernal\nactions.ogcd+=/berserking,if=pet.infernal.active||!talent.summon_infernal||(fight_remains<(cooldown.summon_infernal.remains+cooldown.berserking.duration)&(fight_remains>cooldown.berserking.duration))||boss&fight_remains<cooldown.summon_infernal.remains\nactions.ogcd+=/blood_fury,if=pet.infernal.active||!talent.summon_infernal||(fight_remains<cooldown.summon_infernal.remains+10+cooldown.blood_fury.duration&fight_remains>cooldown.blood_fury.duration)||boss&fight_remains<cooldown.summon_infernal.remains\nactions.ogcd+=/fireblood,if=pet.infernal.active||!talent.summon_infernal||(fight_remains<cooldown.summon_infernal.remains+10+cooldown.fireblood.duration&fight_remains>cooldown.fireblood.duration)||boss&fight_remains<cooldown.summon_infernal.remains",
},
},
},
["Quillikan - Deathwing"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["resetRogueMfDOption_20200226"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetPotionsToDefaults_20190717"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[255] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["use_harpoon"] = true,
["ca_vop_overlap"] = false,
},
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["damage"] = true,
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["nameplates"] = true,
["damageExpiration"] = 8,
["package"] = "Survival",
["damageRange"] = 0,
},
[254] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["trueshot_vop_overlap"] = false,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["damage"] = true,
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["nameplates"] = false,
["damageExpiration"] = 6,
["package"] = "Marksmanship",
["damageRange"] = 0,
},
[253] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["barbed_shot_grace_period"] = 0.5,
["aspect_vop_overlap"] = false,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["throttleTime"] = false,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["buffPadding"] = 0.25,
["damage"] = true,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["nameplates"] = false,
["damageExpiration"] = 3,
["package"] = "Beast Mastery",
["damageRange"] = 0,
},
},
["displays"] = {
["Defensives"] = {
["rel"] = "CENTER",
},
["Primary"] = {
["rel"] = "CENTER",
["x"] = 176.2011260986328,
["y"] = -453.5713195800781,
},
["AOE"] = {
["rel"] = "CENTER",
["x"] = -82.846435546875,
["y"] = -459.5241394042969,
},
["Interrupts"] = {
["rel"] = "CENTER",
},
},
["packs"] = {
["Marksmanship"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200401,
["author"] = "SimC",
["desc"] = "# Marksmanship Hunter\n# https://github.com/simulationcraft/simc/\n# March 30, 2020\n\n# Changes:\n# - Add utility priority to APL.\n# - Use time_to_die rather than target.time_to_die to anticipate end of combat.",
["lists"] = {
["trickshots"] = {
{
["action"] = "barrage",
["enabled"] = true,
}, -- [1]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ca_execute & buff.double_tap.up",
["action"] = "aimed_shot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ( azerite.focused_fire.enabled || azerite.in_the_rhythm.rank > 1 || azerite.surging_shots.enabled || talent.streamline.enabled )",
["action"] = "rapid_fire",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & ( buff.precise_shots.down || cooldown.aimed_shot.full_recharge_time < action.aimed_shot.cast_time || buff.trueshot.up )",
["action"] = "aimed_shot",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up",
["action"] = "rapid_fire",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.down || buff.precise_shots.up & ! buff.trueshot.up || focus > 70",
["action"] = "multishot",
}, -- [7]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [8]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [9]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [10]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [12]
{
["action"] = "piercing_shot",
["enabled"] = true,
}, -- [13]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "refreshable & ! action.serpent_sting.in_flight",
["action"] = "serpent_sting",
}, -- [15]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [16]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["action"] = "call_action_list",
["list_name"] = "utility",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains_guess < 15 || time_to_die < 30",
["name"] = "lurkers_insidious_gift",
["action"] = "lurkers_insidious_gift",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( time_to_die > action_cooldown + 34 || target.health.pct < 20 || target.time_to_pct_20 < 15 ) & cooldown.trueshot.remains_guess < 15 || time_to_die < 35",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains_guess < 5 || time_to_die < 20",
["name"] = "lustrous_golden_plumage",
["action"] = "lustrous_golden_plumage",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot || ! talent.calling_the_shots.enabled || time_to_die < 10",
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( buff.guardian_of_azeroth.up || ! essence.condensed_lifeforce.major & ca_execute ) || debuff.razor_coral_debuff.down || time_to_die < 20",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up & ! essence.blood_of_the_enemy.major || debuff.blood_of_the_enemy.up || time_to_die < 5",
["name"] = "pocketsized_computation_device",
["action"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot || ! talent.calling_the_shots.enabled || time_to_die < 20",
["action"] = "use_items",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "call_action_list",
["list_name"] = "st",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "call_action_list",
["list_name"] = "trickshots",
}, -- [11]
},
["precombat"] = {
{
["action"] = "hunters_mark",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["precast_time"] = "10",
["action"] = "double_tap",
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [4]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [5]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "trueshot",
["criteria"] = "active_enemies > 2",
}, -- [7]
{
["action"] = "potion",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies < 3",
["action"] = "aimed_shot",
}, -- [9]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "debuff.hunters_mark.down & ! buff.trueshot.up",
["action"] = "hunters_mark",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.rapid_fire.remains < gcd || cooldown.rapid_fire.remains < cooldown.aimed_shot.remains || time_to_die < 20",
["action"] = "double_tap",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.berserking.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 13",
["action"] = "berserking",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.blood_fury.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 16",
["action"] = "blood_fury",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.ancestral_call.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 16",
["action"] = "ancestral_call",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.trueshot & ( target.time_to_die > cooldown.fireblood.duration + duration || ( target.health.pct < 20 || ! talent.careful_aim.enabled ) ) || time_to_die < 9",
["action"] = "fireblood",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "lights_judgment",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & ( target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30 )",
["action"] = "reaping_flames",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( cooldown.azsharas_font_of_power.remains > 20 || ! equipped.azsharas_font_of_power || time_to_die < cooldown.azsharas_font_of_power.duration + 34 & target.health.pct > 20 ) & ( cooldown.trueshot.remains_guess < 3 || ( essence.vision_of_perfection.minor & time_to_die > action_cooldown + buff.worldvein_resonance.duration ) ) || time_to_die < 20",
["action"] = "worldvein_resonance",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "( ca_execute || target.time_to_die > action_cooldown + 30 ) & ( buff.trueshot.up || cooldown.trueshot.remains < 16 ) || time_to_die < 31",
["action"] = "guardian_of_azeroth",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "cooldown.trueshot.remains < 7",
["action"] = "ripple_in_space",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up",
["action"] = "memory_of_lucid_dreams",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.react & buff.bloodlust.react || prev_gcd.1.trueshot & target.health.pct < 20 || ( ( consumable.potion_of_unbridled_fury || consumable.unbridled_fury ) & target.time_to_die < 61 || time_to_die < 26 )",
["action"] = "potion",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & cooldown.rapid_fire.remains || time_to_die < 15",
["action"] = "trueshot",
}, -- [15]
},
["st"] = {
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "barrage",
}, -- [2]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "refreshable & ! action.serpent_sting.in_flight",
["action"] = "serpent_sting",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down || focus < 35 || focus < 60 & ! talent.lethal_shots.enabled || buff.in_the_rhythm.remains < execute_time",
["action"] = "rapid_fire",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & ( buff.unerring_vision.stack > 4 || ! azerite.unerring_vision.enabled ) || time_to_die < 11",
["action"] = "blood_of_the_enemy",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up || time_to_die < 5",
["action"] = "focused_azerite_beam",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & buff.master_marksman.up & ! buff.memory_of_lucid_dreams.up",
["action"] = "arcane_shot",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || ( buff.double_tap.down || ca_execute ) & buff.precise_shots.down || full_recharge_time < cast_time & cooldown.trueshot.remains",
["action"] = "aimed_shot",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & buff.master_marksman.up & buff.memory_of_lucid_dreams.up",
["action"] = "arcane_shot",
}, -- [10]
{
["action"] = "piercing_shot",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! buff.trueshot.up || time_to_die < 8",
["action"] = "purifying_blast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "focus + focus.regen * gcd < focus.max & buff.trueshot.down & ( ! dot.concentrated_flame_burn.remains & ! action.concentrated_flame.in_flight ) || full_recharge_time < gcd || target.time_to_die < 5",
["action"] = "concentrated_flame",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10 || time_to_die < 5",
["action"] = "the_unbound_force",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down & ( buff.precise_shots.up & ( focus > 55 || buff.master_marksman.up ) || focus > 75 || time_to_die < 5 )",
["action"] = "arcane_shot",
}, -- [15]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [16]
},
["utility"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200401,
["warnings"] = "Imported 6 action lists.\n",
["spec"] = 254,
["profile"] = "# Marksmanship Hunter\n# https://github.com/simulationcraft/simc/\n# March 30, 2020\n\n# Changes:\n# - Add utility priority to APL.\n# - Use time_to_die rather than target.time_to_die to anticipate end of combat.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/hunters_mark\n# Precast this as early as possible to potentially gain another cast during the fight.\nactions.precombat+=/double_tap,precast_time=10\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/trueshot,precast_time=1.5,if=active_enemies>2\nactions.precombat+=/potion\nactions.precombat+=/aimed_shot,if=active_enemies<3\n\nactions.utility=counter_shot\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_item,name=lurkers_insidious_gift,if=cooldown.trueshot.remains_guess<15||time_to_die<30\nactions+=/use_item,name=azsharas_font_of_power,if=(time_to_die>cooldown+34||target.health.pct<20||target.time_to_pct_20<15)&cooldown.trueshot.remains_guess<15||time_to_die<35\nactions+=/use_item,name=lustrous_golden_plumage,if=cooldown.trueshot.remains_guess<5||time_to_die<20\nactions+=/use_item,name=galecallers_boon,if=prev_gcd.1.trueshot||!talent.calling_the_shots.enabled||time_to_die<10\nactions+=/use_item,name=ashvanes_razor_coral,if=prev_gcd.1.trueshot&(buff.guardian_of_azeroth.up||!essence.condensed_lifeforce.major&ca_execute)||debuff.razor_coral_debuff.down||time_to_die<20\nactions+=/use_item,name=pocketsized_computation_device,if=!buff.trueshot.up&!essence.blood_of_the_enemy.major||debuff.blood_of_the_enemy.up||time_to_die<5\n# Try to line up activated trinkets with Trueshot\nactions+=/use_items,if=prev_gcd.1.trueshot||!talent.calling_the_shots.enabled||time_to_die<20\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<3\nactions+=/call_action_list,name=trickshots,if=active_enemies>2\n\nactions.cds=hunters_mark,if=debuff.hunters_mark.down&!buff.trueshot.up\nactions.cds+=/double_tap,if=cooldown.rapid_fire.remains<gcd||cooldown.rapid_fire.remains<cooldown.aimed_shot.remains||time_to_die<20\nactions.cds+=/berserking,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.berserking.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<13\nactions.cds+=/blood_fury,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.blood_fury.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<16\nactions.cds+=/ancestral_call,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.ancestral_call.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<16\nactions.cds+=/fireblood,if=prev_gcd.1.trueshot&(target.time_to_die>cooldown.fireblood.duration+duration||(target.health.pct<20||!talent.careful_aim.enabled))||time_to_die<9\nactions.cds+=/lights_judgment,if=buff.trueshot.down\nactions.cds+=/bag_of_tricks,if=buff.trueshot.down\nactions.cds+=/reaping_flames,if=buff.trueshot.down&(target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30)\nactions.cds+=/worldvein_resonance,if=(cooldown.azsharas_font_of_power.remains>20||!equipped.azsharas_font_of_power||time_to_die<cooldown.azsharas_font_of_power.duration+34&target.health.pct>20)&(cooldown.trueshot.remains_guess<3||(essence.vision_of_perfection.minor&time_to_die>cooldown+buff.worldvein_resonance.duration))||time_to_die<20\nactions.cds+=/guardian_of_azeroth,if=(ca_execute||target.time_to_die>cooldown+30)&(buff.trueshot.up||cooldown.trueshot.remains<16)||time_to_die<31\nactions.cds+=/ripple_in_space,if=cooldown.trueshot.remains<7\nactions.cds+=/memory_of_lucid_dreams,if=!buff.trueshot.up\nactions.cds+=/potion,if=buff.trueshot.react&buff.bloodlust.react||prev_gcd.1.trueshot&target.health.pct<20||((consumable.potion_of_unbridled_fury||consumable.unbridled_fury)&target.time_to_die<61||time_to_die<26)\nactions.cds+=/trueshot,if=buff.trueshot.down&cooldown.rapid_fire.remains||time_to_die<15\n\nactions.st=explosive_shot\nactions.st+=/barrage,if=active_enemies>1\nactions.st+=/a_murder_of_crows\nactions.st+=/serpent_sting,if=refreshable&!action.serpent_sting.in_flight\nactions.st+=/rapid_fire,if=buff.trueshot.down||focus<35||focus<60&!talent.lethal_shots.enabled||buff.in_the_rhythm.remains<execute_time\n# if=buff.trueshot.up&(buff.unerring_vision.stack>4||!azerite.unerring_vision.enabled)||target.time_to_die<11\nactions.st+=/blood_of_the_enemy,if=buff.trueshot.up&(buff.unerring_vision.stack>4||!azerite.unerring_vision.enabled)||time_to_die<11\nactions.st+=/focused_azerite_beam,if=!buff.trueshot.up||time_to_die<5\nactions.st+=/arcane_shot,if=buff.trueshot.up&buff.master_marksman.up&!buff.memory_of_lucid_dreams.up\nactions.st+=/aimed_shot,if=buff.trueshot.up||(buff.double_tap.down||ca_execute)&buff.precise_shots.down||full_recharge_time<cast_time&cooldown.trueshot.remains\nactions.st+=/arcane_shot,if=buff.trueshot.up&buff.master_marksman.up&buff.memory_of_lucid_dreams.up\nactions.st+=/piercing_shot\nactions.st+=/purifying_blast,if=!buff.trueshot.up||time_to_die<8\nactions.st+=/concentrated_flame,if=focus+focus.regen*gcd<focus.max&buff.trueshot.down&(!dot.concentrated_flame_burn.remains&!action.concentrated_flame.in_flight)||full_recharge_time<gcd||target.time_to_die<5\nactions.st+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10||time_to_die<5\nactions.st+=/arcane_shot,if=buff.trueshot.down&(buff.precise_shots.up&(focus>55||buff.master_marksman.up)||focus>75||time_to_die<5)\nactions.st+=/steady_shot\n\nactions.trickshots=barrage\nactions.trickshots+=/explosive_shot\nactions.trickshots+=/aimed_shot,if=buff.trick_shots.up&ca_execute&buff.double_tap.up\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.up&(azerite.focused_fire.enabled||azerite.in_the_rhythm.rank>1||azerite.surging_shots.enabled||talent.streamline.enabled)\nactions.trickshots+=/aimed_shot,if=buff.trick_shots.up&(buff.precise_shots.down||cooldown.aimed_shot.full_recharge_time<action.aimed_shot.cast_time||buff.trueshot.up)\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.up\nactions.trickshots+=/multishot,if=buff.trick_shots.down||buff.precise_shots.up&!buff.trueshot.up||focus>70\nactions.trickshots+=/focused_azerite_beam\nactions.trickshots+=/purifying_blast\nactions.trickshots+=/concentrated_flame\nactions.trickshots+=/blood_of_the_enemy\nactions.trickshots+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.trickshots+=/piercing_shot\nactions.trickshots+=/a_murder_of_crows\nactions.trickshots+=/serpent_sting,if=refreshable&!action.serpent_sting.in_flight\nactions.trickshots+=/steady_shot",
},
["Beast Mastery"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["author"] = "SimC",
["desc"] = "# Beast Mastery Hunter\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Counter Shot to default action list.\n# - Use time_to_die (vs. target.time_to_die) to anticipate end of encounter.\n# - Add dispels/purges via utility action list.\n# - trinket.X.has_cooldown is unsupported.\n# - Check for crit_pct_current.",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.aspect_of_the_wild || time_to_die < 20",
["action"] = "use_items",
}, -- [2]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
["criteria"] = "cooldown.aspect_of_the_wild.remains_guess < 15 & time_to_die > 10",
}, -- [3]
{
["enabled"] = true,
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
["criteria"] = "debuff.razor_coral_debuff.up & ( ! equipped.azsharas_font_of_power || cooldown.azsharas_font_of_power.remains > 86 || essence.blood_of_the_enemy.major ) & ( prev_gcd.1.aspect_of_the_wild || ! equipped.cyclotronic_blast & buff.aspect_of_the_wild.remains > 9 ) & ( ! essence.condensed_lifeforce.major || buff.guardian_of_azeroth.up ) & ( target.health.pct < 35 || ! essence.condensed_lifeforce.major || ! talent.killer_instinct.enabled ) || ( debuff.razor_coral_debuff.down || time_to_die < 26 ) & time_to_die > ( 24 * ( cooldown.cyclotronic_blast.remains + 4 < time_to_die ) )",
}, -- [4]
{
["enabled"] = true,
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
["criteria"] = "buff.aspect_of_the_wild.remains > 10 || cooldown.aspect_of_the_wild.remains > 45 || time_to_die < 11",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 5",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 2",
["list_name"] = "st",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1",
["list_name"] = "cleave",
}, -- [9]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists & ( equipped.variable_intensity_gigavolt_oscillating_reactor )",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists & ( trinket.1.has_cooldown + trinket.2.has_cooldown < 2 || equipped.variable_intensity_gigavolt_oscillating_reactor )",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists",
["action"] = "focused_azerite_beam",
}, -- [8]
{
["enabled"] = true,
["precast_time"] = "1.3",
["action"] = "aspect_of_the_wild",
["criteria"] = "! azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [9]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "bestial_wrath",
["criteria"] = "azerite.primal_instincts.enabled & ! essence.essence_of_the_focusing_iris.major & ( equipped.azsharas_font_of_power || ! equipped.cyclotronic_blast )",
}, -- [10]
{
["action"] = "potion",
["enabled"] = true,
}, -- [11]
},
["cleave"] = {
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + barbed_shot_grace_period",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "gcd.max - buff.beast_cleave.remains > 0.25",
["action"] = "multishot",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max & cooldown.bestial_wrath.remains",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [3]
{
["action"] = "aspect_of_the_wild",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & buff.bestial_wrath.up || time_to_die < 15",
["action"] = "stampede",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains_guess > 20 || talent.one_with_the_pack.enabled || time_to_die < 15",
["action"] = "bestial_wrath",
}, -- [6]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [7]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [8]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies < 4 || ! azerite.rapid_reload.enabled",
["action"] = "kill_command",
}, -- [10]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.down & ( charges_fractional > 1.8 || buff.bestial_wrath.up ) || cooldown.aspect_of_the_wild.remains < buff.frenzy.duration - gcd & azerite.primal_instincts.enabled || charges_fractional > 1.4 || time_to_die < 9",
["action"] = "barbed_shot",
["cycle_targets"] = 1,
}, -- [12]
{
["action"] = "focused_azerite_beam",
["enabled"] = true,
}, -- [13]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [14]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10",
["action"] = "the_unbound_force",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "azerite.rapid_reload.enabled & active_enemies > 2",
["action"] = "multishot",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.kill_command.remains > focus.time_to_max & ( active_enemies < 3 || ! azerite.rapid_reload.enabled )",
["action"] = "cobra_shot",
}, -- [18]
{
["action"] = "spitting_cobra",
["enabled"] = true,
}, -- [19]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "ancestral_call",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.bestial_wrath.remains > 30",
["action"] = "fireblood",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "focus < focus.max & ( raid_event.adds.remains > 90 || ! raid_event.adds.exists || active_enemies > 1 )",
["action"] = "blood_of_the_enemy",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & ( time_to_die > cooldown.berserking.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || time_to_die < 13",
["action"] = "berserking",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & ( time_to_die > cooldown.blood_fury.duration + duration || ( target.health.pct < 35 || ! talent.killer_instinct.enabled ) ) || time_to_die < 16",
["action"] = "blood_fury",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains > gcd.max || ! buff.frenzy.up",
["action"] = "lights_judgment",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.up & buff.aspect_of_the_wild.up & target.health.pct < 35 || ( ( consumable.potion_of_unbridled_fury || consumable.unbridled_fury ) & time_to_die < 61 || time_to_die < 26 )",
["action"] = "potion",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.aspect_of_the_wild || cooldown.aspect_of_the_wild.remains < gcd || target.time_to_die < 20 ) || ! essence.vision_of_perfection.minor",
["action"] = "worldvein_resonance",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "cooldown.aspect_of_the_wild.remains < 10 || time_to_die > action.guardian_of_azeroth.cooldown + 30 || time_to_die < 30",
["action"] = "guardian_of_azeroth",
}, -- [9]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [10]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30",
["action"] = "reaping_flames",
}, -- [12]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "buff.frenzy.up & buff.frenzy.remains < gcd + barbed_shot_grace_period || cooldown.bestial_wrath.remains & ( full_recharge_time < gcd || azerite.primal_instincts.enabled & cooldown.aspect_of_the_wild.remains < gcd )",
["action"] = "barbed_shot",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + focus.regen * gcd < focus.max & buff.bestial_wrath.down & ( ! dot.concentrated_flame_burn.remains & ! action.concentrated_flame.in_flight ) || full_recharge_time < gcd || time_to_die < 5",
["action"] = "concentrated_flame",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.down & ( cooldown.barbed_shot.charges < 1 || ! azerite.primal_instincts.enabled )",
["action"] = "aspect_of_the_wild",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.aspect_of_the_wild.up & buff.bestial_wrath.up || time_to_die < 15",
["action"] = "stampede",
}, -- [4]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 5",
["action"] = "focused_azerite_beam",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.reckless_force_counter.stack < 10 || time_to_die < 5",
["action"] = "the_unbound_force",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "talent.one_with_the_pack.enabled & buff.bestial_wrath.remains < gcd || buff.bestial_wrath.down & cooldown.aspect_of_the_wild.remains > 15 || time_to_die < 15 + gcd",
["action"] = "bestial_wrath",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "azerite.dance_of_death.rank > 1 & buff.dance_of_death.remains < gcd",
["action"] = "barbed_shot",
}, -- [9]
{
["action"] = "kill_command",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "bag_of_tricks",
}, -- [11]
{
["action"] = "chimaera_shot",
["enabled"] = true,
}, -- [12]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "talent.one_with_the_pack.enabled & charges_fractional > 1.5 || charges_fractional > 1.8 || cooldown.aspect_of_the_wild.remains < buff.frenzy.duration - gcd & azerite.primal_instincts.enabled || time_to_die < 9",
["action"] = "barbed_shot",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || time_to_die < 8",
["action"] = "purifying_blast",
}, -- [15]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [16]
{
["action"] = "barrage",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "( focus - cost + focus.regen * ( cooldown.kill_command.remains - 1 ) > action.kill_command.cost || cooldown.kill_command.remains > 1 + gcd & cooldown.bestial_wrath.remains_guess > focus.time_to_max || buff.memory_of_lucid_dreams.up ) & cooldown.kill_command.remains > 1 || time_to_die < 3",
["action"] = "cobra_shot",
}, -- [18]
{
["action"] = "spitting_cobra",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.duration - gcd > full_recharge_time",
["action"] = "barbed_shot",
}, -- [20]
},
["utility"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200614,
["warnings"] = "WARNING: The import for 'default' required some automated changes.\nLine 4: Converted 'trinket.X.cooldown' to 'cooldown.X' (1x).\n\nWARNING: The import for 'cleave' required some automated changes.\nLine 1: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 2: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 12: Converted 'pet.X.Y...' to 'Y...' (2x).\n\nWARNING: The import for 'cds' required some automated changes.\nLine 6: Converted 'pet.X.Y...' to 'Y...' (3x).\n\nWARNING: The import for 'st' required some automated changes.\nLine 1: Converted 'pet.X.Y...' to 'Y...' (2x).\nLine 14: Converted 'pet.X.Y...' to 'Y...' (1x).\nLine 20: Converted 'pet.X.Y...' to 'Y...' (1x).\n\nImported 6 action lists.\n",
["spec"] = 253,
["profile"] = "# Beast Mastery Hunter\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Counter Shot to default action list.\n# - Use time_to_die (vs. target.time_to_die) to anticipate end of encounter.\n# - Add dispels/purges via utility action list.\n# - trinket.X.has_cooldown is unsupported.\n# - Check for crit_pct_current.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\nactions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists&(equipped.variable_intensity_gigavolt_oscillating_reactor)\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists&(trinket.1.has_cooldown+trinket.2.has_cooldown<2||equipped.variable_intensity_gigavolt_oscillating_reactor)\nactions.precombat+=/focused_azerite_beam,if=!raid_event.invulnerable.exists\n# Adjusts the duration and cooldown of Aspect of the Wild and Primal Instincts by the duration of an unhasted GCD when they're used precombat. Because Aspect of the Wild reduces GCD by 200ms, this is 1.3 seconds. \nactions.precombat+=/aspect_of_the_wild,precast_time=1.3,if=!azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\n# Adjusts the duration and cooldown of Bestial Wrath and Haze of Rage by the duration of an unhasted GCD when they're used precombat.\nactions.precombat+=/bestial_wrath,precast_time=1.5,if=azerite.primal_instincts.enabled&!essence.essence_of_the_focusing_iris.major&(equipped.azsharas_font_of_power||!equipped.cyclotronic_blast)\nactions.precombat+=/potion\n\nactions.utility=counter_shot\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_items,if=prev_gcd.1.aspect_of_the_wild||time_to_die<20\nactions+=/use_item,name=azsharas_font_of_power,if=cooldown.aspect_of_the_wild.remains_guess<15&time_to_die>10\nactions+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.up&(!equipped.azsharas_font_of_power||trinket.azsharas_font_of_power.cooldown.remains>86||essence.blood_of_the_enemy.major)&(prev_gcd.1.aspect_of_the_wild||!equipped.cyclotronic_blast&buff.aspect_of_the_wild.remains>9)&(!essence.condensed_lifeforce.major||buff.guardian_of_azeroth.up)&(target.health.pct<35||!essence.condensed_lifeforce.major||!talent.killer_instinct.enabled)||(debuff.razor_coral_debuff.down||time_to_die<26)&time_to_die>(24*(cooldown.cyclotronic_blast.remains+4<time_to_die))\nactions+=/use_item,name=galecallers_boon,if=buff.aspect_of_the_wild.remains>10||cooldown.aspect_of_the_wild.remains>45||time_to_die<11\nactions+=/use_item,effect_name=cyclotronic_blast,if=buff.bestial_wrath.down||time_to_die<5\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,if=active_enemies<2\nactions+=/call_action_list,name=cleave,if=active_enemies>1\n\nactions.cds=ancestral_call,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/fireblood,if=cooldown.bestial_wrath.remains>30\nactions.cds+=/blood_of_the_enemy,if=focus<focus.max&(raid_event.adds.remains>90||!raid_event.adds.exists||active_enemies>1)\nactions.cds+=/berserking,if=buff.aspect_of_the_wild.up&(time_to_die>cooldown.berserking.duration+duration||(target.health.pct<35||!talent.killer_instinct.enabled))||time_to_die<13\nactions.cds+=/blood_fury,if=buff.aspect_of_the_wild.up&(time_to_die>cooldown.blood_fury.duration+duration||(target.health.pct<35||!talent.killer_instinct.enabled))||time_to_die<16\nactions.cds+=/lights_judgment,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains>gcd.max||!pet.cat.buff.frenzy.up\nactions.cds+=/potion,if=buff.bestial_wrath.up&buff.aspect_of_the_wild.up&target.health.pct<35||((consumable.potion_of_unbridled_fury||consumable.unbridled_fury)&time_to_die<61||time_to_die<26)\nactions.cds+=/worldvein_resonance,if=(prev_gcd.1.aspect_of_the_wild||cooldown.aspect_of_the_wild.remains<gcd||target.time_to_die<20)||!essence.vision_of_perfection.minor\nactions.cds+=/guardian_of_azeroth,if=cooldown.aspect_of_the_wild.remains<10||time_to_die>action.guardian_of_azeroth.cooldown+30||time_to_die<30\nactions.cds+=/ripple_in_space\nactions.cds+=/memory_of_lucid_dreams\n# actions.cds+=/bag_of_tricks\nactions.cds+=/reaping_flames,if=target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30\n\nactions.cleave=barbed_shot,cycle_targets=1,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains<=gcd.max+barbed_shot_grace_period\nactions.cleave+=/multishot,if=gcd.max-pet.cat.buff.beast_cleave.remains>0.25\nactions.cleave+=/barbed_shot,cycle_targets=1,if=full_recharge_time<gcd.max&cooldown.bestial_wrath.remains\nactions.cleave+=/aspect_of_the_wild\nactions.cleave+=/stampede,if=buff.aspect_of_the_wild.up&buff.bestial_wrath.up||time_to_die<15\nactions.cleave+=/bestial_wrath,if=cooldown.aspect_of_the_wild.remains_guess>20||talent.one_with_the_pack.enabled||time_to_die<15\nactions.cleave+=/chimaera_shot\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/barrage\nactions.cleave+=/kill_command,if=active_enemies<4||!azerite.rapid_reload.enabled\nactions.cleave+=/dire_beast\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.cat.buff.frenzy.down&(charges_fractional>1.8||buff.bestial_wrath.up)||cooldown.aspect_of_the_wild.remains<pet.cat.buff.frenzy.duration-gcd&azerite.primal_instincts.enabled||charges_fractional>1.4||time_to_die<9\nactions.cleave+=/focused_azerite_beam\nactions.cleave+=/purifying_blast\nactions.cleave+=/concentrated_flame\nactions.cleave+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10\nactions.cleave+=/multishot,if=azerite.rapid_reload.enabled&active_enemies>2\nactions.cleave+=/cobra_shot,if=cooldown.kill_command.remains>focus.time_to_max&(active_enemies<3||!azerite.rapid_reload.enabled)\nactions.cleave+=/spitting_cobra\n\nactions.st=barbed_shot,if=pet.cat.buff.frenzy.up&pet.cat.buff.frenzy.remains<gcd+barbed_shot_grace_period||cooldown.bestial_wrath.remains&(full_recharge_time<gcd||azerite.primal_instincts.enabled&cooldown.aspect_of_the_wild.remains<gcd)\nactions.st+=/concentrated_flame,if=focus+focus.regen*gcd<focus.max&buff.bestial_wrath.down&(!dot.concentrated_flame_burn.remains&!action.concentrated_flame.in_flight)||full_recharge_time<gcd||time_to_die<5\nactions.st+=/aspect_of_the_wild,if=buff.aspect_of_the_wild.down&(cooldown.barbed_shot.charges<1||!azerite.primal_instincts.enabled)\nactions.st+=/stampede,if=buff.aspect_of_the_wild.up&buff.bestial_wrath.up||time_to_die<15\nactions.st+=/a_murder_of_crows\nactions.st+=/focused_azerite_beam,if=buff.bestial_wrath.down||time_to_die<5\nactions.st+=/the_unbound_force,if=buff.reckless_force.up||buff.reckless_force_counter.stack<10||time_to_die<5\nactions.st+=/bestial_wrath,if=talent.one_with_the_pack.enabled&buff.bestial_wrath.remains<gcd||buff.bestial_wrath.down&cooldown.aspect_of_the_wild.remains>15||time_to_die<15+gcd\nactions.st+=/barbed_shot,if=azerite.dance_of_death.rank>1&buff.dance_of_death.remains<gcd\nactions.st+=/kill_command\nactions.st+=/bag_of_tricks,if=buff.bestial_wrath.down||target.time_to_die<5\nactions.st+=/chimaera_shot\nactions.st+=/dire_beast\nactions.st+=/barbed_shot,if=talent.one_with_the_pack.enabled&charges_fractional>1.5||charges_fractional>1.8||cooldown.aspect_of_the_wild.remains<pet.cat.buff.frenzy.duration-gcd&azerite.primal_instincts.enabled||time_to_die<9\nactions.st+=/purifying_blast,if=buff.bestial_wrath.down||time_to_die<8\nactions.st+=/blood_of_the_enemy\nactions.st+=/barrage\nactions.st+=/cobra_shot,if=(focus-cost+focus.regen*(cooldown.kill_command.remains-1)>action.kill_command.cost||cooldown.kill_command.remains>1+gcd&cooldown.bestial_wrath.remains_guess>focus.time_to_max||buff.memory_of_lucid_dreams.up)&cooldown.kill_command.remains>1||time_to_die<3\nactions.st+=/spitting_cobra\nactions.st+=/barbed_shot,if=pet.cat.buff.frenzy.duration-gcd>full_recharge_time",
},
["Survival"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200525,
["author"] = "SimulationCraft",
["desc"] = "# Survival Hunter\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Added Muzzle to default action list.\n# - Changed target_if expressions to cycle_targets.\n# - Modified carve_cdr to work more easily with the addon's implementation of variable.\n# - Added utility APL.",
["lists"] = {
["apst"] = {
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "mongoose_bite",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "raptor_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ! ticking & ! buff.memory_of_lucid_dreams.up & ( full_recharge_time < 1.5 * gcd || ! dot.wildfire_bomb.ticking & ! buff.coordinated_assault.up || ! dot.wildfire_bomb.ticking & buff.mongoose_fury.stack < 1 ) || time_to_die < 18 & ! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! dot.serpent_sting.ticking & ! buff.coordinated_assault.up",
["action"] = "serpent_sting",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( buff.mongoose_fury.stack < 5 || focus < action.mongoose_bite.cost )",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "refreshable & ! buff.coordinated_assault.up & buff.mongoose_fury.stack < 5",
["action"] = "serpent_sting",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "a_murder_of_crows",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + cast_regen > focus.max - 10 || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [12]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "wildfire_bomb",
}, -- [14]
},
["cleave"] = {
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "carve_cdr",
["value"] = "active_enemies",
["value_else"] = "5",
["criteria"] = "active_enemies < 5",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "azerite.blur_of_talons.rank > 0 & ( buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd || buff.coordinated_assault.remains & ! buff.blur_of_talons.remains ) )",
["action"] = "mongoose_bite",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "debuff.latent_poison.stack > ( active_enemies || 9 ) & target.time_to_die < active_enemies * gcd",
["action"] = "mongoose_bite",
["target_if"] = "",
}, -- [3]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [4]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking & ! talent.hydras_bite.enabled || dot.shrapnel_bomb.ticking & active_enemies > 5",
["action"] = "carve",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! talent.guerrilla_tactics.enabled || full_recharge_time < gcd || raid_event.adds.remains < 6 & raid_event.adds.exists",
["action"] = "wildfire_bomb",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "charges_fractional > 2.5 || dot.shrapnel_bomb.ticking || cooldown.wildfire_bomb.remains > active_enemies - gcd || debuff.blood_of_the_enemy.remains || raid_event.adds.remains < 5 & raid_event.adds.exists",
["action"] = "butchery",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "debuff.latent_poison.stack > 8",
["action"] = "mongoose_bite",
["target_if"] = "",
}, -- [9]
{
["action"] = "chakrams",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "talent.guerrilla_tactics.enabled",
["action"] = "carve",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.remains > ( active_enemies || 5 )",
["action"] = "butchery",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable || talent.wildfire_infusion.enabled",
["action"] = "wildfire_bomb",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.react",
["action"] = "serpent_sting",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.remains > variable.carve_cdr % 2",
["action"] = "carve",
}, -- [18]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "refreshable & buff.tip_of_the_spear.stack < 3 & next_wi_bomb.volatile || refreshable & azerite.latent_poison.rank > 0",
["action"] = "serpent_sting",
["cycle_targets"] = 1,
}, -- [20]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [22]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "raptor_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up & ( buff.coordinated_assault.remains < 1.5 * gcd || buff.blur_of_talons.up & buff.blur_of_talons.remains < 1.5 * gcd )",
["action"] = "mongoose_bite",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & buff.vipers_venom.remains < 1 * gcd",
["action"] = "serpent_sting",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & refreshable & full_recharge_time < gcd & ! buff.memory_of_lucid_dreams.up || focus + cast_regen < focus.max & ( ! dot.wildfire_bomb.ticking & ( ! buff.coordinated_assault.up || buff.mongoose_fury.stack < 1 || time_to_die < 18 || ! dot.wildfire_bomb.ticking & azerite.wilderness_survival.rank > 0 ) ) & ! buff.memory_of_lucid_dreams.up",
["action"] = "wildfire_bomb",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & dot.serpent_sting.remains < 4 * gcd || dot.serpent_sting.refreshable & ! buff.coordinated_assault.up",
["action"] = "serpent_sting",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "a_murder_of_crows",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "coordinated_assault",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus + cast_regen > focus.max - 20 & talent.vipers_venom.enabled || focus + cast_regen > focus.max - 1 & talent.terms_of_engagement.enabled || buff.coordinated_assault.up",
["action"] = "mongoose_bite",
}, -- [12]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "dot.wildfire_bomb.refreshable",
["action"] = "wildfire_bomb",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up",
["action"] = "serpent_sting",
}, -- [15]
},
["wfi"] = {
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & talent.terms_of_engagement.enabled",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "mongoose_bite",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "raptor_strike",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & buff.vipers_venom.remains < 1.5 * gcd || ! dot.serpent_sting.ticking",
["action"] = "serpent_sting",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max || ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 )",
["action"] = "wildfire_bomb",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max - focus.regen",
["action"] = "kill_command",
["cycle_targets"] = 1,
}, -- [6]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd",
["action"] = "wildfire_bomb",
}, -- [9]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up & dot.serpent_sting.remains < 4 * gcd",
["action"] = "serpent_sting",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking || buff.mongoose_fury.stack = 5",
["action"] = "mongoose_bite",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "serpent_sting",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "! buff.mongoose_fury.remains",
["action"] = "chakrams",
}, -- [15]
{
["action"] = "mongoose_bite",
["enabled"] = true,
}, -- [16]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.vipers_venom.up",
["action"] = "serpent_sting",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel",
["action"] = "wildfire_bomb",
}, -- [19]
},
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "debuff.casting.up || buff.dispellable_magic.up || buff.dispellable_enrage.up",
["list_name"] = "utility",
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_die < focus % ( action.mongoose_bite.cost - cast_regen ) * gcd",
["action"] = "mongoose_bite",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.chakrams.enabled & talent.alpha_predator.enabled",
["list_name"] = "apwfi",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.chakrams.enabled",
["list_name"] = "wfi",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & ! talent.alpha_predator.enabled & ! talent.wildfire_infusion.enabled",
["list_name"] = "st",
}, -- [7]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.alpha_predator.enabled & ! talent.wildfire_infusion.enabled",
["list_name"] = "apst",
}, -- [8]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & talent.alpha_predator.enabled & talent.wildfire_infusion.enabled",
["list_name"] = "apwfi",
}, -- [9]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies < 3 & ! talent.alpha_predator.enabled & talent.wildfire_infusion.enabled",
["list_name"] = "wfi",
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2",
["list_name"] = "cleave",
}, -- [11]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [12]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [13]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [14]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! raid_event.invulnerable.exists",
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [3]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [4]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [5]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "potion",
["dynamic_prepot"] = "1",
}, -- [7]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [8]
{
["action"] = "harpoon",
["enabled"] = true,
}, -- [9]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "blood_fury",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "ancestral_call",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 30",
["action"] = "fireblood",
}, -- [3]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains > 60 || time_to_die < 13",
["action"] = "berserking",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.guardian_of_azeroth.up & ( buff.berserking.up || buff.blood_fury.up || ! race.troll ) || ( consumable.potion_of_unbridled_fury & time_to_die < 61 || time_to_die < 26 ) || ! essence.condensed_lifeforce.major & buff.coordinated_assault.up",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "target.distance >= 6",
["action"] = "aspect_of_the_eagle",
}, -- [7]
{
["enabled"] = true,
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
["criteria"] = "buff.memory_of_lucid_dreams.up & target.time_to_die < cooldown.memory_of_lucid_dreams.remains + 15 || buff.guardian_of_azeroth.stack = 5 & target.time_to_die < cooldown.guardian_of_azeroth.remains + 20 || debuff.razor_coral_debuff.down || target.time_to_die < 21 || buff.worldvein_resonance.remains & target.time_to_die < cooldown.worldvein_resonance.remains + 18 || ! talent.birds_of_prey.enabled & target.time_to_die < cooldown.coordinated_assault.remains + 20 & buff.coordinated_assault.remains",
}, -- [8]
{
["enabled"] = true,
["name"] = "galecallers_boon",
["action"] = "galecallers_boon",
["criteria"] = "cooldown.memory_of_lucid_dreams.remains || talent.wildfire_infusion.enabled & cooldown.coordinated_assault.remains || ! essence.memory_of_lucid_dreams.major & cooldown.coordinated_assault.remains",
}, -- [9]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 90 & focus < focus.max - 25 || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) & ( buff.blur_of_talons.up & buff.blur_of_talons.remains > 3 * gcd || ! buff.blur_of_talons.up )",
["action"] = "focused_azerite_beam",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( ( raid_event.adds.remains > 90 || ! raid_event.adds.exists ) || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) ) & focus < focus.max",
["action"] = "blood_of_the_enemy",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "( ( raid_event.adds.remains > 60 || ! raid_event.adds.exists ) || ( active_enemies > 1 & ! talent.birds_of_prey.enabled || active_enemies > 2 ) ) & focus < focus.max",
["action"] = "purifying_blast",
}, -- [13]
{
["action"] = "guardian_of_azeroth",
["enabled"] = true,
}, -- [14]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1 * gcd",
["action"] = "concentrated_flame",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up",
["action"] = "the_unbound_force",
}, -- [17]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "target.health.pct > 80 || target.health.pct <= 20 || target.time_to_pct_20 > 30",
["action"] = "reaping_flames",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & refreshable & buff.vipers_venom.up & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "serpent_sting",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "mongoose_bite",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "essence.memory_of_lucid_dreams.major & full_recharge_time < 1.5 * gcd & focus < action.mongoose_bite.cost & ! cooldown.memory_of_lucid_dreams.remains",
["action"] = "wildfire_bomb",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "focus < action.mongoose_bite.cost & buff.coordinated_assault.up",
["action"] = "memory_of_lucid_dreams",
}, -- [23]
},
["apwfi"] = {
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "mongoose_bite",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.blur_of_talons.up & buff.blur_of_talons.remains < gcd",
["action"] = "raptor_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! dot.serpent_sting.ticking",
["action"] = "serpent_sting",
}, -- [3]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd || focus + cast_regen < focus.max & ( next_wi_bomb.volatile & dot.serpent_sting.ticking & dot.serpent_sting.refreshable || next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 3 )",
["action"] = "wildfire_bomb",
}, -- [5]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.remains & next_wi_bomb.pheromone",
["action"] = "mongoose_bite",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < 1.5 * gcd & focus + cast_regen < focus.max - 20",
["action"] = "kill_command",
["target_if"] = "",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack = 3 || dot.shrapnel_bomb.ticking",
["action"] = "raptor_strike",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.shrapnel & focus > 30 & dot.serpent_sting.remains > 5 * gcd",
["action"] = "wildfire_bomb",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! buff.mongoose_fury.remains",
["action"] = "chakrams",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "serpent_sting",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( buff.mongoose_fury.stack < 5 || focus < action.mongoose_bite.cost )",
["action"] = "kill_command",
["target_if"] = "",
}, -- [15]
{
["action"] = "raptor_strike",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["criteria"] = "buff.mongoose_fury.up || focus > 40 || dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.volatile & dot.serpent_sting.ticking || next_wi_bomb.pheromone || next_wi_bomb.shrapnel & focus > 50",
["action"] = "wildfire_bomb",
}, -- [18]
},
["utility"] = {
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [1]
{
["action"] = "serenity_dust",
["enabled"] = true,
}, -- [2]
{
["action"] = "spore_cloud",
["enabled"] = true,
}, -- [3]
{
["action"] = "soothing_water",
["enabled"] = true,
}, -- [4]
{
["action"] = "sonic_blast",
["enabled"] = true,
}, -- [5]
{
["action"] = "nether_shock",
["enabled"] = true,
}, -- [6]
{
["action"] = "chijis_tranquility",
["enabled"] = true,
}, -- [7]
{
["action"] = "spirit_shock",
["enabled"] = true,
}, -- [8]
{
["action"] = "natures_grace",
["enabled"] = true,
}, -- [9]
},
},
["version"] = 20200525,
["warnings"] = "WARNING: The import for 'cleave' required some automated changes.\nLine 3: Removed min:X check (not available in emulation) (1x).\nLine 9: Removed max:X check (not available in emulation) (1x).\n\nWARNING: The import for 'apwfi' required some automated changes.\nLine 8: Removed min:X check (not available in emulation) (1x).\nLine 15: Removed min:X check (not available in emulation) (1x).\n\nImported 9 action lists.\n",
["spec"] = 255,
["profile"] = "# Survival Hunter\n# https://github.com/simulationcraft/simc/\n# May 25, 2020\n\n# Changes:\n# - Added Muzzle to default action list.\n# - Changed target_if expressions to cycle_targets.\n# - Modified carve_cdr to work more easily with the addon's implementation of variable.\n# - Added utility APL.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/augmentation\n# actions.precombat+=/food\nactions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/use_item,effect_name=cyclotronic_blast,if=!raid_event.invulnerable.exists\nactions.precombat+=/guardian_of_azeroth\nactions.precombat+=/coordinated_assault\nactions.precombat+=/worldvein_resonance\nactions.precombat+=/potion,dynamic_prepot=1\nactions.precombat+=/steel_trap\nactions.precombat+=/harpoon\n\nactions.utility=muzzle\nactions.utility+=/serenity_dust\nactions.utility+=/spore_cloud\nactions.utility+=/soothing_water\nactions.utility+=/sonic_blast\nactions.utility+=/nether_shock\nactions.utility+=/chijis_tranquility\nactions.utility+=/spirit_shock\nactions.utility+=/natures_grace\n\n# Executed every time the actor is available.\nactions=call_action_list,name=utility,if=debuff.casting.up||buff.dispellable_magic.up||buff.dispellable_enrage.up\nactions+=/use_items\nactions+=/call_action_list,name=cds\nactions+=/mongoose_bite,if=active_enemies=1&target.time_to_die<focus%(action.mongoose_bite.cost-cast_regen)*gcd\nactions+=/call_action_list,name=apwfi,if=active_enemies<3&talent.chakrams.enabled&talent.alpha_predator.enabled\nactions+=/call_action_list,name=wfi,if=active_enemies<3&talent.chakrams.enabled\nactions+=/call_action_list,name=st,if=active_enemies<3&!talent.alpha_predator.enabled&!talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=apst,if=active_enemies<3&talent.alpha_predator.enabled&!talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=apwfi,if=active_enemies<3&talent.alpha_predator.enabled&talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=wfi,if=active_enemies<3&!talent.alpha_predator.enabled&talent.wildfire_infusion.enabled\nactions+=/call_action_list,name=cleave,if=active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2\nactions+=/concentrated_flame\nactions+=/arcane_torrent\nactions+=/bag_of_tricks\n\nactions.apst=mongoose_bite,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.apst+=/raptor_strike,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.apst+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.apst+=/kill_command,cycle_targets=1,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max\nactions.apst+=/steel_trap,if=focus+cast_regen<focus.max\nactions.apst+=/wildfire_bomb,if=focus+cast_regen<focus.max&!ticking&!buff.memory_of_lucid_dreams.up&(full_recharge_time<1.5*gcd||!dot.wildfire_bomb.ticking&!buff.coordinated_assault.up||!dot.wildfire_bomb.ticking&buff.mongoose_fury.stack<1)||time_to_die<18&!dot.wildfire_bomb.ticking\nactions.apst+=/serpent_sting,if=!dot.serpent_sting.ticking&!buff.coordinated_assault.up\nactions.apst+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&(buff.mongoose_fury.stack<5||focus<action.mongoose_bite.cost)\nactions.apst+=/serpent_sting,if=refreshable&!buff.coordinated_assault.up&buff.mongoose_fury.stack<5\nactions.apst+=/a_murder_of_crows,if=!buff.coordinated_assault.up\nactions.apst+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.apst+=/mongoose_bite,if=buff.mongoose_fury.up||focus+cast_regen>focus.max-10||buff.coordinated_assault.up\nactions.apst+=/raptor_strike\nactions.apst+=/wildfire_bomb,if=!ticking\n\nactions.apwfi=mongoose_bite,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.apwfi+=/raptor_strike,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.apwfi+=/serpent_sting,if=!dot.serpent_sting.ticking\nactions.apwfi+=/a_murder_of_crows\nactions.apwfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd||focus+cast_regen<focus.max&(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)\nactions.apwfi+=/coordinated_assault\nactions.apwfi+=/mongoose_bite,if=buff.mongoose_fury.remains&next_wi_bomb.pheromone\nactions.apwfi+=/kill_command,target_if=min:bloodseeker.remains,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max-20\nactions.apwfi+=/steel_trap,if=focus+cast_regen<focus.max\nactions.apwfi+=/raptor_strike,if=buff.tip_of_the_spear.stack=3||dot.shrapnel_bomb.ticking\nactions.apwfi+=/mongoose_bite,if=dot.shrapnel_bomb.ticking\nactions.apwfi+=/wildfire_bomb,if=next_wi_bomb.shrapnel&focus>30&dot.serpent_sting.remains>5*gcd\nactions.apwfi+=/chakrams,if=!buff.mongoose_fury.remains\nactions.apwfi+=/serpent_sting,if=refreshable\nactions.apwfi+=/kill_command,target_if=min:bloodseeker.remains,if=focus+cast_regen<focus.max&(buff.mongoose_fury.stack<5||focus<action.mongoose_bite.cost)\nactions.apwfi+=/raptor_strike\nactions.apwfi+=/mongoose_bite,if=buff.mongoose_fury.up||focus>40||dot.shrapnel_bomb.ticking\nactions.apwfi+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel&focus>50\n\nactions.cds=blood_fury,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/ancestral_call,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/fireblood,if=cooldown.coordinated_assault.remains>30\nactions.cds+=/lights_judgment\nactions.cds+=/berserking,if=cooldown.coordinated_assault.remains>60||time_to_die<13\nactions.cds+=/potion,if=buff.guardian_of_azeroth.up&(buff.berserking.up||buff.blood_fury.up||!race.troll)||(consumable.potion_of_unbridled_fury&time_to_die<61||time_to_die<26)||!essence.condensed_lifeforce.major&buff.coordinated_assault.up\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\nactions.cds+=/use_item,name=ashvanes_razor_coral,if=buff.memory_of_lucid_dreams.up&target.time_to_die<cooldown.memory_of_lucid_dreams.remains+15||buff.guardian_of_azeroth.stack=5&target.time_to_die<cooldown.guardian_of_azeroth.remains+20||debuff.razor_coral_debuff.down||target.time_to_die<21||buff.worldvein_resonance.remains&target.time_to_die<cooldown.worldvein_resonance.remains+18||!talent.birds_of_prey.enabled&target.time_to_die<cooldown.coordinated_assault.remains+20&buff.coordinated_assault.remains\nactions.cds+=/use_item,name=galecallers_boon,if=cooldown.memory_of_lucid_dreams.remains||talent.wildfire_infusion.enabled&cooldown.coordinated_assault.remains||!essence.memory_of_lucid_dreams.major&cooldown.coordinated_assault.remains\nactions.cds+=/use_item,name=azsharas_font_of_power\nactions.cds+=/focused_azerite_beam,if=raid_event.adds.in>90&focus<focus.max-25||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2)&(buff.blur_of_talons.up&buff.blur_of_talons.remains>3*gcd||!buff.blur_of_talons.up)\nactions.cds+=/blood_of_the_enemy,if=((raid_event.adds.remains>90||!raid_event.adds.exists)||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2))&focus<focus.max\nactions.cds+=/purifying_blast,if=((raid_event.adds.remains>60||!raid_event.adds.exists)||(active_enemies>1&!talent.birds_of_prey.enabled||active_enemies>2))&focus<focus.max\nactions.cds+=/guardian_of_azeroth\nactions.cds+=/ripple_in_space\nactions.cds+=/concentrated_flame,if=full_recharge_time<1*gcd\nactions.cds+=/the_unbound_force,if=buff.reckless_force.up\nactions.cds+=/worldvein_resonance\nactions.cds+=/reaping_flames,if=target.health.pct>80||target.health.pct<=20||target.time_to_pct_20>30\nactions.cds+=/serpent_sting,if=essence.memory_of_lucid_dreams.major&refreshable&buff.vipers_venom.up&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/mongoose_bite,if=essence.memory_of_lucid_dreams.major&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/wildfire_bomb,if=essence.memory_of_lucid_dreams.major&full_recharge_time<1.5*gcd&focus<action.mongoose_bite.cost&!cooldown.memory_of_lucid_dreams.remains\nactions.cds+=/memory_of_lucid_dreams,if=focus<action.mongoose_bite.cost&buff.coordinated_assault.up\n\nactions.cleave=variable,name=carve_cdr,op=setif,value=active_enemies,value_else=5,condition=active_enemies<5\nactions.cleave+=/mongoose_bite,if=azerite.blur_of_talons.rank>0&(buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd||buff.coordinated_assault.remains&!buff.blur_of_talons.remains))\nactions.cleave+=/mongoose_bite,target_if=min:time_to_die,if=debuff.latent_poison.stack>(active_enemies||9)&target.time_to_die<active_enemies*gcd\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/coordinated_assault\nactions.cleave+=/carve,if=dot.shrapnel_bomb.ticking&!talent.hydras_bite.enabled||dot.shrapnel_bomb.ticking&active_enemies>5\nactions.cleave+=/wildfire_bomb,if=!talent.guerrilla_tactics.enabled||full_recharge_time<gcd||raid_event.adds.remains<6&raid_event.adds.exists\nactions.cleave+=/butchery,if=charges_fractional>2.5||dot.shrapnel_bomb.ticking||cooldown.wildfire_bomb.remains>active_enemies-gcd||debuff.blood_of_the_enemy.remains||raid_event.adds.remains<5&raid_event.adds.exists\nactions.cleave+=/mongoose_bite,target_if=max:debuff.latent_poison.stack,if=debuff.latent_poison.stack>8\nactions.cleave+=/chakrams\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.cleave+=/harpoon,if=talent.terms_of_engagement.enabled\nactions.cleave+=/carve,if=talent.guerrilla_tactics.enabled\nactions.cleave+=/butchery,if=cooldown.wildfire_bomb.remains>(active_enemies||5)\nactions.cleave+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.cleave+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable||talent.wildfire_infusion.enabled\nactions.cleave+=/serpent_sting,cycle_targets=1,if=buff.vipers_venom.react\nactions.cleave+=/carve,if=cooldown.wildfire_bomb.remains>variable.carve_cdr%2\nactions.cleave+=/steel_trap\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable&buff.tip_of_the_spear.stack<3&next_wi_bomb.volatile||refreshable&azerite.latent_poison.rank>0\n# To simulate usage for Mongoose Bite or Raptor Strike during Aspect of the Eagle, copy each occurrence of the action and append _eagle to the action name.\nactions.cleave+=/mongoose_bite,cycle_targets=1\nactions.cleave+=/raptor_strike,cycle_targets=1\n\nactions.st=harpoon,if=talent.terms_of_engagement.enabled\nactions.st+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.st+=/raptor_strike,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\n# To simulate usage for Mongoose Bite or Raptor Strike during Aspect of the Eagle, copy each occurrence of the action and append _eagle to the action name.\nactions.st+=/mongoose_bite,if=buff.coordinated_assault.up&(buff.coordinated_assault.remains<1.5*gcd||buff.blur_of_talons.up&buff.blur_of_talons.remains<1.5*gcd)\nactions.st+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.st+=/serpent_sting,if=buff.vipers_venom.up&buff.vipers_venom.remains<1*gcd\nactions.st+=/steel_trap,if=focus+cast_regen<focus.max\nactions.st+=/wildfire_bomb,if=focus+cast_regen<focus.max&refreshable&full_recharge_time<gcd&!buff.memory_of_lucid_dreams.up||focus+cast_regen<focus.max&(!dot.wildfire_bomb.ticking&(!buff.coordinated_assault.up||buff.mongoose_fury.stack<1||time_to_die<18||!dot.wildfire_bomb.ticking&azerite.wilderness_survival.rank>0))&!buff.memory_of_lucid_dreams.up\nactions.st+=/serpent_sting,if=buff.vipers_venom.up&dot.serpent_sting.remains<4*gcd||dot.serpent_sting.refreshable&!buff.coordinated_assault.up\nactions.st+=/a_murder_of_crows,if=!buff.coordinated_assault.up\nactions.st+=/coordinated_assault,if=!buff.coordinated_assault.up\nactions.st+=/mongoose_bite,if=buff.mongoose_fury.up||focus+cast_regen>focus.max-20&talent.vipers_venom.enabled||focus+cast_regen>focus.max-1&talent.terms_of_engagement.enabled||buff.coordinated_assault.up\nactions.st+=/raptor_strike\nactions.st+=/wildfire_bomb,if=dot.wildfire_bomb.refreshable\nactions.st+=/serpent_sting,if=buff.vipers_venom.up\n\nactions.wfi=harpoon,if=focus+cast_regen<focus.max&talent.terms_of_engagement.enabled\nactions.wfi+=/mongoose_bite,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.wfi+=/raptor_strike,if=buff.blur_of_talons.up&buff.blur_of_talons.remains<gcd\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up&buff.vipers_venom.remains<1.5*gcd||!dot.serpent_sting.ticking\nactions.wfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd&focus+cast_regen<focus.max||(next_wi_bomb.volatile&dot.serpent_sting.ticking&dot.serpent_sting.refreshable||next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*3)\nactions.wfi+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max-focus.regen\nactions.wfi+=/a_murder_of_crows\nactions.wfi+=/steel_trap,if=focus+cast_regen<focus.max\nactions.wfi+=/wildfire_bomb,if=full_recharge_time<1.5*gcd\nactions.wfi+=/coordinated_assault\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up&dot.serpent_sting.remains<4*gcd\nactions.wfi+=/mongoose_bite,if=dot.shrapnel_bomb.ticking||buff.mongoose_fury.stack=5\nactions.wfi+=/wildfire_bomb,if=next_wi_bomb.shrapnel&dot.serpent_sting.remains>5*gcd\nactions.wfi+=/serpent_sting,if=refreshable\nactions.wfi+=/chakrams,if=!buff.mongoose_fury.remains\nactions.wfi+=/mongoose_bite\nactions.wfi+=/raptor_strike\nactions.wfi+=/serpent_sting,if=buff.vipers_venom.up\nactions.wfi+=/wildfire_bomb,if=next_wi_bomb.volatile&dot.serpent_sting.ticking||next_wi_bomb.pheromone||next_wi_bomb.shrapnel",
},
},
},
["Quillika - Thunderhorn"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["resetPotionsToDefaults_20190717"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetRogueMfDOption_20200226"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[103] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["brutal_charges"] = 2,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Feral",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "focused_resolve",
["potionsReset"] = 20180919.1,
["nameplates"] = true,
["damageExpiration"] = 3,
["buffPadding"] = 0,
["damageRange"] = 0,
},
[104] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["maul_rage"] = 20,
["ironfur_damage_threshold"] = 5,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Guardian",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "focused_resolve",
["potionsReset"] = 20180919.1,
["nameplates"] = true,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
[102] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["settings"] = {
["starlord_cancel"] = false,
},
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Balance",
["throttleTime"] = false,
["cycle"] = false,
["cycle_min"] = 6,
["nameplateRange"] = 8,
["potion"] = "unbridled_fury",
["potionsReset"] = 20180919.1,
["nameplates"] = false,
["damageExpiration"] = 6,
["buffPadding"] = 0,
["damageRange"] = 0,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Feral"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200222,
["spec"] = 103,
["desc"] = "# Feral Druid\n# https://github.com/simulationcraft/simc/\n# February 22, 2020\n\n# Changes:\n# - Added Skull Bash.\n# - Relaxed Tiger's Fury energy check to apply only when Tiger's Fury is already up.\n# - opener_done is handled internally by the addon; removed these variables. Only bother in boss fights.\n# - Convert target_if conditions to cycle_targets.\n# - Remove 'heart_essence' generic action.\n# - Add Balance Affinity priority.\n# - Reincorporate some of ShmooDude's edits.",
["profile"] = "# Feral Druid\n# https://github.com/simulationcraft/simc/\n# February 22, 2020\n\n# Changes:\n# - Added Skull Bash.\n# - Relaxed Tiger's Fury energy check to apply only when Tiger's Fury is already up.\n# - opener_done is handled internally by the addon; removed these variables. Only bother in boss fights.\n# - Convert target_if conditions to cycle_targets.\n# - Remove 'heart_essence' generic action.\n# - Add Balance Affinity priority.\n# - Reincorporate some of ShmooDude's edits.\n# - Don't use Brutal Slash w/ Wild Fleshrending if Thrash isn't up.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# It is worth it for almost everyone to maintain thrash\nactions.precombat+=/variable,name=use_thrash,value=0\nactions.precombat+=/variable,name=use_thrash,value=2,if=azerite.wild_fleshrending.enabled\nactions.precombat+=/variable,name=rip_ticks,value=8\nactions.precombat+=/regrowth,if=buff.moonkin_form.down&talent.bloodtalons.enabled\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/prowl,if=buff.moonkin_form.down\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/potion\nactions.precombat+=/berserk,if=buff.moonkin_form.down\nactions.precombat+=/tigers_fury,if=buff.moonkin_form.down&buff.tigers_fury.down\nactions.precombat+=/cat_form,if=buff.moonkin_form.down\n\n# Executed every time the actor is available.\nactions=skull_bash,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/run_action_list,name=balance,if=talent.balance_affinity.enabled&buff.moonkin_form.up\nactions+=/call_action_list,name=opener,if=!opener_done&talent.sabertooth.enabled&(buff.berserk.up||buff.incarnation.up)\nactions+=/cat_form,if=!buff.cat_form.up\nactions+=/rake,if=buff.prowl.up||buff.shadowmeld.up\nactions+=/call_action_list,name=cooldowns\nactions+=/ferocious_bite,cycle_targets=1,if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die>10&(talent.sabertooth.enabled)\nactions+=/ferocious_bite,cycle_targets=1,if=talent.sabertooth.enabled&combo_points>spell_targets.thrash_cat&dot.rip.ticking&dot.rip.remains<3&target.time_to_die>dot.rip.remains+variable.rip_ticks*action.rip.tick_time\n# actions+=/regrowth,if=combo_points=5&buff.predatory_swiftness.up&talent.bloodtalons.enabled&buff.bloodtalons.down\nactions+=/run_action_list,name=finishers,if=combo_points>4\nactions+=/call_action_list,name=generators_aoe,if=spell_targets.thrash_cat>1\nactions+=/run_action_list,name=generators\n\nactions.cooldowns=berserk,if=energy>=30&(cooldown.tigers_fury.remains>5||buff.tigers_fury.up)\nactions.cooldowns+=/tigers_fury,if=energy.deficit>=60||buff.tigers_fury.down\nactions.cooldowns+=/berserking\nactions.cooldowns+=/thorns,if=active_enemies>desired_targets||raid_event.adds.in>45\nactions.cooldowns+=/the_unbound_force,if=buff.reckless_force.up||buff.tigers_fury.up\nactions.cooldowns+=/memory_of_lucid_dreams,if=buff.tigers_fury.up&buff.berserk.down\nactions.cooldowns+=/blood_of_the_enemy,if=buff.tigers_fury.up\nactions.cooldowns+=/feral_frenzy,if=combo_points=0\nactions.cooldowns+=/focused_azerite_beam,if=active_enemies>desired_targets||(raid_event.adds.in>90&energy.deficit>=50)\nactions.cooldowns+=/purifying_blast,if=active_enemies>desired_targets||raid_event.adds.in>60\nactions.cooldowns+=/guardian_of_azeroth,if=buff.tigers_fury.up\nactions.cooldowns+=/concentrated_flame,if=buff.tigers_fury.up\nactions.cooldowns+=/ripple_in_space,if=buff.tigers_fury.up\nactions.cooldowns+=/worldvein_resonance,if=buff.tigers_fury.up\nactions.cooldowns+=/reaping_flames,if=target.time_to_die<1.5||((target.health.pct>80||target.health.pct<=20)&target.time_to_die>29)||(target.time_to_pct_20>30&target.time_to_die>44)\nactions.cooldowns+=/incarnation,if=energy>=30&(cooldown.tigers_fury.remains>15||buff.tigers_fury.up)\nactions.cooldowns+=/potion,if=target.time_to_die<65||(time_to_die<180&(buff.berserk.up||buff.incarnation.up))\nactions.cooldowns+=/shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.bloodtalons.up||!talent.bloodtalons.enabled)&(!talent.incarnation.enabled||cooldown.incarnation.remains>18)&!buff.incarnation.up\nactions.cooldowns+=/use_item,name=ashvanes_razor_coral,if=debuff.razor_coral_debuff.down||debuff.conductive_ink_debuff.up&target.time_to_pct_30<1.5||!debuff.conductive_ink_debuff.up&(debuff.razor_coral_debuff.stack>=25-10*debuff.blood_of_the_enemy.up||time_to_die<40)&buff.tigers_fury.remains>10\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast,if=(energy.deficit>=energy.regen*3)&buff.tigers_fury.down&!azerite.jungle_fury.enabled\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast,if=buff.tigers_fury.up&azerite.jungle_fury.enabled\nactions.cooldowns+=/use_item,effect_name=azsharas_font_of_power,if=energy.deficit>=50\nactions.cooldowns+=/use_items,if=buff.tigers_fury.up||time_to_die<20\n\nactions.finishers=regrowth,if=buff.predatory_swiftness.up&talent.bloodtalons.enabled&buff.bloodtalons.stack<2\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/savage_roar,if=buff.savage_roar.down\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/primal_wrath,cycle_targets=1,if=spell_targets.primal_wrath>1&dot.rip.remains<4\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/primal_wrath,cycle_targets=1,if=spell_targets.primal_wrath>=2\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/rip,cycle_targets=1,if=!talent.sabertooth.enabled&refreshable&target.time_to_die>dot.rip.remains+variable.rip_ticks*action.rip.tick_time\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/rip,cycle_targets=1,if=talent.sabertooth.enabled&(!ticking||remains<=duration*0.3&persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die>dot.rip.remains+variable.rip_ticks*(1+dot.rip.ticking*3)*action.rip.tick_time\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/savage_roar,if=buff.savage_roar.remains<12\nactions.finishers+=/pool_resource,for_next=1\nactions.finishers+=/maim,if=buff.iron_jaws.up\nactions.finishers+=/ferocious_bite,max_energy=1,cycle_targets=1\n\nactions.generators=regrowth,if=talent.bloodtalons.enabled&buff.predatory_swiftness.up&buff.bloodtalons.down&combo_points=4&dot.rake.remains<4\nactions.generators+=/regrowth,if=talent.bloodtalons.enabled&buff.bloodtalons.down&buff.predatory_swiftness.up&talent.lunar_inspiration.enabled&dot.rake.remains<1\nactions.generators+=/brutal_slash,if=spell_targets.brutal_slash>desired_targets&(!azerite.wild_fleshrending.enabled||dot.thrash_cat.ticking)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/thrash_cat,if=(refreshable&spell_targets.thrash_cat>2)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/thrash_cat,if=(talent.scent_of_blood.enabled&buff.scent_of_blood.down)&spell_targets.thrash_cat>3\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/swipe_cat,if=buff.scent_of_blood.up||(action.swipe_cat.damage*spell_targets.swipe_cat>(action.rake.damage+(action.rake_bleed.tick_damage*5)))\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/rake,cycle_targets=1,if=!ticking||(!talent.bloodtalons.enabled&remains<duration*0.3)&target.time_to_die>4\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/rake,cycle_targets=1,if=talent.bloodtalons.enabled&buff.bloodtalons.up&((remains<=7)&persistent_multiplier>dot.rake.pmultiplier*0.85)&target.time_to_die>4\n# With LI & BT, we can use moonfire to save BT charges, allowing us to better refresh rake\nactions.generators+=/moonfire_cat,if=buff.bloodtalons.up&buff.predatory_swiftness.down&combo_points<5\nactions.generators+=/moonfire_cat,cycle_targets=1,if=refreshable\nactions.generators+=/brutal_slash,if=(!azerite.wild_fleshrending.enabled||dot.thrash_cat.ticking)&buff.tigers_fury.up&(raid_event.adds.in>(1+max_charges-charges_fractional)*recharge_time)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/thrash_cat,if=refreshable&((variable.use_thrash=2&(!buff.incarnation.up||azerite.wild_fleshrending.enabled))||spell_targets.thrash_cat>1)\n# actions.generators+=/thrash_cat,if=refreshable&variable.use_thrash=1&buff.clearcasting.react&(!buff.incarnation.up||azerite.wild_fleshrending.enabled)\nactions.generators+=/pool_resource,for_next=1\nactions.generators+=/swipe_cat,if=spell_targets.swipe_cat>1\nactions.generators+=/shred,if=dot.rake.remains>(action.shred.cost+action.rake.cost-energy)%energy.regen||buff.clearcasting.react\n\nactions.generators_aoe=pool_resource,for_next=1\nactions.generators_aoe+=/thrash_cat,if=(refreshable||active_dot.thrash_cat<active_enemies%2)&spell_targets.thrash_cat>2||talent.scent_of_blood.enabled&buff.scent_of_blood.down&spell_targets.thrash_cat>3||!ticking&azerite.wild_fleshrending.enabled\nactions.generators_aoe+=/pool_resource,for_next=1\nactions.generators_aoe+=/brutal_slash,if=spell_targets.brutal_slash>desired_targets\nactions.generators_aoe+=/pool_resource,for_next=1\nactions.generators_aoe+=/swipe_cat,if=buff.scent_of_blood.up\n\n# The opener generally follow the logic of the rest of the apl, but is separated out here for logical clarity\n# We will open with TF, you can safely cast this from stealth without breaking it.\nactions.opener=tigers_fury\n# Always open with rake, consuming stealth and one BT charge (if talented)\nactions.opener+=/rake,if=!ticking||buff.prowl.up\n# Lets make sure we end the opener \"sequence\" when our first rip is ticking\n# actions.opener+=/variable,name=opener_done,value=dot.rip.ticking\n# Break out of the action list\n# actions.opener+=/wait,sec=0.001,if=dot.rip.ticking\n# If we have LI, and haven't applied it yet use moonfire.\nactions.opener+=/moonfire_cat,if=!ticking\n# no need to wait for 5 CPs anymore, just rip and we are up and running\nactions.opener+=/primal_wrath,if=active_enemies>1&(buff.tigers_fury.up&(buff.bloodtalons.up||!talent.bloodtalons.enabled)&(!talent.lunar_inspiration.enabled||dot.moonfire_cat.ticking)&!ticking)\nactions.opener+=/rip,if=active_enemies=1&(buff.tigers_fury.up&(buff.bloodtalons.up||!talent.bloodtalons.enabled)&dot.rake.ticking&(!talent.lunar_inspiration.enabled||dot.moonfire_cat.ticking)&!ticking)\n\nactions.balance=sunfire,if=refreshable||(active_enemies>1&(dot.sunfire.refreshable||active_dot.sunfire<active_enemies))\nactions.balance+=/lunar_strike,if=active_enemies>4||(active_enemies>1&buff.lunar_empowerment.up)\nactions.balance+=/solar_wrath,if=active_enemies>2&buff.solar_empowerment.up\nactions.balance+=/starsurge\nactions.balance+=/solar_wrath,if=buff.solar_empowerment.up\nactions.balance+=/lunar_strike,if=buff.lunar_empowerment.up\nactions.balance+=/solar_wrath",
["version"] = 20200222,
["warnings"] = "Imported 8 action lists.\n",
["author"] = "SimC",
["lists"] = {
["opener"] = {
{
["action"] = "tigers_fury",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "! ticking || buff.prowl.up",
["action"] = "rake",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "moonfire_cat",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ( buff.tigers_fury.up & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & ( ! talent.lunar_inspiration.enabled || dot.moonfire_cat.ticking ) & ! ticking )",
["action"] = "primal_wrath",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( buff.tigers_fury.up & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & dot.rake.ticking & ( ! talent.lunar_inspiration.enabled || dot.moonfire_cat.ticking ) & ! ticking )",
["action"] = "rip",
}, -- [5]
},
["generators_aoe"] = {
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( refreshable || active_dot.thrash_cat < active_enemies % 2 ) & spell_targets.thrash_cat > 2 || talent.scent_of_blood.enabled & buff.scent_of_blood.down & spell_targets.thrash_cat > 3 || ! ticking & azerite.wild_fleshrending.enabled",
["action"] = "thrash_cat",
}, -- [2]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "spell_targets.brutal_slash > desired_targets",
["action"] = "brutal_slash",
}, -- [4]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.scent_of_blood.up",
["action"] = "swipe_cat",
}, -- [6]
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "skull_bash",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.balance_affinity.enabled & buff.moonkin_form.up",
["action"] = "run_action_list",
["list_name"] = "balance",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! opener_done & talent.sabertooth.enabled & ( buff.berserk.up || buff.incarnation.up )",
["action"] = "call_action_list",
["list_name"] = "opener",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.prowl.up || buff.shadowmeld.up",
["action"] = "rake",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [6]
{
["enabled"] = true,
["action"] = "ferocious_bite",
["criteria"] = "dot.rip.ticking & dot.rip.remains < 3 & target.time_to_die > 10 & ( talent.sabertooth.enabled )",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["action"] = "ferocious_bite",
["criteria"] = "talent.sabertooth.enabled & combo_points > spell_targets.thrash_cat & dot.rip.ticking & dot.rip.remains < 3 & target.time_to_die > dot.rip.remains + variable.rip_ticks * action.rip.tick_time",
["cycle_targets"] = 1,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "combo_points > 4",
["action"] = "run_action_list",
["list_name"] = "finishers",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "spell_targets.thrash_cat > 1",
["action"] = "call_action_list",
["list_name"] = "generators_aoe",
}, -- [10]
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "generators",
}, -- [11]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "use_thrash",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["criteria"] = "azerite.wild_fleshrending.enabled",
["var_name"] = "use_thrash",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "8",
["var_name"] = "rip_ticks",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down & talent.bloodtalons.enabled",
["action"] = "regrowth",
}, -- [4]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "prowl",
}, -- [6]
{
["action"] = "potion",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "berserk",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down & buff.tigers_fury.down",
["action"] = "tigers_fury",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.moonkin_form.down",
["action"] = "cat_form",
}, -- [10]
},
["generators"] = {
{
["enabled"] = true,
["criteria"] = "talent.bloodtalons.enabled & buff.predatory_swiftness.up & buff.bloodtalons.down & combo_points = 4 & dot.rake.remains < 4",
["action"] = "regrowth",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.down & buff.predatory_swiftness.up & talent.lunar_inspiration.enabled & dot.rake.remains < 1",
["action"] = "regrowth",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "spell_targets.brutal_slash > desired_targets & ( ! azerite.wild_fleshrending.enabled || dot.thrash_cat.ticking )",
["action"] = "brutal_slash",
}, -- [3]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( refreshable & spell_targets.thrash_cat > 2 )",
["action"] = "thrash_cat",
}, -- [5]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( talent.scent_of_blood.enabled & buff.scent_of_blood.down ) & spell_targets.thrash_cat > 3",
["action"] = "thrash_cat",
}, -- [7]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.scent_of_blood.up || ( action.swipe_cat.damage * spell_targets.swipe_cat > ( action.rake.damage + ( action.rake_bleed.tick_damage * 5 ) ) )",
["action"] = "swipe_cat",
}, -- [9]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [10]
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "! ticking || ( ! talent.bloodtalons.enabled & remains < duration * 0.3 ) & target.time_to_die > 4",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [12]
{
["enabled"] = true,
["action"] = "rake",
["criteria"] = "talent.bloodtalons.enabled & buff.bloodtalons.up & ( ( remains <= 7 ) & persistent_multiplier > dot.rake.pmultiplier * 0.85 ) & target.time_to_die > 4",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.bloodtalons.up & buff.predatory_swiftness.down & combo_points < 5",
["action"] = "moonfire_cat",
}, -- [14]
{
["enabled"] = true,
["action"] = "moonfire_cat",
["criteria"] = "refreshable",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "( ! azerite.wild_fleshrending.enabled || dot.thrash_cat.ticking ) & buff.tigers_fury.up & ( raid_event.adds.in > ( 1 + max_charges - charges_fractional ) * recharge_time )",
["action"] = "brutal_slash",
}, -- [16]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "refreshable & ( ( variable.use_thrash = 2 & ( ! buff.incarnation.up || azerite.wild_fleshrending.enabled ) ) || spell_targets.thrash_cat > 1 )",
["action"] = "thrash_cat",
}, -- [18]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "spell_targets.swipe_cat > 1",
["action"] = "swipe_cat",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "dot.rake.remains > ( action.shred.cost + action.rake.cost - energy ) % energy.regen || buff.clearcasting.react",
["action"] = "shred",
}, -- [21]
},
["finishers"] = {
{
["enabled"] = true,
["criteria"] = "buff.predatory_swiftness.up & talent.bloodtalons.enabled & buff.bloodtalons.stack < 2",
["action"] = "regrowth",
}, -- [1]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.savage_roar.down",
["action"] = "savage_roar",
}, -- [3]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [4]
{
["enabled"] = true,
["action"] = "primal_wrath",
["criteria"] = "spell_targets.primal_wrath > 1 & dot.rip.remains < 4",
["cycle_targets"] = 1,
}, -- [5]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [6]
{
["enabled"] = true,
["action"] = "primal_wrath",
["criteria"] = "spell_targets.primal_wrath >= 2",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [8]
{
["enabled"] = true,
["action"] = "rip",
["criteria"] = "! talent.sabertooth.enabled & refreshable & target.time_to_die > dot.rip.remains + variable.rip_ticks * action.rip.tick_time",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [10]
{
["enabled"] = true,
["action"] = "rip",
["criteria"] = "talent.sabertooth.enabled & ( ! ticking || remains <= duration * 0.3 & persistent_multiplier > dot.rip.pmultiplier ) & target.time_to_die > dot.rip.remains + variable.rip_ticks * ( 1 + dot.rip.ticking * 3 ) * action.rip.tick_time",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.savage_roar.remains < 12",
["action"] = "savage_roar",
}, -- [13]
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.iron_jaws.up",
["action"] = "maim",
}, -- [15]
{
["max_energy"] = "1",
["enabled"] = true,
["action"] = "ferocious_bite",
["cycle_targets"] = 1,
}, -- [16]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "energy >= 30 & ( cooldown.tigers_fury.remains > 5 || buff.tigers_fury.up )",
["action"] = "berserk",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 60 || buff.tigers_fury.down",
["action"] = "tigers_fury",
}, -- [2]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 45",
["action"] = "thorns",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up || buff.tigers_fury.up",
["action"] = "the_unbound_force",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up & buff.berserk.down",
["action"] = "memory_of_lucid_dreams",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "blood_of_the_enemy",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "combo_points = 0",
["action"] = "feral_frenzy",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || ( raid_event.adds.in > 90 & energy.deficit >= 50 )",
["action"] = "focused_azerite_beam",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "guardian_of_azeroth",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "concentrated_flame",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "ripple_in_space",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up",
["action"] = "worldvein_resonance",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "target.time_to_die < 1.5 || ( ( target.health.pct > 80 || target.health.pct <= 20 ) & target.time_to_die > 29 ) || ( target.time_to_pct_20 > 30 & target.time_to_die > 44 )",
["action"] = "reaping_flames",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "energy >= 30 & ( cooldown.tigers_fury.remains > 15 || buff.tigers_fury.up )",
["action"] = "incarnation",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "target.time_to_die < 65 || ( time_to_die < 180 & ( buff.berserk.up || buff.incarnation.up ) )",
["action"] = "potion",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "combo_points < 5 & energy >= action.rake.cost & dot.rake.pmultiplier < 2.1 & buff.tigers_fury.up & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & ( ! talent.incarnation.enabled || cooldown.incarnation.remains > 18 ) & ! buff.incarnation.up",
["action"] = "shadowmeld",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "debuff.razor_coral_debuff.down || debuff.conductive_ink_debuff.up & target.time_to_pct_30 < 1.5 || ! debuff.conductive_ink_debuff.up & ( debuff.razor_coral_debuff.stack >= 25 - 10 * debuff.blood_of_the_enemy.up || time_to_die < 40 ) & buff.tigers_fury.remains > 10",
["name"] = "ashvanes_razor_coral",
["action"] = "ashvanes_razor_coral",
}, -- [19]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "( energy.deficit >= energy.regen * 3 ) & buff.tigers_fury.down & ! azerite.jungle_fury.enabled",
["effect_name"] = "cyclotronic_blast",
}, -- [20]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "buff.tigers_fury.up & azerite.jungle_fury.enabled",
["effect_name"] = "cyclotronic_blast",
}, -- [21]
{
["enabled"] = true,
["action"] = "azsharas_font_of_power",
["criteria"] = "energy.deficit >= 50",
["effect_name"] = "azsharas_font_of_power",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up || time_to_die < 20",
["action"] = "use_items",
}, -- [23]
},
["balance"] = {
{
["enabled"] = true,
["criteria"] = "refreshable || ( active_enemies > 1 & ( dot.sunfire.refreshable || active_dot.sunfire < active_enemies ) )",
["action"] = "sunfire",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "active_enemies > 4 || ( active_enemies > 1 & buff.lunar_empowerment.up )",
["action"] = "lunar_strike",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & buff.solar_empowerment.up",
["action"] = "solar_wrath",
}, -- [3]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.solar_empowerment.up",
["action"] = "solar_wrath",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.lunar_empowerment.up",
["action"] = "lunar_strike",
}, -- [6]
{
["action"] = "solar_wrath",
["enabled"] = true,
}, -- [7]
},
},
},
["Balance"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20190920,
["author"] = "SimC",
["desc"] = "# Balance Druid\n# https://github.com/simulationcraft/simc/\n# September 20, 2019\n\n# Changes:\n# - Added Solar Beam.\n# - Changed target_if cases to cycle_targets.\n# - Simplify Azerite trait lookups (don't use unnecessary variable syntax).\n# - Removed Lively Spirit condition for Celestial Alignment; you'll have it or you won't since Innervate is higher priority.",
["lists"] = {
["default"] = {
{
["action"] = "solar_beam",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up",
["action"] = "berserking",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ! talent.starlord.enabled || buff.starlord.up ) & ! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["action"] = "guardian_of_azeroth",
}, -- [4]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["criteria"] = "! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["effect_name"] = "cyclotronic_blast",
}, -- [5]
{
["enabled"] = true,
["name"] = "shiver_venom_relic",
["action"] = "shiver_venom_relic",
["criteria"] = "! buff.ca_inc.up & ! buff.bloodlust.up",
["target_if"] = "dot.shiver_venom.stack >= 5",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "cooldown.ca_inc.remains > 30",
["action"] = "blood_of_the_enemy",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & ( astral_power < 25 || cooldown.ca_inc.remains > 30 ) & dot.sunfire.remains > 10 & dot.moonfire.remains > 10 & ( ! talent.stellar_flare.enabled || dot.stellar_flare.remains > 10 )",
["action"] = "memory_of_lucid_dreams",
}, -- [8]
{
["action"] = "purifying_blast",
["enabled"] = true,
}, -- [9]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [10]
{
["action"] = "concentrated_flame",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.reckless_force.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["action"] = "the_unbound_force",
}, -- [12]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( ! variable.az_ss || ! buff.ca_inc.up ) & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )",
["action"] = "focused_azerite_beam",
}, -- [14]
{
["action"] = "thorns",
["enabled"] = true,
}, -- [15]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [16]
{
["action"] = "warrior_of_elune",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & ( buff.memory_of_lucid_dreams.up || ( ( cooldown.memory_of_lucid_dreams.remains > 20 || ! essence.memory_of_lucid_dreams.major ) & ap_check ) ) & ( buff.memory_of_lucid_dreams.up || ap_check ) & dot.sunfire.remains > 8 & dot.moonfire.remains > 12 & ( dot.stellar_flare.remains > 6 || ! talent.stellar_flare.enabled )",
["action"] = "incarnation",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! buff.ca_inc.up & ( buff.memory_of_lucid_dreams.up || ( ( cooldown.memory_of_lucid_dreams.remains > 20 || ! essence.memory_of_lucid_dreams.major ) & ap_check ) ) & ( dot.sunfire.remains > 2 & dot.moonfire.ticking & ( dot.stellar_flare.ticking || ! talent.stellar_flare.enabled ) )",
["action"] = "celestial_alignment",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "( buff.ca_inc.up || cooldown.ca_inc.remains > 30 ) & solar_wrath.ap_check",
["action"] = "fury_of_elune",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( buff.ca_inc.up || cooldown.ca_inc.remains > 30 ) & ap_check",
["action"] = "force_of_nature",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.starlord.remains < 3 & ! solar_wrath.ap_check",
["action"] = "cancel_buff",
["buff_name"] = "starlord",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "( buff.starlord.stack < 3 || buff.starlord.remains >= 8 ) & spell_targets >= variable.sf_targets & ( target.time_to_die + 1 ) * spell_targets > cost % 2.5",
["action"] = "starfall",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "( talent.starlord.enabled & ( buff.starlord.stack < 3 || buff.starlord.remains >= 5 & buff.arcanic_pulsar.stack < 8 ) || ! talent.starlord.enabled & ( buff.arcanic_pulsar.stack < 8 || buff.ca_inc.up ) ) & spell_targets.starfall < variable.sf_targets & buff.lunar_empowerment.stack + buff.solar_empowerment.stack < 4 & buff.solar_empowerment.stack < 3 & buff.lunar_empowerment.stack < 3 & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.starsurge ) || target.time_to_die <= execute_time * astral_power % 40 || ! solar_wrath.ap_check",
["action"] = "starsurge",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up & buff.ca_inc.remains < gcd.max & azerite.streaking_stars.rank & dot.moonfire.remains > remains",
["action"] = "sunfire",
}, -- [25]
{
["enabled"] = true,
["criteria"] = "buff.ca_inc.up & buff.ca_inc.remains < gcd.max & azerite.streaking_stars.rank",
["action"] = "moonfire",
}, -- [26]
{
["enabled"] = true,
["action"] = "sunfire",
["criteria"] = "refreshable & ap_check & floor ( target.time_to_die % ( 2 * spell_haste ) ) * spell_targets >= ceil ( floor ( 2 % spell_targets ) * 1.5 ) + 2 * spell_targets & ( spell_targets > 1 + talent.twin_moons.enabled || dot.moonfire.ticking ) & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.sunfire ) & ( buff.ca_inc.remains > remains || ! buff.ca_inc.up )",
["cycle_targets"] = 1,
}, -- [27]
{
["enabled"] = true,
["action"] = "moonfire",
["criteria"] = "refreshable & ap_check & floor ( target.time_to_die % ( 2 * spell_haste ) ) * spell_targets >= 6 & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.moonfire ) & ( buff.ca_inc.remains > remains || ! buff.ca_inc.up )",
["cycle_targets"] = 1,
}, -- [28]
{
["enabled"] = true,
["action"] = "stellar_flare",
["criteria"] = "refreshable & ap_check & floor ( target.time_to_die % ( 2 * spell_haste ) ) >= 5 & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up || ! prev.stellar_flare )",
["cycle_targets"] = 1,
}, -- [29]
{
["enabled"] = true,
["criteria"] = "ap_check",
["action"] = "new_moon",
}, -- [30]
{
["enabled"] = true,
["criteria"] = "ap_check",
["action"] = "half_moon",
}, -- [31]
{
["enabled"] = true,
["criteria"] = "ap_check",
["action"] = "full_moon",
}, -- [32]
{
["enabled"] = true,
["criteria"] = "buff.solar_empowerment.stack < 3 & ( ap_check || buff.lunar_empowerment.stack = 3 ) & ( ( buff.warrior_of_elune.up || buff.lunar_empowerment.up || spell_targets >= 2 & ! buff.solar_empowerment.up ) & ( ! azerite.streaking_stars.rank || ! buff.ca_inc.up ) || azerite.streaking_stars.rank & buff.ca_inc.up & prev.solar_wrath )",
["action"] = "lunar_strike",
}, -- [33]
{
["enabled"] = true,
["criteria"] = "azerite.streaking_stars.rank < 3 || ! buff.ca_inc.up || ! prev.solar_wrath",
["action"] = "solar_wrath",
}, -- [34]
{
["action"] = "sunfire",
["enabled"] = true,
}, -- [35]
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "4",
["var_name"] = "sf_targets",
}, -- [1]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "azerite.arcanic_pulsar.enabled",
["var_name"] = "sf_targets",
}, -- [2]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "talent.starlord.enabled",
["var_name"] = "sf_targets",
}, -- [3]
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "azerite.streaking_stars.rank > 2 & azerite.arcanic_pulsar.enabled",
["var_name"] = "sf_targets",
}, -- [4]
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["criteria"] = "! talent.twin_moons.enabled",
["var_name"] = "sf_targets",
}, -- [5]
{
["action"] = "moonkin_form",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [7]
{
["enabled"] = true,
["action"] = "potion",
["dynamic_prepot"] = "1",
}, -- [8]
{
["action"] = "solar_wrath",
["enabled"] = true,
}, -- [9]
{
["action"] = "starsurge",
["enabled"] = true,
}, -- [10]
},
},
["version"] = 20190920,
["warnings"] = "Imported 2 action lists.\n",
["profile"] = "# Balance Druid\n# https://github.com/simulationcraft/simc/\n# September 20, 2019\n\n# Changes:\n# - Added Solar Beam.\n# - Changed target_if cases to cycle_targets.\n# - Simplify Azerite trait lookups (don't use unnecessary variable syntax).\n# - Removed Lively Spirit condition for Celestial Alignment; you'll have it or you won't since Innervate is higher priority.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n\n# Azerite variables\n# actions.precombat+=/variable,name=az_ss,value=azerite.streaking_stars.rank\n# actions.precombat+=/variable,name=az_ap,value=azerite.arcanic_pulsar.rank\n\n# Starfall v Starsurge target cutoff\nactions.precombat=variable,name=sf_targets,value=4\nactions.precombat+=/variable,name=sf_targets,op=add,value=1,if=azerite.arcanic_pulsar.enabled\nactions.precombat+=/variable,name=sf_targets,op=add,value=1,if=talent.starlord.enabled\nactions.precombat+=/variable,name=sf_targets,op=add,value=1,if=azerite.streaking_stars.rank>2&azerite.arcanic_pulsar.enabled\nactions.precombat+=/variable,name=sf_targets,op=sub,value=1,if=!talent.twin_moons.enabled\nactions.precombat+=/moonkin_form\n\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/potion,dynamic_prepot=1\nactions.precombat+=/solar_wrath\nactions.precombat+=/starsurge\n\n# Executed every time the actor is available.\nactions=solar_beam\n# CDs\nactions+=/berserking,if=buff.ca_inc.up\nactions+=/use_item,name=azsharas_font_of_power,if=!buff.ca_inc.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/guardian_of_azeroth,if=(!talent.starlord.enabled||buff.starlord.up)&!buff.ca_inc.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/use_item,effect_name=cyclotronic_blast,if=!buff.ca_inc.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/use_item,name=shiver_venom_relic,if=!buff.ca_inc.up&!buff.bloodlust.up,target_if=dot.shiver_venom.stack>=5\nactions+=/blood_of_the_enemy,if=cooldown.ca_inc.remains>30\nactions+=/memory_of_lucid_dreams,if=!buff.ca_inc.up&(astral_power<25||cooldown.ca_inc.remains>30)&dot.sunfire.remains>10&dot.moonfire.remains>10&(!talent.stellar_flare.enabled||dot.stellar_flare.remains>10)\nactions+=/purifying_blast\nactions+=/ripple_in_space\nactions+=/concentrated_flame\nactions+=/the_unbound_force,if=buff.reckless_force.up&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/worldvein_resonance\nactions+=/focused_azerite_beam,if=(!variable.az_ss||!buff.ca_inc.up)&dot.moonfire.ticking&dot.sunfire.ticking&(!talent.stellar_flare.enabled||dot.stellar_flare.ticking)\nactions+=/thorns\nactions+=/use_items\nactions+=/warrior_of_elune\n# actions+=/innervate,if=azerite.lively_spirit.enabled&(cooldown.incarnation.remains<2||cooldown.celestial_alignment.remains<12)\nactions+=/incarnation,if=!buff.ca_inc.up&(buff.memory_of_lucid_dreams.up||((cooldown.memory_of_lucid_dreams.remains>20||!essence.memory_of_lucid_dreams.major)&ap_check))&(buff.memory_of_lucid_dreams.up||ap_check)&dot.sunfire.remains>8&dot.moonfire.remains>12&(dot.stellar_flare.remains>6||!talent.stellar_flare.enabled)\nactions+=/celestial_alignment,if=!buff.ca_inc.up&(buff.memory_of_lucid_dreams.up||((cooldown.memory_of_lucid_dreams.remains>20||!essence.memory_of_lucid_dreams.major)&ap_check))&(dot.sunfire.remains>2&dot.moonfire.ticking&(dot.stellar_flare.ticking||!talent.stellar_flare.enabled))\nactions+=/fury_of_elune,if=(buff.ca_inc.up||cooldown.ca_inc.remains>30)&solar_wrath.ap_check\nactions+=/force_of_nature,if=(buff.ca_inc.up||cooldown.ca_inc.remains>30)&ap_check\n\n# Spenders\nactions+=/cancel_buff,name=starlord,if=buff.starlord.remains<3&!solar_wrath.ap_check\nactions+=/starfall,if=(buff.starlord.stack<3||buff.starlord.remains>=8)&spell_targets>=variable.sf_targets&(target.time_to_die+1)*spell_targets>cost%2.5\nactions+=/starsurge,if=(talent.starlord.enabled&(buff.starlord.stack<3||buff.starlord.remains>=5&buff.arcanic_pulsar.stack<8)||!talent.starlord.enabled&(buff.arcanic_pulsar.stack<8||buff.ca_inc.up))&spell_targets.starfall<variable.sf_targets&buff.lunar_empowerment.stack+buff.solar_empowerment.stack<4&buff.solar_empowerment.stack<3&buff.lunar_empowerment.stack<3&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.starsurge)||target.time_to_die<=execute_time*astral_power%40||!solar_wrath.ap_check\nactions+=/sunfire,if=buff.ca_inc.up&buff.ca_inc.remains<gcd.max&azerite.streaking_stars.rank&dot.moonfire.remains>remains\nactions+=/moonfire,if=buff.ca_inc.up&buff.ca_inc.remains<gcd.max&azerite.streaking_stars.rank\n\n# DoTs\nactions+=/sunfire,cycle_targets=1,if=refreshable&ap_check&floor(target.time_to_die%(2*spell_haste))*spell_targets>=ceil(floor(2%spell_targets)*1.5)+2*spell_targets&(spell_targets>1+talent.twin_moons.enabled||dot.moonfire.ticking)&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.sunfire)&(buff.ca_inc.remains>remains||!buff.ca_inc.up)\nactions+=/moonfire,cycle_targets=1,if=refreshable&ap_check&floor(target.time_to_die%(2*spell_haste))*spell_targets>=6&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.moonfire)&(buff.ca_inc.remains>remains||!buff.ca_inc.up)\nactions+=/stellar_flare,cycle_targets=1,if=refreshable&ap_check&floor(target.time_to_die%(2*spell_haste))>=5&(!azerite.streaking_stars.rank||!buff.ca_inc.up||!prev.stellar_flare)\n\n# Generators\nactions+=/new_moon,if=ap_check\nactions+=/half_moon,if=ap_check\nactions+=/full_moon,if=ap_check\nactions+=/lunar_strike,if=buff.solar_empowerment.stack<3&(ap_check||buff.lunar_empowerment.stack=3)&((buff.warrior_of_elune.up||buff.lunar_empowerment.up||spell_targets>=2&!buff.solar_empowerment.up)&(!azerite.streaking_stars.rank||!buff.ca_inc.up)||azerite.streaking_stars.rank&buff.ca_inc.up&prev.solar_wrath)\nactions+=/solar_wrath,if=azerite.streaking_stars.rank<3||!buff.ca_inc.up||!prev.solar_wrath\n\n# Fallthru for movement\nactions+=/sunfire",
["spec"] = 102,
},
["Guardian"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20190818,
["author"] = "SimC",
["desc"] = "# Guardian Druid\n# https://github.com/simulationcraft/simc/\n# August 18, 2019 - 14:00\n\n# Changes:\n# - Added Mitigation abilities.\n# - Added Skull Bash.\n# - Added ironfur_damage_threshold option.",
["lists"] = {
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "incoming_damage_5s > ironfur_damage_threshold & buff.ironfur.remains < gcd * 2",
["action"] = "ironfur",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "health.current < 0.75 * health.max",
["action"] = "frenzied_regeneration",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "toggle.defensives & health.pct < 80",
["action"] = "anima_of_death",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "health.pct < 75 & incoming_damage_5s > 0.25 * health.max",
["action"] = "barkskin",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.survival_instincts.down & buff.barkskin.down & health.pct < 60 & incoming_damage_5s > 0.25 * health.max",
["action"] = "survival_instincts",
}, -- [5]
},
["cooldowns"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "blood_fury",
["enabled"] = true,
}, -- [2]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [3]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["action"] = "fireblood",
["enabled"] = true,
}, -- [6]
{
["action"] = "ancestral_call",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "lunar_beam",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "bristling_fur",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( dot.moonfire.ticking || active_enemies > 1 ) & dot.thrash_bear.ticking",
["action"] = "incarnation",
}, -- [10]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "toggle.cooldowns & ( time_to_die < action_cooldown % 2 || active_enemies > 1 )",
["action"] = "anima_of_death",
}, -- [12]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [13]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [14]
},
["default"] = {
{
["action"] = "skull_bash",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 20 & active_enemies < 4",
["action"] = "maul",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "rage.deficit < 20 & essence.conflict_and_strife.major & ! buff.sharpened_claws.up",
["action"] = "maul",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cost = 0 || ( rage > cost & azerite.layered_mane.enabled & active_enemies > 2 )",
["action"] = "ironfur",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "dot.thrash_bear.stack = dot.thrash_bear.max_stacks",
["action"] = "pulverize",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "dot.moonfire.refreshable & active_enemies < 2",
["action"] = "moonfire",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( buff.incarnation.down & active_enemies > 1 ) || ( buff.incarnation.up & active_enemies > 4 )",
["action"] = "thrash_bear",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "buff.incarnation.down & active_enemies > 4",
["action"] = "swipe_bear",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "dot.thrash_bear.ticking",
["action"] = "mangle",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "buff.galactic_guardian.up & active_enemies < 2",
["action"] = "moonfire",
}, -- [12]
{
["action"] = "thrash_bear",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "azerite.power_of_the_moon.rank > 1 & active_enemies = 1",
["action"] = "moonfire",
}, -- [14]
{
["action"] = "swipe_bear",
["enabled"] = true,
}, -- [15]
},
["precombat"] = {
{
["action"] = "bear_form",
["enabled"] = true,
}, -- [1]
{
["action"] = "memory_of_lucid_dreams",
["enabled"] = true,
}, -- [2]
{
["action"] = "potion",
["enabled"] = true,
}, -- [3]
},
},
["version"] = 20190818,
["warnings"] = "Imported 4 action lists.\n",
["spec"] = 104,
["profile"] = "# Guardian Druid\n# https://github.com/simulationcraft/simc/\n# August 18, 2019 - 14:00\n\n# Changes:\n# - Added Mitigation abilities.\n# - Added Skull Bash.\n# - Added ironfur_damage_threshold option.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\nactions.precombat+=/bear_form\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/memory_of_lucid_dreams\nactions.precombat+=/potion\n\n# Executed every time the actor is available.\nactions=skull_bash\nactions+=/call_action_list,name=mitigation\nactions+=/call_action_list,name=cooldowns\nactions+=/maul,if=rage.deficit<20&active_enemies<4\nactions+=/maul,if=rage.deficit<20&essence.conflict_and_strife.major&!buff.sharpened_claws.up\nactions+=/ironfur,if=cost=0||(rage>cost&azerite.layered_mane.enabled&active_enemies>2)\nactions+=/pulverize,target_if=dot.thrash_bear.stack=dot.thrash_bear.max_stacks\nactions+=/moonfire,target_if=dot.moonfire.refreshable&active_enemies<2\nactions+=/thrash,if=(buff.incarnation.down&active_enemies>1)||(buff.incarnation.up&active_enemies>4)\nactions+=/swipe,if=buff.incarnation.down&active_enemies>4\nactions+=/mangle,if=dot.thrash_bear.ticking\nactions+=/moonfire,target_if=buff.galactic_guardian.up&active_enemies<2\nactions+=/thrash\n# Fill with Moonfire with PotMx2\nactions+=/moonfire,if=azerite.power_of_the_moon.rank>1&active_enemies=1\nactions+=/swipe\n\nactions.mitigation=ironfur,if=incoming_damage_5s>ironfur_damage_threshold&buff.ironfur.remains<gcd*2\nactions.mitigation+=/frenzied_regeneration,if=health.current<0.75*health.max\nactions.mitigation+=/anima_of_death,if=toggle.defensives&health.pct<80\nactions.mitigation+=/barkskin,if=health.pct<75&incoming_damage_5s>0.25*health.max\nactions.mitigation+=/survival_instincts,if=buff.survival_instincts.down&buff.barkskin.down&health.pct<60&incoming_damage_5s>0.25*health.max\n\nactions.cooldowns=potion\n# actions.cooldowns+=/heart_essence\nactions.cooldowns+=/blood_fury\nactions.cooldowns+=/berserking\nactions.cooldowns+=/arcane_torrent\nactions.cooldowns+=/lights_judgment\nactions.cooldowns+=/fireblood\nactions.cooldowns+=/ancestral_call\nactions.cooldowns+=/lunar_beam,if=buff.bear_form.up\nactions.cooldowns+=/bristling_fur,if=buff.bear_form.up\nactions.cooldowns+=/incarnation,if=(dot.moonfire.ticking||active_enemies>1)&dot.thrash_bear.ticking\nactions.cooldowns+=/use_item,effect_name=cyclotronic_blast\nactions.cooldowns+=/anima_of_death,if=toggle.cooldowns&(time_to_die<cooldown%2||active_enemies>1)\nactions.cooldowns+=/memory_of_lucid_dreams\nactions.cooldowns+=/use_items",
},
},
},
["Quilenko - Thunderhorn"] = {
["runOnce"] = {
["resetPotionsToDefaults_20190717"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["enableAllOfTheThings_20180820"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetRogueMfDOption_20200226"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[258] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["debuffPadding"] = 0,
["maxTime"] = 33,
["custom1Name"] = "Custom 1",
["package"] = "Shadow",
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "unbridled_fury",
["nameplates"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 6,
["throttleTime"] = false,
["damageRange"] = 0,
},
[256] = {
["enabled"] = true,
["potionsReset"] = 20180919.1,
},
},
["displays"] = {
["Interrupts"] = {
},
},
["packs"] = {
["Shadow"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20200614,
["author"] = "SimC",
["desc"] = "# Shadow Priest\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Silence.\n# - Converted target_if syntax.\n# - Converted target.time_to_die to time_to_die where applicable.\n# - Added mind_sear_th buff to avoid breaking Mind Sear channels that are buffed by Thought Harvester.",
["lists"] = {
["single"] = {
{
["action"] = "void_eruption",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.voidform.down",
["action"] = "dark_ascension",
}, -- [2]
{
["action"] = "void_bolt",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.harvested_thoughts.up & cooldown.void_bolt.remains >= 1.5 & azerite.searing_dialogue.rank >= 1",
["action"] = "mind_sear",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "target.time_to_die < 3 || cooldown.shadow_word_death.charges = 2 || ( cooldown.shadow_word_death.charges = 1 & cooldown.shadow_word_death.remains < gcd.max )",
["action"] = "shadow_word_death",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.voidform.stack > 10 + ( 10 * buff.bloodlust.up )",
["action"] = "surrender_to_madness",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 10",
["action"] = "dark_void",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "talent.mindbender.enabled || ( buff.voidform.stack > 18 || time_to_die < 15 )",
["action"] = "mindbender",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "! buff.voidform.up || ( cooldown.shadow_word_death.charges = 2 & buff.voidform.stack < 15 )",
["action"] = "shadow_word_death",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 5 & raid_event.adds.duration < 20",
["action"] = "shadow_crash",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "variable.dots_up & ( ( raid_event.movement.in > cast_time + 0.5 & raid_event.movement.in < 4 ) || ! talent.shadow_word_void.enabled || buff.voidform.down || buff.voidform.stack > 14 & ( insanity < 70 || charges_fractional > 1.33 ) || buff.voidform.stack <= 14 & ( insanity < 60 || charges_fractional > 1.33 ) )",
["action"] = "mind_blast",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "dot.shadow_word_pain.remains > 4 & dot.vampiric_touch.remains > 4 & buff.voidform.up",
["action"] = "void_torrent",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable & time_to_die > 4 & ! talent.misery.enabled & ! talent.dark_void.enabled",
["action"] = "shadow_word_pain",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "refreshable & time_to_die > 6 || ( talent.misery.enabled & dot.shadow_word_pain.refreshable )",
["action"] = "vampiric_touch",
}, -- [15]
{
["enabled"] = true,
["action"] = "mind_flay",
["interrupt_if"] = "ticks>=2&(cooldown.void_bolt.up||cooldown.mind_blast.up)",
["interrupt_immediate"] = "1",
["chain"] = "1",
}, -- [16]
{
["action"] = "shadow_word_pain",
["enabled"] = true,
}, -- [17]
},
["default"] = {
{
["action"] = "silence",
["enabled"] = true,
}, -- [1]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.react || time_to_die <= 80 || target.health.pct < 35",
["action"] = "potion",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "dot.shadow_word_pain.ticking & dot.vampiric_touch.ticking",
["var_name"] = "dots_up",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.voidform.up",
["action"] = "fireblood",
}, -- [5]
{
["action"] = "berserking",
["enabled"] = true,
}, -- [6]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.voidform.up",
["action"] = "ancestral_call",
}, -- [8]
{
["action"] = "bag_of_tricks",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "active_enemies > 1",
["list_name"] = "cleave",
}, -- [10]
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "active_enemies = 1",
["list_name"] = "single",
}, -- [11]
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "floor ( ( 4.5 + azerite.whispers_of_the_damned.rank ) % ( 1 + 0.27 * azerite.searing_dialogue.rank ) )",
["var_name"] = "mind_blast_targets",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 1 - 0.07 * azerite.death_throes.rank + 0.2 * azerite.thought_harvester.rank ) * ( 1 - 0.09 * azerite.thought_harvester.rank * azerite.searing_dialogue.rank )",
["var_name"] = "swp_trait_ranks_check",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 1 - 0.04 * azerite.thought_harvester.rank - 0.05 * azerite.spiteful_apparitions.rank )",
["var_name"] = "vt_trait_ranks_check",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 1 - 0.07 * azerite.death_throes.rank - 0.03 * azerite.thought_harvester.rank - 0.055 * azerite.spiteful_apparitions.rank ) * ( 1 - 0.027 * azerite.thought_harvester.rank * azerite.searing_dialogue.rank )",
["var_name"] = "vt_mis_trait_ranks_check",
}, -- [5]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1 - 0.014 * azerite.searing_dialogue.rank",
["var_name"] = "vt_mis_sd_check",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.shadowform.up",
["action"] = "shadowform",
}, -- [7]
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "spell_targets.mind_sear < 2 || azerite.thought_harvester.rank = 0",
["action"] = "mind_blast",
}, -- [9]
{
["action"] = "vampiric_touch",
["enabled"] = true,
}, -- [10]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "( buff.voidform.stack > 20 & insanity <= 50 ) || ( current_insanity_drain * ( ( gcd.max * 2 ) + action.mind_blast.cast_time ) ) > insanity",
["action"] = "memory_of_lucid_dreams",
}, -- [1]
{
["action"] = "blood_of_the_enemy",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.voidform.stack > 15",
["action"] = "guardian_of_azeroth",
}, -- [3]
{
["enabled"] = true,
["action"] = "manifesto_of_madness",
["criteria"] = "spell_targets.mind_sear >= 2 || raid_event.adds.in > 60",
["name"] = "manifesto_of_madness",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "spell_targets.mind_sear >= 2 || raid_event.adds.in > 60",
["action"] = "focused_azerite_beam",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "spell_targets.mind_sear >= 2 || raid_event.adds.in > 60",
["action"] = "purifying_blast",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "time <= 10 || ( buff.chorus_of_insanity.stack >= 15 & buff.voidform.up ) || full_recharge_time < gcd || time_to_die < 5",
["action"] = "concentrated_flame",
["line_cd"] = "6",
}, -- [7]
{
["action"] = "ripple_in_space",
["enabled"] = true,
}, -- [8]
{
["action"] = "reaping_flames",
["enabled"] = true,
}, -- [9]
{
["action"] = "worldvein_resonance",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "( buff.voidform.up & buff.chorus_of_insanity.stack > 20 ) || azerite.chorus_of_insanity.rank = 0",
["list_name"] = "crit_cds",
}, -- [11]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [12]
},
["cleave"] = {
{
["action"] = "void_eruption",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.voidform.down",
["action"] = "dark_ascension",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! ticking & azerite.thought_harvester.rank >= 1",
["action"] = "vampiric_touch",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.harvested_thoughts.up",
["action"] = "mind_sear",
}, -- [4]
{
["action"] = "void_bolt",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "time_to_die < 3 || buff.voidform.down",
["action"] = "shadow_word_death",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.voidform.stack > 10 + ( 10 * buff.bloodlust.up )",
["action"] = "surrender_to_madness",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 10 & ( dot.shadow_word_pain.refreshable || time_to_die > 30 )",
["action"] = "dark_void",
}, -- [9]
{
["action"] = "mindbender",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "spell_targets.mind_sear < variable.mind_blast_targets",
["action"] = "mind_blast",
["cycle_targets"] = 1,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "( raid_event.adds.in > 5 & raid_event.adds.duration < 2 ) || raid_event.adds.duration > 2",
["action"] = "shadow_crash",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! talent.misery.enabled & refreshable & time_to_die > ( ( - 1.2 + 3.3 * spell_targets.mind_sear ) * variable.swp_trait_ranks_check * ( 1 - 0.012 * azerite.searing_dialogue.rank * spell_targets.mind_sear ) )",
["action"] = "shadow_word_pain",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "refreshable & time_to_die > ( ( 1 + 3.3 * spell_targets.mind_sear ) * variable.vt_trait_ranks_check * ( 1 + 0.10 * azerite.searing_dialogue.rank * spell_targets.mind_sear ) )",
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
}, -- [14]
{
["enabled"] = true,
["criteria"] = "dot.shadow_word_pain.refreshable & ( talent.misery.enabled & time_to_die > ( ( 1.0 + 2.0 * spell_targets.mind_sear ) * variable.vt_mis_trait_ranks_check * ( variable.vt_mis_sd_check * spell_targets.mind_sear ) ) )",
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.voidform.up",
["action"] = "void_torrent",
}, -- [16]
{
["enabled"] = true,
["action"] = "mind_sear",
["interrupt_if"] = "ticks>=2&buff.mind_sear_th.down",
["interrupt_immediate"] = "1",
["chain"] = "1",
["criteria"] = "spell_targets.mind_sear > 1",
}, -- [17]
{
["enabled"] = true,
["action"] = "mind_flay",
["interrupt_if"] = "ticks>=2&(cooldown.void_bolt.up||cooldown.mind_blast.up)",
["interrupt_immediate"] = "1",
["chain"] = "1",
}, -- [18]
{
["action"] = "shadow_word_pain",
["enabled"] = true,
}, -- [19]
},
["crit_cds"] = {
{
["enabled"] = true,
["name"] = "azsharas_font_of_power",
["action"] = "azsharas_font_of_power",
}, -- [1]
{
["enabled"] = true,
["action"] = "cyclotronic_blast",
["effect_name"] = "cyclotronic_blast",
}, -- [2]
},
},
["version"] = 20200614,
["warnings"] = "Imported 6 action lists.\n",
["spec"] = 258,
["profile"] = "# Shadow Priest\n# https://github.com/simulationcraft/simc/\n# June 14, 2020\n\n# Changes:\n# - Added Silence.\n# - Converted target_if syntax.\n# - Converted target.time_to_die to time_to_die where applicable.\n# - Added mind_sear_th buff to avoid breaking Mind Sear channels that are buffed by Thought Harvester.\n\n# Executed before combat begins. Accepts non-harmful actions only.\n# actions.precombat=flask\n# actions.precombat+=/food\n# actions.precombat+=/augmentation\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\n# actions.precombat+=/snapshot_stats\nactions.precombat+=/potion\nactions.precombat+=/variable,name=mind_blast_targets,op=set,value=floor((4.5+azerite.whispers_of_the_damned.rank)%(1+0.27*azerite.searing_dialogue.rank))\nactions.precombat+=/variable,name=swp_trait_ranks_check,op=set,value=(1-0.07*azerite.death_throes.rank+0.2*azerite.thought_harvester.rank)*(1-0.09*azerite.thought_harvester.rank*azerite.searing_dialogue.rank)\nactions.precombat+=/variable,name=vt_trait_ranks_check,op=set,value=(1-0.04*azerite.thought_harvester.rank-0.05*azerite.spiteful_apparitions.rank)\nactions.precombat+=/variable,name=vt_mis_trait_ranks_check,op=set,value=(1-0.07*azerite.death_throes.rank-0.03*azerite.thought_harvester.rank-0.055*azerite.spiteful_apparitions.rank)*(1-0.027*azerite.thought_harvester.rank*azerite.searing_dialogue.rank)\nactions.precombat+=/variable,name=vt_mis_sd_check,op=set,value=1-0.014*azerite.searing_dialogue.rank\nactions.precombat+=/shadowform,if=!buff.shadowform.up\nactions.precombat+=/use_item,name=azsharas_font_of_power\nactions.precombat+=/mind_blast,if=spell_targets.mind_sear<2||azerite.thought_harvester.rank=0\nactions.precombat+=/vampiric_touch\n\n# Executed every time the actor is available.\nactions=silence\nactions+=/use_items\nactions+=/potion,if=buff.bloodlust.react||time_to_die<=80||target.health.pct<35\nactions+=/variable,name=dots_up,op=set,value=dot.shadow_word_pain.ticking&dot.vampiric_touch.ticking\nactions+=/fireblood,if=buff.voidform.up\nactions+=/berserking\nactions+=/lights_judgment\nactions+=/ancestral_call,if=buff.voidform.up\nactions+=/bag_of_tricks\nactions+=/run_action_list,name=cleave,if=active_enemies>1\nactions+=/run_action_list,name=single,if=active_enemies=1\n\n# Use Memory of Lucid Dreams right before you are about to fall out of Voidform\nactions.cds=memory_of_lucid_dreams,if=(buff.voidform.stack>20&insanity<=50)||(current_insanity_drain*((gcd.max*2)+action.mind_blast.cast_time))>insanity\nactions.cds+=/blood_of_the_enemy\nactions.cds+=/guardian_of_azeroth,if=buff.voidform.stack>15\nactions.cds+=/use_item,name=manifesto_of_madness,if=spell_targets.mind_sear>=2||raid_event.adds.in>60\nactions.cds+=/focused_azerite_beam,if=spell_targets.mind_sear>=2||raid_event.adds.in>60\nactions.cds+=/purifying_blast,if=spell_targets.mind_sear>=2||raid_event.adds.in>60\n# Wait at least 6s between casting CF. Use the first cast ASAP to get it on CD, then every subsequent cast should be used when Chorus of Insanity is active or it will recharge in the next gcd, or the target is about to die.\nactions.cds+=/concentrated_flame,line_cd=6,if=time<=10||(buff.chorus_of_insanity.stack>=15&buff.voidform.up)||full_recharge_time<gcd||time_to_die<5\nactions.cds+=/ripple_in_space\nactions.cds+=/reaping_flames\nactions.cds+=/worldvein_resonance\n# Use these cooldowns in between your 1st and 2nd Void Bolt in your 2nd Voidform when you have Chorus of Insanity active\nactions.cds+=/call_action_list,name=crit_cds,if=(buff.voidform.up&buff.chorus_of_insanity.stack>20)||azerite.chorus_of_insanity.rank=0\n# Default fallback for usable items: Use on cooldown.\nactions.cds+=/use_items\n\nactions.cleave=void_eruption\nactions.cleave+=/dark_ascension,if=buff.voidform.down\nactions.cleave+=/vampiric_touch,if=!ticking&azerite.thought_harvester.rank>=1\nactions.cleave+=/mind_sear,if=buff.harvested_thoughts.up\nactions.cleave+=/void_bolt\nactions.cleave+=/call_action_list,name=cds\nactions.cleave+=/shadow_word_death,cycle_targets=1,if=time_to_die<3||buff.voidform.down\nactions.cleave+=/surrender_to_madness,if=buff.voidform.stack>10+(10*buff.bloodlust.up)\n# Use Dark Void on CD unless adds are incoming in 10s or less.\nactions.cleave+=/dark_void,if=raid_event.adds.in>10&(dot.shadow_word_pain.refreshable||time_to_die>30)\nactions.cleave+=/mindbender\nactions.cleave+=/mind_blast,cycle_targets=1,if=spell_targets.mind_sear<variable.mind_blast_targets\nactions.cleave+=/shadow_crash,if=(raid_event.adds.in>5&raid_event.adds.duration<2)||raid_event.adds.duration>2\nactions.cleave+=/shadow_word_pain,cycle_targets=1,if=!talent.misery.enabled&refreshable&time_to_die>((-1.2+3.3*spell_targets.mind_sear)*variable.swp_trait_ranks_check*(1-0.012*azerite.searing_dialogue.rank*spell_targets.mind_sear))\nactions.cleave+=/vampiric_touch,cycle_targets=1,if=refreshable&time_to_die>((1+3.3*spell_targets.mind_sear)*variable.vt_trait_ranks_check*(1+0.10*azerite.searing_dialogue.rank*spell_targets.mind_sear))\nactions.cleave+=/vampiric_touch,cycle_targets=1,if=dot.shadow_word_pain.refreshable&(talent.misery.enabled&time_to_die>((1.0+2.0*spell_targets.mind_sear)*variable.vt_mis_trait_ranks_check*(variable.vt_mis_sd_check*spell_targets.mind_sear)))\nactions.cleave+=/void_torrent,if=buff.voidform.up\nactions.cleave+=/mind_sear,if=spell_targets.mind_sear>1,chain=1,interrupt_immediate=1,interrupt_if=ticks>=2&buff.mind_sear_th.down\nactions.cleave+=/mind_flay,chain=1,interrupt_immediate=1,interrupt_if=ticks>=2&(cooldown.void_bolt.up||cooldown.mind_blast.up)\nactions.cleave+=/shadow_word_pain\n\nactions.crit_cds=use_item,name=azsharas_font_of_power\nactions.crit_cds+=/use_item,effect_name=cyclotronic_blast\n\nactions.single=void_eruption\nactions.single+=/dark_ascension,if=buff.voidform.down\nactions.single+=/void_bolt\nactions.single+=/call_action_list,name=cds\n# Use Mind Sear on ST only if you get a Thought Harvester Proc with at least 1 Searing Dialogue Trait.\nactions.single+=/mind_sear,if=buff.harvested_thoughts.up&cooldown.void_bolt.remains>=1.5&azerite.searing_dialogue.rank>=1\n# Use SWD before capping charges, or the target is about to die.\nactions.single+=/shadow_word_death,if=target.time_to_die<3||cooldown.shadow_word_death.charges=2||(cooldown.shadow_word_death.charges=1&cooldown.shadow_word_death.remains<gcd.max)\nactions.single+=/surrender_to_madness,if=buff.voidform.stack>10+(10*buff.bloodlust.up)\n+ # Use Dark Void on CD unless adds are incoming in 10s or less.\nactions.single+=/dark_void,if=raid_event.adds.in>10\n# Use Mindbender at 19 or more stacks, or if the target will die in less than 15s.\nactions.single+=/mindbender,if=talent.mindbender.enabled||(buff.voidform.stack>18||time_to_die<15)\nactions.single+=/shadow_word_death,if=!buff.voidform.up||(cooldown.shadow_word_death.charges=2&buff.voidform.stack<15)\n# Use Shadow Crash on CD unless there are adds incoming.\nactions.single+=/shadow_crash,if=raid_event.adds.in>5&raid_event.adds.duration<20\n# Bank the Shadow Word: Void charges for a bit to try and avoid overcapping on Insanity.\nactions.single+=/mind_blast,if=variable.dots_up&((raid_event.movement.in>cast_time+0.5&raid_event.movement.in<4)||!talent.shadow_word_void.enabled||buff.voidform.down||buff.voidform.stack>14&(insanity<70||charges_fractional>1.33)||buff.voidform.stack<=14&(insanity<60||charges_fractional>1.33))\nactions.single+=/void_torrent,if=dot.shadow_word_pain.remains>4&dot.vampiric_touch.remains>4&buff.voidform.up\nactions.single+=/shadow_word_pain,if=refreshable&time_to_die>4&!talent.misery.enabled&!talent.dark_void.enabled\nactions.single+=/vampiric_touch,if=refreshable&time_to_die>6||(talent.misery.enabled&dot.shadow_word_pain.refreshable)\nactions.single+=/mind_flay,chain=1,interrupt_immediate=1,interrupt_if=ticks>=2&(cooldown.void_bolt.up||cooldown.mind_blast.up)\nactions.single+=/shadow_word_pain",
},
},
},
["Quilbee - Thunderhorn"] = {
["runOnce"] = {
["autoconvertDisplayToggle_20190621_1"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["autoconvertGlowsForCustomGlow_20190326"] = true,
["resetAllPotions_20201209"] = true,
["resetRogueMfDOption_20200226"] = true,
["enableAllOfTheThings_20180820"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["resetPotionsToDefaults_20190717"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
},
["specs"] = {
[70] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["settings"] = {
["check_wake_range"] = false,
},
["debuffPadding"] = 0,
["aoe"] = 3,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["throttleTime"] = false,
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "spectral_strength",
["package"] = "Retribution",
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["enhancedRecheck"] = false,
["damageRange"] = 0,
},
[66] = {
["maxRefresh"] = 10,
["custom2Name"] = "Custom 2",
["throttleRefresh"] = false,
["damagePets"] = false,
["debuffPadding"] = 0,
["aoe"] = 2,
["gcdSync"] = true,
["damageDots"] = false,
["damage"] = true,
["enabled"] = true,
["petbased"] = false,
["maxTime"] = 33,
["package"] = "Protection Paladin",
["custom1Name"] = "Custom 1",
["nameplates"] = true,
["buffPadding"] = 0,
["nameplateRange"] = 8,
["cycle_min"] = 6,
["cycle"] = false,
["potion"] = "phantom_fire",
["throttleTime"] = false,
["potionsReset"] = 20180919.1,
["damageExpiration"] = 8,
["enhancedRecheck"] = false,
["damageRange"] = 0,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["packs"] = {
["Protection Paladin"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20210710,
["author"] = "SimC",
["desc"] = "Protection Paladin\nJuly 10, 2021\n\nChanges\n- Added Rebuke.\n- Remove Seraphim restrictions on multiple mitigation abilities.",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "rebuke",
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "standard",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "holy_power.deficit = 0 & ( ( buff.avenging_wrath.up & ! talent.seraphim.enabled ) || buff.seraphim.up )",
["action"] = "shield_of_the_righteous",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( buff.avenging_wrath.up & buff.avenging_wrath.remains < 4 & ! talent.seraphim.enabled ) || ( buff.seraphim.remains < 4 & buff.seraphim.up )",
["action"] = "shield_of_the_righteous",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "holy_power.deficit > 0",
["action"] = "hammer_of_wrath",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "buff.seraphim.up & buff.seraphim.remains < 3",
["action"] = "lights_judgment",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! consecration.up",
["action"] = "consecration",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "( cooldown.judgment.remains < gcd & cooldown.judgment.charges_fractional > 1 & cooldown_react ) || ! talent.crusaders_judgment.enabled",
["action"] = "judgment",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "cooldown_react",
["action"] = "avengers_shield",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "cooldown_react || ! talent.crusaders_judgment.enabled",
["action"] = "judgment",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! talent.seraphim.enabled || buff.seraphim.up",
["action"] = "lights_judgment",
}, -- [13]
{
["enabled"] = true,
["action"] = "blessed_hammer",
["strikes"] = "3",
}, -- [14]
{
["action"] = "hammer_of_the_righteous",
["enabled"] = true,
}, -- [15]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [16]
},
["precombat"] = {
{
["enabled"] = true,
["description"] = "Executed before combat begins. Accepts non-harmful actions only.",
["action"] = "devotion_aura",
}, -- [1]
{
["action"] = "fleshcraft",
["enabled"] = true,
}, -- [2]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [3]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [4]
{
["action"] = "ashen_hallow",
["enabled"] = true,
}, -- [5]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up",
["action"] = "fireblood",
}, -- [1]
{
["action"] = "seraphim",
["enabled"] = true,
}, -- [2]
{
["action"] = "avenging_wrath",
["enabled"] = true,
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || cooldown.avenging_wrath.remains > 60",
["action"] = "holy_avenger",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up",
["action"] = "potion",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.down",
["action"] = "ashen_hallow",
}, -- [6]
{
["action"] = "vanquishers_hammer",
["enabled"] = true,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "holy_power.deficit > 0",
["action"] = "divine_toll",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "buff.seraphim.up || ! talent.seraphim.enabled",
["action"] = "use_items",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.avengers_shield & cooldown.avengers_shield.remains",
["action"] = "moment_of_glory",
}, -- [10]
{
["enabled"] = true,
["name"] = "grongs_primal_rage",
["action"] = "grongs_primal_rage",
["criteria"] = "( ( cooldown.judgment.full_recharge_time > 4 || ( ! talent.crusaders_judgment.enabled & prev_gcd.1.judgment ) ) & cooldown.avengers_shield.remains > 4 & buff.seraphim.remains > 4 ) || ( buff.seraphim.remains < 4 )",
}, -- [11]
{
["enabled"] = true,
["name"] = "merekthas_fang",
["action"] = "merekthas_fang",
["criteria"] = "! buff.avenging_wrath.up & ( buff.seraphim.up || ! talent.seraphim.enabled )",
}, -- [12]
{
["enabled"] = true,
["name"] = "razdunks_big_red_button",
["action"] = "razdunks_big_red_button",
}, -- [13]
},
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "buff.shield_of_the_righteous.down & ( holy_power.deficit = 0 || buff.divine_purpose.up )",
["action"] = "shield_of_the_righteous",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.vanquishers_hammer.up",
["action"] = "word_of_glory",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.shining_light_full.up & buff.shining_light_full.remains < gcd * 2 & health.pct < 80 & ! covenant.necrolord",
["action"] = "word_of_glory",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( health.pct < 40 )",
["action"] = "word_of_glory",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( incoming_damage_10000ms < health.max * 1.25 ) & health.pct < 55 & talent.righteous_protector.enabled",
["action"] = "word_of_glory",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( incoming_damage_13000ms < health.max * 1.6 ) & health.pct < 55",
["action"] = "word_of_glory",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "( incoming_damage_6000ms < health.max * 0.7 ) & health.pct < 65 & talent.righteous_protector.enabled",
["action"] = "word_of_glory",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "( incoming_damage_9000ms < health.max * 1.2 ) & health.pct < 55",
["action"] = "word_of_glory",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "incoming_damage_2500ms > health.max * 0.4 & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "guardian_of_ancient_kings",
["description"] = "actions.mitigation+=/shield_of_the_righteous,if=buff.shield_of_the_righteous.down&(holy_power>2||buff.divine_purpose.up)",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.final_stand.enabled & incoming_damage_2500ms > health.max * 0.4 & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "divine_shield",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "incoming_damage_2500ms > health.max * 0.4 & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "ardent_defender",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "health.pct < 15",
["action"] = "lay_on_hands",
}, -- [12]
},
["standard"] = {
{
["enabled"] = true,
["criteria"] = "debuff.judgment.up",
["action"] = "shield_of_the_righteous",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "holy_power = 5 || buff.holy_avenger.up || holy_power = 4 & talent.sanctified_wrath.enabled & buff.avenging_wrath.up",
["action"] = "shield_of_the_righteous",
}, -- [2]
{
["enabled"] = true,
["action"] = "judgment",
["criteria"] = "charges = 2 || ! talent.crusaders_judgment.enabled",
["cycle_targets"] = 1,
}, -- [3]
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
}, -- [4]
{
["action"] = "blessing_of_summer",
["enabled"] = true,
}, -- [5]
{
["action"] = "blessing_of_autumn",
["enabled"] = true,
}, -- [6]
{
["action"] = "blessing_of_winter",
["enabled"] = true,
}, -- [7]
{
["action"] = "blessing_of_spring",
["enabled"] = true,
}, -- [8]
{
["action"] = "avengers_shield",
["enabled"] = true,
}, -- [9]
{
["enabled"] = true,
["action"] = "judgment",
["cycle_targets"] = 1,
}, -- [10]
{
["action"] = "vanquishers_hammer",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! consecration.up",
["action"] = "consecration",
}, -- [12]
{
["action"] = "divine_toll",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["action"] = "blessed_hammer",
["criteria"] = "charges = 3",
["strikes"] = "2.4",
}, -- [14]
{
["action"] = "ashen_hallow",
["enabled"] = true,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "charges = 2",
["action"] = "hammer_of_the_righteous",
}, -- [16]
{
["enabled"] = true,
["action"] = "blessed_hammer",
["strikes"] = "2.4",
}, -- [17]
{
["action"] = "hammer_of_the_righteous",
["enabled"] = true,
}, -- [18]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [19]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [20]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [21]
},
},
["version"] = 20210710,
["warnings"] = "Imported 5 action lists.\n",
["spec"] = 66,
["profile"] = "# Protection Paladin\n# July 10, 2021\n\n# Changes\n# - Added Rebuke.\n# - Remove Seraphim restrictions on multiple mitigation abilities.\n\n# Executed before combat begins. Accepts non-harmful actions only.\nactions.precombat+=/devotion_aura\nactions.precombat+=/fleshcraft\nactions.precombat+=/consecration\nactions.precombat+=/lights_judgment\nactions.precombat+=/ashen_hallow\n\n# Executed every time the actor is available.\nactions=rebuke\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=mitigation\nactions+=/call_action_list,name=standard\n\nactions+=/shield_of_the_righteous,if=holy_power.deficit=0&((buff.avenging_wrath.up&!talent.seraphim.enabled)||buff.seraphim.up)\nactions+=/shield_of_the_righteous,if=(buff.avenging_wrath.up&buff.avenging_wrath.remains<4&!talent.seraphim.enabled)||(buff.seraphim.remains<4&buff.seraphim.up)\nactions+=/hammer_of_wrath,if=holy_power.deficit>0\nactions+=/lights_judgment,if=buff.seraphim.up&buff.seraphim.remains<3\nactions+=/consecration,if=!consecration.up\nactions+=/judgment,if=(cooldown.judgment.remains<gcd&cooldown.judgment.charges_fractional>1&cooldown_react)||!talent.crusaders_judgment.enabled\nactions+=/avengers_shield,if=cooldown_react\nactions+=/judgment,if=cooldown_react||!talent.crusaders_judgment.enabled\nactions+=/lights_judgment,if=!talent.seraphim.enabled||buff.seraphim.up\nactions+=/blessed_hammer,strikes=3\nactions+=/hammer_of_the_righteous\nactions+=/consecration\n\nactions.standard=shield_of_the_righteous,if=debuff.judgment.up\nactions.standard+=/shield_of_the_righteous,if=holy_power=5||buff.holy_avenger.up||holy_power=4&talent.sanctified_wrath.enabled&buff.avenging_wrath.up\nactions.standard+=/judgment,cycle_targets=1,if=charges=2||!talent.crusaders_judgment.enabled\nactions.standard+=/hammer_of_wrath\nactions.standard+=/blessing_of_summer\nactions.standard+=/blessing_of_autumn\nactions.standard+=/blessing_of_winter\nactions.standard+=/blessing_of_spring\nactions.standard+=/avengers_shield\nactions.standard+=/judgment,cycle_targets=1\nactions.standard+=/vanquishers_hammer\nactions.standard+=/consecration,if=!consecration.up\nactions.standard+=/divine_toll\nactions.standard+=/blessed_hammer,strikes=2.4,if=charges=3\nactions.standard+=/ashen_hallow\nactions.standard+=/hammer_of_the_righteous,if=charges=2\nactions.standard+=/blessed_hammer,strikes=2.4\nactions.standard+=/hammer_of_the_righteous\nactions.standard+=/lights_judgment\nactions.standard+=/arcane_torrent\nactions.standard+=/consecration\n\nactions.cooldowns=fireblood,if=buff.avenging_wrath.up\nactions.cooldowns+=/seraphim\nactions.cooldowns+=/avenging_wrath\nactions.cooldowns+=/holy_avenger,if=buff.avenging_wrath.up||cooldown.avenging_wrath.remains>60\nactions.cooldowns+=/potion,if=buff.avenging_wrath.up\nactions.cooldowns+=/ashen_hallow,if=buff.avenging_wrath.down\nactions.cooldowns+=/vanquishers_hammer\nactions.cooldowns+=/divine_toll,if=holy_power.deficit>0\nactions.cooldowns+=/use_items,if=buff.seraphim.up||!talent.seraphim.enabled\nactions.cooldowns+=/moment_of_glory,if=prev_gcd.1.avengers_shield&cooldown.avengers_shield.remains\nactions.cooldowns+=/use_item,name=grongs_primal_rage,if=((cooldown.judgment.full_recharge_time>4||(!talent.crusaders_judgment.enabled&prev_gcd.1.judgment))&cooldown.avengers_shield.remains>4&buff.seraphim.remains>4)||(buff.seraphim.remains<4)\nactions.cooldowns+=/use_item,name=merekthas_fang,if=!buff.avenging_wrath.up&(buff.seraphim.up||!talent.seraphim.enabled)\nactions.cooldowns+=/use_item,name=razdunks_big_red_button\n\nactions.mitigation=shield_of_the_righteous,if=buff.shield_of_the_righteous.down&(holy_power.deficit=0||buff.divine_purpose.up)\nactions.mitigation+=/word_of_glory,if=buff.vanquishers_hammer.up\nactions.mitigation+=/word_of_glory,if=buff.shining_light_full.up&buff.shining_light_full.remains<gcd*2&health.pct<80&!covenant.necrolord\nactions.mitigation+=/word_of_glory,if=(health.pct<40)\nactions.mitigation+=/word_of_glory,if=(incoming_damage_10000ms<health.max*1.25)&health.pct<55&talent.righteous_protector.enabled\nactions.mitigation+=/word_of_glory,if=(incoming_damage_13000ms<health.max*1.6)&health.pct<55\nactions.mitigation+=/word_of_glory,if=(incoming_damage_6000ms<health.max*0.7)&health.pct<65&talent.righteous_protector.enabled\nactions.mitigation+=/word_of_glory,if=(incoming_damage_9000ms<health.max*1.2)&health.pct<55\n# actions.mitigation+=/shield_of_the_righteous,if=buff.shield_of_the_righteous.down&(holy_power>2||buff.divine_purpose.up)\nactions.mitigation+=/guardian_of_ancient_kings,if=incoming_damage_2500ms>health.max*0.4&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/divine_shield,if=talent.final_stand.enabled&incoming_damage_2500ms>health.max*0.4&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/ardent_defender,if=incoming_damage_2500ms>health.max*0.4&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/lay_on_hands,if=health.pct<15",
},
["Retribution"] = {
["builtIn"] = true,
["date"] = 20210719,
["spec"] = 70,
["desc"] = "Retribution Paladin\nJuly 19, 2021\n\nChanges:\n- Last-second usage of trinkets/CDs now for boss fights only (don't waste CDs on trash).\n- Make Seraphim function when Final Reckoning/Execution Sentence are on CD for a while (further relaxed on 7/8).\n- Add fall-through DS/TV when Seraphim/FR are desynched.",
["profile"] = "## Retribution Paladin\n## July 19, 2021\n\n## Changes:\n## - Last-second usage of trinkets/CDs now for boss fights only (don't waste CDs on trash).\n## - Make Seraphim function when Final Reckoning/Execution Sentence are on CD for a while (further relaxed on 7/8).\n## - Add fall-through DS/TV when Seraphim/FR are desynched.\n\nactions.precombat=potion\nactions.precombat+=/blessing_of_summer\nactions.precombat+=/blessing_of_autumn\nactions.precombat+=/blessing_of_winter\nactions.precombat+=/blessing_of_spring\nactions.precombat+=/arcane_torrent,if=talent.final_reckoning.enabled&talent.seraphim.enabled\n\n \n## Executed every time the actor is available.\nactions=rebuke\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=generators\n \nactions.cooldowns=potion,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||boss&fight_remains<25\nactions.cooldowns+=/lights_judgment,if=spell_targets.lights_judgment>=2||!raid_event.adds.exists||raid_event.adds.in>75||raid_event.adds.up\nactions.cooldowns+=/fireblood,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10\nactions.cooldowns+=/shield_of_vengeance,if=(!talent.execution_sentence.enabled||cooldown.execution_sentence.remains<52)&fight_remains>15\nactions.cooldowns+=/blessing_of_summer\nactions.cooldowns+=/blessing_of_autumn\nactions.cooldowns+=/blessing_of_winter\nactions.cooldowns+=/blessing_of_spring\nactions.cooldowns+=/use_item,name=inscrutable_quantum_device,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||boss&fight_remains<30\nactions.cooldowns+=/use_item,name=overwhelming_power_crystal,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||boss&fight_remains<15\nactions.cooldowns+=/use_item,name=darkmoon_deck_voracity,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||boss&fight_remains<20\nactions.cooldowns+=/use_item,name=macabre_sheet_music,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||boss&fight_remains<20\nactions.cooldowns+=/use_item,name=dreadfire_vessel\nactions.cooldowns+=/use_item,name=skulkers_wing\nactions.cooldowns+=/use_item,name=grim_codex\nactions.cooldowns+=/use_item,name=memory_of_past_sins\nactions.cooldowns+=/use_item,name=spare_meat_hook\nactions.cooldowns+=/use_item,name=salvaged_fusion_amplifier\nactions.cooldowns+=/use_item,name=unchained_gladiators_badge_of_ferocity,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack>=10||cooldown.avenging_wrath.remains>45||cooldown.crusade.remains>45\nactions.cooldowns+=/use_item,name=unchained_aspirants_badge_of_ferocity,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack>=10||cooldown.avenging_wrath.remains>45||cooldown.crusade.remains>45\nactions.cooldowns+=/use_item,name=sinful_gladiators_badge_of_ferocity,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack>=10||cooldown.avenging_wrath.remains>45||cooldown.crusade.remains>45\nactions.cooldowns+=/use_item,name=sinful_aspirants_badge_of_ferocity,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack>=10||cooldown.avenging_wrath.remains>45||cooldown.crusade.remains>45\nactions.cooldowns+=/use_items,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack>=10\nactions.cooldowns+=/avenging_wrath,if=(holy_power>=4&time<5||holy_power>=3&(time>5||runeforge.the_magistrates_judgment)||talent.holy_avenger.enabled&cooldown.holy_avenger.remains=0)&(!talent.seraphim.enabled||cooldown.seraphim.remains>0||talent.sanctified_wrath.enabled)\nactions.cooldowns+=/crusade,if=holy_power>=4&time<5||holy_power>=3&time>5||talent.holy_avenger.enabled&cooldown.holy_avenger.remains=0\nactions.cooldowns+=/ashen_hallow\nactions.cooldowns+=/holy_avenger,if=time_to_hpg=0&(buff.avenging_wrath.up||buff.crusade.up||buff.avenging_wrath.down&cooldown.avenging_wrath.remains>40||buff.crusade.down&cooldown.crusade.remains>40)\nactions.cooldowns+=/final_reckoning,if=(holy_power>=4&time<8||holy_power>=3&time>=8)&cooldown.avenging_wrath.remains>gcd&time_to_hpg=0&(!talent.seraphim.enabled||buff.seraphim.up)&(!raid_event.adds.exists||raid_event.adds.up||raid_event.adds.in>40)\n \nactions.finishers=variable,name=ds_castable,value=spell_targets.divine_storm=2&!(runeforge.final_verdict&talent.righteous_verdict.enabled&conduit.templars_vindication.enabled)||spell_targets.divine_storm>2||buff.empyrean_power.up&debuff.judgment.down&buff.divine_purpose.down\nactions.finishers+=/seraphim,if=(cooldown.avenging_wrath.remains>15||cooldown.crusade.remains>15||talent.final_reckoning.enabled)&(!talent.final_reckoning.enabled||cooldown.final_reckoning.remains>20+gcd*3||cooldown.final_reckoning.remains<=gcd*3&(!raid_event.adds.exists||raid_event.adds.in>40||raid_event.adds.in<gcd||raid_event.adds.up))&(!talent.execution_sentence.enabled||cooldown.execution_sentence.remains>35||cooldown.execution_sentence.remains<=gcd*3||talent.final_reckoning.enabled)&(!covenant.kyrian||cooldown.divine_toll.remains>45||cooldown.divine_toll.remains<9)||boss&fight_remains<15&fight_remains>5\nactions.finishers+=/execution_sentence,if=(buff.crusade.down&cooldown.crusade.remains>10||buff.crusade.stack>=3||cooldown.avenging_wrath.remains>10)&(!talent.final_reckoning.enabled||cooldown.final_reckoning.remains>10)&target.time_to_die>8\nactions.finishers+=/divine_storm,if=variable.ds_castable&!buff.vanquishers_hammer.up&((!talent.crusade.enabled||cooldown.crusade.remains>gcd*3)&(!talent.execution_sentence.enabled||cooldown.execution_sentence.remains>gcd*6||cooldown.execution_sentence.remains>gcd*5&holy_power>=4||target.time_to_die<8||!talent.seraphim.enabled&cooldown.execution_sentence.remains>gcd*2)&(!talent.final_reckoning.enabled||cooldown.final_reckoning.remains>gcd*6||cooldown.final_reckoning.remains>gcd*5&holy_power>=4||!talent.seraphim.enabled&cooldown.final_reckoning.remains>gcd*2)&(!talent.seraphim.enabled||cooldown.seraphim.remains%gcd+holy_power>3||talent.final_reckoning.enabled||talent.execution_sentence.enabled||covenant.kyrian)||(talent.holy_avenger.enabled&cooldown.holy_avenger.remains<gcd*3||buff.holy_avenger.up||buff.crusade.up&buff.crusade.stack<10))\nactions.finishers+=/templars_verdict,if=(!talent.crusade.enabled||cooldown.crusade.remains>gcd*3)&(!talent.execution_sentence.enabled||cooldown.execution_sentence.remains>gcd*6||cooldown.execution_sentence.remains>gcd*5&holy_power>=4||target.time_to_die<8||!talent.seraphim.enabled&cooldown.execution_sentence.remains>gcd*2)&(!talent.final_reckoning.enabled||cooldown.final_reckoning.remains>gcd*6||cooldown.final_reckoning.remains>gcd*5&holy_power>=4||!talent.seraphim.enabled&cooldown.final_reckoning.remains>gcd*2)&(!talent.seraphim.enabled||cooldown.seraphim.remains%gcd+holy_power>3||talent.final_reckoning.enabled||talent.execution_sentence.enabled||covenant.kyrian)||talent.holy_avenger.enabled&cooldown.holy_avenger.remains<gcd*3||buff.holy_avenger.up||buff.crusade.up&buff.crusade.stack<10\nactions.finishers+=/divine_storm,if=variable.ds_castable&talent.seraphim.enabled&talent.final_reckoning.enabled&(cooldown.seraphim.ready&cooldown.final_reckoning.remains>4*gcd||cooldown.seraphim.remains>3*gcd&cooldown.final_reckoning.remains<4*gcd)&holy_power=holy_power.max\nactions.finishers+=/templars_verdict,if=talent.seraphim.enabled&talent.final_reckoning.enabled&(cooldown.seraphim.ready&cooldown.final_reckoning.remains>4*gcd||cooldown.seraphim.remains>3*gcd&cooldown.final_reckoning.remains<4*gcd)&holy_power=holy_power.max\n \nactions.generators=call_action_list,name=finishers,if=holy_power=5||buff.holy_avenger.up||debuff.final_reckoning.up||debuff.execution_sentence.up\nactions.generators+=/vanquishers_hammer\nactions.generators+=/divine_toll,if=!debuff.judgment.up&(!talent.seraphim.enabled||buff.seraphim.up)&(!raid_event.adds.exists||raid_event.adds.in>30||raid_event.adds.up)&(holy_power<=2||holy_power<=4&(cooldown.blade_of_justice.remains>gcd*2||debuff.execution_sentence.up||debuff.final_reckoning.up))&(!talent.final_reckoning.enabled||cooldown.final_reckoning.remains>gcd*10)&(!talent.execution_sentence.enabled||cooldown.execution_sentence.remains>gcd*10||target.time_to_die<8)&(cooldown.avenging_wrath.remains||cooldown.crusade.remains)\nactions.generators+=/hammer_of_wrath,if=runeforge.the_mad_paragon||runeforge.vanguards_momentum&talent.execution_sentence.enabled||covenant.venthyr&cooldown.ashen_hallow.remains>210\nactions.generators+=/judgment,if=!debuff.judgment.up&buff.holy_avenger.up\nactions.generators+=/wake_of_ashes,if=(holy_power<=2&talent.execution_sentence.enabled&debuff.execution_sentence.remains>0&debuff.execution_sentence.remains<gcd*2)\nactions.generators+=/blade_of_justice,if=holy_power<=3&talent.blade_of_wrath.enabled&(talent.final_reckoning.enabled&debuff.final_reckoning.remains>gcd*2||talent.execution_sentence.enabled&!talent.final_reckoning.enabled&(debuff.execution_sentence.up||cooldown.execution_sentence.remains=0))\nactions.generators+=/judgment,if=!debuff.judgment.up&talent.seraphim.enabled&(holy_power>=1&runeforge.the_magistrates_judgment||holy_power>=2)\nactions.generators+=/wake_of_ashes,if=(holy_power=0||holy_power<=2&(cooldown.blade_of_justice.remains>gcd*2||debuff.execution_sentence.up||target.time_to_die<8||debuff.final_reckoning.up))&(!raid_event.adds.exists||raid_event.adds.in>20||raid_event.adds.up)&(!talent.execution_sentence.enabled||cooldown.execution_sentence.remains>15||target.time_to_die<8)&(!talent.final_reckoning.enabled||cooldown.final_reckoning.remains>15||target.time_to_die<8)&(cooldown.avenging_wrath.remains||cooldown.crusade.remains)\nactions.generators+=/call_action_list,name=finishers,if=holy_power>=3&buff.crusade.up&buff.crusade.stack<10\nactions.generators+=/blade_of_justice,if=holy_power<=3&conduit.expurgation.enabled&!covenant.venthyr\nactions.generators+=/judgment,if=!debuff.judgment.up\nactions.generators+=/hammer_of_wrath\nactions.generators+=/blade_of_justice,if=holy_power<=3\nactions.generators+=/call_action_list,name=finishers,if=(target.health.pct<=20||buff.avenging_wrath.up||buff.crusade.up||buff.empyrean_power.up)\nactions.generators+=/crusader_strike,if=cooldown.crusader_strike.charges_fractional>=1.75&(holy_power<=2||holy_power<=3&cooldown.blade_of_justice.remains>gcd*2||holy_power=4&cooldown.blade_of_justice.remains>gcd*2&cooldown.judgment.remains>gcd*2)\nactions.generators+=/consecration,if=!consecration.up&spell_targets.divine_storm>=2\nactions.generators+=/call_action_list,name=finishers\nactions.generators+=/consecration,if=!consecration.up\nactions.generators+=/crusader_strike\nactions.generators+=/arcane_torrent\nactions.generators+=/consecration",
["version"] = 20210719,
["warnings"] = "WARNING: The import for 'cooldowns' required some automated changes.\nLine 24: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nWARNING: The import for 'finishers' required some automated changes.\nLine 1: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 4: Converted SimC syntax % to Lua division operator (/) (1x).\nLine 5: Converted SimC syntax % to Lua division operator (/) (1x).\n\nWARNING: The import for 'generators' required some automated changes.\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 4: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\nLine 8: Converted 'runeforge.X' to 'runeforge.X.enabled' (1x).\n\nImported 5 action lists.\n",
["author"] = "SimC",
["lists"] = {
["default"] = {
{
["action"] = "rebuke",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "generators",
}, -- [3]
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
}, -- [1]
{
["action"] = "blessing_of_summer",
["enabled"] = true,
}, -- [2]
{
["action"] = "blessing_of_autumn",
["enabled"] = true,
}, -- [3]
{
["action"] = "blessing_of_winter",
["enabled"] = true,
}, -- [4]
{
["action"] = "blessing_of_spring",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "talent.final_reckoning.enabled & talent.seraphim.enabled",
["action"] = "arcane_torrent",
}, -- [6]
},
["generators"] = {
{
["enabled"] = true,
["criteria"] = "holy_power = 5 || buff.holy_avenger.up || debuff.final_reckoning.up || debuff.execution_sentence.up",
["action"] = "call_action_list",
["list_name"] = "finishers",
}, -- [1]
{
["action"] = "vanquishers_hammer",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "! debuff.judgment.up & ( ! talent.seraphim.enabled || buff.seraphim.up ) & ( ! raid_event.adds.exists || raid_event.adds.in > 30 || raid_event.adds.up ) & ( holy_power <= 2 || holy_power <= 4 & ( cooldown.blade_of_justice.remains > gcd * 2 || debuff.execution_sentence.up || debuff.final_reckoning.up ) ) & ( ! talent.final_reckoning.enabled || cooldown.final_reckoning.remains > gcd * 10 ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > gcd * 10 || target.time_to_die < 8 ) & ( cooldown.avenging_wrath.remains || cooldown.crusade.remains )",
["action"] = "divine_toll",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "runeforge.the_mad_paragon.enabled || runeforge.vanguards_momentum.enabled & talent.execution_sentence.enabled || covenant.venthyr & cooldown.ashen_hallow.remains > 210",
["action"] = "hammer_of_wrath",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "! debuff.judgment.up & buff.holy_avenger.up",
["action"] = "judgment",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "( holy_power <= 2 & talent.execution_sentence.enabled & debuff.execution_sentence.remains > 0 & debuff.execution_sentence.remains < gcd * 2 )",
["action"] = "wake_of_ashes",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 & talent.blade_of_wrath.enabled & ( talent.final_reckoning.enabled & debuff.final_reckoning.remains > gcd * 2 || talent.execution_sentence.enabled & ! talent.final_reckoning.enabled & ( debuff.execution_sentence.up || cooldown.execution_sentence.remains = 0 ) )",
["action"] = "blade_of_justice",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "! debuff.judgment.up & talent.seraphim.enabled & ( holy_power >= 1 & runeforge.the_magistrates_judgment.enabled || holy_power >= 2 )",
["action"] = "judgment",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "( holy_power = 0 || holy_power <= 2 & ( cooldown.blade_of_justice.remains > gcd * 2 || debuff.execution_sentence.up || target.time_to_die < 8 || debuff.final_reckoning.up ) ) & ( ! raid_event.adds.exists || raid_event.adds.in > 20 || raid_event.adds.up ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > 15 || target.time_to_die < 8 ) & ( ! talent.final_reckoning.enabled || cooldown.final_reckoning.remains > 15 || target.time_to_die < 8 ) & ( cooldown.avenging_wrath.remains || cooldown.crusade.remains )",
["action"] = "wake_of_ashes",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "holy_power >= 3 & buff.crusade.up & buff.crusade.stack < 10",
["action"] = "call_action_list",
["list_name"] = "finishers",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 & conduit.expurgation.enabled & ! covenant.venthyr",
["action"] = "blade_of_justice",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "! debuff.judgment.up",
["action"] = "judgment",
}, -- [12]
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["criteria"] = "holy_power <= 3",
["action"] = "blade_of_justice",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "( target.health.pct <= 20 || buff.avenging_wrath.up || buff.crusade.up || buff.empyrean_power.up )",
["action"] = "call_action_list",
["list_name"] = "finishers",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "cooldown.crusader_strike.charges_fractional >= 1.75 & ( holy_power <= 2 || holy_power <= 3 & cooldown.blade_of_justice.remains > gcd * 2 || holy_power = 4 & cooldown.blade_of_justice.remains > gcd * 2 & cooldown.judgment.remains > gcd * 2 )",
["action"] = "crusader_strike",
}, -- [16]
{
["enabled"] = true,
["criteria"] = "! consecration.up & spell_targets.divine_storm >= 2",
["action"] = "consecration",
}, -- [17]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "finishers",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! consecration.up",
["action"] = "consecration",
}, -- [19]
{
["action"] = "crusader_strike",
["enabled"] = true,
}, -- [20]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [21]
{
["action"] = "consecration",
["enabled"] = true,
}, -- [22]
},
["finishers"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.divine_storm = 2 & ! ( runeforge.final_verdict.enabled & talent.righteous_verdict.enabled & conduit.templars_vindication.enabled ) || spell_targets.divine_storm > 2 || buff.empyrean_power.up & debuff.judgment.down & buff.divine_purpose.down",
["var_name"] = "ds_castable",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "( cooldown.avenging_wrath.remains > 15 || cooldown.crusade.remains > 15 || talent.final_reckoning.enabled ) & ( ! talent.final_reckoning.enabled || cooldown.final_reckoning.remains > 20 + gcd * 3 || cooldown.final_reckoning.remains <= gcd * 3 & ( ! raid_event.adds.exists || raid_event.adds.in > 40 || raid_event.adds.in < gcd || raid_event.adds.up ) ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > 35 || cooldown.execution_sentence.remains <= gcd * 3 || talent.final_reckoning.enabled ) & ( ! covenant.kyrian || cooldown.divine_toll.remains > 45 || cooldown.divine_toll.remains < 9 ) || boss & fight_remains < 15 & fight_remains > 5",
["action"] = "seraphim",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "( buff.crusade.down & cooldown.crusade.remains > 10 || buff.crusade.stack >= 3 || cooldown.avenging_wrath.remains > 10 ) & ( ! talent.final_reckoning.enabled || cooldown.final_reckoning.remains > 10 ) & target.time_to_die > 8",
["action"] = "execution_sentence",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "variable.ds_castable & ! buff.vanquishers_hammer.up & ( ( ! talent.crusade.enabled || cooldown.crusade.remains > gcd * 3 ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > gcd * 6 || cooldown.execution_sentence.remains > gcd * 5 & holy_power >= 4 || target.time_to_die < 8 || ! talent.seraphim.enabled & cooldown.execution_sentence.remains > gcd * 2 ) & ( ! talent.final_reckoning.enabled || cooldown.final_reckoning.remains > gcd * 6 || cooldown.final_reckoning.remains > gcd * 5 & holy_power >= 4 || ! talent.seraphim.enabled & cooldown.final_reckoning.remains > gcd * 2 ) & ( ! talent.seraphim.enabled || cooldown.seraphim.remains / gcd + holy_power > 3 || talent.final_reckoning.enabled || talent.execution_sentence.enabled || covenant.kyrian ) || ( talent.holy_avenger.enabled & cooldown.holy_avenger.remains < gcd * 3 || buff.holy_avenger.up || buff.crusade.up & buff.crusade.stack < 10 ) )",
["action"] = "divine_storm",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd * 3 ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > gcd * 6 || cooldown.execution_sentence.remains > gcd * 5 & holy_power >= 4 || target.time_to_die < 8 || ! talent.seraphim.enabled & cooldown.execution_sentence.remains > gcd * 2 ) & ( ! talent.final_reckoning.enabled || cooldown.final_reckoning.remains > gcd * 6 || cooldown.final_reckoning.remains > gcd * 5 & holy_power >= 4 || ! talent.seraphim.enabled & cooldown.final_reckoning.remains > gcd * 2 ) & ( ! talent.seraphim.enabled || cooldown.seraphim.remains / gcd + holy_power > 3 || talent.final_reckoning.enabled || talent.execution_sentence.enabled || covenant.kyrian ) || talent.holy_avenger.enabled & cooldown.holy_avenger.remains < gcd * 3 || buff.holy_avenger.up || buff.crusade.up & buff.crusade.stack < 10",
["action"] = "templars_verdict",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "variable.ds_castable & talent.seraphim.enabled & talent.final_reckoning.enabled & ( cooldown.seraphim.ready & cooldown.final_reckoning.remains > 4 * gcd || cooldown.seraphim.remains > 3 * gcd & cooldown.final_reckoning.remains < 4 * gcd ) & holy_power = holy_power.max",
["action"] = "divine_storm",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "talent.seraphim.enabled & talent.final_reckoning.enabled & ( cooldown.seraphim.ready & cooldown.final_reckoning.remains > 4 * gcd || cooldown.seraphim.remains > 3 * gcd & cooldown.final_reckoning.remains < 4 * gcd ) & holy_power = holy_power.max",
["action"] = "templars_verdict",
}, -- [7]
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || boss & fight_remains < 25",
["action"] = "potion",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "spell_targets.lights_judgment >= 2 || ! raid_event.adds.exists || raid_event.adds.in > 75 || raid_event.adds.up",
["action"] = "lights_judgment",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10",
["action"] = "fireblood",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains < 52 ) & fight_remains > 15",
["action"] = "shield_of_vengeance",
}, -- [4]
{
["action"] = "blessing_of_summer",
["enabled"] = true,
}, -- [5]
{
["action"] = "blessing_of_autumn",
["enabled"] = true,
}, -- [6]
{
["action"] = "blessing_of_winter",
["enabled"] = true,
}, -- [7]
{
["action"] = "blessing_of_spring",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["name"] = "inscrutable_quantum_device",
["action"] = "inscrutable_quantum_device",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || boss & fight_remains < 30",
}, -- [9]
{
["enabled"] = true,
["name"] = "overwhelming_power_crystal",
["action"] = "overwhelming_power_crystal",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || boss & fight_remains < 15",
}, -- [10]
{
["enabled"] = true,
["name"] = "darkmoon_deck_voracity",
["action"] = "darkmoon_deck_voracity",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || boss & fight_remains < 20",
}, -- [11]
{
["enabled"] = true,
["name"] = "macabre_sheet_music",
["action"] = "macabre_sheet_music",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || boss & fight_remains < 20",
}, -- [12]
{
["enabled"] = true,
["name"] = "dreadfire_vessel",
["action"] = "dreadfire_vessel",
}, -- [13]
{
["enabled"] = true,
["name"] = "skulkers_wing",
["action"] = "skulkers_wing",
}, -- [14]
{
["enabled"] = true,
["name"] = "grim_codex",
["action"] = "grim_codex",
}, -- [15]
{
["enabled"] = true,
["name"] = "memory_of_past_sins",
["action"] = "memory_of_past_sins",
}, -- [16]
{
["enabled"] = true,
["name"] = "spare_meat_hook",
["action"] = "spare_meat_hook",
}, -- [17]
{
["enabled"] = true,
["name"] = "salvaged_fusion_amplifier",
["action"] = "salvaged_fusion_amplifier",
}, -- [18]
{
["enabled"] = true,
["name"] = "unchained_gladiators_badge_of_ferocity",
["action"] = "unchained_gladiators_badge_of_ferocity",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack >= 10 || cooldown.avenging_wrath.remains > 45 || cooldown.crusade.remains > 45",
}, -- [19]
{
["enabled"] = true,
["name"] = "unchained_aspirants_badge_of_ferocity",
["action"] = "unchained_aspirants_badge_of_ferocity",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack >= 10 || cooldown.avenging_wrath.remains > 45 || cooldown.crusade.remains > 45",
}, -- [20]
{
["enabled"] = true,
["name"] = "sinful_gladiators_badge_of_ferocity",
["action"] = "sinful_gladiators_badge_of_ferocity",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack >= 10 || cooldown.avenging_wrath.remains > 45 || cooldown.crusade.remains > 45",
}, -- [21]
{
["enabled"] = true,
["name"] = "sinful_aspirants_badge_of_ferocity",
["action"] = "sinful_aspirants_badge_of_ferocity",
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack >= 10 || cooldown.avenging_wrath.remains > 45 || cooldown.crusade.remains > 45",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack >= 10",
["action"] = "use_items",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "( holy_power >= 4 & time < 5 || holy_power >= 3 & ( time > 5 || runeforge.the_magistrates_judgment.enabled ) || talent.holy_avenger.enabled & cooldown.holy_avenger.remains = 0 ) & ( ! talent.seraphim.enabled || cooldown.seraphim.remains > 0 || talent.sanctified_wrath.enabled )",
["action"] = "avenging_wrath",
}, -- [24]
{
["enabled"] = true,
["criteria"] = "holy_power >= 4 & time < 5 || holy_power >= 3 & time > 5 || talent.holy_avenger.enabled & cooldown.holy_avenger.remains = 0",
["action"] = "crusade",
}, -- [25]
{
["action"] = "ashen_hallow",
["enabled"] = true,
}, -- [26]
{
["enabled"] = true,
["criteria"] = "time_to_hpg = 0 & ( buff.avenging_wrath.up || buff.crusade.up || buff.avenging_wrath.down & cooldown.avenging_wrath.remains > 40 || buff.crusade.down & cooldown.crusade.remains > 40 )",
["action"] = "holy_avenger",
}, -- [27]
{
["enabled"] = true,
["criteria"] = "( holy_power >= 4 & time < 8 || holy_power >= 3 & time >= 8 ) & cooldown.avenging_wrath.remains > gcd & time_to_hpg = 0 & ( ! talent.seraphim.enabled || buff.seraphim.up ) & ( ! raid_event.adds.exists || raid_event.adds.up || raid_event.adds.in > 40 )",
["action"] = "final_reckoning",
}, -- [28]
},
},
},
},
},
["Quillika - Deathwing"] = {
["runOnce"] = {
["autoconvertGlowsForCustomGlow_20190326"] = true,
["forceReloadClassDefaultOptions_20220306_254"] = true,
["resetAllPotions_20201209"] = true,
["enableAllOfTheThings_20180820"] = true,
["resetGlobalCooldownSync_20210403"] = true,
["forceReloadClassDefaultOptions_20220306_255"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["autoconvertDelaySweepToExtend_20190729"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
["autoconvertDisplayToggle_20190621_1"] = true,
["resetRogueMfDOption_20200226"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["forceReloadClassDefaultOptions_20220306_253"] = true,
["resetPotionsToDefaults_20190717"] = true,
["forceSpellFlashBrightness_20221030"] = true,
},
["specs"] = {
[255] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["use_harpoon"] = true,
["ca_vop_overlap"] = false,
["allow_focus_overcap"] = false,
},
["maxTime"] = 33,
},
[254] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["prevent_hardcasts"] = true,
["eagletalon_swap"] = false,
["trueshot_vop_overlap"] = false,
},
["maxTime"] = 33,
},
[253] = {
["potionsReset"] = 20180919.1,
["maxRefresh"] = 10,
["settings"] = {
["avoid_bw_overlap"] = false,
["check_pet_range"] = true,
["barbed_shot_grace_period"] = 0.5,
["aspect_vop_overlap"] = false,
},
["maxTime"] = 33,
},
[102] = {
["enhancedRecheck"] = true,
},
},
["displays"] = {
["Interrupts"] = {
["rel"] = "CENTER",
["x"] = -267.07861328125,
["y"] = -107.68505859375,
},
["Cooldowns"] = {
["rel"] = "CENTER",
["x"] = -319.9996337890625,
["y"] = -107.4996337890625,
},
["Primary"] = {
["rel"] = "CENTER",
["elvuiCooldown"] = true,
["x"] = -40.0003662109375,
["y"] = -294.9996337890625,
["zoom"] = 25,
["queue"] = {
["spacing"] = 0,
},
},
["AOE"] = {
["rel"] = "CENTER",
["zoom"] = 25,
["x"] = -39.16705322265625,
["y"] = -293.3329772949219,
["queue"] = {
["spacing"] = 0,
},
},
["Defensives"] = {
["rel"] = "CENTER",
["x"] = -373.0845642089844,
["y"] = -106.971435546875,
},
},
["packs"] = {
["Marksmanship"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230131,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["trickshots"] = {
{
["enabled"] = true,
["criteria"] = "talent.steady_focus.enabled & steady_focus_count & buff.steady_focus.remains < 8",
["action"] = "steady_shot",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.razor_fragments.up",
["action"] = "kill_shot",
}, -- [2]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [3]
{
["action"] = "death_chakram",
["enabled"] = true,
}, -- [4]
{
["action"] = "stampede",
["enabled"] = true,
}, -- [5]
{
["action"] = "wailing_arrow",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & talent.hydras_bite.enabled & ! talent.serpentstalkers_trickery.enabled",
["cycle_targets"] = 1,
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies > 7",
["action"] = "barrage",
}, -- [8]
{
["action"] = "volley",
["enabled"] = true,
}, -- [9]
{
["action"] = "trueshot",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.remains >= execute_time & talent.surging_shots.enabled",
["action"] = "rapid_fire",
}, -- [11]
{
["enabled"] = true,
["action"] = "aimed_shot",
["cycle_targets"] = 1,
["criteria"] = "talent.serpentstalkers_trickery.enabled & ( buff.trick_shots.remains >= execute_time & ( buff.precise_shots.down || buff.trueshot.up || full_recharge_time < cast_time + gcd.max ) )",
["description"] = "For Serpentstalker's Trickery, target the lowest remaining Serpent Sting. Generally only cast if it would cleave with Trick Shots. Don't overwrite Precise Shots unless Trueshot is up or Aimed Shot would cap otherwise.",
}, -- [12]
{
["enabled"] = true,
["action"] = "aimed_shot",
["cycle_targets"] = 1,
["criteria"] = "( buff.trick_shots.remains >= execute_time & ( buff.precise_shots.down || buff.trueshot.up || full_recharge_time < cast_time + gcd.max ) )",
["description"] = "For no Serpentstalker's Trickery, target the highest Latent Poison stack. Same general rules as the previous line.",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.remains >= execute_time",
["action"] = "rapid_fire",
}, -- [14]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.up & buff.precise_shots.up & focus > cost + action.aimed_shot.cost & active_enemies < 4",
["action"] = "chimaera_shot",
}, -- [15]
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.down || ( buff.precise_shots.up || buff.bulletstorm.stack = 10 ) & focus > cost + action.aimed_shot.cost",
["action"] = "multishot",
}, -- [16]
{
["enabled"] = true,
["action"] = "serpent_sting",
["cycle_targets"] = 1,
["criteria"] = "refreshable & talent.poison_injection.enabled & ! talent.serpentstalkers_trickery.enabled",
["description"] = "Only use baseline Serpent Sting as a filler in cleave if it's the only source of applying Latent Poison.",
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "steel_trap",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "focus > cost + action.aimed_shot.cost",
["action"] = "kill_shot",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "focus > cost + action.aimed_shot.cost",
["action"] = "multishot",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [21]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [22]
},
["default"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
}, -- [1]
{
["action"] = "tranquilizing_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.trueshot.ready & ( ! raid_event.adds.exists & ( ! talent.bullseye.enabled || fight_remains > cooldown.trueshot.duration_guess + buff.trueshot.duration / 2 || buff.bullseye.stack = buff.bullseye.max_stack ) & ( ! trinket.t1.has_use_buff || trinket.t1.cooldown.remains > 30 || trinket.t1.cooldown.ready ) & ( ! trinket.t2.has_use_buff || trinket.t2.cooldown.remains > 30 || trinket.t2.cooldown.ready ) || raid_event.adds.exists & ( ! raid_event.adds.up & ( raid_event.adds.duration + raid_event.adds.in < 25 || raid_event.adds.in > 60 ) || raid_event.adds.up & raid_event.adds.remains > 10 ) || active_enemies > 1 || boss & fight_remains < 25 )",
["description"] = "Determine if it is a good time to use Trueshot. Raid event optimization takes priority so usage is saved for multiple targets as long as it won't delay over half its duration. Otherwise allow for small delays to line up buff effect trinkets, and when using Bullseye, delay the last usage of the fight for max stacks.",
["var_name"] = "trueshot_ready",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3 || ! talent.trick_shots.enabled",
["list_name"] = "st",
}, -- [6]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2",
["list_name"] = "trickshots",
}, -- [7]
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "! talent.lone_wolf.enabled",
["action"] = "summon_pet",
}, -- [1]
{
["enabled"] = true,
["precast_time"] = "10",
["action"] = "salvo",
}, -- [2]
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
}, -- [3]
{
["enabled"] = true,
["action"] = "aimed_shot",
["description"] = "Precast Aimed Shot on one or two targets unless we could cleave it with Volley on two targets.",
["criteria"] = "active_enemies < 3 & ( ! talent.volley.enabled || active_enemies < 2 )",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || ! talent.steady_focus.enabled",
["action"] = "wailing_arrow",
}, -- [5]
{
["enabled"] = true,
["action"] = "steady_shot",
["description"] = "Precast Steady Shot on two targets if we are saving Aimed Shot to cleave with Volley, otherwise on three or more targets.",
["criteria"] = "active_enemies > 2 || talent.volley.enabled & active_enemies = 2",
}, -- [6]
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.trueshot_ready",
["description"] = "Signals that cooldowns are active or ready to activate that is desirable to sync a buff effect with.",
["var_name"] = "sync_ready",
}, -- [1]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.trueshot.up",
["description"] = "Signals that the cooldowns that are desirable to sync a buff with are active.",
["var_name"] = "sync_active",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.trueshot.remains",
["description"] = "The amount of time until the cooldowns will be ready that are desirable to sync a buff effect with.",
["var_name"] = "sync_remains",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! trinket.t2.has_cooldown || trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff || trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) || ! trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) )",
["description"] = "Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times.",
["var_name"] = "trinket_1_stronger",
}, -- [4]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! trinket.t1.has_cooldown || trinket.t2.has_use_buff & ( ! trinket.t1.has_use_buff || trinket.t1.cooldown.duration < trinket.t2.cooldown.duration || trinket.t1.cast_time < trinket.t2.cast_time || trinket.t1.cast_time = trinket.t2.cast_time & trinket.t1.cooldown.duration = trinket.t2.cooldown.duration ) || ! trinket.t2.has_use_buff & ( ! trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration < trinket.t2.cooldown.duration || trinket.t1.cast_time < trinket.t2.cast_time || trinket.t1.cast_time = trinket.t2.cast_time & trinket.t1.cooldown.duration = trinket.t2.cooldown.duration ) )",
["var_name"] = "trinket_2_stronger",
}, -- [5]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "trinket.t1.has_use_buff & ( variable.sync_ready & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || ! variable.sync_ready & ( variable.trinket_1_stronger & ( variable.sync_remains > trinket.t1.cooldown.duration / 2 || trinket.t2.has_use_buff & trinket.t2.cooldown.remains > variable.sync_remains - 15 & trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 40 > fight_remains ) || variable.trinket_2_stronger & ( trinket.t2.cooldown.remains & ( trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t2.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t1.cooldown.duration / 2 || boss & trinket.t1.cooldown.duration < fight_remains & ( variable.sync_remains + trinket.t1.cooldown.duration > fight_remains ) ) ) || trinket.t2.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t2.cooldown.duration / 2 ) ) ) || ! trinket.t1.has_use_buff & ( trinket.t1.cast_time = 0 || ! variable.sync_active ) & ( ( ! trinket.t2.has_use_buff & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || trinket.t2.has_use_buff & ( variable.sync_remains > 20 || trinket.t2.cooldown.remains > 20 ) ) ) || target.time_to_die < 25 & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains )",
["description"] = "Uses buff effect trinkets with cooldowns and is willing to delay usage up to half the trinket cooldown if it won't lose a usage in the fight. Fills in downtime with weaker buff effects if they won't also be saved for later cooldowns (happens if it won't delay over half the trinket cooldown and a stronger trinket won't be up in time) or damage effects if they won't inferfere with any buff effect usage. Intended to be slot-agnostic so that any order of the same trinket pair should result in the same usage.",
}, -- [6]
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "trinket.t2.has_use_buff & ( variable.sync_ready & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || ! variable.sync_ready & ( variable.trinket_2_stronger & ( variable.sync_remains > trinket.t2.cooldown.duration / 2 || trinket.t1.has_use_buff & trinket.t1.cooldown.remains > variable.sync_remains - 15 & trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 40 > fight_remains ) || variable.trinket_1_stronger & ( trinket.t1.cooldown.remains & ( trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t1.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t2.cooldown.duration / 2 || boss & trinket.t2.cooldown.duration < fight_remains & ( variable.sync_remains + trinket.t2.cooldown.duration > fight_remains ) ) ) || trinket.t1.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t1.cooldown.duration / 2 ) ) ) || ! trinket.t2.has_use_buff & ( trinket.t2.cast_time = 0 || ! variable.sync_active ) & ( ( ! trinket.t1.has_use_buff & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || trinket.t1.has_use_buff & ( variable.sync_remains > 20 || trinket.t1.cooldown.remains > 20 ) ) ) || target.time_to_die < 25 & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains )",
}, -- [7]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "talent.steady_focus.enabled & ( steady_focus_count & buff.steady_focus.remains < 5 || buff.steady_focus.down & ! buff.trueshot.up )",
["action"] = "steady_shot",
}, -- [1]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.salvo.up",
["action"] = "volley",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "steel_trap",
}, -- [4]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & ! talent.serpentstalkers_trickery.enabled & buff.trueshot.down",
["cycle_targets"] = 1,
}, -- [5]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [6]
{
["action"] = "stampede",
["enabled"] = true,
}, -- [7]
{
["action"] = "death_chakram",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "wailing_arrow",
}, -- [9]
{
["action"] = "volley",
["enabled"] = true,
}, -- [10]
{
["enabled"] = true,
["criteria"] = "talent.surging_shots.enabled",
["action"] = "rapid_fire",
}, -- [11]
{
["enabled"] = true,
["criteria"] = "variable.trueshot_ready",
["action"] = "trueshot",
}, -- [12]
{
["enabled"] = true,
["action"] = "multishot",
["description"] = "Trigger Trick Shots from Bombardment if it isn't already up, or trigger Salvo if Volley isn't being used to trigger it.",
["criteria"] = "buff.bombardment.up & buff.trick_shots.down & active_enemies > 1 || buff.salvo.up & ! talent.volley.enabled",
}, -- [13]
{
["enabled"] = true,
["action"] = "aimed_shot",
["cycle_targets"] = 1,
["criteria"] = "talent.serpentstalkers_trickery.enabled & ( buff.precise_shots.down || ( buff.trueshot.up || full_recharge_time < gcd.max + cast_time ) & ( ! talent.chimaera_shot.enabled || active_enemies < 2 || ca_active ) || buff.trick_shots.remains > execute_time & active_enemies > 1 )",
["description"] = "With Serpentstalker's Trickery target the lowest remaining Serpent Sting. Without Chimaera Shot don't overwrite Precise Shots unless either Trueshot is active or Aimed Shot would cap before its next cast. On two targets with Chimaera Shot don't overwrite Precise Shots unless the target is within Careful Aim range in addition to either Trueshot being active or Aimed Shot capping before its next cast. Overwrite freely if it can cleave.",
}, -- [14]
{
["enabled"] = true,
["action"] = "aimed_shot",
["cycle_targets"] = 1,
["criteria"] = "buff.precise_shots.down || ( buff.trueshot.up || full_recharge_time < gcd.max + cast_time ) & ( ! talent.chimaera_shot.enabled || active_enemies < 2 || ca_active ) || buff.trick_shots.remains > execute_time & active_enemies > 1",
["description"] = "Without Serpentstalker's Trickery, target the highest Latent Poison stack. Same rules as the previous line.",
}, -- [15]
{
["enabled"] = true,
["action"] = "steady_shot",
["description"] = "Refresh Steady Focus if it would run out while refreshing it.",
["criteria"] = "talent.steady_focus.enabled & buff.steady_focus.remains < execute_time * 2",
}, -- [16]
{
["action"] = "rapid_fire",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "wailing_arrow",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "kill_command",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.up || focus > cost + action.aimed_shot.cost",
["action"] = "chimaera_shot",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.up || focus > cost + action.aimed_shot.cost",
["action"] = "arcane_shot",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
}, -- [22]
{
["action"] = "steady_shot",
["enabled"] = true,
}, -- [23]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 13",
["action"] = "berserking",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 16",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 16",
["action"] = "ancestral_call",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 9",
["action"] = "fireblood",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "lights_judgment",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & ( buff.bloodlust.up || target.health.pct < 20 ) || boss & fight_remains < 26",
["action"] = "potion",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || cooldown.volley.remains < 10",
["action"] = "salvo",
}, -- [7]
},
},
["version"] = 20230131,
["warnings"] = "The import for 'trickshots' required some automated changes.\nLine 1: Converted 'talent.steady_focus' to 'talent.steady_focus.enabled' (1x).\nLine 7: Converted 'talent.hydras_bite' to 'talent.hydras_bite.enabled' (1x).\nLine 7: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\nLine 11: Converted 'talent.surging_shots' to 'talent.surging_shots.enabled' (1x).\nLine 12: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\nLine 17: Converted 'talent.poison_injection' to 'talent.poison_injection.enabled' (1x).\nLine 17: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.bullseye' to 'talent.bullseye.enabled' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 3: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 3: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 3: Converted operations in 'cooldown.trueshot.ready&(!raid_event.adds.exists&(!talent.bullseye.enabled||fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration%2||buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.t1.has_use_buff||trinket.t1.cooldown.remains>30||trinket.t1.cooldown.ready)&(!trinket.t2.has_use_buff||trinket.t2.cooldown.remains>30||trinket.t2.cooldown.ready)||raid_event.adds.exists&(!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<25||raid_event.adds.in>60)||raid_event.adds.up&raid_event.adds.remains>10)||active_enemies>1||boss&fight_remains<25)' to 'cooldown.trueshot.ready&(!raid_event.adds.exists&(!talent.bullseye.enabled||fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration/2||buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.t1.has_use_buff||trinket.t1.cooldown.remains>30||trinket.t1.cooldown.ready)&(!trinket.t2.has_use_buff||trinket.t2.cooldown.remains>30||trinket.t2.cooldown.ready)||raid_event.adds.exists&(!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<25||raid_event.adds.in>60)||raid_event.adds.up&raid_event.adds.remains>10)||active_enemies>1||boss&fight_remains<25)'.\nLine 6: Converted 'talent.trick_shots' to 'talent.trick_shots.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'talent.lone_wolf' to 'talent.lone_wolf.enabled' (1x).\nLine 4: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\nLine 5: Converted 'talent.steady_focus' to 'talent.steady_focus.enabled' (1x).\nLine 6: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 1: Converted 'talent.steady_focus' to 'talent.steady_focus.enabled' (1x).\nLine 5: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\nLine 11: Converted 'talent.surging_shots' to 'talent.surging_shots.enabled' (1x).\nLine 13: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\nLine 14: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\nLine 14: Converted 'talent.chimaera_shot' to 'talent.chimaera_shot.enabled' (1x).\nLine 15: Converted 'talent.chimaera_shot' to 'talent.chimaera_shot.enabled' (1x).\nLine 16: Converted 'talent.steady_focus' to 'talent.steady_focus.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 4: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (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 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (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 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 6: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 6: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\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 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted operations in 'trinket.t1.has_use_buff&(variable.sync_ready&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||!variable.sync_ready&(variable.trinket_1_stronger&(variable.sync_remains>trinket.t1.cooldown.duration%2||trinket.t2.has_use_buff&trinket.t2.cooldown.remains>variable.sync_remains-15&trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration%2||boss&trinket.t1.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t1.cooldown.duration>fight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t2.cooldown.duration%2)))||!trinket.t1.has_use_buff&(trinket.t1.cast_time=0||!variable.sync_active)&((!trinket.t2.has_use_buff&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||trinket.t2.has_use_buff&(variable.sync_remains>20||trinket.t2.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)' to 'trinket.t1.has_use_buff&(variable.sync_ready&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||!variable.sync_ready&(variable.trinket_1_stronger&(variable.sync_remains>trinket.t1.cooldown.duration/2||trinket.t2.has_use_buff&trinket.t2.cooldown.remains>variable.sync_remains-15&trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration/2||boss&trinket.t1.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t1.cooldown.duration>fight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t2.cooldown.duration/2)))||!trinket.t1.has_use_buff&(trinket.t1.cast_time=0||!variable.sync_active)&((!trinket.t2.has_use_buff&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||trinket.t2.has_use_buff&(variable.sync_remains>20||trinket.t2.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)'.\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.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.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.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.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.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 7: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 7: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 7: Converted operations in 'trinket.t2.has_use_buff&(variable.sync_ready&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||!variable.sync_ready&(variable.trinket_2_stronger&(variable.sync_remains>trinket.t2.cooldown.duration%2||trinket.t1.has_use_buff&trinket.t1.cooldown.remains>variable.sync_remains-15&trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration%2||boss&trinket.t2.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t2.cooldown.duration>fight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t1.cooldown.duration%2)))||!trinket.t2.has_use_buff&(trinket.t2.cast_time=0||!variable.sync_active)&((!trinket.t1.has_use_buff&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||trinket.t1.has_use_buff&(variable.sync_remains>20||trinket.t1.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)' to 'trinket.t2.has_use_buff&(variable.sync_ready&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||!variable.sync_ready&(variable.trinket_2_stronger&(variable.sync_remains>trinket.t2.cooldown.duration/2||trinket.t1.has_use_buff&trinket.t1.cooldown.remains>variable.sync_remains-15&trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration/2||boss&trinket.t2.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t2.cooldown.duration>fight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t1.cooldown.duration/2)))||!trinket.t2.has_use_buff&(trinket.t2.cast_time=0||!variable.sync_active)&((!trinket.t1.has_use_buff&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||trinket.t1.has_use_buff&(variable.sync_remains>20||trinket.t1.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)'.\n\nImported 6 action lists.\n",
["profile"] = "actions.precombat+=/summon_pet,if=!talent.lone_wolf\nactions.precombat+=/salvo,precast_time=10\nactions.precombat+=/use_item,name=algethar_puzzle_box\n# Precast Aimed Shot on one or two targets unless we could cleave it with Volley on two targets.\nactions.precombat+=/aimed_shot,if=active_enemies<3&(!talent.volley||active_enemies<2)\nactions.precombat+=/wailing_arrow,if=active_enemies>2||!talent.steady_focus\n# Precast Steady Shot on two targets if we are saving Aimed Shot to cleave with Volley, otherwise on three or more targets.\nactions.precombat+=/steady_shot,if=active_enemies>2||talent.volley&active_enemies=2\n\nactions=counter_shot\nactions+=/tranquilizing_shot\n# Determine if it is a good time to use Trueshot. Raid event optimization takes priority so usage is saved for multiple targets as long as it won't delay over half its duration. Otherwise allow for small delays to line up buff effect trinkets, and when using Bullseye, delay the last usage of the fight for max stacks.\nactions+=/variable,name=trueshot_ready,value=cooldown.trueshot.ready&(!raid_event.adds.exists&(!talent.bullseye||fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration%2||buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.1.has_use_buff||trinket.1.cooldown.remains>30||trinket.1.cooldown.ready)&(!trinket.2.has_use_buff||trinket.2.cooldown.remains>30||trinket.2.cooldown.ready)||raid_event.adds.exists&(!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<25||raid_event.adds.in>60)||raid_event.adds.up&raid_event.adds.remains>10)||active_enemies>1||boss&fight_remains<25)\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<3||!talent.trick_shots\nactions+=/call_action_list,name=trickshots,strict=1,if=active_enemies>2\n\nactions.cds+=/berserking,if=boss&fight_remains<13\nactions.cds+=/blood_fury,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<16\nactions.cds+=/ancestral_call,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<16\nactions.cds+=/fireblood,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<9\nactions.cds+=/lights_judgment,if=buff.trueshot.down\nactions.cds+=/potion,if=buff.trueshot.up&(buff.bloodlust.up||target.health.pct<20)||boss&fight_remains<26\nactions.cds+=/salvo,if=active_enemies>2||cooldown.volley.remains<10\n\nactions.st+=/steady_shot,if=talent.steady_focus&(steady_focus_count&buff.steady_focus.remains<5||buff.steady_focus.down&!buff.trueshot.up)\nactions.st+=/kill_shot\nactions.st+=/volley,if=buff.salvo.up\nactions.st+=/steel_trap,if=buff.trueshot.down\nactions.st+=/serpent_sting,cycle_targets=1,if=refreshable&!talent.serpentstalkers_trickery&buff.trueshot.down\nactions.st+=/explosive_shot\nactions.st+=/stampede\nactions.st+=/death_chakram\nactions.st+=/wailing_arrow,if=active_enemies>1\nactions.st+=/volley\nactions.st+=/rapid_fire,if=talent.surging_shots\nactions.st+=/trueshot,if=variable.trueshot_ready\n# Trigger Trick Shots from Bombardment if it isn't already up, or trigger Salvo if Volley isn't being used to trigger it.\nactions.st+=/multishot,if=buff.bombardment.up&buff.trick_shots.down&active_enemies>1||buff.salvo.up&!talent.volley\n# With Serpentstalker's Trickery target the lowest remaining Serpent Sting. Without Chimaera Shot don't overwrite Precise Shots unless either Trueshot is active or Aimed Shot would cap before its next cast. On two targets with Chimaera Shot don't overwrite Precise Shots unless the target is within Careful Aim range in addition to either Trueshot being active or Aimed Shot capping before its next cast. Overwrite freely if it can cleave.\nactions.st+=/aimed_shot,cycle_targets=1,if=talent.serpentstalkers_trickery&(buff.precise_shots.down||(buff.trueshot.up||full_recharge_time<gcd+cast_time)&(!talent.chimaera_shot||active_enemies<2||ca_active)||buff.trick_shots.remains>execute_time&active_enemies>1)\n# Without Serpentstalker's Trickery, target the highest Latent Poison stack. Same rules as the previous line.\nactions.st+=/aimed_shot,cycle_targets=1,if=buff.precise_shots.down||(buff.trueshot.up||full_recharge_time<gcd+cast_time)&(!talent.chimaera_shot||active_enemies<2||ca_active)||buff.trick_shots.remains>execute_time&active_enemies>1\n# Refresh Steady Focus if it would run out while refreshing it.\nactions.st+=/steady_shot,if=talent.steady_focus&buff.steady_focus.remains<execute_time*2\nactions.st+=/rapid_fire\nactions.st+=/wailing_arrow,if=buff.trueshot.down\nactions.st+=/kill_command,if=buff.trueshot.down\nactions.st+=/chimaera_shot,if=buff.precise_shots.up||focus>cost+action.aimed_shot.cost\nactions.st+=/arcane_shot,if=buff.precise_shots.up||focus>cost+action.aimed_shot.cost\nactions.st+=/bag_of_tricks,if=buff.trueshot.down\nactions.st+=/steady_shot\n\nactions.trickshots+=/steady_shot,if=talent.steady_focus&steady_focus_count&buff.steady_focus.remains<8\nactions.trickshots+=/kill_shot,if=buff.razor_fragments.up\nactions.trickshots+=/explosive_shot\nactions.trickshots+=/death_chakram\nactions.trickshots+=/stampede\nactions.trickshots+=/wailing_arrow\nactions.trickshots+=/serpent_sting,cycle_targets=1,if=refreshable&talent.hydras_bite&!talent.serpentstalkers_trickery\nactions.trickshots+=/barrage,if=active_enemies>7\nactions.trickshots+=/volley\nactions.trickshots+=/trueshot\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.remains>=execute_time&talent.surging_shots\n# For Serpentstalker's Trickery, target the lowest remaining Serpent Sting. Generally only cast if it would cleave with Trick Shots. Don't overwrite Precise Shots unless Trueshot is up or Aimed Shot would cap otherwise.\nactions.trickshots+=/aimed_shot,cycle_targets=1,if=talent.serpentstalkers_trickery&(buff.trick_shots.remains>=execute_time&(buff.precise_shots.down||buff.trueshot.up||full_recharge_time<cast_time+gcd))\n# For no Serpentstalker's Trickery, target the highest Latent Poison stack. Same general rules as the previous line.\nactions.trickshots+=/aimed_shot,cycle_targets=1,if=(buff.trick_shots.remains>=execute_time&(buff.precise_shots.down||buff.trueshot.up||full_recharge_time<cast_time+gcd))\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.remains>=execute_time\nactions.trickshots+=/chimaera_shot,if=buff.trick_shots.up&buff.precise_shots.up&focus>cost+action.aimed_shot.cost&active_enemies<4\nactions.trickshots+=/multishot,if=buff.trick_shots.down||(buff.precise_shots.up||buff.bulletstorm.stack=10)&focus>cost+action.aimed_shot.cost\n# Only use baseline Serpent Sting as a filler in cleave if it's the only source of applying Latent Poison.\nactions.trickshots+=/serpent_sting,cycle_targets=1,if=refreshable&talent.poison_injection&!talent.serpentstalkers_trickery\nactions.trickshots+=/steel_trap,if=buff.trueshot.down\nactions.trickshots+=/kill_shot,if=focus>cost+action.aimed_shot.cost\nactions.trickshots+=/multishot,if=focus>cost+action.aimed_shot.cost\nactions.trickshots+=/bag_of_tricks,if=buff.trueshot.down\nactions.trickshots+=/steady_shot\n\n# Signals that cooldowns are active or ready to activate that is desirable to sync a buff effect with.\nactions.trinkets+=/variable,name=sync_ready,value=variable.trueshot_ready\n# Signals that the cooldowns that are desirable to sync a buff with are active.\nactions.trinkets+=/variable,name=sync_active,value=buff.trueshot.up\n# The amount of time until the cooldowns will be ready that are desirable to sync a buff effect with.\nactions.trinkets+=/variable,name=sync_remains,value=cooldown.trueshot.remains\n# Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times.\nactions.trinkets+=/variable,name=trinket_1_stronger,value=!trinket.2.has_cooldown||trinket.1.has_use_buff&(!trinket.2.has_use_buff||trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration)||!trinket.1.has_use_buff&(!trinket.2.has_use_buff&(trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration))\nactions.trinkets+=/variable,name=trinket_2_stronger,value=!trinket.1.has_cooldown||trinket.2.has_use_buff&(!trinket.1.has_use_buff||trinket.1.cooldown.duration<trinket.2.cooldown.duration||trinket.1.cast_time<trinket.2.cast_time||trinket.1.cast_time=trinket.2.cast_time&trinket.1.cooldown.duration=trinket.2.cooldown.duration)||!trinket.2.has_use_buff&(!trinket.1.has_use_buff&(trinket.1.cooldown.duration<trinket.2.cooldown.duration||trinket.1.cast_time<trinket.2.cast_time||trinket.1.cast_time=trinket.2.cast_time&trinket.1.cooldown.duration=trinket.2.cooldown.duration))\n# Uses buff effect trinkets with cooldowns and is willing to delay usage up to half the trinket cooldown if it won't lose a usage in the fight. Fills in downtime with weaker buff effects if they won't also be saved for later cooldowns (happens if it won't delay over half the trinket cooldown and a stronger trinket won't be up in time) or damage effects if they won't inferfere with any buff effect usage. Intended to be slot-agnostic so that any order of the same trinket pair should result in the same usage.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=trinket.1.has_use_buff&(variable.sync_ready&(variable.trinket_1_stronger||trinket.2.cooldown.remains)||!variable.sync_ready&(variable.trinket_1_stronger&(variable.sync_remains>trinket.1.cooldown.duration%2||trinket.2.has_use_buff&trinket.2.cooldown.remains>variable.sync_remains-15&trinket.2.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_2_stronger&(trinket.2.cooldown.remains&(trinket.2.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.1.cooldown.duration%2||boss&trinket.1.cooldown.duration<fight_remains&(variable.sync_remains+trinket.1.cooldown.duration>fight_remains)))||trinket.2.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.2.cooldown.duration%2)))||!trinket.1.has_use_buff&(trinket.1.cast_time=0||!variable.sync_active)&((!trinket.2.has_use_buff&(variable.trinket_1_stronger||trinket.2.cooldown.remains)||trinket.2.has_use_buff&(variable.sync_remains>20||trinket.2.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_1_stronger||trinket.2.cooldown.remains)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=trinket.2.has_use_buff&(variable.sync_ready&(variable.trinket_2_stronger||trinket.1.cooldown.remains)||!variable.sync_ready&(variable.trinket_2_stronger&(variable.sync_remains>trinket.2.cooldown.duration%2||trinket.1.has_use_buff&trinket.1.cooldown.remains>variable.sync_remains-15&trinket.1.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_1_stronger&(trinket.1.cooldown.remains&(trinket.1.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.2.cooldown.duration%2||boss&trinket.2.cooldown.duration<fight_remains&(variable.sync_remains+trinket.2.cooldown.duration>fight_remains)))||trinket.1.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.1.cooldown.duration%2)))||!trinket.2.has_use_buff&(trinket.2.cast_time=0||!variable.sync_active)&((!trinket.1.has_use_buff&(variable.trinket_2_stronger||trinket.1.cooldown.remains)||trinket.1.has_use_buff&(variable.sync_remains>20||trinket.1.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_2_stronger||trinket.1.cooldown.remains)",
["spec"] = 254,
},
["Beast Mastery"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230123,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["description"] = "Executed every time the actor is available.",
["action"] = "counter_shot",
}, -- [1]
{
["action"] = "tranquilizing_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 2 || ! talent.beast_cleave.enabled & active_enemies < 3",
["list_name"] = "st",
}, -- [5]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2 || talent.beast_cleave.enabled & active_enemies > 1",
["list_name"] = "cleave",
}, -- [6]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["action"] = "bottled_flayedwing_toxin",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["precast_time"] = "1.5",
["action"] = "steel_trap",
["criteria"] = "! talent.wailing_arrow.enabled & talent.steel_trap.enabled",
}, -- [3]
},
["cleave"] = {
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "debuff.latent_poison.stack > 9 & ( buff.frenzy.up & buff.frenzy.remains <= gcd.max + 0.25 || talent.scent_of_blood.enabled & cooldown.bestial_wrath.remains < 12 + gcd.max || full_recharge_time < gcd.max & cooldown.bestial_wrath.remains )",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + 0.25 + barbed_shot_grace_period || talent.scent_of_blood.enabled & cooldown.bestial_wrath.remains < 12 + gcd.max || full_recharge_time < gcd.max & cooldown.bestial_wrath.remains",
["cycle_targets"] = 1,
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.beast_cleave.remains < 0.25 + gcd.max",
["action"] = "multishot",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max & talent.alpha_predator.enabled & talent.kill_cleave.enabled",
["action"] = "kill_command",
}, -- [4]
{
["action"] = "call_of_the_wild",
["enabled"] = true,
}, -- [5]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.up || boss & fight_remains < 15",
["action"] = "stampede",
}, -- [7]
{
["action"] = "bloodshed",
["enabled"] = true,
}, -- [8]
{
["action"] = "death_chakram",
["enabled"] = true,
}, -- [9]
{
["action"] = "bestial_wrath",
["enabled"] = true,
}, -- [10]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [11]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "debuff.latent_poison.stack > 9 & ( talent.wild_instincts.enabled & buff.call_of_the_wild.up || boss & fight_remains < 9 || talent.wild_call.enabled & charges_fractional > 1.2 )",
["cycle_targets"] = 1,
}, -- [13]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "talent.wild_instincts.enabled & buff.call_of_the_wild.up || boss & fight_remains < 9 || talent.wild_call.enabled & charges_fractional > 1.2",
["cycle_targets"] = 1,
}, -- [14]
{
["action"] = "kill_command",
["enabled"] = true,
}, -- [15]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [16]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & target.time_to_die > duration",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.remains > execute_time",
["action"] = "barrage",
}, -- [18]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [19]
{
["action"] = "aspect_of_the_wild",
["enabled"] = true,
}, -- [20]
{
["enabled"] = true,
["criteria"] = "focus.time_to_max < gcd.max * 2 || buff.aspect_of_the_wild.up & focus.time_to_max < gcd.max * 4",
["action"] = "cobra_shot",
}, -- [21]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.remains > execute_time || boss & fight_remains < 5",
["action"] = "wailing_arrow",
}, -- [22]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || boss & fight_remains < 5",
["action"] = "bag_of_tricks",
}, -- [23]
{
["enabled"] = true,
["criteria"] = "( focus + focus.regen + 30 ) < focus.max",
["action"] = "arcane_torrent",
}, -- [24]
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.call_of_the_wild.up || cooldown.call_of_the_wild.remains < 2 || ! talent.call_of_the_wild.enabled & ( prev_gcd.1.bestial_wrath || cooldown.bestial_wrath.remains_guess < 2 )",
["var_name"] = "sync_up",
}, -- [1]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "sync_remains",
["criteria"] = "! talent.call_of_the_wild.enabled",
["value_else"] = "cooldown.call_of_the_wild.remains",
["value"] = "cooldown.bestial_wrath.remains_guess",
}, -- [2]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! trinket.t2.has_cooldown || trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff || trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) || ! trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) )",
["var_name"] = "trinket_1_stronger",
}, -- [3]
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! trinket.t1.has_cooldown || trinket.t2.has_use_buff & ( ! trinket.t1.has_use_buff || trinket.t1.cooldown.duration < trinket.t2.cooldown.duration || trinket.t1.cast_time < trinket.t2.cast_time || trinket.t1.cast_time = trinket.t2.cast_time & trinket.t1.cooldown.duration = trinket.t2.cooldown.duration ) || ! trinket.t2.has_use_buff & ( ! trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration < trinket.t2.cooldown.duration || trinket.t1.cast_time < trinket.t2.cast_time || trinket.t1.cast_time = trinket.t2.cast_time & trinket.t1.cooldown.duration = trinket.t2.cooldown.duration ) )",
["var_name"] = "trinket_2_stronger",
}, -- [4]
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "( trinket.t1.has_use_buff & ( variable.sync_up & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || ! variable.sync_up & ( variable.trinket_1_stronger & ( variable.sync_remains > trinket.t1.cooldown.duration / 2 || trinket.t2.has_use_buff & trinket.t2.cooldown.remains > variable.sync_remains - 15 & trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 40 > fight_remains ) || variable.trinket_2_stronger & ( trinket.t2.cooldown.remains & ( trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t2.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t1.cooldown.duration / 2 || trinket.t1.cooldown.duration < fight_remains & ( variable.sync_remains + trinket.t1.cooldown.duration > fight_remains ) ) ) || trinket.t2.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t2.cooldown.duration / 2 ) ) ) || ! trinket.t1.has_use_buff & ( ( ! trinket.t2.has_use_buff & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || trinket.t2.has_use_buff & ( variable.sync_remains > 20 || trinket.t2.cooldown.remains > 20 ) ) ) || target.time_to_die < 25 & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) ) & buff.frenzy.remains > trinket.t1.cast_time",
}, -- [5]
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "( trinket.t2.has_use_buff & ( variable.sync_up & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || ! variable.sync_up & ( variable.trinket_2_stronger & ( variable.sync_remains > trinket.t2.cooldown.duration / 2 || trinket.t1.has_use_buff & trinket.t1.cooldown.remains > variable.sync_remains - 15 & trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 40 > fight_remains ) || variable.trinket_1_stronger & ( trinket.t1.cooldown.remains & ( trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t1.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t2.cooldown.duration / 2 || trinket.t2.cooldown.duration < fight_remains & ( variable.sync_remains + trinket.t2.cooldown.duration > fight_remains ) ) ) || trinket.t1.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t1.cooldown.duration / 2 ) ) ) || ! trinket.t2.has_use_buff & ( ( ! trinket.t1.has_use_buff & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || trinket.t1.has_use_buff & ( variable.sync_remains > 20 || trinket.t1.cooldown.remains > 20 ) ) ) || target.time_to_die < 25 & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) ) & buff.frenzy.remains > trinket.t2.cast_time",
}, -- [6]
},
["st"] = {
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + 0.25 + barbed_shot_grace_period || talent.scent_of_blood.enabled & buff.frenzy.stack < 3 & cooldown.bestial_wrath.ready",
["cycle_targets"] = 1,
}, -- [1]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max & talent.alpha_predator.enabled",
["action"] = "kill_command",
}, -- [2]
{
["action"] = "call_of_the_wild",
["enabled"] = true,
}, -- [3]
{
["action"] = "death_chakram",
["enabled"] = true,
}, -- [4]
{
["action"] = "bloodshed",
["enabled"] = true,
}, -- [5]
{
["action"] = "stampede",
["enabled"] = true,
}, -- [6]
{
["action"] = "a_murder_of_crows",
["enabled"] = true,
}, -- [7]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [8]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [9]
{
["action"] = "bestial_wrath",
["enabled"] = true,
}, -- [10]
{
["action"] = "kill_command",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "talent.wild_instincts.enabled & buff.call_of_the_wild.up || talent.wild_call.enabled & charges_fractional > 1.4 || full_recharge_time < gcd.max & cooldown.bestial_wrath.remains || talent.scent_of_blood.enabled & ( cooldown.bestial_wrath.remains < 12 + gcd.max || full_recharge_time + gcd.max < 8 & cooldown.bestial_wrath.remains < 24 + ( 8 - gcd.max ) + full_recharge_time ) || boss & fight_remains < 9",
["cycle_targets"] = 1,
}, -- [12]
{
["action"] = "dire_beast",
["enabled"] = true,
}, -- [13]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & target.time_to_die > duration",
["cycle_targets"] = 1,
}, -- [14]
{
["action"] = "kill_shot",
["enabled"] = true,
}, -- [15]
{
["action"] = "aspect_of_the_wild",
["enabled"] = true,
}, -- [16]
{
["action"] = "cobra_shot",
["enabled"] = true,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "buff.frenzy.remains > execute_time || boss & fight_remains < 5",
["action"] = "wailing_arrow",
}, -- [18]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || boss & fight_remains < 5",
["action"] = "bag_of_tricks",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || boss & fight_remains < 5",
["action"] = "arcane_pulse",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "( focus + focus.regen + 15 ) < focus.max",
["action"] = "arcane_torrent",
}, -- [21]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "! talent.bestial_wrath.enabled || buff.bestial_wrath.up || boss & fight_remains < 16",
["action"] = "berserking",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || ! talent.call_of_the_wild.enabled & ( buff.bestial_wrath.up & ( buff.bloodlust.up || target.health.pct < 20 ) ) || boss & fight_remains < 16",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || ! talent.call_of_the_wild.enabled & ( buff.bestial_wrath.up & ( buff.bloodlust.up || target.health.pct < 20 ) ) || boss & fight_remains < 16",
["action"] = "ancestral_call",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || ! talent.call_of_the_wild.enabled & ( buff.bestial_wrath.up & ( buff.bloodlust.up || target.health.pct < 20 ) ) || boss & fight_remains < 10",
["action"] = "fireblood",
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || ! talent.call_of_the_wild.enabled & ( buff.bestial_wrath.up & ( buff.bloodlust.up || target.health.pct < 20 ) ) || boss & fight_remains < 31",
["action"] = "potion",
}, -- [5]
},
},
["version"] = 20230123,
["warnings"] = "The import for 'default' required some automated changes.\nLine 5: Converted 'talent.beast_cleave' to 'talent.beast_cleave.enabled' (1x).\nLine 6: Converted 'talent.beast_cleave' to 'talent.beast_cleave.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.wailing_arrow' to 'talent.wailing_arrow.enabled' (1x).\nLine 3: Converted 'talent.steel_trap' to 'talent.steel_trap.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 2: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 3: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.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.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.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.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.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\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 '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 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 5: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 5: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted operations in '(trinket.t1.has_use_buff&(variable.sync_up&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||!variable.sync_up&(variable.trinket_1_stronger&(variable.sync_remains>trinket.t1.cooldown.duration%2||trinket.t2.has_use_buff&trinket.t2.cooldown.remains>variable.sync_remains-15&trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration%2||trinket.t1.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t1.cooldown.duration>fight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t2.cooldown.duration%2)))||!trinket.t1.has_use_buff&((!trinket.t2.has_use_buff&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||trinket.t2.has_use_buff&(variable.sync_remains>20||trinket.t2.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_1_stronger||trinket.t2.cooldown.remains))&buff.frenzy.remains>trinket.t1.cast_time' to '(trinket.t1.has_use_buff&(variable.sync_up&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||!variable.sync_up&(variable.trinket_1_stronger&(variable.sync_remains>trinket.t1.cooldown.duration/2||trinket.t2.has_use_buff&trinket.t2.cooldown.remains>variable.sync_remains-15&trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration/2||trinket.t1.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t1.cooldown.duration>fight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t2.cooldown.duration/2)))||!trinket.t1.has_use_buff&((!trinket.t2.has_use_buff&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||trinket.t2.has_use_buff&(variable.sync_remains>20||trinket.t2.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_1_stronger||trinket.t2.cooldown.remains))&buff.frenzy.remains>trinket.t1.cast_time'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 6: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.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.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.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.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.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\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 '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 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 6: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 6: Converted operations in '(trinket.t2.has_use_buff&(variable.sync_up&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||!variable.sync_up&(variable.trinket_2_stronger&(variable.sync_remains>trinket.t2.cooldown.duration%2||trinket.t1.has_use_buff&trinket.t1.cooldown.remains>variable.sync_remains-15&trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration%2||trinket.t2.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t2.cooldown.duration>fight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t1.cooldown.duration%2)))||!trinket.t2.has_use_buff&((!trinket.t1.has_use_buff&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||trinket.t1.has_use_buff&(variable.sync_remains>20||trinket.t1.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_2_stronger||trinket.t1.cooldown.remains))&buff.frenzy.remains>trinket.t2.cast_time' to '(trinket.t2.has_use_buff&(variable.sync_up&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||!variable.sync_up&(variable.trinket_2_stronger&(variable.sync_remains>trinket.t2.cooldown.duration/2||trinket.t1.has_use_buff&trinket.t1.cooldown.remains>variable.sync_remains-15&trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration/2||trinket.t2.cooldown.duration<fight_remains&(variable.sync_remains+trinket.t2.cooldown.duration>fight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.t1.cooldown.duration/2)))||!trinket.t2.has_use_buff&((!trinket.t1.has_use_buff&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||trinket.t1.has_use_buff&(variable.sync_remains>20||trinket.t1.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_2_stronger||trinket.t1.cooldown.remains))&buff.frenzy.remains>trinket.t2.cast_time'.\n\nThe import for 'cds' required some automated changes.\nLine 1: Converted 'talent.bestial_wrath' to 'talent.bestial_wrath.enabled' (1x).\nLine 2: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 3: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 4: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 5: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 1: Converted 'pet.main.buff.frenzy.up' to 'buff.frenzy.up' (1x).\nLine 1: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\nLine 1: Converted 'talent.scent_of_blood' to 'talent.scent_of_blood.enabled' (1x).\nLine 1: Converted 'pet.main.buff.frenzy.stack' to 'buff.frenzy.stack' (1x).\nLine 2: Converted 'talent.alpha_predator' to 'talent.alpha_predator.enabled' (1x).\nLine 12: Converted 'talent.wild_instincts' to 'talent.wild_instincts.enabled' (1x).\nLine 12: Converted 'talent.wild_call' to 'talent.wild_call.enabled' (1x).\nLine 12: Converted 'talent.scent_of_blood' to 'talent.scent_of_blood.enabled' (1x).\nLine 18: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\n\nThe import for 'cleave' required some automated changes.\nLine 1: Converted 'pet.main.buff.frenzy.up' to 'buff.frenzy.up' (1x).\nLine 1: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\nLine 1: Converted 'talent.scent_of_blood' to 'talent.scent_of_blood.enabled' (1x).\nLine 2: Converted 'pet.main.buff.frenzy.up' to 'buff.frenzy.up' (1x).\nLine 2: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\nLine 2: Converted 'talent.scent_of_blood' to 'talent.scent_of_blood.enabled' (1x).\nLine 3: Converted 'pet.main.buff.beast_cleave.remains' to 'buff.beast_cleave.remains' (1x).\nLine 4: Converted 'talent.alpha_predator' to 'talent.alpha_predator.enabled' (1x).\nLine 4: Converted 'talent.kill_cleave' to 'talent.kill_cleave.enabled' (1x).\nLine 13: Converted 'talent.wild_instincts' to 'talent.wild_instincts.enabled' (1x).\nLine 13: Converted 'talent.wild_call' to 'talent.wild_call.enabled' (1x).\nLine 14: Converted 'talent.wild_instincts' to 'talent.wild_instincts.enabled' (1x).\nLine 14: Converted 'talent.wild_call' to 'talent.wild_call.enabled' (1x).\nLine 18: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\nLine 22: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\n\nImported 6 action lists.\n",
["profile"] = "actions.precombat+=/summon_pet\nactions.precombat+=/bottled_flayedwing_toxin\nactions.precombat+=/steel_trap,precast_time=1.5,if=!talent.wailing_arrow&talent.steel_trap\n\n# Executed every time the actor is available.\nactions=counter_shot\nactions+=/tranquilizing_shot\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<2||!talent.beast_cleave&active_enemies<3\nactions+=/call_action_list,name=cleave,strict=1,if=active_enemies>2||talent.beast_cleave&active_enemies>1\n\n## Call for Power Infusion when Bestial Wrath is running, or is close to coming off cooldown (PI lasts 20 seconds and Bestial Wrath lasts 15, so 30 seconds when accounting for Barbed Shot reduction of Bestial Wrath is a good approximate fit).\n## actions.cds+=/invoke_external_buff,name=power_infusion,if=buff.bestial_wrath.up||cooldown.bestial_wrath.remains<30\nactions.cds+=/berserking,if=!talent.bestial_wrath||buff.bestial_wrath.up||boss&fight_remains<16\nactions.cds+=/blood_fury,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&(buff.bestial_wrath.up&(buff.bloodlust.up||target.health.pct<20))||boss&fight_remains<16\nactions.cds+=/ancestral_call,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&(buff.bestial_wrath.up&(buff.bloodlust.up||target.health.pct<20))||boss&fight_remains<16\nactions.cds+=/fireblood,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&(buff.bestial_wrath.up&(buff.bloodlust.up||target.health.pct<20))||boss&fight_remains<10\nactions.cds+=/potion,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&(buff.bestial_wrath.up&(buff.bloodlust.up||target.health.pct<20))||boss&fight_remains<31\n\nactions.cleave+=/barbed_shot,cycle_targets=1,if=debuff.latent_poison.stack>9&(pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+0.25||talent.scent_of_blood&cooldown.bestial_wrath.remains<12+gcd||full_recharge_time<gcd&cooldown.bestial_wrath.remains)\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+0.25+barbed_shot_grace_period||talent.scent_of_blood&cooldown.bestial_wrath.remains<12+gcd||full_recharge_time<gcd&cooldown.bestial_wrath.remains\nactions.cleave+=/multishot,if=pet.main.buff.beast_cleave.remains<0.25+gcd\nactions.cleave+=/kill_command,if=full_recharge_time<gcd&talent.alpha_predator&talent.kill_cleave\nactions.cleave+=/call_of_the_wild\nactions.cleave+=/explosive_shot\nactions.cleave+=/stampede,if=buff.bestial_wrath.up||boss&fight_remains<15\nactions.cleave+=/bloodshed\nactions.cleave+=/death_chakram\nactions.cleave+=/bestial_wrath\nactions.cleave+=/steel_trap\nactions.cleave+=/a_murder_of_crows\nactions.cleave+=/barbed_shot,cycle_targets=1,if=debuff.latent_poison.stack>9&(talent.wild_instincts&buff.call_of_the_wild.up||boss&fight_remains<9||talent.wild_call&charges_fractional>1.2)\nactions.cleave+=/barbed_shot,cycle_targets=1,if=talent.wild_instincts&buff.call_of_the_wild.up||boss&fight_remains<9||talent.wild_call&charges_fractional>1.2\nactions.cleave+=/kill_command\nactions.cleave+=/dire_beast\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable&target.time_to_die>duration\nactions.cleave+=/barrage,if=pet.main.buff.frenzy.remains>execute_time\nactions.cleave+=/kill_shot\nactions.cleave+=/aspect_of_the_wild\nactions.cleave+=/cobra_shot,if=focus.time_to_max<gcd*2||buff.aspect_of_the_wild.up&focus.time_to_max<gcd*4\nactions.cleave+=/wailing_arrow,if=pet.main.buff.frenzy.remains>execute_time||boss&fight_remains<5\nactions.cleave+=/bag_of_tricks,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.cleave+=/arcane_torrent,if=(focus+focus.regen+30)<focus.max\n\nactions.st+=/barbed_shot,cycle_targets=1,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+0.25+barbed_shot_grace_period||talent.scent_of_blood&pet.main.buff.frenzy.stack<3&cooldown.bestial_wrath.ready\nactions.st+=/kill_command,if=full_recharge_time<gcd&talent.alpha_predator\nactions.st+=/call_of_the_wild\nactions.st+=/death_chakram\nactions.st+=/bloodshed\nactions.st+=/stampede\nactions.st+=/a_murder_of_crows\nactions.st+=/steel_trap\nactions.st+=/explosive_shot\nactions.st+=/bestial_wrath\nactions.st+=/kill_command\nactions.st+=/barbed_shot,cycle_targets=1,if=talent.wild_instincts&buff.call_of_the_wild.up||talent.wild_call&charges_fractional>1.4||full_recharge_time<gcd&cooldown.bestial_wrath.remains||talent.scent_of_blood&(cooldown.bestial_wrath.remains<12+gcd||full_recharge_time+gcd<8&cooldown.bestial_wrath.remains<24+(8-gcd)+full_recharge_time)||boss&fight_remains<9\nactions.st+=/dire_beast\nactions.st+=/serpent_sting,cycle_targets=1,if=refreshable&target.time_to_die>duration\nactions.st+=/kill_shot\nactions.st+=/aspect_of_the_wild\nactions.st+=/cobra_shot\nactions.st+=/wailing_arrow,if=pet.main.buff.frenzy.remains>execute_time||boss&fight_remains<5\nactions.st+=/bag_of_tricks,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.st+=/arcane_pulse,if=buff.bestial_wrath.down||boss&fight_remains<5\nactions.st+=/arcane_torrent,if=(focus+focus.regen+15)<focus.max\n\nactions.trinkets+=/variable,name=sync_up,value=buff.call_of_the_wild.up||cooldown.call_of_the_wild.remains<2||!talent.call_of_the_wild&(prev_gcd.1.bestial_wrath||cooldown.bestial_wrath.remains_guess<2)\nactions.trinkets+=/variable,name=sync_remains,op=setif,value=cooldown.bestial_wrath.remains_guess,value_else=cooldown.call_of_the_wild.remains,condition=!talent.call_of_the_wild\nactions.trinkets+=/variable,name=trinket_1_stronger,value=!trinket.2.has_cooldown||trinket.1.has_use_buff&(!trinket.2.has_use_buff||trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration)||!trinket.1.has_use_buff&(!trinket.2.has_use_buff&(trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration))\nactions.trinkets+=/variable,name=trinket_2_stronger,value=!trinket.1.has_cooldown||trinket.2.has_use_buff&(!trinket.1.has_use_buff||trinket.1.cooldown.duration<trinket.2.cooldown.duration||trinket.1.cast_time<trinket.2.cast_time||trinket.1.cast_time=trinket.2.cast_time&trinket.1.cooldown.duration=trinket.2.cooldown.duration)||!trinket.2.has_use_buff&(!trinket.1.has_use_buff&(trinket.1.cooldown.duration<trinket.2.cooldown.duration||trinket.1.cast_time<trinket.2.cast_time||trinket.1.cast_time=trinket.2.cast_time&trinket.1.cooldown.duration=trinket.2.cooldown.duration))\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=(trinket.1.has_use_buff&(variable.sync_up&(variable.trinket_1_stronger||trinket.2.cooldown.remains)||!variable.sync_up&(variable.trinket_1_stronger&(variable.sync_remains>trinket.1.cooldown.duration%2||trinket.2.has_use_buff&trinket.2.cooldown.remains>variable.sync_remains-15&trinket.2.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_2_stronger&(trinket.2.cooldown.remains&(trinket.2.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.1.cooldown.duration%2||trinket.1.cooldown.duration<fight_remains&(variable.sync_remains+trinket.1.cooldown.duration>fight_remains)))||trinket.2.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.2.cooldown.duration%2)))||!trinket.1.has_use_buff&((!trinket.2.has_use_buff&(variable.trinket_1_stronger||trinket.2.cooldown.remains)||trinket.2.has_use_buff&(variable.sync_remains>20||trinket.2.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_1_stronger||trinket.2.cooldown.remains))&pet.main.buff.frenzy.remains>trinket.1.cast_time\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=(trinket.2.has_use_buff&(variable.sync_up&(variable.trinket_2_stronger||trinket.1.cooldown.remains)||!variable.sync_up&(variable.trinket_2_stronger&(variable.sync_remains>trinket.2.cooldown.duration%2||trinket.1.has_use_buff&trinket.1.cooldown.remains>variable.sync_remains-15&trinket.1.cooldown.remains-5<variable.sync_remains&variable.sync_remains+40>fight_remains)||variable.trinket_1_stronger&(trinket.1.cooldown.remains&(trinket.1.cooldown.remains-5<variable.sync_remains&variable.sync_remains>=20||trinket.1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.2.cooldown.duration%2||trinket.2.cooldown.duration<fight_remains&(variable.sync_remains+trinket.2.cooldown.duration>fight_remains)))||trinket.1.cooldown.ready&variable.sync_remains>20&variable.sync_remains<trinket.1.cooldown.duration%2)))||!trinket.2.has_use_buff&((!trinket.1.has_use_buff&(variable.trinket_2_stronger||trinket.1.cooldown.remains)||trinket.1.has_use_buff&(variable.sync_remains>20||trinket.1.cooldown.remains>20)))||target.time_to_die<25&(variable.trinket_2_stronger||trinket.1.cooldown.remains))&pet.main.buff.frenzy.remains>trinket.2.cast_time",
["spec"] = 253,
},
["Survival"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20230205,
["author"] = "SimC",
["desc"] = "",
["lists"] = {
["default"] = {
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [1]
{
["action"] = "tranquilizing_shot",
["enabled"] = true,
}, -- [2]
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
}, -- [3]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3",
["list_name"] = "st",
}, -- [4]
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2",
["list_name"] = "cleave",
}, -- [5]
{
["action"] = "arcane_torrent",
["enabled"] = true,
}, -- [6]
},
["cleave"] = {
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max",
["action"] = "wildfire_bomb",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "death_chakram",
}, -- [2]
{
["action"] = "stampede",
["enabled"] = true,
}, -- [3]
{
["action"] = "coordinated_assault",
["enabled"] = true,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault_empower.up",
["action"] = "kill_shot",
}, -- [5]
{
["action"] = "explosive_shot",
["enabled"] = true,
}, -- [6]
{
["enabled"] = true,
["criteria"] = "cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2",
["action"] = "carve",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max",
["action"] = "butchery",
}, -- [8]
{
["enabled"] = true,
["criteria"] = "! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [9]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking & ( dot.internal_bleeding.stack < 2 || dot.shrapnel_bomb.remains < gcd.max )",
["action"] = "butchery",
}, -- [10]
{
["action"] = "fury_of_the_eagle",
["enabled"] = true,
}, -- [11]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "carve",
}, -- [12]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "( ! next_wi_bomb.shrapnel || ! talent.wildfire_infusion.enabled ) & cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2",
["action"] = "butchery",
}, -- [14]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["criteria"] = "debuff.latent_poison.stack > 8",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["action"] = "raptor_strike",
["criteria"] = "debuff.latent_poison.stack > 8",
["cycle_targets"] = 1,
}, -- [16]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max & full_recharge_time < gcd.max",
["cycle_targets"] = 1,
}, -- [17]
{
["action"] = "carve",
["enabled"] = true,
}, -- [18]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "kill_shot",
}, -- [19]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "steel_trap",
}, -- [20]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & target.time_to_die > 12 & ( ! talent.vipers_venom.enabled || talent.hydras_bite.enabled )",
["cycle_targets"] = 1,
}, -- [21]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["cycle_targets"] = 1,
}, -- [22]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [23]
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "talent.terms_of_engagement.enabled & focus < focus.max || target.outside10",
["action"] = "harpoon",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || buff.spearhead.up || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "blood_fury",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || buff.spearhead.up || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "ancestral_call",
}, -- [3]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || buff.spearhead.up || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "fireblood",
}, -- [4]
{
["action"] = "lights_judgment",
["enabled"] = true,
}, -- [5]
{
["enabled"] = true,
["criteria"] = "cooldown.kill_command.full_recharge_time > gcd.max",
["action"] = "bag_of_tricks",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || buff.spearhead.up || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled || boss & fight_remains < 13",
["action"] = "berserking",
}, -- [7]
{
["action"] = "muzzle",
["enabled"] = true,
}, -- [8]
{
["enabled"] = true,
["criteria"] = "target.boss & fight_remains < 30 || buff.coordinated_assault.up || buff.spearhead.up || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "potion",
}, -- [9]
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["use_off_gcd"] = 1,
["name"] = "algethar_puzzle_box",
["criteria"] = "gcd.remains > gcd.max - 0.1 || settings.gcdSync",
}, -- [10]
{
["enabled"] = true,
["action"] = "manic_grieftorch",
["use_off_gcd"] = 1,
["name"] = "manic_grieftorch",
["criteria"] = "gcd.remains > gcd.max - 0.1 & ! buff.spearhead.up",
}, -- [11]
{
["action"] = "use_items",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "target.distance >= 6",
["action"] = "aspect_of_the_eagle",
}, -- [13]
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max || talent.spearhead.enabled & ! cooldown.spearhead.remains",
["action"] = "death_chakram",
}, -- [1]
{
["enabled"] = true,
["criteria"] = "focus + action.kill_command.cast_regen > focus.max - 10 & ( cooldown.death_chakram.remains || ! talent.death_chakram.enabled )",
["action"] = "spearhead",
}, -- [2]
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault_empower.up",
["action"] = "kill_shot",
}, -- [3]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "full_recharge_time < gcd.max & focus + cast_regen < focus.max & buff.deadly_duo.stack > 1",
["cycle_targets"] = 1,
}, -- [4]
{
["enabled"] = true,
["criteria"] = "buff.spearhead.remains",
["action"] = "mongoose_bite",
}, -- [5]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & boss & fight_remains < focus / ( variable.mb_rs_cost - cast_regen ) * gcd.max || buff.mongoose_fury.up & buff.mongoose_fury.remains < gcd.max",
["action"] = "mongoose_bite",
}, -- [6]
{
["enabled"] = true,
["criteria"] = "! buff.coordinated_assault.up",
["action"] = "kill_shot",
}, -- [7]
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & boss & fight_remains < focus / ( variable.mb_rs_cost - cast_regen ) * gcd.max",
["action"] = "raptor_strike",
}, -- [8]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & target.time_to_die > 7 & ! talent.vipers_venom.enabled",
["cycle_targets"] = 1,
}, -- [9]
{
["enabled"] = true,
["criteria"] = "talent.alpha_predator.enabled & buff.mongoose_fury.up & buff.mongoose_fury.remains < focus / ( variable.mb_rs_cost - cast_regen ) * gcd.max",
["action"] = "mongoose_bite",
}, -- [10]
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "flanking_strike",
}, -- [11]
{
["action"] = "stampede",
["enabled"] = true,
}, -- [12]
{
["enabled"] = true,
["criteria"] = "! talent.coordinated_kill.enabled & target.health.pct < 20 & ( ! buff.spearhead.remains & cooldown.spearhead.remains || ! talent.spearhead.enabled ) || talent.coordinated_kill.enabled & ( ! buff.spearhead.remains & cooldown.spearhead.remains || ! talent.spearhead.enabled )",
["action"] = "coordinated_assault",
}, -- [13]
{
["enabled"] = true,
["criteria"] = "next_wi_bomb.pheromone & ! buff.mongoose_fury.up & focus + cast_regen < focus.max - action.kill_command.cast_regen * 2 || buff.coordinated_assault.up & focus + cast_regen < focus.max & talent.coordinated_kill.rank > 1",
["action"] = "wildfire_bomb",
}, -- [14]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "full_recharge_time < gcd.max & focus + cast_regen < focus.max",
["cycle_targets"] = 1,
}, -- [15]
{
["enabled"] = true,
["criteria"] = "dot.shrapnel_bomb.ticking",
["action"] = "mongoose_bite",
}, -- [16]
{
["enabled"] = true,
["action"] = "serpent_sting",
["criteria"] = "refreshable & ! talent.vipers_venom.enabled",
["cycle_targets"] = 1,
}, -- [17]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max & ! set_bonus.tier29_2pc",
["action"] = "wildfire_bomb",
}, -- [18]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["criteria"] = "buff.mongoose_fury.up",
["cycle_targets"] = 1,
}, -- [19]
{
["enabled"] = true,
["criteria"] = "talent.ranger.enabled",
["action"] = "explosive_shot",
}, -- [20]
{
["enabled"] = true,
["criteria"] = "full_recharge_time < gcd.max",
["action"] = "wildfire_bomb",
}, -- [21]
{
["enabled"] = true,
["action"] = "mongoose_bite",
["criteria"] = "focus + action.kill_command.cast_regen > focus.max - 10",
["cycle_targets"] = 1,
}, -- [22]
{
["enabled"] = true,
["action"] = "raptor_strike",
["cycle_targets"] = 1,
}, -- [23]
{
["action"] = "steel_trap",
["enabled"] = true,
}, -- [24]
{
["enabled"] = true,
["criteria"] = "! dot.wildfire_bomb.ticking",
["action"] = "wildfire_bomb",
}, -- [25]
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max",
["cycle_targets"] = 1,
}, -- [26]
{
["enabled"] = true,
["criteria"] = "! talent.coordinated_kill.enabled & time_to_die > 140",
["action"] = "coordinated_assault",
}, -- [27]
{
["interrupt"] = "1",
["action"] = "fury_of_the_eagle",
["enabled"] = true,
}, -- [28]
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
}, -- [1]
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["description"] = "Snapshot raid buffed stats before combat begins and pre-potting is done.",
["name"] = "algethar_puzzle_box",
}, -- [2]
{
["enabled"] = true,
["precast_time"] = "2",
["action"] = "steel_trap",
}, -- [3]
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "mb_rs_cost",
["criteria"] = "talent.mongoose_bite.enabled",
["value_else"] = "action.raptor_strike.cost",
["value"] = "action.mongoose_bite.cost",
}, -- [4]
},
},
["version"] = 20230205,
["warnings"] = "The import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.mongoose_bite' to 'talent.mongoose_bite.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 2: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 2: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 3: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 3: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 4: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 4: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 7: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 7: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 9: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 9: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 1: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 2: Converted 'talent.death_chakram' to 'talent.death_chakram.enabled' (1x).\nLine 6: Converted operations in 'active_enemies=1&boss&fight_remains<focus%(variable.mb_rs_cost-cast_regen)*gcd.max||buff.mongoose_fury.up&buff.mongoose_fury.remains<gcd.max' to 'active_enemies=1&boss&fight_remains<focus/(variable.mb_rs_cost-cast_regen)*gcd.max||buff.mongoose_fury.up&buff.mongoose_fury.remains<gcd.max'.\nLine 8: Converted operations in 'active_enemies=1&boss&fight_remains<focus%(variable.mb_rs_cost-cast_regen)*gcd.max' to 'active_enemies=1&boss&fight_remains<focus/(variable.mb_rs_cost-cast_regen)*gcd.max'.\nLine 9: Converted 'talent.vipers_venom' to 'talent.vipers_venom.enabled' (1x).\nLine 10: Converted 'talent.alpha_predator' to 'talent.alpha_predator.enabled' (1x).\nLine 10: Converted operations in 'talent.alpha_predator.enabled&buff.mongoose_fury.up&buff.mongoose_fury.remains<focus%(variable.mb_rs_cost-cast_regen)*gcd.max' to 'talent.alpha_predator.enabled&buff.mongoose_fury.up&buff.mongoose_fury.remains<focus/(variable.mb_rs_cost-cast_regen)*gcd.max'.\nLine 13: Converted 'talent.coordinated_kill' to 'talent.coordinated_kill.enabled' (1x).\nLine 13: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 13: Converted 'talent.coordinated_kill' to 'talent.coordinated_kill.enabled' (1x).\nLine 13: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 17: Converted 'talent.vipers_venom' to 'talent.vipers_venom.enabled' (1x).\nLine 20: Converted 'talent.ranger' to 'talent.ranger.enabled' (1x).\nLine 27: Converted 'talent.coordinated_kill' to 'talent.coordinated_kill.enabled' (1x).\n\nThe import for 'cleave' required some automated changes.\nLine 7: Converted operations in 'cooldown.wildfire_bomb.full_recharge_time>spell_targets%2' to 'cooldown.wildfire_bomb.full_recharge_time>spell_targets/2'.\nLine 14: Converted 'talent.wildfire_infusion' to 'talent.wildfire_infusion.enabled' (1x).\nLine 14: Converted operations in '(!next_wi_bomb.shrapnel||!talent.wildfire_infusion.enabled)&cooldown.wildfire_bomb.full_recharge_time>spell_targets%2' to '(!next_wi_bomb.shrapnel||!talent.wildfire_infusion.enabled)&cooldown.wildfire_bomb.full_recharge_time>spell_targets/2'.\nLine 21: Converted 'talent.vipers_venom' to 'talent.vipers_venom.enabled' (1x).\nLine 21: Converted 'talent.hydras_bite' to 'talent.hydras_bite.enabled' (1x).\n\nImported 5 action lists.\n",
["profile"] = "actions.precombat+=/summon_pet\n# Snapshot raid buffed stats before combat begins and pre-potting is done.\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/steel_trap,precast_time=2\nactions.precombat+=/variable,name=mb_rs_cost,op=setif,value=action.mongoose_bite.cost,value_else=action.raptor_strike.cost,condition=talent.mongoose_bite\n\nactions+=/muzzle\nactions+=/tranquilizing_shot\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<3\nactions+=/call_action_list,name=cleave,strict=1,if=active_enemies>2\nactions+=/arcane_torrent\n\nactions.cds+=/harpoon,if=talent.terms_of_engagement.enabled&focus<focus.max||target.outside10\nactions.cds+=/blood_fury,if=buff.coordinated_assault.up||buff.spearhead.up||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/ancestral_call,if=buff.coordinated_assault.up||buff.spearhead.up||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/fireblood,if=buff.coordinated_assault.up||buff.spearhead.up||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/lights_judgment\nactions.cds+=/bag_of_tricks,if=cooldown.kill_command.full_recharge_time>gcd\nactions.cds+=/berserking,if=buff.coordinated_assault.up||buff.spearhead.up||!talent.spearhead&!talent.coordinated_assault||boss&fight_remains<13\nactions.cds+=/muzzle\nactions.cds+=/potion,if=target.boss&fight_remains<30||buff.coordinated_assault.up||buff.spearhead.up||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/use_item,name=algethar_puzzle_box,use_off_gcd=1,if=gcd.remains>gcd.max-0.1||settings.gcdSync\nactions.cds+=/use_item,name=manic_grieftorch,use_off_gcd=1,if=gcd.remains>gcd.max-0.1&!buff.spearhead.up\nactions.cds+=/use_items\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\n\nactions.cleave+=/wildfire_bomb,if=full_recharge_time<gcd\nactions.cleave+=/death_chakram,if=focus+cast_regen<focus.max\nactions.cleave+=/stampede\nactions.cleave+=/coordinated_assault\nactions.cleave+=/kill_shot,if=buff.coordinated_assault_empower.up\nactions.cleave+=/explosive_shot\nactions.cleave+=/carve,if=cooldown.wildfire_bomb.full_recharge_time>spell_targets%2\nactions.cleave+=/butchery,if=full_recharge_time<gcd\nactions.cleave+=/wildfire_bomb,if=!dot.wildfire_bomb.ticking\nactions.cleave+=/butchery,if=dot.shrapnel_bomb.ticking&(dot.internal_bleeding.stack<2||dot.shrapnel_bomb.remains<gcd)\nactions.cleave+=/fury_of_the_eagle\nactions.cleave+=/carve,if=dot.shrapnel_bomb.ticking\nactions.cleave+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.cleave+=/butchery,if=(!next_wi_bomb.shrapnel||!talent.wildfire_infusion)&cooldown.wildfire_bomb.full_recharge_time>spell_targets%2\nactions.cleave+=/mongoose_bite,cycle_targets=1,if=debuff.latent_poison.stack>8\nactions.cleave+=/raptor_strike,cycle_targets=1,if=debuff.latent_poison.stack>8\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max&full_recharge_time<gcd\nactions.cleave+=/carve\nactions.cleave+=/kill_shot,if=!buff.coordinated_assault.up\nactions.cleave+=/steel_trap,if=focus+cast_regen<focus.max\nactions.cleave+=/serpent_sting,cycle_targets=1,if=refreshable&target.time_to_die>12&(!talent.vipers_venom||talent.hydras_bite)\nactions.cleave+=/mongoose_bite,cycle_targets=1\nactions.cleave+=/raptor_strike,cycle_targets=1\n\nactions.st+=/death_chakram,if=focus+cast_regen<focus.max||talent.spearhead&!cooldown.spearhead.remains\nactions.st+=/spearhead,if=focus+action.kill_command.cast_regen>focus.max-10&(cooldown.death_chakram.remains||!talent.death_chakram)\nactions.st+=/kill_shot,if=buff.coordinated_assault_empower.up\nactions.st+=/kill_command,cycle_targets=1,if=full_recharge_time<gcd&focus+cast_regen<focus.max&buff.deadly_duo.stack>1\nactions.st+=/mongoose_bite,if=buff.spearhead.remains\nactions.st+=/mongoose_bite,if=active_enemies=1&boss&fight_remains<focus%(variable.mb_rs_cost-cast_regen)*gcd||buff.mongoose_fury.up&buff.mongoose_fury.remains<gcd\nactions.st+=/kill_shot,if=!buff.coordinated_assault.up\nactions.st+=/raptor_strike,if=active_enemies=1&boss&fight_remains<focus%(variable.mb_rs_cost-cast_regen)*gcd\nactions.st+=/serpent_sting,cycle_targets=1,if=refreshable&target.time_to_die>7&!talent.vipers_venom\nactions.st+=/mongoose_bite,if=talent.alpha_predator&buff.mongoose_fury.up&buff.mongoose_fury.remains<focus%(variable.mb_rs_cost-cast_regen)*gcd\nactions.st+=/flanking_strike,if=focus+cast_regen<focus.max\nactions.st+=/stampede\nactions.st+=/coordinated_assault,if=!talent.coordinated_kill&target.health.pct<20&(!buff.spearhead.remains&cooldown.spearhead.remains||!talent.spearhead)||talent.coordinated_kill&(!buff.spearhead.remains&cooldown.spearhead.remains||!talent.spearhead)\nactions.st+=/wildfire_bomb,if=next_wi_bomb.pheromone&!buff.mongoose_fury.up&focus+cast_regen<focus.max-action.kill_command.cast_regen*2||buff.coordinated_assault.up&focus+cast_regen<focus.max&talent.coordinated_kill.rank>1\nactions.st+=/kill_command,cycle_targets=1,if=full_recharge_time<gcd&focus+cast_regen<focus.max\nactions.st+=/mongoose_bite,if=dot.shrapnel_bomb.ticking\nactions.st+=/serpent_sting,cycle_targets=1,if=refreshable&!talent.vipers_venom\nactions.st+=/wildfire_bomb,if=full_recharge_time<gcd&!set_bonus.tier29_2pc\nactions.st+=/mongoose_bite,cycle_targets=1,if=buff.mongoose_fury.up\nactions.st+=/explosive_shot,if=talent.ranger\nactions.st+=/wildfire_bomb,if=full_recharge_time<gcd\nactions.st+=/mongoose_bite,cycle_targets=1,if=focus+action.kill_command.cast_regen>focus.max-10\nactions.st+=/raptor_strike,cycle_targets=1\nactions.st+=/steel_trap\nactions.st+=/wildfire_bomb,if=!dot.wildfire_bomb.ticking\nactions.st+=/kill_command,cycle_targets=1,if=focus+cast_regen<focus.max\nactions.st+=/coordinated_assault,if=!talent.coordinated_kill&time_to_die>140\nactions.st+=/fury_of_the_eagle,interrupt=1",
["spec"] = 255,
},
},
["iconStore"] = {
["minimapPos"] = 267.4870703248537,
},
["toggles"] = {
["essences"] = {
["value"] = false,
},
},
["notifications"] = {
["y"] = 479.1666564941406,
["x"] = -25.0001220703125,
},
},
},
}