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, ["forceReloadClassDefaultOptions_20220306_577"] = true, ["enableAllOfTheThings_20180820"] = true, ["resetRogueMfDOption_20200226"] = true, ["forceReloadClassDefaultOptions_20220306_581"] = true, ["forceEnableEnhancedRecheckBoomkin_20210712"] = true, ["autoconvertGlowsForCustomGlow_20190326"] = true, ["autoconvertDisplayToggle_20190621_1"] = 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"] = 20230512, ["spec"] = 577, ["desc"] = "2023-05-12: Trinket updates from SimC.\n\n2023-04-30: Updated from SimC for 10.1.\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.\n\n2023-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.", ["profile"] = "actions.precombat+=/variable,name=three_min_trinket,value=trinket.1.cooldown.duration=180||trinket.2.cooldown.duration=180\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,if=!equipped.algethar_puzzle_box\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.remains20\nactions+=/variable,name=waiting_for_momentum,value=talent.momentum&!buff.momentum.up&!(action.fel_rush.disabled&action.vengeful_retreat.disabled)\nactions+=/variable,name=holding_meta,value=(talent.demonic&talent.essence_break)&variable.three_min_trinket&fight_remains>cooldown.metamorphosis.remains+30+talent.shattered_destiny*60&cooldown.metamorphosis.remains<20&cooldown.metamorphosis.remains>action.eye_beam.execute_time+gcd.max*(talent.inner_demon+2)\n## actions+=/invoke_external_buff,name=power_infusion,if=time>170&!variable.holding_meta\nactions+=/immolation_aura,if=talent.ragefire&active_enemies>=3&(cooldown.blade_dance.remains||debuff.essence_break.down)\nactions+=/throw_glaive,if=talent.soulrend&talent.furious_throws&active_enemies>=3&time<1\nactions+=/fel_rush,if=buff.unbound_chaos.up&(buff.unbound_chaos.remains0&(cooldown.eye_beam.remains<6||buff.metamorphosis.remains>5)&buff.empowered_demon_soul.remains<3||fight_remains<17\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&(cooldown.essence_break.remains>15||cooldown.essence_break.remains15+(10*talent.cycle_of_hatred)))&(time<30||gcd.remains<1)&!talent.any_means_necessary\nactions+=/vengeful_retreat,use_off_gcd=1,if=talent.initiative&talent.essence_break&time>1&(cooldown.essence_break.remains>15||cooldown.essence_break.remains(40-talent.cycle_of_hatred*15))&fury>30||!talent.demonic||buff.metamorphosis.up||cooldown.eye_beam.remains>15+(10*talent.cycle_of_hatred)))&talent.any_means_necessary\nactions+=/vengeful_retreat,use_off_gcd=1,if=talent.initiative&!talent.essence_break&time>1&!buff.momentum.up\nactions+=/fel_rush,if=talent.momentum.enabled&buff.momentum.remains1.8||cooldown.eye_beam.remains<3)&debuff.essence_break.down\nactions+=/essence_break,if=(active_enemies>desired_targets||raid_event.adds.in>40)&!variable.waiting_for_momentum&buff.metamorphosis.up&(!talent.tactical_retreat||buff.tactical_retreat.up||action.vengeful_retreat.disabled)||boss&fight_remains<6\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&(debuff.essence_break.down||active_enemies>1)\nactions+=/annihilation,if=buff.inner_demon.up&cooldown.eye_beam.remains<=gcd\nactions+=/fel_rush,if=talent.momentum.enabled&cooldown.eye_beam.remains10||!equipped.algethar_puzzle_box)&(raid_event.adds.in>90||active_enemies>3||time_to_die<10)&(time>8&debuff.essence_break.down||!set_bonus.tier30_2pc)\nactions+=/throw_glaive,if=talent.serrated_glaive&cooldown.eye_beam.remains<6&!debuff.serrated_glaive.up&!debuff.essence_break.up&cooldown.blade_dance.remains\nactions+=/eye_beam,if=active_enemies>desired_targets||raid_event.adds.in>(40-talent.cycle_of_hatred*15)&!debuff.essence_break.up&(cooldown.metamorphosis.remains>40-talent.cycle_of_hatred*15||!variable.holding_meta)&(buff.metamorphosis.down||buff.metamorphosis.remains>gcd.max||!talent.restless_hunter)&(buff.metamorphosis.down||cooldown.blade_dance.remains>gcd.max)||fight_remains<15\nactions+=/blade_dance,if=variable.blade_dance&(cooldown.eye_beam.remains>5||equipped.algethar_puzzle_box&cooldown.metamorphosis.remains>(cooldown.blade_dance.duration)||!talent.demonic||(raid_event.adds.in>cooldown&raid_event.adds.in<25))\nactions+=/sigil_of_flame,if=talent.any_means_necessary&debuff.essence_break.down&active_enemies>=4\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&(full_recharge_time1)\nactions+=/immolation_aura,if=fury<70&debuff.essence_break.down&time_to_die>3\nactions+=/sigil_of_flame,if=talent.any_means_necessary&debuff.essence_break.down\nactions+=/annihilation,if=!variable.pooling_for_blade_dance\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+=/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+=/chaos_strike,if=!variable.pooling_for_blade_dance&!variable.pooling_for_eye_beam\nactions+=/sigil_of_flame,if=raid_event.adds.in>15&fury.deficit>=30\nactions+=/felblade,if=fury.deficit>=40\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.meta_end+=/death_sweep\nactions.meta_end+=/annihilation\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+talent.shattered_destiny*70&cooldown.eye_beam.remains&cooldown.blade_dance.remains)\nactions.cooldown+=/potion,if=buff.metamorphosis.remains>25||buff.metamorphosis.up&cooldown.metamorphosis.ready||boss&fight_remains<60||time>0.1&time<10\nactions.cooldown+=/use_item,name=manic_grieftorch,use_off_gcd=1,if=((buff.initiative.remains>2&debuff.essence_break.down&cooldown.essence_break.remains>gcd.max&time>14||time_to_die<10||time<1&!equipped.algethar_puzzle_box||boss&(fight_remains%%120<5))&!prev_gcd.1.essence_break)\nactions.cooldown+=/use_item,name=algethar_puzzle_box,use_off_gcd=1,if=cooldown.metamorphosis.remains<=gcd.max*5||boss&((fight_remains%%180>10)&(fight_remains%%180<22)||fight_remains<25)\nactions.cooldown+=/use_item,name=dragonfire_bomb_dispenser,use_off_gcd=1,if=fight_remains<20||charges=3||cooldown.vengeful_retreat.remains<5\nactions.cooldown+=/use_item,name=elementium_pocket_anvil,use_off_gcd=1\nactions.cooldown+=/elysian_decree,if=(active_enemies>desired_targets||raid_event.adds.in>30)\nactions.cooldown+=/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.cooldown+=/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# 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))||boss&fight_remains<=20)||(variable.trinket_sync_slot=2&!trinket.2.cooldown.ready)||!variable.trinket_sync_slot)&(!talent.initiative||buff.initiative.up)\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))||boss&fight_remains<=20)||(variable.trinket_sync_slot=1&!trinket.1.cooldown.ready)||!variable.trinket_sync_slot)&(!talent.initiative||buff.initiative.up)\nactions.cooldown+=/use_item,name=stormeaters_boon,use_off_gcd=1,if=cooldown.metamorphosis.remains&(!talent.momentum||buff.momentum.remains>5)&(active_enemies>1||raid_event.adds.in>140)\nactions.cooldown+=/elysian_decree,if=(active_enemies>desired_targets||raid_event.adds.in>30)", ["version"] = 20230512, ["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 3: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 5: Converted operations in '((buff.initiative.remains>2&debuff.essence_break.down&cooldown.essence_break.remains>gcd.max&time>14||time_to_die<10||time<1&!equipped.algethar_puzzle_box||boss&(fight_remains%%120<5))&!prev_gcd.1.essence_break)' to '((buff.initiative.remains>2&debuff.essence_break.down&cooldown.essence_break.remains>gcd.max&time>14||time_to_die<10||time<1&!equipped.algethar_puzzle_box||boss&(fight_remains%120<5))&!prev_gcd.1.essence_break)'.\nLine 6: Converted operations in 'cooldown.metamorphosis.remains<=gcd.max*5||boss&((fight_remains%%180>10)&(fight_remains%%180<22)||fight_remains<25)' to 'cooldown.metamorphosis.remains<=gcd.max*5||boss&((fight_remains%180>10)&(fight_remains%180<22)||fight_remains<25)'.\nLine 10: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 10: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (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.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 11: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 11: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 11: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 11: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 11: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 11: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 12: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 12: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 12: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 12: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 12: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 12: Converted operations in '(variable.trinket_sync_slot=1&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t1.cooldown.duration%2))||boss&fight_remains<=20)||(variable.trinket_sync_slot=2&!trinket.t2.cooldown.ready)||!variable.trinket_sync_slot)&(!talent.initiative.enabled||buff.initiative.up)' to '(variable.trinket_sync_slot=1&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t1.cooldown.duration/2))||boss&fight_remains<=20)||(variable.trinket_sync_slot=2&!trinket.t2.cooldown.ready)||!variable.trinket_sync_slot)&(!talent.initiative.enabled||buff.initiative.up)'.\nLine 13: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 13: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 13: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 13: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 13: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 13: Converted operations in '(variable.trinket_sync_slot=2&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t2.cooldown.duration%2))||boss&fight_remains<=20)||(variable.trinket_sync_slot=1&!trinket.t1.cooldown.ready)||!variable.trinket_sync_slot)&(!talent.initiative.enabled||buff.initiative.up)' to '(variable.trinket_sync_slot=2&(buff.metamorphosis.up||(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.t2.cooldown.duration/2))||boss&fight_remains<=20)||(variable.trinket_sync_slot=1&!trinket.t1.cooldown.ready)||!variable.trinket_sync_slot)&(!talent.initiative.enabled||buff.initiative.up)'.\nLine 14: 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 7: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 7: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 7: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 7: Converted 'talent.inner_demon' to 'talent.inner_demon.enabled' (1x).\nLine 8: Converted 'talent.ragefire' to 'talent.ragefire.enabled' (1x).\nLine 9: Converted 'talent.soulrend' to 'talent.soulrend.enabled' (1x).\nLine 9: Converted 'talent.furious_throws' to 'talent.furious_throws.enabled' (1x).\nLine 14: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 14: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 14: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 14: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 14: Converted 'talent.any_means_necessary' to 'talent.any_means_necessary.enabled' (1x).\nLine 15: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 15: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 15: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 15: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 15: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 15: Converted 'talent.any_means_necessary' to 'talent.any_means_necessary.enabled' (1x).\nLine 16: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 16: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 18: Converted 'talent.tactical_retreat' to 'talent.tactical_retreat.enabled' (1x).\nLine 19: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 25: Converted 'talent.serrated_glaive' to 'talent.serrated_glaive.enabled' (1x).\nLine 26: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 26: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 26: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 27: Converted 'talent.demonic' to 'talent.demonic.enabled' (1x).\nLine 28: Converted 'talent.any_means_necessary' to 'talent.any_means_necessary.enabled' (1x).\nLine 29: Converted 'talent.soulrend' to 'talent.soulrend.enabled' (1x).\nLine 29: Converted 'talent.furious_throws' to 'talent.furious_throws.enabled' (1x).\nLine 31: Converted 'talent.any_means_necessary' to 'talent.any_means_necessary.enabled' (1x).\nLine 33: Converted 'talent.soulrend' to 'talent.soulrend.enabled' (1x).\nLine 33: Converted 'talent.furious_throws' to 'talent.furious_throws.enabled' (1x).\nLine 34: Converted 'talent.ragefire' to 'talent.ragefire.enabled' (1x).\nLine 35: Converted 'talent.isolated_prey' to 'talent.isolated_prey.enabled' (1x).\nLine 39: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 39: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\nLine 40: Converted 'talent.burning_wound' to 'talent.burning_wound.enabled' (1x).\nLine 41: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 41: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\nLine 44: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 45: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 46: Converted 'talent.demon_blades' to 'talent.demon_blades.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\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'.\n\nImported 4 action lists.\n", ["lists"] = { ["meta_end"] = { { ["action"] = "death_sweep", ["enabled"] = true, }, -- [1] { ["action"] = "annihilation", ["enabled"] = true, }, -- [2] }, ["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", ["description"] = "Blade Dance with First Blood, Trail of Ruin, or at 2+ targets", ["var_name"] = "blade_dance", }, -- [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 & ! ( action.fel_rush.disabled & action.vengeful_retreat.disabled )", ["var_name"] = "waiting_for_momentum", }, -- [6] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( talent.demonic.enabled & talent.essence_break.enabled ) & variable.three_min_trinket & fight_remains > cooldown.metamorphosis.remains + 30 + talent.shattered_destiny.enabled * 60 & cooldown.metamorphosis.remains < 20 & cooldown.metamorphosis.remains > action.eye_beam.execute_time + gcd.max * ( talent.inner_demon.enabled + 2 )", ["var_name"] = "holding_meta", }, -- [7] { ["enabled"] = true, ["criteria"] = "talent.ragefire.enabled & active_enemies >= 3 & ( cooldown.blade_dance.remains || debuff.essence_break.down )", ["action"] = "immolation_aura", }, -- [8] { ["enabled"] = true, ["criteria"] = "talent.soulrend.enabled & talent.furious_throws.enabled & active_enemies >= 3 & time < 1", ["action"] = "throw_glaive", }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.unbound_chaos.up & ( buff.unbound_chaos.remains < gcd.max * 2 || target.time_to_die < gcd.max * 2 )", ["action"] = "fel_rush", }, -- [10] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "cooldown", }, -- [11] { ["enabled"] = true, ["criteria"] = "buff.metamorphosis.up & buff.metamorphosis.remains < gcd.max & active_enemies < 3", ["action"] = "call_action_list", ["list_name"] = "meta_end", }, -- [12] { ["enabled"] = true, ["criteria"] = "buff.inner_demon.up & cooldown.metamorphosis.remains <= gcd.max * 3", ["action"] = "annihilation", }, -- [13] { ["enabled"] = true, ["criteria"] = "talent.initiative.enabled & talent.essence_break.enabled & time > 1 & ( 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 ) ) ) & ( time < 30 || gcd.remains < 1 ) & ! talent.any_means_necessary.enabled", ["action"] = "vengeful_retreat", ["use_off_gcd"] = 1, }, -- [14] { ["enabled"] = true, ["criteria"] = "talent.initiative.enabled & talent.essence_break.enabled & time > 1 & ( cooldown.essence_break.remains > 15 || cooldown.essence_break.remains < gcd.max * 2 & ( buff.initiative.remains < gcd.max & ! variable.holding_meta & cooldown.eye_beam.remains <= gcd.remains & ( raid_event.adds.in > ( 40 - talent.cycle_of_hatred.enabled * 15 ) ) & fury > 30 || ! talent.demonic.enabled || buff.metamorphosis.up || cooldown.eye_beam.remains > 15 + ( 10 * talent.cycle_of_hatred.enabled ) ) ) & talent.any_means_necessary.enabled", ["action"] = "vengeful_retreat", ["use_off_gcd"] = 1, }, -- [15] { ["enabled"] = true, ["criteria"] = "talent.initiative.enabled & ! talent.essence_break.enabled & time > 1 & ! buff.momentum.up", ["action"] = "vengeful_retreat", ["use_off_gcd"] = 1, }, -- [16] { ["enabled"] = true, ["criteria"] = "talent.momentum.enabled & buff.momentum.remains < gcd.max * 2 & ( charges_fractional > 1.8 || cooldown.eye_beam.remains < 3 ) & debuff.essence_break.down", ["action"] = "fel_rush", }, -- [17] { ["enabled"] = true, ["criteria"] = "( active_enemies > desired_targets || raid_event.adds.in > 40 ) & ! variable.waiting_for_momentum & buff.metamorphosis.up & ( ! talent.tactical_retreat.enabled || buff.tactical_retreat.up || action.vengeful_retreat.disabled ) || boss & fight_remains < 6", ["action"] = "essence_break", }, -- [18] { ["enabled"] = true, ["criteria"] = "variable.blade_dance & ( ! talent.essence_break.enabled || cooldown.essence_break.remains > ( cooldown.death_sweep.duration - 4 ) )", ["action"] = "death_sweep", }, -- [19] { ["enabled"] = true, ["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 30", ["action"] = "fel_barrage", }, -- [20] { ["enabled"] = true, ["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > 10 & ( debuff.essence_break.down || active_enemies > 1 )", ["action"] = "glaive_tempest", }, -- [21] { ["enabled"] = true, ["criteria"] = "buff.inner_demon.up & cooldown.eye_beam.remains <= gcd.max", ["action"] = "annihilation", }, -- [22] { ["enabled"] = true, ["criteria"] = "talent.momentum.enabled & cooldown.eye_beam.remains < gcd.max * 3 & buff.momentum.remains < 5 & buff.metamorphosis.down", ["action"] = "fel_rush", }, -- [23] { ["enabled"] = true, ["criteria"] = "debuff.essence_break.down & ( time < 10 || cooldown.metamorphosis.remains > 10 || ! equipped.algethar_puzzle_box ) & ( raid_event.adds.in > 90 || active_enemies > 3 || time_to_die < 10 ) & ( time > 8 & debuff.essence_break.down || ! set_bonus.tier30_2pc )", ["action"] = "the_hunt", }, -- [24] { ["enabled"] = true, ["criteria"] = "talent.serrated_glaive.enabled & cooldown.eye_beam.remains < 6 & ! debuff.serrated_glaive.up & ! debuff.essence_break.up & cooldown.blade_dance.remains", ["action"] = "throw_glaive", }, -- [25] { ["enabled"] = true, ["criteria"] = "active_enemies > desired_targets || raid_event.adds.in > ( 40 - talent.cycle_of_hatred.enabled * 15 ) & ! debuff.essence_break.up & ( cooldown.metamorphosis.remains > 40 - talent.cycle_of_hatred.enabled * 15 || ! variable.holding_meta ) & ( buff.metamorphosis.down || buff.metamorphosis.remains > gcd.max || ! talent.restless_hunter.enabled ) & ( buff.metamorphosis.down || cooldown.blade_dance.remains > gcd.max ) || fight_remains < 15", ["action"] = "eye_beam", }, -- [26] { ["enabled"] = true, ["criteria"] = "variable.blade_dance & ( cooldown.eye_beam.remains > 5 || equipped.algethar_puzzle_box & cooldown.metamorphosis.remains > ( cooldown.blade_dance.duration ) || ! talent.demonic.enabled || ( raid_event.adds.in > action_cooldown & raid_event.adds.in < 25 ) )", ["action"] = "blade_dance", }, -- [27] { ["enabled"] = true, ["criteria"] = "talent.any_means_necessary.enabled & debuff.essence_break.down & active_enemies >= 4", ["action"] = "sigil_of_flame", }, -- [28] { ["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 & ( full_recharge_time < gcd.max * 3 || active_enemies > 1 )", ["action"] = "throw_glaive", }, -- [29] { ["enabled"] = true, ["criteria"] = "fury < 70 & debuff.essence_break.down & time_to_die > 3", ["action"] = "immolation_aura", }, -- [30] { ["enabled"] = true, ["criteria"] = "talent.any_means_necessary.enabled & debuff.essence_break.down", ["action"] = "sigil_of_flame", }, -- [31] { ["enabled"] = true, ["criteria"] = "! variable.pooling_for_blade_dance", ["action"] = "annihilation", }, -- [32] { ["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", }, -- [33] { ["enabled"] = true, ["criteria"] = "! buff.immolation_aura.up & ( ! talent.ragefire.enabled || active_enemies > desired_targets || raid_event.adds.in > 15 )", ["action"] = "immolation_aura", }, -- [34] { ["enabled"] = true, ["criteria"] = "talent.isolated_prey.enabled & active_enemies = 1 & fury.deficit >= 35", ["action"] = "fel_rush", }, -- [35] { ["enabled"] = true, ["criteria"] = "! variable.pooling_for_blade_dance & ! variable.pooling_for_eye_beam", ["action"] = "chaos_strike", }, -- [36] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 15 & fury.deficit >= 30", ["action"] = "sigil_of_flame", }, -- [37] { ["enabled"] = true, ["criteria"] = "fury.deficit >= 40", ["action"] = "felblade", }, -- [38] { ["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", }, -- [39] { ["enabled"] = true, ["action"] = "demons_bite", ["criteria"] = "talent.burning_wound.enabled & debuff.burning_wound.remains < 4 & active_dot.burning_wound < ( spell_targets >? 3 )", ["cycle_targets"] = 1, }, -- [40] { ["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", }, -- [41] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 15 & fury.deficit >= 30", ["action"] = "sigil_of_flame", }, -- [42] { ["action"] = "demons_bite", ["enabled"] = true, }, -- [43] { ["enabled"] = true, ["criteria"] = "settings.fel_rush_filler & ( movement.distance > 15 || ( buff.out_of_range.up & ! talent.momentum.enabled ) )", ["action"] = "fel_rush", }, -- [44] { ["enabled"] = true, ["criteria"] = "settings.retreat_filler & ! talent.initiative.enabled & movement.distance > 15", ["action"] = "vengeful_retreat", }, -- [45] { ["enabled"] = true, ["criteria"] = "( talent.demon_blades.enabled || buff.out_of_range.up ) & ! debuff.essence_break.up", ["action"] = "throw_glaive", }, -- [46] }, ["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 + talent.shattered_destiny.enabled * 70 & cooldown.eye_beam.remains & cooldown.blade_dance.remains )", ["action"] = "metamorphosis", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.metamorphosis.remains > 25 || buff.metamorphosis.up & cooldown.metamorphosis.ready || boss & fight_remains < 60 || time > 0.1 & time < 10", ["action"] = "potion", }, -- [4] { ["enabled"] = true, ["action"] = "manic_grieftorch", ["use_off_gcd"] = 1, ["name"] = "manic_grieftorch", ["criteria"] = "( ( buff.initiative.remains > 2 & debuff.essence_break.down & cooldown.essence_break.remains > gcd.max & time > 14 || time_to_die < 10 || time < 1 & ! equipped.algethar_puzzle_box || boss & ( fight_remains % 120 < 5 ) ) & ! prev_gcd.1.essence_break )", }, -- [5] { ["enabled"] = true, ["action"] = "algethar_puzzle_box", ["use_off_gcd"] = 1, ["name"] = "algethar_puzzle_box", ["criteria"] = "cooldown.metamorphosis.remains <= gcd.max * 5 || boss & ( ( fight_remains % 180 > 10 ) & ( fight_remains % 180 < 22 ) || fight_remains < 25 )", }, -- [6] { ["enabled"] = true, ["action"] = "dragonfire_bomb_dispenser", ["use_off_gcd"] = 1, ["name"] = "dragonfire_bomb_dispenser", ["criteria"] = "fight_remains < 20 || charges = 3 || cooldown.vengeful_retreat.remains < 5", }, -- [7] { ["enabled"] = true, ["action"] = "elementium_pocket_anvil", ["name"] = "elementium_pocket_anvil", ["use_off_gcd"] = 1, }, -- [8] { ["enabled"] = true, ["criteria"] = "( active_enemies > desired_targets || raid_event.adds.in > 30 )", ["action"] = "elysian_decree", }, -- [9] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "1", ["criteria"] = "trinket.t1.has_stat.any_dps & ( ! trinket.t2.has_stat.any_dps || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration )", ["var_name"] = "trinket_sync_slot", }, -- [10] { ["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", }, -- [11] { ["enabled"] = true, ["criteria"] = "( variable.trinket_sync_slot = 1 & ( buff.metamorphosis.up || ( ! talent.demonic.enabled & cooldown.metamorphosis.remains > ( fight_remains >? trinket.t1.cooldown.duration / 2 ) ) || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 2 & ! trinket.t2.cooldown.ready ) || ! variable.trinket_sync_slot ) & ( ! talent.initiative.enabled || buff.initiative.up )", ["description"] = "Default use item logic", ["slots"] = "trinket1", ["action"] = "trinket1", }, -- [12] { ["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 ) ) || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 1 & ! trinket.t1.cooldown.ready ) || ! variable.trinket_sync_slot ) & ( ! talent.initiative.enabled || buff.initiative.up )", }, -- [13] { ["enabled"] = true, ["action"] = "stormeaters_boon", ["use_off_gcd"] = 1, ["name"] = "stormeaters_boon", ["criteria"] = "cooldown.metamorphosis.remains & ( ! talent.momentum.enabled || buff.momentum.remains > 5 ) & ( active_enemies > 1 || raid_event.adds.in > 140 )", }, -- [14] { ["enabled"] = true, ["criteria"] = "( active_enemies > desired_targets || raid_event.adds.in > 30 )", ["action"] = "elysian_decree", }, -- [15] }, ["precombat"] = { { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.cooldown.duration = 180 || trinket.t2.cooldown.duration = 180", ["var_name"] = "three_min_trinket", }, -- [1] { ["enabled"] = true, ["criteria"] = "fury.deficit > 15", ["action"] = "arcane_torrent", }, -- [2] { ["enabled"] = true, ["name"] = "algethar_puzzle_box", ["action"] = "algethar_puzzle_box", ["criteria"] = "cooldown.metamorphosis.remains < 5", }, -- [3] { ["enabled"] = true, ["criteria"] = "! equipped.algethar_puzzle_box", ["action"] = "sigil_of_flame", }, -- [4] { ["action"] = "immolation_aura", ["enabled"] = true, }, -- [5] }, }, ["author"] = "SimC", }, ["Vengeance"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230520, ["spec"] = 581, ["desc"] = "2023-05-20: Added trinkets.", ["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,name=dragonfire_bomb_dispenser,use_off_gcd=1,if=boss&fight_remains<20||charges=3\nactions+=/use_item,name=elementium_pocket_anvil,use_off_gcd=1\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"] = 20230520, ["warnings"] = "The import for 'default' required some automated changes.\nLine 14: Converted 'talent.the_hunt' to 'talent.the_hunt.enabled' (1x).\nLine 14: Converted 'talent.the_hunt' to 'talent.the_hunt.enabled' (1x).\nLine 15: Converted 'talent.elysian_decree' to 'talent.elysian_decree.enabled' (1x).\nLine 15: Converted 'talent.elysian_decree' to 'talent.elysian_decree.enabled' (1x).\nLine 16: Converted 'talent.soul_carver' to 'talent.soul_carver.enabled' (1x).\nLine 16: Converted 'talent.soul_carver' to 'talent.soul_carver.enabled' (1x).\nLine 17: Converted 'talent.fel_devastation' to 'talent.fel_devastation.enabled' (1x).\nLine 17: Converted 'talent.fel_devastation' to 'talent.fel_devastation.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 20: Converted 'talent.fiery_brand' to 'talent.fiery_brand.enabled' (1x).\nLine 20: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 21: Converted 'talent.fiery_brand' to 'talent.fiery_brand.enabled' (1x).\nLine 21: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 21: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 25: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 28: Converted 'talent.soul_carver' to 'talent.soul_carver.enabled' (1x).\nLine 28: Converted 'talent.fel_devastation' to 'talent.fel_devastation.enabled' (1x).\nLine 29: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 30: 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, ["criteria"] = "charges = max_charges & target.distance > 10", ["action"] = "infernal_strike", ["use_off_gcd"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "! buff.demon_spikes.up & tanking", ["action"] = "demon_spikes", ["use_off_gcd"] = 1, }, -- [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"] = "dragonfire_bomb_dispenser", ["use_off_gcd"] = 1, ["name"] = "dragonfire_bomb_dispenser", ["criteria"] = "boss & fight_remains < 20 || charges = 3", }, -- [10] { ["enabled"] = true, ["action"] = "elementium_pocket_anvil", ["name"] = "elementium_pocket_anvil", ["use_off_gcd"] = 1, }, -- [11] { ["enabled"] = true, ["action"] = "trinket1", ["slot"] = "trinket1", }, -- [12] { ["enabled"] = true, ["action"] = "trinket2", ["slot"] = "trinket2", }, -- [13] { ["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", }, -- [14] { ["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", }, -- [15] { ["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", }, -- [16] { ["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", }, -- [17] { ["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", }, -- [18] { ["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", }, -- [19] { ["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", }, -- [20] { ["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", }, -- [21] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "spirit_bomb_soul_fragments", ["criteria"] = "buff.metamorphosis.up", ["value_else"] = "variable.spirit_bomb_soul_fragments_not_in_meta", ["value"] = "variable.spirit_bomb_soul_fragments_in_meta", }, -- [22] { ["enabled"] = true, ["criteria"] = "variable.fiery_demise_fiery_brand_is_not_ticking_on_current_target & frailty_threshold_met", ["action"] = "the_hunt", }, -- [23] { ["enabled"] = true, ["criteria"] = "variable.fiery_demise_fiery_brand_is_not_ticking_on_current_target & frailty_threshold_met", ["action"] = "elysian_decree", }, -- [24] { ["enabled"] = true, ["criteria"] = "! talent.fiery_demise.enabled & soul_fragments <= 3 & frailty_threshold_met", ["action"] = "soul_carver", }, -- [25] { ["enabled"] = true, ["criteria"] = "variable.fiery_demise_fiery_brand_is_ticking_on_current_target & soul_fragments <= 3 & frailty_threshold_met", ["action"] = "soul_carver", }, -- [26] { ["enabled"] = true, ["criteria"] = "variable.fiery_demise_fiery_brand_is_ticking_on_current_target & dot.fiery_brand.remains < 3", ["action"] = "fel_devastation", }, -- [27] { ["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", }, -- [28] { ["enabled"] = true, ["criteria"] = "talent.fiery_demise.enabled & variable.fiery_demise_fiery_brand_is_ticking_on_any_target", ["action"] = "immolation_aura", }, -- [29] { ["enabled"] = true, ["criteria"] = "talent.fiery_demise.enabled & variable.fiery_demise_fiery_brand_is_ticking_on_any_target", ["action"] = "sigil_of_flame", }, -- [30] { ["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", }, -- [31] { ["enabled"] = true, ["criteria"] = "( soul_fragments <= 1 & spell_targets > 1 ) || spell_targets = 1", ["action"] = "soul_cleave", }, -- [32] { ["action"] = "sigil_of_flame", ["enabled"] = true, }, -- [33] { ["action"] = "immolation_aura", ["enabled"] = true, }, -- [34] { ["action"] = "fracture", ["enabled"] = true, }, -- [35] { ["action"] = "shear", ["enabled"] = true, }, -- [36] { ["action"] = "throw_glaive", ["enabled"] = true, }, -- [37] { ["action"] = "felblade", ["enabled"] = true, }, -- [38] }, ["precombat"] = { { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "spirit_bomb_soul_fragments_not_in_meta", ["criteria"] = "talent.fracture.enabled", ["value_else"] = "5", ["value"] = "4", }, -- [1] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "spirit_bomb_soul_fragments_in_meta", ["criteria"] = "talent.fracture.enabled", ["value_else"] = "4", ["value"] = "3", }, -- [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, ["forceEnableEnhancedRecheckBoomkin_20210712"] = true, ["resetRogueMfDOption_20200226"] = true, ["enableAllOfTheThings_20180820"] = true, ["resetGlobalCooldownSync_20210403"] = true, ["resetPotionsToDefaults_20190717"] = true, ["resetAllPotions_20201209"] = true, ["resetAberrantPackageDates_20190728_1"] = true, }, ["specs"] = { [266] = { ["maxRefresh"] = 10, ["custom2Name"] = "Custom 2", ["throttleRefresh"] = false, ["damagePets"] = false, ["aoe"] = 3, ["enhancedRecheck"] = false, ["gcdSync"] = true, ["damageDots"] = false, ["throttleTime"] = false, ["enabled"] = true, ["petbased"] = false, ["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, ["debuffPadding"] = 0, ["damageRange"] = 0, }, [267] = { ["maxRefresh"] = 10, ["custom2Name"] = "Custom 2", ["throttleRefresh"] = false, ["damagePets"] = false, ["aoe"] = 3, ["enhancedRecheck"] = false, ["gcdSync"] = true, ["damageDots"] = false, ["throttleTime"] = false, ["enabled"] = true, ["petbased"] = false, ["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, ["debuffPadding"] = 0, ["damageRange"] = 0, }, [265] = { ["maxRefresh"] = 10, ["custom2Name"] = "Custom 2", ["throttleRefresh"] = false, ["damagePets"] = false, ["settings"] = { ["manage_ds_ticks"] = false, }, ["aoe"] = 3, ["enhancedRecheck"] = false, ["gcdSync"] = true, ["damageDots"] = false, ["throttleTime"] = false, ["enabled"] = true, ["petbased"] = false, ["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, ["debuffPadding"] = 0, ["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, ["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < target.distance / 5 & time > variable.first_tyrant_time - ( target.distance / 5 )", ["name"] = "soulletting_ruby", ["action"] = "soulletting_ruby", }, -- [1] { ["enabled"] = true, ["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < target.distance / 5 & time > variable.first_tyrant_time - ( target.distance / 5 )", ["name"] = "sunblood_amethyst", ["action"] = "sunblood_amethyst", }, -- [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", ["criteria"] = "soulbind.volatile_solvent.enabled", ["action"] = "fleshcraft", }, -- [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, ["description"] = "If Dreadstalkers are already active, no need to save shards", ["criteria"] = "soul_shard >= 3 & ( pet.dreadstalker.active || pet.demonic_tyrant.active )", ["action"] = "hand_of_guldan", }, -- [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, ["description"] = "Without Sacrificed Souls, Soul Strike is stronger than Demonbolt, so it has a higher priority", ["criteria"] = "! talent.sacrificed_souls.enabled", ["action"] = "soul_strike", }, -- [28] { ["enabled"] = true, ["description"] = "Spend Demonic Cores for Soul Shards until Tyrant cooldown is close to ready", ["criteria"] = "buff.demonic_core.react & soul_shard < 4 & cooldown.summon_demonic_tyrant.remains_expected > 20", ["action"] = "demonbolt", }, -- [29] { ["enabled"] = true, ["description"] = "During Tyrant setup, spend Demonic Cores for Soul Shards", ["criteria"] = "buff.demonic_core.react & soul_shard < 4 & cooldown.summon_demonic_tyrant.remains_expected < 12", ["action"] = "demonbolt", }, -- [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, ["description"] = "If you can get back to 5 Soul Shards before Dreadstalkers cooldown is ready, it's okay to spend them now", ["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", }, -- [35] { ["enabled"] = true, ["criteria"] = "refreshable & time > variable.first_tyrant_time", ["action"] = "doom", ["cycle_targets"] = 1, }, -- [36] { ["enabled"] = true, ["description"] = "Use Demonbolt if you're going to lose Demonic Core stacks, even if it'd waste a soul shard.", ["criteria"] = "buff.demonic_core.react & buff.demonic_core.remains < 1 + gcd.max * buff.demonic_core.stack", ["action"] = "demonbolt", }, -- [37] { ["action"] = "shadow_bolt", ["enabled"] = true, }, -- [38] }, ["precombat"] = { { ["enabled"] = true, ["op"] = "set", ["description"] = "Executed before combat begins. Accepts non-harmful actions only.", ["var_name"] = "first_tyrant_time", ["value"] = "10", ["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, ["criteria"] = "cooldown.summon_demonic_tyrant.remains_expected < 22", ["name"] = "shadowed_orb_of_torment", ["action"] = "shadowed_orb_of_torment", }, -- [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, ["criteria"] = "pet.demonic_tyrant.active", ["name"] = "overflowing_anima_cage", ["action"] = "overflowing_anima_cage", }, -- [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, ["criteria"] = "active_enemies = 1", ["name"] = "glyph_of_assimilation", ["action"] = "glyph_of_assimilation", }, -- [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&timevariable.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_expected12-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_expectedvariable.first_tyrant_time-(target.distance%5)\nactions.slow_trinkets+=/use_item,name=sunblood_amethyst,if=cooldown.summon_demonic_tyrant.remains_expectedvariable.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.remains0&!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.remains20||(variable.trinket_one&cooldown.impending_catastrophe.remains20||(variable.trinket_one&cooldown.phantom_singularity.remains20||(variable.trinket_one&cooldown.summon_darkglare.remains2||!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.duration1)\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_die1)\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.duration4\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, ["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 20 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 20 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )", ["name"] = "empyreal_ordnance", ["action"] = "empyreal_ordnance", }, -- [1] { ["enabled"] = true, ["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 6 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 6 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )", ["name"] = "sunblood_amethyst", ["action"] = "sunblood_amethyst", }, -- [2] { ["enabled"] = true, ["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 8 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 8 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )", ["name"] = "soulletting_ruby", ["action"] = "soulletting_ruby", }, -- [3] { ["enabled"] = true, ["criteria"] = "( covenant.night_fae & cooldown.soul_rot.remains < 4 ) || ( covenant.venthyr & cooldown.impending_catastrophe.remains < 4 ) || ( covenant.necrolord || covenant.kyrian || covenant.none )", ["name"] = "shadowed_orb_of_torment", ["action"] = "shadowed_orb_of_torment", }, -- [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, ["description"] = "Burn soul shards if fight is almost over", ["criteria"] = "boss & fight_remains < execute_time * soul_shard & dot.unstable_affliction.ticking", ["action"] = "malefic_rapture", }, -- [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, ["description"] = "If Phantom Singularity is ticking, it is safe to use Dark Soul", ["criteria"] = "dot.phantom_singularity.ticking", ["action"] = "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, ["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)", ["criteria"] = "covenant.night_fae & time > 5 & cooldown.soul_rot.remains < 1 & ( cooldown.empyreal_ordnance.remains < 162 || ! equipped.empyreal_ordnance )", ["action"] = "phantom_singularity", }, -- [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, ["description"] = "Necrolord with Malefic Wrath casts phantom singularity in line with Decimating Bolt", ["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", }, -- [15] { ["enabled"] = true, ["description"] = "Other covenants (including non-MW Necro) cast PS on cooldown", ["criteria"] = "( covenant.kyrian || covenant.none || ( covenant.necrolord & ! runeforge.malefic_wrath.enabled ) ) & ( cooldown.empyreal_ordnance.remains < 162 || ! equipped.empyreal_ordnance )", ["action"] = "phantom_singularity", }, -- [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, ["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.", ["criteria"] = "active_enemies > 2 & talent.sow_the_seeds.enabled & ! dot.seed_of_corruption.ticking & ! in_flight", ["action"] = "seed_of_corruption", }, -- [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, ["description"] = "After the opener, spend a shard when at 5 on Malefic Rapture to avoid overcapping", ["criteria"] = "soul_shard > 4 & time > 21", ["action"] = "malefic_rapture", }, -- [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, ["description"] = "Use Dark Soul if Darkglare won't be ready again, or if there will be at least 2 more Darkglare uses", ["criteria"] = "boss & cooldown.summon_darkglare.remains > fight_remains & ( ! talent.phantom_singularity.enabled || cooldown.phantom_singularity.remains > fight_remains )", ["action"] = "dark_soul", }, -- [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, ["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", ["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", }, -- [34] { ["enabled"] = true, ["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)", ["criteria"] = "runeforge.malefic_wrath.enabled & cooldown.soul_rot.remains > 20 & buff.malefic_wrath.remains < 4", ["action"] = "malefic_rapture", }, -- [35] { ["enabled"] = true, ["description"] = "Maintain Malefic Wrath at all times for the Necrolord or Kyrian covenant", ["criteria"] = "runeforge.malefic_wrath.enabled & ( covenant.necrolord || covenant.kyrian ) & buff.malefic_wrath.remains < 4", ["action"] = "malefic_rapture", }, -- [36] { ["enabled"] = true, ["description"] = "Use Malefic Rapture on Phantom Singularity casts, making sure to save a shard to stack Malefic Wrath if using it", ["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", }, -- [37] { ["enabled"] = true, ["criteria"] = "talent.sow_the_seeds.enabled", ["action"] = "malefic_rapture", }, -- [38] { ["enabled"] = true, ["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", ["criteria"] = "buff.inevitable_demise.stack > 40 || buff.inevitable_demise.up & boss & fight_remains < 4", ["action"] = "drain_life", }, -- [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", ["criteria"] = "soulbind.volatile_solvent.enabled", ["action"] = "fleshcraft", }, -- [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", ["criteria"] = "soulbind.volatile_solvent.enabled", ["action"] = "fleshcraft", }, -- [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, ["description"] = "Executed before combat begins. Accepts non-harmful actions only.", ["criteria"] = "time > 0 & ! pet.alive", ["action"] = "fel_domination", }, -- [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, ["criteria"] = "cooldown.summon_infernal.remains < 3 || target.time_to_die < 42", ["name"] = "shadowed_orb_of_torment", ["action"] = "shadowed_orb_of_torment", }, -- [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", ["criteria"] = "soulbind.volatile_solvent.enabled", ["action"] = "fleshcraft", }, -- [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&remainsdot.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=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_time80||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, ["t30_bloodthirst_crit"] = 95, ["heroic_charge"] = false, }, ["package"] = "Fury", ["potionsReset"] = 20180919.1, ["maxTime"] = 33, }, [102] = { ["enhancedRecheck"] = true, }, }, ["displays"] = { ["AOE"] = { ["rel"] = "CENTER", ["x"] = 118.3330764770508, ["y"] = -397.4996643066406, }, ["Primary"] = { ["y"] = -397.4990844726563, ["x"] = -49.99994277954102, ["rel"] = "CENTER", }, ["Defensives"] = { ["rel"] = "CENTER", ["y"] = -224.9999847412109, }, ["Interrupts"] = { ["rel"] = "CENTER", ["y"] = -224.9999847412109, }, }, ["packs"] = { ["Arms"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230520, ["author"] = "SimulationCraft", ["desc"] = "2023-05-20: Update trinket/CDs.\n\n2023-05-08: Use Arcane Torrent at pretty low priority in single-target.\n\n2023-05-02: Update for 10.1.\n\n2023-03-26: Include Spell Reflection.", ["lists"] = { ["single_target"] = { { ["enabled"] = true, ["criteria"] = "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"] = "arcane_torrent", ["enabled"] = true, }, -- [23] { ["action"] = "cleave", ["enabled"] = true, }, -- [24] { ["action"] = "wrecking_throw", ["enabled"] = true, }, -- [25] { ["enabled"] = true, ["criteria"] = "remains < duration * 0.3", ["action"] = "rend", }, -- [26] }, ["default"] = { { ["enabled"] = true, ["criteria"] = "time <= 0.5 || movement.distance > 8", ["action"] = "charge", }, -- [1] { ["action"] = "pummel", ["enabled"] = true, }, -- [2] { ["action"] = "spell_reflection", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25", ["action"] = "potion", }, -- [4] { ["enabled"] = true, ["criteria"] = "cooldown.avatar.remains < 3", ["action"] = "algethar_puzzle_box", }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.avatar.up", ["action"] = "vial_of_animated_blood", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.avatar.up", ["action"] = "irideus_fragment", }, -- [7] { ["enabled"] = true, ["criteria"] = "! buff.avatar.up & ! debuff.colossus_smash.up", ["action"] = "manic_grieftorch", }, -- [8] { ["enabled"] = true, ["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25", ["action"] = "gladiators_badge", }, -- [9] { ["action"] = "use_items", ["enabled"] = true, }, -- [10] { ["enabled"] = true, ["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50", ["action"] = "arcane_torrent", }, -- [11] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains", ["action"] = "lights_judgment", }, -- [12] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains", ["action"] = "bag_of_tricks", }, -- [13] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.remains > 6", ["action"] = "berserking", }, -- [14] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "ancestral_call", }, -- [15] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "blood_fury", }, -- [16] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "ancestral_call", }, -- [17] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "raid_event.adds.exists || active_enemies > 2", ["list_name"] = "hac", }, -- [18] { ["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", }, -- [19] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "! raid_event.adds.exists", ["list_name"] = "single_target", }, -- [20] }, ["precombat"] = { { ["action"] = "battle_stance", ["enabled"] = true, }, -- [1] { ["action"] = "battle_shout", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["name"] = "algethar_puzzle_box", ["action"] = "algethar_puzzle_box", }, -- [3] }, ["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 || target.time_to_die < 20", ["action"] = "avatar", }, -- [5] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 22 || active_enemies > 1", ["action"] = "warbreaker", }, -- [6] { ["enabled"] = true, ["action"] = "colossus_smash", ["criteria"] = "( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 )", ["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"] = "set_bonus.tier30_4pc", ["action"] = "mortal_strike", }, -- [16] { ["enabled"] = true, ["criteria"] = "buff.sweeping_strikes.up & talent.dreadnaught.enabled", ["action"] = "overpower", }, -- [17] { ["enabled"] = true, ["action"] = "mortal_strike", ["criteria"] = "debuff.executioners_precision.stack = 2 || dot.deep_wounds.remains <= gcd.max || talent.dreadnaught.enabled & talent.battlelord.enabled & active_enemies <= 2", ["cycle_targets"] = 1, }, -- [18] { ["enabled"] = true, ["action"] = "execute", ["criteria"] = "buff.sudden_death.react || active_enemies <= 2 & ( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 ) || buff.sweeping_strikes.up", ["cycle_targets"] = 1, }, -- [19] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 15", ["action"] = "thunderous_roar", }, -- [20] { ["enabled"] = true, ["criteria"] = "active_enemies > 2 & talent.sonic_boom.enabled", ["action"] = "shockwave", }, -- [21] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & ( charges = 2 & ! talent.battlelord.enabled & ( debuff.colossus_smash.down || rage.pct < 25 ) || talent.battlelord.enabled )", ["action"] = "overpower", }, -- [22] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & ! talent.battlelord.enabled & rage.pct > 70", ["action"] = "slam", }, -- [23] { ["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", }, -- [24] { ["enabled"] = true, ["criteria"] = "active_enemies > 2", ["action"] = "thunder_clap", }, -- [25] { ["action"] = "mortal_strike", ["enabled"] = true, }, -- [26] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & dot.rend.remains < duration * 0.3", ["action"] = "rend", }, -- [27] { ["enabled"] = true, ["criteria"] = "talent.storm_of_swords.enabled || talent.fervor_of_battle.enabled & active_enemies > 1", ["action"] = "whirlwind", }, -- [28] { ["enabled"] = true, ["criteria"] = "! talent.crushing_force.enabled", ["action"] = "cleave", }, -- [29] { ["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", }, -- [30] { ["enabled"] = true, ["criteria"] = "talent.crushing_force.enabled & rage > 30 & ( talent.fervor_of_battle.enabled & active_enemies = 1 || ! talent.fervor_of_battle.enabled )", ["action"] = "slam", }, -- [31] { ["enabled"] = true, ["criteria"] = "talent.sonic_boom.enabled", ["action"] = "shockwave", }, -- [32] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 30", ["action"] = "bladestorm", }, -- [33] { ["action"] = "wrecking_throw", ["enabled"] = true, }, -- [34] }, }, ["version"] = 20230520, ["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 '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 17: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 18: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 18: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 19: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 21: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\nLine 22: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 22: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 23: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 24: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 24: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 24: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 28: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 28: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 29: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 30: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 30: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 30: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 31: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 31: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 31: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 32: 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\n\nactions+=/charge,if=time<=0.5||movement.distance>8\nactions+=/pummel\nactions+=/spell_reflection\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+=/vial_of_animated_blood,if=buff.avatar.up\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.remains2&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.remains15||talent.blademasters_torment&active_enemies>1||target.time_to_die<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+=/mortal_strike,if=buff.sweeping_strikes.up&buff.crushing_advance.stack=3,if=set_bonus.tier30_4pc\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.remains1\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.remainsgcd*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+=/arcane_torrent\nactions.single_target+=/cleave\nactions.single_target+=/wrecking_throw\nactions.single_target+=/rend,if=remains1&(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.sunfire4||(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, ["name"] = "ashvanes_razor_coral", ["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", }, -- [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, ["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"] = "buff.ca_inc.remains > 10 || buff.ca_inc.remains > 4 & buff.arcanic_pulsar.stack > 6 || fight_remains < 21", ["name"] = "manifesto_of_madness", ["action"] = "manifesto_of_madness", }, -- [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, ["criteria"] = "buff.starlord.remains < 3 & ! solar_wrath.ap_check", ["action"] = "cancel_buff", ["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.starfallremains\nactions+=/moonfire,if=buff.ca_inc.up&buff.ca_inc.remains=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.remains0.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_die1)\nactions.cooldowns+=/memory_of_lucid_dreams\nactions.cooldowns+=/use_items", }, }, }, ["Quillphis - Deathwing"] = { ["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"] = { [252] = { ["maxRefresh"] = 10, ["custom2Name"] = "Custom 2", ["throttleRefresh"] = false, ["damagePets"] = false, ["aoe"] = 2, ["settings"] = { ["festermight_cycle"] = false, }, ["damageExpiration"] = 8, ["enhancedRecheck"] = true, ["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, }, ["aoe"] = 2, ["enhancedRecheck"] = false, ["gcdSync"] = true, ["damageDots"] = false, ["throttleTime"] = false, ["enabled"] = true, ["petbased"] = false, ["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, ["debuffPadding"] = 0, ["damageRange"] = 0, }, [250] = { ["maxRefresh"] = 10, ["custom2Name"] = "Custom 2", ["package"] = "Blood", ["damagePets"] = false, ["settings"] = { ["save_blood_shield"] = true, }, ["aoe"] = 2, ["enhancedRecheck"] = false, ["gcdSync"] = true, ["damageDots"] = false, ["throttleTime"] = false, ["enabled"] = true, ["petbased"] = false, ["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, ["debuffPadding"] = 0, ["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, ["criteria"] = "( ! settings.cycle || death_knight.fwounded_targets >= cycle_enemies ) & debuff.festering_wound.stack > 3 & rune.time_to_3 < cooldown.any_dnd.remains", ["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.", }, -- [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] }, ["trinkets"] = { { ["enabled"] = true, ["name"] = "inscrutable_quantum_device", ["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", }, -- [1] { ["enabled"] = true, ["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", ["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)", }, -- [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, ["criteria"] = "! trinket.t1.has_use_buff & ( trinket.t2.cooldown.remains || ! trinket.t2.has_use_buff )", ["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 )", ["action"] = "trinket2", }, -- [5] }, ["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, ["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 )", ["action"] = "swarming_mist", ["description"] = "Set to use after apoc is on CD as to prevent overcapping RP while setting up CD's", }, -- [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 )", ["value"] = "1", ["action"] = "variable", ["value_else"] = "0.5", ["var_name"] = "trinket_1_sync", }, -- [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 ) )", ["value"] = "2", ["action"] = "variable", ["value_else"] = "1", ["var_name"] = "trinket_priority", }, -- [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] }, ["racials"] = { { ["enabled"] = true, ["criteria"] = "runic_power.deficit > 65 & ( pet.gargoyle.active || ! talent.summon_gargoyle.enabled ) & rune.deficit >= 5", ["action"] = "arcane_torrent", ["description"] = "Racials", }, -- [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, ["criteria"] = "variable.major_cooldowns_active || pet.gargoyle.active & pet.gargoyle.remains <= 15 || boss & fight_remains <= 15", ["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.", }, -- [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] }, ["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, ["criteria"] = "active_dot.festering_wound >= cycle_enemies & debuff.festering_wound.stack < 4", ["action"] = "festering_strike", ["description"] = "This is effectively filler which sims DPS neutral, but should prevent a scenario where the addon has nothing to recommend.", }, -- [8] }, ["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, ["criteria"] = "dot.virulent_plague.refreshable & ! talent.unholy_blight.enabled & ! raid_event.adds.exists", ["action"] = "outbreak", ["description"] = "Maintaining Virulent Plague is a priority", }, -- [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, ["criteria"] = "covenant.night_fae & death_and_decay.active_remains < ( gcd * 1.5 ) & death_and_decay.ticking", ["action"] = "wound_spender", ["description"] = "Refreshes Deaths Due's buff just before deaths due ends", }, -- [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] }, ["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, ["criteria"] = "variable.st_planning & ( cooldown.apocalypse.remains_expected < 5 || cooldown.apocalypse.remains_expected > 10 ) & ( cooldown.dark_transformation.remains < gcd || buff.dark_transformation.up )", ["action"] = "unholy_blight", ["description"] = "Holds Blight for up to 5 seconds to sync with Apocalypse, Otherwise, use with Dark Transformation.", }, -- [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] }, }, ["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=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.remains4: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_35&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=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=2&!buff.dark_transformation.up&cooldown.dark_transformation.remains>5||boss&fight_remains16&(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_remainscooldown.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, ["description"] = "Pooling For Obliteration: Starts 10 seconds before Pillar of Frost comes off CD", ["criteria"] = "variable.rw_buffs || active_enemies >= 2", ["action"] = "remorseless_winter", }, -- [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, ["description"] = "Use during Pillar with Icecap/Breath", ["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", }, -- [1] { ["enabled"] = true, ["description"] = "Outside of Pillar useage with Icecap/Breath", ["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", }, -- [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, ["description"] = "Prevent Cold Heart overcapping during pillar", ["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", }, -- [4] }, ["obliteration"] = { { ["enabled"] = true, ["description"] = "Obliteration rotation", ["criteria"] = "active_enemies >= 3 & variable.rw_buffs", ["action"] = "remorseless_winter", }, -- [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, ["description"] = "Standard single-target rotation", ["criteria"] = "variable.rw_buffs", ["action"] = "remorseless_winter", }, -- [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] }, ["racials"] = { { ["enabled"] = true, ["description"] = "Racial Abilities", ["criteria"] = "buff.pillar_of_frost.up", ["action"] = "blood_fury", }, -- [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] }, ["covenants"] = { { ["enabled"] = true, ["description"] = "Covenant Abilities", ["criteria"] = "variable.st_planning || variable.adds_remain", ["action"] = "deaths_due", }, -- [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] }, ["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, ["description"] = "Breath of Sindragosa pooling rotation : starts 10s before BoS is available", ["criteria"] = "variable.rotfc_rime", ["action"] = "howling_blast", }, -- [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] }, ["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 )", ["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.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 ) )", ["var_name"] = "trinket_priority", ["action"] = "variable", ["value_else"] = "1", ["value"] = "2", }, -- [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, ["description"] = "Potion", ["action"] = "potion", ["criteria"] = "buff.pillar_of_frost.up", }, -- [1] { ["enabled"] = true, ["description"] = "Cooldowns", ["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", }, -- [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, ["description"] = "Trinkets", ["criteria"] = "buff.pillar_of_frost.up || target.time_to_pct_20 < 5 || boss & fight_remains < 21", ["action"] = "inscrutable_quantum_device", }, -- [1] { ["enabled"] = true, ["description"] = "The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.", ["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", }, -- [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, ["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 ) || cooldown.pillar_of_frost.remains > 20", ["action"] = "trinket1", }, -- [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] }, ["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, ["description"] = "Apply Frost Fever, maintain Icy Talons and keep Remorseless Winter rolling", ["criteria"] = "conduit.everfrost & talent.gathering_storm.enabled & ! talent.obliteration.enabled & cooldown.pillar_of_frost.remains", ["action"] = "remorseless_winter", }, -- [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] }, ["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_350\n\n## Cold Heart Conditions\n## actions.cold_heart=chains_of_ice,if=fight_remains=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.remains15&(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.remains30)||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.remains40&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.remainspet.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, ["criteria"] = "buff.dancing_rune_weapon.up", ["description"] = "Since the potion cooldown has changed, we'll sync with DRW", ["action"] = "potion", }, -- [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, ["action"] = "azsharas_font_of_power", ["description"] = "Executed before combat begins. Accepts non-harmful actions only.", ["name"] = "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, ["action"] = "blood_tap", ["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", }, -- [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, ["action"] = "mark_of_blood", ["description"] = "Mark of Blood does not pandemic-extend.", ["criteria"] = "debuff.mark_of_blood.down & fight_remains > 7.5", }, -- [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, ["action"] = "death_strike", ["description"] = "Burn RP if we have time between DD refreshes", ["criteria"] = "covenant.night_fae & buff.deaths_due.remains > 6 & runic_power > 70", }, -- [1] { ["enabled"] = true, ["action"] = "heart_strike", ["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 )", }, -- [2] { ["enabled"] = true, ["action"] = "deaths_due", ["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", }, -- [3] { ["enabled"] = true, ["action"] = "sacrificial_pact", ["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 )", }, -- [4] { ["enabled"] = true, ["action"] = "death_strike", ["description"] = "Burn RP off just before swarming comes back off CD", ["criteria"] = "covenant.venthyr & runic_power > 70 & cooldown.swarming_mist.remains < 3", }, -- [5] { ["enabled"] = true, ["action"] = "swarming_mist", ["description"] = "And swarming as long as we're not < 3s off DRW", ["criteria"] = "! buff.dancing_rune_weapon.up", }, -- [6] { ["enabled"] = true, ["action"] = "marrowrend", ["description"] = "Pre-AL marrow on pull in order to guarantee ossuary during the first DRW", ["criteria"] = "covenant.necrolord & buff.bone_shield.stack <= 0", }, -- [7] { ["enabled"] = true, ["action"] = "abomination_limb", ["description"] = "And we cast AL", ["criteria"] = "! buff.dancing_rune_weapon.up", }, -- [8] { ["enabled"] = true, ["action"] = "shackle_the_unworthy", ["description"] = "We just don't cast this during DRW", ["criteria"] = "cooldown.dancing_rune_weapon.remains < 3 || ! buff.dancing_rune_weapon.up", }, -- [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, ["action"] = "death_strike", ["description"] = "Incoming damage requirement is 25% of max health solo, 50% of max health in a group.", ["criteria"] = "incoming_damage_3s >= health.current", }, -- [2] { ["enabled"] = true, ["action"] = "death_strike", ["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", }, -- [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_die70&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=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_4gcd\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_37&buff.bone_shield.remains>rune.time_to_3+gcd)\nactions.standard+=/arcane_torrent,if=runic_power.deficit>20", ["author"] = "SimC + Hekili", }, }, }, ["Quilberg - Thunderhorn"] = { ["runOnce"] = { ["autoconvertDisplayToggle_20190621_1"] = true, ["forceReloadClassDefaultOptions_20220306_71"] = true, ["resetAllPotions_20201209"] = true, ["enableAllOfTheThings_20180820"] = true, ["resetGlobalCooldownSync_20210403"] = true, ["forceReloadAllDefaultPriorities_20220228"] = true, ["forceEnableAllClassesOnceDueToBug_20220225"] = true, ["autoconvertDelaySweepToExtend_20190729"] = true, ["forceSpellFlashBrightness_20221030"] = true, ["forceReloadClassDefaultOptions_20220306_73"] = true, ["resetPotionsToDefaults_20190717"] = true, ["resetRogueMfDOption_20200226"] = true, ["forceReloadClassDefaultOptions_20220306_72"] = true, ["updateMaxRefreshToNewSpecOptions_20220222"] = true, ["autoconvertGlowsForCustomGlow_20190326"] = true, ["forceEnableEnhancedRecheckBoomkin_20210712"] = true, ["resetAberrantPackageDates_20190728_1"] = true, }, ["specs"] = { [73] = { ["debuffPadding"] = 0, ["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, ["reserve_rage"] = 35, ["last_stand_offensively"] = false, ["shield_wall_condition"] = false, ["last_stand_health"] = 50, ["last_stand_condition"] = false, ["overlap_ignore_pain"] = false, }, ["potion"] = "potion_of_phantom_fire", ["potionsReset"] = 20180919.1, ["maxTime"] = 33, ["maxRefresh"] = 10, ["buffPadding"] = 0, }, [71] = { ["debuffPadding"] = 0, ["settings"] = { ["heroic_charge"] = false, ["shockwave_interrupt"] = true, }, ["potionsReset"] = 20180919.1, ["maxTime"] = 33, ["maxRefresh"] = 10, ["buffPadding"] = 0, }, [72] = { ["maxRefresh"] = 10, ["debuffPadding"] = 0, ["settings"] = { ["check_ww_range"] = false, ["shockwave_interrupt"] = true, ["t30_bloodthirst_crit"] = 95, ["heroic_charge"] = false, }, ["maxTime"] = 33, ["potionsReset"] = 20180919.1, ["potion"] = "potion_of_phantom_fire", ["package"] = "Fury", ["buffPadding"] = 0, }, [102] = { ["enhancedRecheck"] = true, }, }, ["packs"] = { ["Fury"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230520, ["author"] = "SimC", ["desc"] = "2023-05-20: Trinket/CD update.\n\n2023-05-14: Add slider for Tier 30 crit % setting.\n\n2023-05-04: Updates related to Tier 30.\n\n2023-05-02: Update for 10.1.\n\n2023-03-26: Include Spell Reflection; remove Heroic Leap.", ["profile"] = "actions.precombat+=/berserker_stance\nactions.precombat+=/battle_shout\nactions.precombat+=/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\n## actions+=/heroic_leap,if=(raid_event.movement.distance>25&raid_event.movement.in>45)\nactions+=/pummel\nactions+=/spell_reflection\nactions+=/potion\nactions+=/algethar_puzzle_box,if=cooldown.recklessness.remains<3||(talent.anger_management&cooldown.avatar.remains<3)\nactions+=/vial_of_animated_blood,if=buff.avatar.up\nactions+=/irideus_fragment,if=buff.avatar.up\nactions+=/manic_grieftorch,if=buff.avatar.down\nactions+=/gladiators_badge,if=cooldown.recklessness.remains>10&(buff.recklessness.up||target.time_to_die<11||target.time_to_die>65)\nactions+=/use_items\nactions+=/ravager,if=cooldown.recklessness.remains<3||buff.recklessness.up\nactions+=/lights_judgment,if=buff.recklessness.down\nactions+=/berserking,if=buff.recklessness.up\nactions+=/blood_fury\nactions+=/fireblood\nactions+=/ancestral_call\n## actions+=/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.berserkers_torment&buff.enrage.up&!buff.avatar.up&raid_event.adds.in>15||!talent.titans_torment&!talent.berserkers_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||target.time_to_die<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.remains1||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+=/bloodbath,if=set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=bloodthirst_crit_threshold\nactions.multi_target+=/bloodthirst,if=set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=bloodthirst_crit_threshold\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.remains110&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.remains1||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.remains85)\nactions.single_target+=/bloodbath,if=set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=bloodthirst_crit_threshold\nactions.single_target+=/bloodthirst,if=set_bonus.tier30_4pc&action.bloodthirst.crit_pct_current>=bloodthirst_crit_threshold\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.remains85)\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", ["version"] = 20230520, ["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 9: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 10: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 11: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 12: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 14: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 14: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 15: Converted 'talent.annihilator' to 'talent.annihilator.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.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 19: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 20: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 23: 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 9: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 12: Converted 'talent.overwhelming_rage' to 'talent.overwhelming_rage.enabled' (1x).\nLine 12: Converted 'talent.overwhelming_rage' to 'talent.overwhelming_rage.enabled' (1x).\nLine 14: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 14: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 15: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 16: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 16: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 17: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 18: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 19: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 20: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\nLine 21: Converted 'talent.wrath_and_fury' to 'talent.wrath_and_fury.enabled' (1x).\nLine 24: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 5: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 17: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 17: Converted 'talent.berserkers_torment' to 'talent.berserkers_torment.enabled' (1x).\nLine 17: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 17: Converted 'talent.berserkers_torment' to 'talent.berserkers_torment.enabled' (1x).\nLine 18: Converted 'talent.annihilator' to 'talent.annihilator.enabled' (1x).\nLine 18: Converted 'talent.avatar' to 'talent.avatar.enabled' (1x).\nLine 19: 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, ["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"] = "set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= bloodthirst_crit_threshold", ["action"] = "bloodbath", }, -- [6] { ["enabled"] = true, ["criteria"] = "set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= bloodthirst_crit_threshold", ["action"] = "bloodthirst", }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.enrage.up", ["action"] = "execute", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.enrage.up || talent.tenderize.enabled", ["action"] = "onslaught", }, -- [9] { ["enabled"] = true, ["criteria"] = "talent.wrath_and_fury.enabled & buff.enrage.up", ["action"] = "crushing_blow", }, -- [10] { ["enabled"] = true, ["criteria"] = "talent.reckless_abandon.enabled & ( buff.recklessness.up || buff.enrage.remains < gcd.max || rage.pct > 85 )", ["action"] = "rampage", }, -- [11] { ["enabled"] = true, ["criteria"] = "talent.anger_management.enabled", ["action"] = "rampage", }, -- [12] { ["action"] = "execute", ["enabled"] = true, }, -- [13] { ["enabled"] = true, ["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! talent.wrath_and_fury.enabled", ["action"] = "bloodbath", }, -- [14] { ["enabled"] = true, ["criteria"] = "buff.enrage.down || ( talent.annihilator.enabled & ! buff.recklessness.up )", ["action"] = "bloodthirst", }, -- [15] { ["enabled"] = true, ["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled", ["action"] = "raging_blow", }, -- [16] { ["enabled"] = true, ["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled", ["action"] = "crushing_blow", }, -- [17] { ["enabled"] = true, ["criteria"] = "buff.enrage.down || ! talent.wrath_and_fury.enabled", ["action"] = "bloodbath", }, -- [18] { ["enabled"] = true, ["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled", ["action"] = "crushing_blow", }, -- [19] { ["enabled"] = true, ["criteria"] = "! talent.wrath_and_fury.enabled", ["action"] = "bloodthirst", }, -- [20] { ["enabled"] = true, ["criteria"] = "charges > 1", ["action"] = "raging_blow", }, -- [21] { ["action"] = "rampage", ["enabled"] = true, }, -- [22] { ["enabled"] = true, ["criteria"] = "talent.annihilator.enabled", ["action"] = "slam", }, -- [23] { ["action"] = "bloodbath", ["enabled"] = true, }, -- [24] { ["action"] = "raging_blow", ["enabled"] = true, }, -- [25] { ["action"] = "crushing_blow", ["enabled"] = true, }, -- [26] { ["action"] = "bloodthirst", ["enabled"] = true, }, -- [27] { ["action"] = "whirlwind", ["enabled"] = true, }, -- [28] { ["action"] = "wrecking_throw", ["enabled"] = true, }, -- [29] { ["action"] = "storm_bolt", ["enabled"] = true, }, -- [30] }, ["precombat"] = { { ["action"] = "berserker_stance", ["enabled"] = true, }, -- [1] { ["action"] = "battle_shout", ["enabled"] = true, }, -- [2] { ["action"] = "algethar_puzzle_box", ["enabled"] = true, }, -- [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] { ["action"] = "pummel", ["enabled"] = true, }, -- [2] { ["action"] = "spell_reflection", ["enabled"] = true, }, -- [3] { ["action"] = "potion", ["enabled"] = true, }, -- [4] { ["enabled"] = true, ["criteria"] = "cooldown.recklessness.remains < 3 || ( talent.anger_management.enabled & cooldown.avatar.remains < 3 )", ["action"] = "algethar_puzzle_box", }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.avatar.up", ["action"] = "vial_of_animated_blood", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.avatar.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 || target.time_to_die < 11 || target.time_to_die > 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"] = "buff.recklessness.down", ["action"] = "lights_judgment", }, -- [12] { ["enabled"] = true, ["criteria"] = "buff.recklessness.up", ["action"] = "berserking", }, -- [13] { ["action"] = "blood_fury", ["enabled"] = true, }, -- [14] { ["action"] = "fireblood", ["enabled"] = true, }, -- [15] { ["action"] = "ancestral_call", ["enabled"] = true, }, -- [16] { ["enabled"] = true, ["criteria"] = "talent.titans_torment.enabled & buff.enrage.up & raid_event.adds.in > 15 || talent.berserkers_torment.enabled & buff.enrage.up & ! buff.avatar.up & raid_event.adds.in > 15 || ! talent.titans_torment.enabled & ! talent.berserkers_torment.enabled & ( buff.recklessness.up || boss & fight_remains < 20 )", ["action"] = "avatar", }, -- [17] { ["enabled"] = true, ["criteria"] = "! raid_event.adds.exists & ( talent.annihilator.enabled & cooldown.avatar.remains < 1 || cooldown.avatar.remains > 40 || ! talent.avatar.enabled || target.time_to_die < 12 )", ["action"] = "recklessness", }, -- [18] { ["enabled"] = true, ["criteria"] = "! raid_event.adds.exists & ! talent.annihilator.enabled || boss & fight_remains < 12", ["action"] = "recklessness", }, -- [19] { ["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", }, -- [20] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies > 2", ["list_name"] = "multi_target", }, -- [21] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "single_target", }, -- [22] }, ["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"] = "set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= bloodthirst_crit_threshold", ["action"] = "bloodbath", }, -- [7] { ["enabled"] = true, ["criteria"] = "set_bonus.tier30_4pc & action.bloodthirst.crit_pct_current >= bloodthirst_crit_threshold", ["action"] = "bloodthirst", }, -- [8] { ["enabled"] = true, ["criteria"] = "talent.wrath_and_fury.enabled & buff.enrage.up", ["action"] = "crushing_blow", }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.enrage.up", ["action"] = "execute", }, -- [10] { ["enabled"] = true, ["criteria"] = "buff.enrage.up & raid_event.adds.in > 15", ["action"] = "odyns_fury", }, -- [11] { ["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", }, -- [12] { ["action"] = "execute", ["enabled"] = true, }, -- [13] { ["enabled"] = true, ["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled & ! talent.wrath_and_fury.enabled", ["action"] = "bloodbath", }, -- [14] { ["enabled"] = true, ["criteria"] = "buff.enrage.down || ( talent.annihilator.enabled & ! buff.recklessness.up )", ["action"] = "bloodthirst", }, -- [15] { ["enabled"] = true, ["criteria"] = "! talent.annihilator.enabled & buff.enrage.up || talent.tenderize.enabled", ["action"] = "onslaught", }, -- [16] { ["enabled"] = true, ["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled", ["action"] = "raging_blow", }, -- [17] { ["enabled"] = true, ["criteria"] = "charges > 1 & talent.wrath_and_fury.enabled", ["action"] = "crushing_blow", }, -- [18] { ["enabled"] = true, ["criteria"] = "buff.enrage.down || ! talent.wrath_and_fury.enabled", ["action"] = "bloodbath", }, -- [19] { ["enabled"] = true, ["criteria"] = "buff.enrage.up & talent.reckless_abandon.enabled", ["action"] = "crushing_blow", }, -- [20] { ["enabled"] = true, ["criteria"] = "! talent.wrath_and_fury.enabled", ["action"] = "bloodthirst", }, -- [21] { ["enabled"] = true, ["criteria"] = "charges >= 1", ["action"] = "raging_blow", }, -- [22] { ["action"] = "rampage", ["enabled"] = true, }, -- [23] { ["enabled"] = true, ["criteria"] = "talent.annihilator.enabled", ["action"] = "slam", }, -- [24] { ["action"] = "bloodbath", ["enabled"] = true, }, -- [25] { ["action"] = "raging_blow", ["enabled"] = true, }, -- [26] { ["action"] = "crushing_blow", ["enabled"] = true, }, -- [27] { ["action"] = "whirlwind", ["enabled"] = true, }, -- [28] }, }, }, ["Protection Warrior"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230520, ["spec"] = 73, ["desc"] = "2023-05-20: Shield Wall minor update.\n\n2023-05-08: Add additional Execute in single-target if Rage is 50+ (still impacted by Reserve Rage for Mitigation option).\n\n2023-04-30: 2nd minor update.\n\n2023-04-26: Minor update from SimulationCraft for 10.1.\n\n2023-03-26: Shift Shield Charge and Charge above Pummel and Spell Reflection.", ["profile"] = "actions.precombat+=/defensive_stance,if=buff.stance.down\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=algethar_puzzle_box\nactions.precombat+=/avatar,if=!talent.titans_torment\nactions.precombat+=/recklessness,if=!talent.reckless_abandon\n\n# Executed every time the actor is available.\nactions+=/shield_charge,if=time=0\nactions+=/charge,if=time=0\nactions+=/pummel\nactions+=/spell_reflection\nactions+=/use_items\nactions+=/avatar\n# Usage of Shield Wall is governed by specialization settings; see /hekili > Protection.\nactions+=/shield_wall,if=talent.immovable_object.enabled&buff.avatar.down\nactions+=/blood_fury\nactions+=/berserking\nactions+=/arcane_torrent\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/potion,if=buff.avatar.up\nactions+=/ignore_pain,if=target.health.pct>=20&(rage.deficit<=15&cooldown.shield_slam.ready||rage.deficit<=40&cooldown.shield_charge.ready&talent.champions_bulwark.enabled||rage.deficit<=20&cooldown.shield_charge.ready||rage.deficit<=30&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled||rage.deficit<=20&cooldown.avatar.ready||rage.deficit<=45&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled&buff.last_stand.up&talent.unnerving_focus.enabled||rage.deficit<=30&cooldown.avatar.ready&buff.last_stand.up&talent.unnerving_focus.enabled||rage.deficit<=20||rage.deficit<=40&cooldown.shield_slam.ready&buff.violent_outburst.up&talent.heavy_repercussions.enabled&talent.impenetrable_wall.enabled||rage.deficit<=55&cooldown.shield_slam.ready&buff.violent_outburst.up&buff.last_stand.up&talent.unnerving_focus.enabled&talent.heavy_repercussions.enabled&talent.impenetrable_wall.enabled||rage.deficit<=17&cooldown.shield_slam.ready&talent.heavy_repercussions.enabled||rage.deficit<=18&cooldown.shield_slam.ready&talent.impenetrable_wall.enabled),use_off_gcd=1\n# Usage of Last Stand is also governed by specialization settings; see /hekili > Protection.\nactions+=/last_stand,if=talent.unnerving_focus&(target.health.pct>=90||target.health.pct<=20)||talent.bolster&buff.shield_block.down||!talent.bolster&!talent.unnerving_focus||set_bonus.tier30_2pc>0\n# Usage of Rallying Cry is governed by specialization settings; see /hekili > Protection.\nactions+=/rallying_cry\nactions+=/ravager\nactions+=/demoralizing_shout,if=talent.booming_voice.enabled\nactions+=/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+=/execute,if=spell_targets.revenge=1&rage>=50\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"] = 20230520, ["warnings"] = "The import for 'aoe' required some automated changes.\nLine 1: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 1: Converted 'talent.rend' to 'talent.rend.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 17: Converted 'talent.unnerving_focus' to 'talent.unnerving_focus.enabled' (1x).\nLine 17: Converted 'talent.bolster' to 'talent.bolster.enabled' (1x).\nLine 17: Converted 'talent.bolster' to 'talent.bolster.enabled' (1x).\nLine 17: Converted 'talent.unnerving_focus' to 'talent.unnerving_focus.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\n\nImported 4 action lists.\n", ["author"] = "SimulationCraft", ["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"] = "spell_targets.revenge = 1 & rage >= 50", ["action"] = "execute", }, -- [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.", ["criteria"] = "time = 0", ["action"] = "shield_charge", }, -- [1] { ["enabled"] = true, ["criteria"] = "time = 0", ["action"] = "charge", }, -- [2] { ["action"] = "pummel", ["enabled"] = true, }, -- [3] { ["action"] = "spell_reflection", ["enabled"] = true, }, -- [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"] = "talent.immovable_object.enabled & buff.avatar.down", ["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", ["action"] = "potion", }, -- [15] { ["enabled"] = true, ["use_off_gcd"] = 1, ["criteria"] = "target.health.pct >= 20 & ( rage.deficit <= 15 & cooldown.shield_slam.ready || rage.deficit <= 40 & cooldown.shield_charge.ready & talent.champions_bulwark.enabled || rage.deficit <= 20 & cooldown.shield_charge.ready || rage.deficit <= 30 & cooldown.demoralizing_shout.ready & talent.booming_voice.enabled || rage.deficit <= 20 & cooldown.avatar.ready || rage.deficit <= 45 & cooldown.demoralizing_shout.ready & talent.booming_voice.enabled & buff.last_stand.up & talent.unnerving_focus.enabled || rage.deficit <= 30 & cooldown.avatar.ready & buff.last_stand.up & talent.unnerving_focus.enabled || rage.deficit <= 20 || rage.deficit <= 40 & cooldown.shield_slam.ready & buff.violent_outburst.up & talent.heavy_repercussions.enabled & talent.impenetrable_wall.enabled || rage.deficit <= 55 & cooldown.shield_slam.ready & buff.violent_outburst.up & buff.last_stand.up & talent.unnerving_focus.enabled & talent.heavy_repercussions.enabled & talent.impenetrable_wall.enabled || rage.deficit <= 17 & cooldown.shield_slam.ready & talent.heavy_repercussions.enabled || rage.deficit <= 18 & cooldown.shield_slam.ready & talent.impenetrable_wall.enabled )", ["action"] = "ignore_pain", }, -- [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 || set_bonus.tier30_2pc > 0", ["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] }, }, }, ["Arms"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230520, ["author"] = "SimulationCraft", ["desc"] = "2023-05-20: Update trinket/CDs.\n\n2023-05-08: Use Arcane Torrent at pretty low priority in single-target.\n\n2023-05-02: Update for 10.1.\n\n2023-03-26: Include Spell Reflection.", ["lists"] = { ["single_target"] = { { ["enabled"] = true, ["criteria"] = "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"] = "arcane_torrent", ["enabled"] = true, }, -- [23] { ["action"] = "cleave", ["enabled"] = true, }, -- [24] { ["action"] = "wrecking_throw", ["enabled"] = true, }, -- [25] { ["enabled"] = true, ["criteria"] = "remains < duration * 0.3", ["action"] = "rend", }, -- [26] }, ["default"] = { { ["enabled"] = true, ["criteria"] = "time <= 0.5 || movement.distance > 8", ["action"] = "charge", }, -- [1] { ["action"] = "pummel", ["enabled"] = true, }, -- [2] { ["action"] = "spell_reflection", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25", ["action"] = "potion", }, -- [4] { ["enabled"] = true, ["criteria"] = "cooldown.avatar.remains < 3", ["action"] = "algethar_puzzle_box", }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.avatar.up", ["action"] = "vial_of_animated_blood", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.avatar.up", ["action"] = "irideus_fragment", }, -- [7] { ["enabled"] = true, ["criteria"] = "! buff.avatar.up & ! debuff.colossus_smash.up", ["action"] = "manic_grieftorch", }, -- [8] { ["enabled"] = true, ["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25", ["action"] = "gladiators_badge", }, -- [9] { ["action"] = "use_items", ["enabled"] = true, }, -- [10] { ["enabled"] = true, ["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50", ["action"] = "arcane_torrent", }, -- [11] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains", ["action"] = "lights_judgment", }, -- [12] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains", ["action"] = "bag_of_tricks", }, -- [13] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.remains > 6", ["action"] = "berserking", }, -- [14] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "ancestral_call", }, -- [15] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "blood_fury", }, -- [16] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "ancestral_call", }, -- [17] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "raid_event.adds.exists || active_enemies > 2", ["list_name"] = "hac", }, -- [18] { ["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", }, -- [19] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "! raid_event.adds.exists", ["list_name"] = "single_target", }, -- [20] }, ["precombat"] = { { ["action"] = "battle_stance", ["enabled"] = true, }, -- [1] { ["action"] = "battle_shout", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["name"] = "algethar_puzzle_box", ["action"] = "algethar_puzzle_box", }, -- [3] }, ["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 || target.time_to_die < 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"] = "set_bonus.tier30_4pc", ["action"] = "mortal_strike", }, -- [16] { ["enabled"] = true, ["criteria"] = "buff.sweeping_strikes.up & talent.dreadnaught.enabled", ["action"] = "overpower", }, -- [17] { ["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, }, -- [18] { ["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, }, -- [19] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 15", ["action"] = "thunderous_roar", }, -- [20] { ["enabled"] = true, ["criteria"] = "active_enemies > 2 & talent.sonic_boom.enabled", ["action"] = "shockwave", }, -- [21] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & ( charges = 2 & ! talent.battlelord.enabled & ( debuff.colossus_smash.down || rage.pct < 25 ) || talent.battlelord.enabled )", ["action"] = "overpower", }, -- [22] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & ! talent.battlelord.enabled & rage.pct > 70", ["action"] = "slam", }, -- [23] { ["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", }, -- [24] { ["enabled"] = true, ["criteria"] = "active_enemies > 2", ["action"] = "thunder_clap", }, -- [25] { ["action"] = "mortal_strike", ["enabled"] = true, }, -- [26] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & dot.rend.remains < duration * 0.3", ["action"] = "rend", }, -- [27] { ["enabled"] = true, ["criteria"] = "talent.storm_of_swords.enabled || talent.fervor_of_battle.enabled & active_enemies > 1", ["action"] = "whirlwind", }, -- [28] { ["enabled"] = true, ["criteria"] = "! talent.crushing_force.enabled", ["action"] = "cleave", }, -- [29] { ["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", }, -- [30] { ["enabled"] = true, ["criteria"] = "talent.crushing_force.enabled & rage > 30 & ( talent.fervor_of_battle.enabled & active_enemies = 1 || ! talent.fervor_of_battle.enabled )", ["action"] = "slam", }, -- [31] { ["enabled"] = true, ["criteria"] = "talent.sonic_boom.enabled", ["action"] = "shockwave", }, -- [32] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 30", ["action"] = "bladestorm", }, -- [33] { ["action"] = "wrecking_throw", ["enabled"] = true, }, -- [34] }, }, ["version"] = 20230520, ["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 '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 17: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 18: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 18: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 19: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 21: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\nLine 22: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 22: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 23: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 24: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 24: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 24: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 28: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 28: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 29: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 30: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 30: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 30: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 31: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 31: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 31: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 32: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\n\nImported 5 action lists.\n", ["spec"] = 71, ["profile"] = "actions.precombat+=/battle_stance\nactions.precombat+=/battle_shout\nactions.precombat+=/use_item,name=algethar_puzzle_box\n\nactions+=/charge,if=time<=0.5||movement.distance>8\nactions+=/pummel\nactions+=/spell_reflection\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+=/vial_of_animated_blood,if=buff.avatar.up\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.remains2&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.remains15||talent.blademasters_torment&active_enemies>1||target.time_to_die<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+=/mortal_strike,if=buff.sweeping_strikes.up&buff.crushing_advance.stack=3,if=set_bonus.tier30_4pc\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.remains1\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.remainsgcd*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+=/arcane_torrent\nactions.single_target+=/cleave\nactions.single_target+=/wrecking_throw\nactions.single_target+=/rend,if=remains Pyroblast hardcast scenario.\n\n2023-04-02: Revise Scorch > Pyroblast to check Hot Streak.", ["lists"] = { ["precombat"] = { { ["action"] = "arcane_intellect", ["enabled"] = true, }, -- [1] { ["enabled"] = true, ["action"] = "soul_igniter", ["criteria"] = "! variable.combustion_on_use & ! equipped.dreadfire_vessel & ( ! talent.firestarter.enabled || variable.firestarter_combustion )", ["name"] = "soul_igniter", }, -- [2] { ["enabled"] = true, ["action"] = "shadowed_orb_of_torment", ["criteria"] = "! equipped.the_first_sigil", ["name"] = "shadowed_orb_of_torment", }, -- [3] { ["action"] = "mirror_image", ["enabled"] = true, }, -- [4] { ["action"] = "fleshcraft", ["enabled"] = true, }, -- [5] { ["action"] = "pyroblast", ["enabled"] = true, }, -- [6] }, ["firestarter_fire_blasts"] = { { ["enabled"] = true, ["use_while_casting"] = 1, ["action"] = "fire_blast", ["description"] = "While casting Fireball or Pyroblast, convert Heating Up to a Hot Streak!", ["criteria"] = "! variable.fire_blast_pooling & ! buff.hot_streak.react & ( action.fireball.execute_remains > gcd.remains || action.pyroblast.executing ) & buff.heating_up.react + hot_streak_spells_in_flight = 1 & ( cooldown.shifting_power.ready || charges > 1 || buff.feel_the_burn.remains < 2 * gcd.max )", }, -- [1] { ["enabled"] = true, ["criteria"] = "! variable.fire_blast_pooling & buff.heating_up.react + hot_streak_spells_in_flight = 1 & ( talent.feel_the_burn.enabled & buff.feel_the_burn.remains < gcd.remains || cooldown.shifting_power.ready & ( ! set_bonus.tier30_2pc || debuff.charring_embers.remains > 2 * gcd.max ) )", ["use_off_gcd"] = 1, ["action"] = "fire_blast", ["description"] = "If not casting anything, use Fire Blast to trigger Hot Streak! only if Feel the Burn is talented and would expire before the GCD ends or if Shifting Power is available.", }, -- [2] }, ["default"] = { { ["enabled"] = true, ["action"] = "counterspell", ["description"] = "Executed every time the actor is available.", ["criteria"] = "! runeforge.disciplinary_command.enabled", }, -- [1] { ["enabled"] = true, ["action"] = "time_warp", ["description"] = "The second Time Warp is usually best used immediately on pull with Temporal Warp so that it comes off cooldown earlier, this can sometimes be slightly worse if doing so will not result in additional Time Warp(s) throughout the encounter. Additionally, it should always be used at the end of the fight regardless of Combustion being ready if it is available.", ["criteria"] = "talent.temporal_warp.enabled & ( buff.exhaustion.up || interpolated_fight_remains < buff.bloodlust.duration )", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.potion.duration > variable.time_to_combustion + buff.combustion.duration", ["action"] = "potion", }, -- [3] { ["enabled"] = true, ["action"] = "gladiators_badge", ["criteria"] = "variable.time_to_combustion > action_cooldown - 5", ["effect_name"] = "gladiators_badge", }, -- [4] { ["enabled"] = true, ["action"] = "empyreal_ordnance", ["criteria"] = "variable.time_to_combustion <= variable.empyreal_ordnance_delay & variable.time_to_combustion > variable.empyreal_ordnance_delay - 5", ["name"] = "empyreal_ordnance", }, -- [5] { ["enabled"] = true, ["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 )", ["name"] = "shadowed_orb_of_torment", }, -- [6] { ["enabled"] = true, ["action"] = "grim_eclipse", ["criteria"] = "variable.time_to_combustion <= 8 || fight_remains < variable.time_to_combustion", ["name"] = "grim_eclipse", }, -- [7] { ["enabled"] = true, ["action"] = "moonlit_prism", ["criteria"] = "variable.time_to_combustion <= 5 || fight_remains < variable.time_to_combustion", ["name"] = "moonlit_prism", }, -- [8] { ["enabled"] = true, ["action"] = "glyph_of_assimilation", ["criteria"] = "! variable.item_cutoff_active", ["name"] = "glyph_of_assimilation", }, -- [9] { ["enabled"] = true, ["action"] = "macabre_sheet_music", ["criteria"] = "variable.time_to_combustion <= 5", ["name"] = "macabre_sheet_music", }, -- [10] { ["enabled"] = true, ["name"] = "dreadfire_vessel", ["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.", ["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 ) )", ["action"] = "dreadfire_vessel", }, -- [11] { ["enabled"] = true, ["name"] = "soul_igniter", ["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.", ["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 )", ["action"] = "soul_igniter", }, -- [12] { ["buff_name"] = "soul_ignition", ["criteria"] = "! conduit.infernal_cascade.enabled & time < 5 || buff.infernal_cascade.stack = buff.infernal_cascade.max_stack", ["action"] = "cancel_buff", ["enabled"] = true, ["description"] = "Trigger Soul Igniter early with Infernal Cascade or when it was precast.", }, -- [13] { ["enabled"] = true, ["name"] = "inscrutable_quantum_device", ["description"] = "Items that do not benefit Combustion should just be used outside of Combustion at some point.", ["criteria"] = "equipped.gladiators_badge & ( buff.combustion.down & variable.time_to_combustion >= variable.on_use_cutoff || variable.on_use_cutoff = 0 )", ["action"] = "inscrutable_quantum_device", }, -- [14] { ["enabled"] = true, ["action"] = "flame_of_battle", ["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active", ["name"] = "flame_of_battle", }, -- [15] { ["enabled"] = true, ["action"] = "wakeners_frond", ["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active", ["name"] = "wakeners_frond", }, -- [16] { ["enabled"] = true, ["action"] = "instructors_divine_bell", ["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active", ["name"] = "instructors_divine_bell", }, -- [17] { ["enabled"] = true, ["action"] = "sunblood_amethyst", ["criteria"] = "equipped.gladiators_badge & ! variable.item_cutoff_active", ["name"] = "sunblood_amethyst", }, -- [18] { ["enabled"] = true, ["action"] = "scars_of_fraternal_strife", ["criteria"] = "buff.scars_of_fraternal_strife_4.down", ["name"] = "scars_of_fraternal_strife", }, -- [19] { ["enabled"] = true, ["criteria"] = "! variable.item_cutoff_active", ["action"] = "use_items", }, -- [20] { ["enabled"] = true, ["action"] = "frost_nova", ["description"] = "Use Frost Nova to trigger Grisly Icicle.", ["criteria"] = "runeforge.grisly_icicle.enabled & buff.combustion.down & ( variable.time_to_combustion > action_cooldown || variable.time_to_combustion < variable.combustion_precast_time + execute_time )", }, -- [21] { ["enabled"] = true, ["action"] = "counterspell", ["description"] = "Get the Disciplinary Command buff up, unless combustion is soon.", ["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 )", }, -- [22] { ["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", }, -- [23] { ["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", }, -- [24] { ["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", }, -- [25] { ["enabled"] = true, ["op"] = "set", ["description"] = "Pool as many Fire Blasts as possible for 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, }, -- [26] { ["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", }, -- [27] { ["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", }, -- [28] { ["enabled"] = true, ["use_while_casting"] = 1, ["description"] = "Adjust the variable that controls Fire Blast usage to save Fire Blasts while Searing Touch is active with Sun King's Blessing.", ["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, ["action"] = "variable", ["var_name"] = "fire_blast_pooling", }, -- [29] { ["enabled"] = true, ["criteria"] = "buff.combustion.down & ( action.fire_blast.charges = 0 || variable.fire_blast_pooling ) & ( cooldown.rune_of_power.remains || ! talent.rune_of_power.enabled ) & ! buff.hot_streak.react & variable.shifting_power_before_combustion", ["action"] = "shifting_power", }, -- [30] { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "When using Flamestrike in Combustion, save as many charges as possible for Combustion without capping.", ["criteria"] = "buff.rune_of_power.up & buff.combustion.down & variable.time_to_combustion > 0", ["list_name"] = "rop_phase", }, -- [31] { ["enabled"] = true, ["use_while_casting"] = 1, ["description"] = "Adjust the variable that controls Fire Blast usage to ensure its charges are also pooled for Rune of Power.", ["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, ["action"] = "variable", ["var_name"] = "fire_blast_pooling", }, -- [32] { ["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.", }, -- [33] { ["enabled"] = true, ["action"] = "call_action_list", ["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.", ["criteria"] = "buff.combustion.down & firestarter.active & variable.time_to_combustion > 0", ["list_name"] = "firestarter_fire_blasts", }, -- [34] { ["enabled"] = true, ["use_while_casting"] = 1, ["action"] = "fire_blast", ["description"] = "Avoid capping Fire Blast charges while channeling Shifting Power", ["criteria"] = "action.shifting_power.executing & full_recharge_time < action.shifting_power.tick_reduction", }, -- [35] { ["enabled"] = true, ["criteria"] = "variable.time_to_combustion > 0 & buff.rune_of_power.down & buff.combustion.down", ["action"] = "call_action_list", ["list_name"] = "standard_rotation", }, -- [36] { ["action"] = "scorch", ["enabled"] = true, }, -- [37] }, ["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, ["action"] = "pyroblast", ["description"] = "actions.rop_phase+=/scorch,if=searing_touch.active&talent.improved_scorch&debuff.improved_scorch.remains<3*gcd.max", ["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 )", }, -- [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"] = "! talent.alexstraszas_fury.enabled & ( ! variable.phoenix_pooling || set_bonus.tier30_2pc & debuff.charring_embers.remains < 2 * gcd.max ) & ( debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up )", ["action"] = "phoenix_flames", }, -- [12] { ["enabled"] = true, ["criteria"] = "talent.alexstraszas_fury.enabled & ( ! variable.phoenix_pooling || set_bonus.tier30_2pc & debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up ) & ! hot_streak_spells_in_flight & ! action.phoenix_flames.in_flight & ( debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up || charges > 1 )", ["action"] = "phoenix_flames", }, -- [13] { ["enabled"] = true, ["criteria"] = "searing_touch.active", ["action"] = "scorch", }, -- [14] { ["enabled"] = true, ["criteria"] = "active_enemies > 2", ["action"] = "dragons_breath", }, -- [15] { ["enabled"] = true, ["criteria"] = "active_enemies >= variable.arcane_explosion & mana.pct >= variable.arcane_explosion_mana", ["action"] = "arcane_explosion", }, -- [16] { ["enabled"] = true, ["action"] = "flamestrike", ["description"] = "With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.", ["criteria"] = "active_enemies >= variable.hard_cast_flamestrike", }, -- [17] { ["enabled"] = true, ["criteria"] = "talent.tempered_flames.enabled & ! buff.flame_accelerant.react", ["action"] = "pyroblast", }, -- [18] { ["action"] = "fireball", ["enabled"] = true, }, -- [19] }, ["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, ["action"] = "hyperthread_wristwraps", ["criteria"] = "prev.1.fire_blast + prev.2.fire_blast + prev.3.fire_blast >= 2 & action.fire_blast.charges = 0", ["name"] = "hyperthread_wristwraps", }, -- [5] { ["enabled"] = true, ["action"] = "neural_synapse_enhancer", ["criteria"] = "variable.time_to_combustion > 60", ["name"] = "neural_synapse_enhancer", }, -- [6] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "active_talents", }, -- [7] { ["enabled"] = true, ["action"] = "flamestrike", ["description"] = "If Combustion is down, precast something before activating it.", ["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time & active_enemies >= variable.combustion_flamestrike", }, -- [8] { ["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", }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.combustion.down & buff.pyroclasm.react & buff.pyroclasm.remains > cast_time", ["action"] = "pyroblast", }, -- [10] { ["enabled"] = true, ["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time & ! conduit.flame_accretion.enabled", ["action"] = "fireball", }, -- [11] { ["enabled"] = true, ["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time", ["action"] = "scorch", }, -- [12] { ["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.", }, -- [13] { ["enabled"] = true, ["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.", ["criteria"] = "buff.rune_of_power.down & variable.extended_combustion_remains > variable.skb_duration", }, -- [14] { ["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.", }, -- [15] { ["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", }, -- [16] { ["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", }, -- [17] { ["enabled"] = true, ["action"] = "flamestrike", ["description"] = "Spend Hot Streaks during Combustion at high priority.", ["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 ) )", }, -- [18] { ["enabled"] = true, ["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.", ["criteria"] = "buff.combustion.up & 2 * buff.hot_streak.react + buff.heating_up.react + hot_streak_spells_in_flight = 2", }, -- [19] { ["enabled"] = true, ["criteria"] = "( buff.firestorm.react || buff.hyperthermia.react )", ["action"] = "pyroblast", }, -- [20] { ["enabled"] = true, ["criteria"] = "buff.hot_streak.react & buff.combustion.up", ["action"] = "pyroblast", }, -- [21] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.scorch & buff.heating_up.react & active_enemies < variable.combustion_flamestrike & buff.combustion.up", ["action"] = "pyroblast", }, -- [22] { ["enabled"] = true, ["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.", ["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 )", }, -- [23] { ["enabled"] = true, ["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.", ["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", }, -- [24] { ["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", }, -- [25] { ["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", }, -- [26] { ["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", }, -- [27] { ["enabled"] = true, ["action"] = "phoenix_flames", ["description"] = "With the T30 set, Phoenix Flames should be used to maintain Charring Embers during Combustion and Flame's Fury procs should be spent.", ["criteria"] = "set_bonus.tier30_2pc & travel_time < buff.combustion.remains & buff.heating_up.react + hot_streak_spells_in_flight < 2 & ( debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up )", }, -- [28] { ["enabled"] = true, ["action"] = "pyroblast", ["description"] = "Pyroclasm procs should be used in Combustion at higher priority than Phoenix Flames and Scorch.", ["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 )", }, -- [29] { ["enabled"] = true, ["action"] = "phoenix_flames", ["description"] = "Avoid capping Phoenix Flames charges during Combustion. TODO: Is there a better way to spend these?", ["criteria"] = "set_bonus.tier30_2pc & charges_fractional > 2.5 & ( travel_time < buff.combustion.remains || talent.alexstraszas_fury.enabled )", }, -- [30] { ["enabled"] = true, ["criteria"] = "buff.combustion.remains > cast_time & buff.flame_accelerant.react", ["action"] = "fireball", }, -- [31] { ["enabled"] = true, ["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.", ["criteria"] = "! set_bonus.tier30_2pc & ! talent.alexstraszas_fury.enabled & 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 )", }, -- [32] { ["enabled"] = true, ["criteria"] = "buff.combustion.remains > cast_time & cast_time >= gcd.max", ["action"] = "scorch", }, -- [33] { ["enabled"] = true, ["criteria"] = "buff.combustion.remains > cast_time", ["action"] = "fireball", }, -- [34] { ["enabled"] = true, ["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.", ["criteria"] = "buff.combustion.remains < gcd.max & active_enemies > 1", }, -- [35] { ["enabled"] = true, ["criteria"] = "buff.combustion.remains < gcd.max", ["action"] = "ice_nova", }, -- [36] }, ["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, ["action"] = "dragons_breath", ["description"] = "With Alexstrasza's Fury when Combustion is not active, Dragon's Breath should be used to convert Heating Up to a Hot Streak.", ["criteria"] = "talent.alexstraszas_fury.enabled & ( buff.combustion.down & ! buff.hot_streak.react ) & ( buff.feel_the_burn.up || time > 15 ) & ! firestarter.remains & ! talent.tempered_flames.enabled", }, -- [3] { ["enabled"] = true, ["criteria"] = "talent.alexstraszas_fury.enabled & ( buff.combustion.down & ! buff.hot_streak.react ) & ( buff.feel_the_burn.up || time > 15 ) & talent.tempered_flames.enabled", ["action"] = "dragons_breath", }, -- [4] }, ["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.hyperthermia.react", ["action"] = "pyroblast", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.hot_streak.react & ( buff.hot_streak.remains < action.fireball.execute_time || talent.alexstraszas_fury.enabled & action.phoenix_flames.charges > 0 )", ["action"] = "pyroblast", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.hot_streak.react & ( prev_gcd.1.fireball || fireball_hardcast_prevented || firestarter.active || action.pyroblast.in_flight )", ["action"] = "pyroblast", }, -- [4] { ["enabled"] = true, ["action"] = "flamestrike", ["description"] = "Try to get SKB procs inside RoP phases or Combustion phases when possible.", ["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", }, -- [5] { ["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", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.hot_streak.react & searing_touch.active", ["action"] = "pyroblast", }, -- [7] { ["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", }, -- [8] { ["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 ) ) || ( ! searing_touch.active & fireball_hardcast_prevented ) ) & 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.", }, -- [9] { ["enabled"] = true, ["action"] = "pyroblast", ["description"] = "Modified, changed to Hot Streak to avoid hardcasted Pyroblasts.", ["criteria"] = "prev_gcd.1.scorch & buff.hot_streak.react & searing_touch.active & active_enemies < variable.hot_streak_flamestrike", }, -- [10] { ["enabled"] = true, ["criteria"] = "! talent.alexstraszas_fury.enabled & ! buff.hot_streak.react & ( ! variable.phoenix_pooling || set_bonus.tier30_2pc & debuff.charring_embers.remains < 2 * gcd.max ) & ( debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up )", ["action"] = "phoenix_flames", }, -- [11] { ["enabled"] = true, ["criteria"] = "talent.alexstraszas_fury.enabled & ! buff.hot_streak.react & ( ! variable.phoenix_pooling || set_bonus.tier30_2pc & debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up ) & ! hot_streak_spells_in_flight & ! action.phoenix_flames.in_flight & ( debuff.charring_embers.remains < 2 * gcd.max || buff.flames_fury.up || charges > 1 )", ["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, ["action"] = "flamestrike", ["description"] = "With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball.", ["criteria"] = "active_enemies >= variable.hard_cast_flamestrike", }, -- [17] { ["enabled"] = true, ["criteria"] = "talent.tempered_flames.enabled & ! buff.flame_accelerant.react", ["action"] = "pyroblast", }, -- [18] { ["action"] = "fireball", ["enabled"] = true, }, -- [19] }, ["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] }, }, ["version"] = 20230508, ["warnings"] = "The import for 'combustion_phase' required some automated changes.\nLine 11: Converted 'conduit.flame_accretion' to 'conduit.flame_accretion.enabled' (1x).\nLine 13: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 13: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 13: Converted 'runeforge.grisly_icicle' to 'runeforge.grisly_icicle.enabled' (1x).\nLine 15: Converted 'talent.feel_the_burn' to 'talent.feel_the_burn.enabled' (1x).\nLine 15: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 16: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 17: Converted 'talent.feel_the_burn' to 'talent.feel_the_burn.enabled' (1x).\nLine 18: Converted 'runeforge.firestorm' to 'runeforge.firestorm.enabled' (1x).\nLine 18: Converted 'talent.hyperthermia' to 'talent.hyperthermia.enabled' (1x).\nLine 23: 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 30: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 32: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 32: Converted 'talent.from_the_ashes' to 'talent.from_the_ashes.enabled' (1x).\n\nThe 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 12: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 13: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 18: 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.temporal_warp' to 'talent.temporal_warp.enabled' (1x).\nLine 11: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 11: Converted 'runeforge.sun_kings_blessing' to 'runeforge.sun_kings_blessing.enabled' (1x).\nLine 11: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 11: 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 12: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 13: Converted 'conduit.infernal_cascade' to 'conduit.infernal_cascade.enabled' (1x).\nLine 21: Converted 'runeforge.grisly_icicle' to 'runeforge.grisly_icicle.enabled' (1x).\nLine 22: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 23: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 23: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\nLine 24: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 25: Converted 'runeforge.disciplinary_command' to 'runeforge.disciplinary_command.enabled' (1x).\nLine 26: Converted operations in 'variable.extended_combustion_remains1&(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.sunfire4||(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"] = 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, ["action"] = "azsharas_font_of_power", ["criteria"] = "! buff.ca_inc.up & dot.moonfire.ticking & dot.sunfire.ticking & ( ! talent.stellar_flare.enabled || dot.stellar_flare.ticking )", ["name"] = "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, ["action"] = "cancel_buff", ["criteria"] = "buff.starlord.remains < 3 & ! solar_wrath.ap_check", ["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.starfallremains\nactions+=/moonfire,if=buff.ca_inc.up&buff.ca_inc.remains=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.remains0.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_die1)\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, ["name"] = "manifesto_of_madness", ["action"] = "manifesto_of_madness", ["criteria"] = "spell_targets.mind_sear >= 2 || raid_event.adds.in > 60", }, -- [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_time20)||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_sear5&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.remains10+(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"] = { ["resetPotionsToDefaults_20190717"] = true, ["forceReloadClassDefaultOptions_20220306_70"] = true, ["forceReloadClassDefaultOptions_20220306_65"] = true, ["resetAllPotions_20201209"] = true, ["enableAllOfTheThings_20180820"] = true, ["forceEnableEnhancedRecheckBoomkin_20210712"] = true, ["forceReloadAllDefaultPriorities_20220228"] = true, ["forceEnableAllClassesOnceDueToBug_20220225"] = true, ["autoconvertDelaySweepToExtend_20190729"] = true, ["forceReloadClassDefaultOptions_20220306_66"] = true, ["resetAberrantPackageDates_20190728_1"] = true, ["resetRogueMfDOption_20200226"] = true, ["resetGlobalCooldownSync_20210403"] = true, ["autoconvertGlowsForCustomGlow_20190326"] = true, ["updateMaxRefreshToNewSpecOptions_20220222"] = true, ["autoconvertDisplayToggle_20190621_1"] = true, ["forceSpellFlashBrightness_20221030"] = true, }, ["specs"] = { [70] = { ["debuffPadding"] = 0, ["settings"] = { ["sov_damage"] = 20, ["check_wake_range"] = false, }, ["potionsReset"] = 20180919.1, ["maxTime"] = 33, ["maxRefresh"] = 10, ["buffPadding"] = 0, }, [66] = { ["debuffPadding"] = 0, ["settings"] = { ["wog_health"] = 40, ["goak_damage"] = 40, ["ds_damage"] = 60, }, ["potionsReset"] = 20180919.1, ["maxTime"] = 33, ["maxRefresh"] = 10, ["buffPadding"] = 0, }, [102] = { ["enhancedRecheck"] = true, }, }, ["packs"] = { ["Protection Paladin"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230524, ["author"] = "SimC", ["desc"] = "2023-05-24: Update Light's Judgment, Divine Toll, Eye of Tyr usage.\n\n2023-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 ) )", ["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.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] }, ["standard"] = { { ["enabled"] = true, ["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", ["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)", }, -- [1] { ["enabled"] = true, ["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", ["description"] = "Use Avenger's Shield as First Priority when 2pc buff is missing.", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.aw_sentinel.up", ["action"] = "hammer_of_wrath", }, -- [3] { ["enabled"] = true, ["action"] = "judgment", ["criteria"] = "talent.crusaders_judgment.enabled & ( charges = 2 || cooldown.judgment.remains < 4 ) || ! talent.crusaders_judgment.enabled", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "( time > 20 & ( ! raid_event.adds.exists || raid_event.adds.in > 10 ) ) || ( ( buff.avenging_wrath.up || ! talent.avenging_wrath.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] { ["enabled"] = true, ["criteria"] = "! talent.inmost_light.enabled || raid_event.adds.in >= 45", ["action"] = "eye_of_tyr", }, -- [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"] = "consecration", ["enabled"] = true, }, -- [16] }, ["cooldowns"] = { { ["enabled"] = true, ["criteria"] = "time = 0 & set_bonus.tier29_2pc", ["action"] = "avengers_shield", ["description"] = "Use Avenger's Shield as first priority before anything else, if t29 2pc is equipped.", }, -- [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] { ["action"] = "avenging_wrath", ["enabled"] = true, }, -- [3] { ["action"] = "avenging_wrath", ["enabled"] = true, }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.aw_sentinel.up", ["action"] = "potion", }, -- [5] { ["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", }, -- [6] { ["enabled"] = true, ["criteria"] = "spell_targets.shield_of_the_righteous >= 3", ["action"] = "divine_toll", }, -- [7] { ["enabled"] = true, ["criteria"] = "talent.inmost_light.enabled & spell_targets.shield_of_the_righteous >= 3", ["action"] = "eye_of_tyr", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.aw_sentinel.up", ["action"] = "bastion_of_light", }, -- [9] }, }, ["version"] = 20230524, ["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\nImported 6 action lists.\n", ["spec"] = 66, ["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+=/lights_judgment,if=spell_targets.lights_judgment>=2||!raid_event.adds.exists||raid_event.adds.in>75||raid_event.adds.up\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+=/divine_toll,if=spell_targets.shield_of_the_righteous>=3\nactions.cooldowns+=/eye_of_tyr,if=talent.inmost_light.enabled&spell_targets.shield_of_the_righteous>=3\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.pctgoak_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.remains20&(!raid_event.adds.exists||raid_event.adds.in>10))||((buff.avenging_wrath.up||!talent.avenging_wrath.enabled)&(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,if=!talent.inmost_light.enabled||raid_event.adds.in>=45\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+=/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", }, ["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", }, ["Retribution"] = { ["builtIn"] = true, ["date"] = 20230518, ["spec"] = 70, ["desc"] = "2023-05-18: More work to let abilities synced abilities desync if the other ability is disabled/toggled/etc.\n\n2023-05-17: Iterate on FR/AW sync to allow spenders to be used while waiting for FR/AW.\n\n2023-05-14: Improve FR/AW sync.\n\n2023-05-08: More 10.1 updates.\n\n2023-05-02: 10.1 update.\n\n2023-03-28: Update potion end-of-fight usage to check for boss.\n\n2023-03-21: 10.0.7 priority update.\n\n2023-03-13: Edits to support finishers during Crusade procs from Retribution Aura.\n\n2023-02-21: Iterate on trinket timing (end of bossfight logic).", ["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=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+=/use_item,name=shadowed_razing_annihilator,if=(trinket.2.cooldown.remains||!variable.trinket_2_buffs)&(trinket.2.cooldown.remains||!variable.trinket_2_buffs)\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&(talent.execution_sentence&(cooldown.execution_sentence.remains=0||cooldown.execution_sentence.remains>15||action.execution_sentence.disabled)||talent.final_reckoning&(cooldown.final_reckoning.remains=0||cooldown.final_reckoning.remains>30||action.final_reckoning.disabled))\nactions.cooldowns+=/crusade,if=buff.crusade.remains=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)&(!talent.crusade&(buff.avenging_wrath.up||cooldown.avenging_wrath.remains>30||action.avenging_wrath.disabled)||talent.crusade&(cooldown.crusade.remains>30&(!buff.crusade.up||buff.crusade.stack>=10)||action.crusade.disabled))&(time_to_hpg>0||holy_power=5||holy_power>=2&talent.divine_auxiliary)\n\nactions.finishers+=/variable,name=ds_castable,value=spell_targets.divine_storm>=2||buff.empyrean_power.up\n# Modified to allow DS to be used when Final Reckoning isn't being recommended due to CD alignment with Avenging Wrath.\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.final_reckoning||talent.divine_auxiliary||cooldown.final_reckoning.remains>gcd*2||action.final_reckoning.disabled||!talent.crusade&(buff.avenging_wrath.down&cooldown.avenging_wrath.remains>gcd*3)||buff.crusade.up&buff.crusade.stack<10)\nactions.finishers+=/justicars_vengeance,if=(!talent.crusade||cooldown.crusade.remains>gcd*3)&(!talent.final_reckoning||talent.divine_auxiliary||cooldown.final_reckoning.remains>gcd*2||!talent.crusade&buff.avenging_wrath.down&cooldown.avenging_wrath.remains>gcd*3)||buff.crusade.up&buff.crusade.stack<10\nactions.finishers+=/templars_verdict,if=(!talent.crusade||cooldown.crusade.remains>gcd*3)&(!talent.final_reckoning||talent.divine_auxiliary||cooldown.final_reckoning.remains>gcd*2||!talent.crusade&buff.avenging_wrath.down&cooldown.avenging_wrath.remains>gcd*3)||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.crusade&action.avenging_wrath.disabled||talent.crusade&action.crusade.disabled)&(!talent.execution_sentence||cooldown.execution_sentence.remains>4||target.time_to_die<8||action.execution_sentence.disabled)\nactions.generators+=/divine_toll,if=holy_power<=2&!debuff.judgment.up&(cooldown.avenging_wrath.remains>15||cooldown.crusade.remains>15||!talent.crusade&action.avenging_wrath.disabled||talent.crusade&action.crusade.disabled||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=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||set_bonus.tier30_4pc)&(holy_power<=3||target.health.pct>20||!talent.vanguards_momentum)\nactions.generators+=/templar_slash,if=buff.templar_strikes.remains=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"] = 20230518, ["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 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.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 9: Unsupported use_item action [ shadowed_razing_annihilator]; entry disabled.\nLine 11: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 11: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 11: Converted 'talent.final_reckoning' to 'talent.final_reckoning.enabled' (1x).\nLine 13: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 14: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 14: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 14: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 14: 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.final_reckoning' to 'talent.final_reckoning.enabled' (1x).\nLine 2: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 2: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 3: Converted 'talent.crusade' to 'talent.crusade.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 3: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 4: Converted 'talent.crusade' to 'talent.crusade.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).\nLine 4: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\n\nThe import for 'generators' required some automated changes.\nLine 2: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 2: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 2: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 3: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 3: Converted 'talent.crusade' to 'talent.crusade.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.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 10: Converted 'talent.crusading_strikes' to 'talent.crusading_strikes.enabled' (1x).\nLine 11: Converted 'talent.holy_blade' to 'talent.holy_blade.enabled' (1x).\nLine 12: Converted 'talent.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 20: Converted 'talent.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 21: 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", ["criteria"] = "talent.crusade.enabled", ["value_else"] = "0", ["value"] = "cooldown.crusade.remains ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )", ["value_else"] = "1", ["value"] = "2", }, -- [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.crusade.enabled & action.avenging_wrath.disabled || talent.crusade.enabled & action.crusade.disabled ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > 4 || target.time_to_die < 8 || action.execution_sentence.disabled )", ["action"] = "wake_of_ashes", }, -- [2] { ["enabled"] = true, ["criteria"] = "holy_power <= 2 & ! debuff.judgment.up & ( cooldown.avenging_wrath.remains > 15 || cooldown.crusade.remains > 15 || ! talent.crusade.enabled & action.avenging_wrath.disabled || talent.crusade.enabled & action.crusade.disabled || 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 || set_bonus.tier30_4pc ) & ( 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"] = "! buff.avenging_wrath.up & ( holy_power <= 3 || ! talent.boundless_judgment.enabled ) & talent.crusading_strikes.enabled", ["action"] = "judgment", }, -- [10] { ["enabled"] = true, ["criteria"] = "holy_power <= 3 || ! talent.holy_blade.enabled", ["action"] = "blade_of_justice", }, -- [11] { ["enabled"] = true, ["criteria"] = "! debuff.judgment.up & ( holy_power <= 3 || ! talent.boundless_judgment.enabled )", ["action"] = "judgment", }, -- [12] { ["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", }, -- [13] { ["enabled"] = true, ["criteria"] = "! consecration.up & spell_targets.divine_storm >= 2", ["action"] = "consecration", }, -- [14] { ["enabled"] = true, ["criteria"] = "spell_targets.divine_storm >= 2", ["action"] = "divine_hammer", }, -- [15] { ["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", }, -- [16] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "finishers", }, -- [17] { ["action"] = "templar_slash", ["enabled"] = true, }, -- [18] { ["action"] = "templar_strike", ["enabled"] = true, }, -- [19] { ["enabled"] = true, ["criteria"] = "holy_power <= 3 || ! talent.boundless_judgment.enabled", ["action"] = "judgment", }, -- [20] { ["enabled"] = true, ["criteria"] = "holy_power <= 3 || target.health.pct > 20 || ! talent.vanguards_momentum.enabled", ["action"] = "hammer_of_wrath", }, -- [21] { ["action"] = "crusader_strike", ["enabled"] = true, }, -- [22] { ["action"] = "arcane_torrent", ["enabled"] = true, }, -- [23] { ["action"] = "consecration", ["enabled"] = true, }, -- [24] { ["action"] = "divine_hammer", ["enabled"] = true, }, -- [25] }, ["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.final_reckoning.enabled || talent.divine_auxiliary.enabled || cooldown.final_reckoning.remains > gcd.max * 2 || action.final_reckoning.disabled || ! talent.crusade.enabled & ( buff.avenging_wrath.down & cooldown.avenging_wrath.remains > gcd.max * 3 ) || buff.crusade.up & buff.crusade.stack < 10 )", ["action"] = "divine_storm", ["description"] = "Modified to allow DS to be used when Final Reckoning isn't being recommended due to CD alignment with Avenging Wrath.", }, -- [2] { ["enabled"] = true, ["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 ) & ( ! talent.final_reckoning.enabled || talent.divine_auxiliary.enabled || cooldown.final_reckoning.remains > gcd.max * 2 || ! talent.crusade.enabled & buff.avenging_wrath.down & cooldown.avenging_wrath.remains > gcd.max * 3 ) || buff.crusade.up & buff.crusade.stack < 10", ["action"] = "justicars_vengeance", }, -- [3] { ["enabled"] = true, ["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 ) & ( ! talent.final_reckoning.enabled || talent.divine_auxiliary.enabled || cooldown.final_reckoning.remains > gcd.max * 2 || ! talent.crusade.enabled & buff.avenging_wrath.down & cooldown.avenging_wrath.remains > gcd.max * 3 ) || 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, ["name"] = "algethar_puzzle_box", ["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 )", }, -- [4] { ["enabled"] = true, ["action"] = "trinket1", ["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", ["slot"] = "trinket1", }, -- [5] { ["enabled"] = true, ["action"] = "trinket2", ["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", ["slot"] = "trinket2", }, -- [6] { ["enabled"] = true, ["action"] = "trinket1", ["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 )", ["slot"] = "trinket1", }, -- [7] { ["enabled"] = true, ["action"] = "trinket2", ["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 )", ["slot"] = "trinket2", }, -- [8] { ["enabled"] = false, ["criteria"] = "( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs )", ["name"] = "shadowed_razing_annihilator", }, -- [9] { ["enabled"] = true, ["criteria"] = "fight_remains > 15", ["action"] = "shield_of_vengeance", }, -- [10] { ["enabled"] = true, ["criteria"] = "holy_power >= 4 & time < 5 || holy_power >= 3 & time > 5 || holy_power >= 2 & talent.divine_auxiliary.enabled & ( talent.execution_sentence.enabled & ( cooldown.execution_sentence.remains = 0 || cooldown.execution_sentence.remains > 15 || action.execution_sentence.disabled ) || talent.final_reckoning.enabled & ( cooldown.final_reckoning.remains = 0 || cooldown.final_reckoning.remains > 30 || action.final_reckoning.disabled ) )", ["action"] = "avenging_wrath", }, -- [11] { ["enabled"] = true, ["criteria"] = "buff.crusade.remains < gcd.max & ( holy_power >= 5 & time < 5 || holy_power >= 3 & time > 5 )", ["action"] = "crusade", }, -- [12] { ["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", }, -- [13] { ["enabled"] = true, ["criteria"] = "( holy_power >= 4 & time < 8 || holy_power >= 3 & time >= 8 || holy_power >= 2 & talent.divine_auxiliary.enabled ) & ( ! talent.crusade.enabled & ( buff.avenging_wrath.up || cooldown.avenging_wrath.remains > 30 || action.avenging_wrath.disabled ) || talent.crusade.enabled & ( cooldown.crusade.remains > 30 & ( ! buff.crusade.up || buff.crusade.stack >= 10 ) || action.crusade.disabled ) ) & ( time_to_hpg > 0 || holy_power = 5 || holy_power >= 2 & talent.divine_auxiliary.enabled )", ["action"] = "final_reckoning", }, -- [14] }, }, ["author"] = "SimC", }, }, }, ["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, ["manual_kill_shot"] = 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, ["zoom"] = 25, ["y"] = -294.9996337890625, ["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"] = 20230512, ["author"] = "SimC", ["desc"] = "2023-05-12: Simplify Trueshot logic and remove a Steady Shot entry.\n\n2023-04-30: Trigger Salvo with Multi-Shot when Volley isn't talented.\n\n2023-04-26: Update from SimulationCraft.", ["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, ["criteria"] = "refreshable & talent.hydras_bite.enabled & ! talent.serpentstalkers_trickery.enabled", ["action"] = "serpent_sting", ["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, ["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.", ["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 ) )", }, -- [12] { ["enabled"] = true, ["action"] = "aimed_shot", ["cycle_targets"] = 1, ["description"] = "For no Serpentstalker's Trickery, target the highest Latent Poison stack. Same general rules as the previous line.", ["criteria"] = "( buff.trick_shots.remains >= execute_time & ( buff.precise_shots.down || buff.trueshot.up || full_recharge_time < cast_time + gcd.max ) )", }, -- [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, ["description"] = "Only use baseline Serpent Sting as a filler in cleave if it's the only source of applying Latent Poison.", ["criteria"] = "refreshable & talent.poison_injection.enabled & ! talent.serpentstalkers_trickery.enabled", }, -- [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 & ( active_enemies = 1 & ( ! 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 ) || active_enemies > 1 || fight_remains < 25 )", ["var_name"] = "trueshot_ready", ["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.", }, -- [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", ["var_name"] = "sync_ready", ["description"] = "Signals that cooldowns are active or ready to activate that is desirable to sync a buff effect with.", }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "buff.trueshot.up", ["var_name"] = "sync_active", ["description"] = "Signals that the cooldowns that are desirable to sync a buff with are active.", }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "cooldown.trueshot.remains", ["var_name"] = "sync_remains", ["description"] = "The amount of time until the cooldowns will be ready that are desirable to sync a buff effect with.", }, -- [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 ) )", ["var_name"] = "trinket_1_stronger", ["description"] = "Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times.", }, -- [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, ["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.", ["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 )", }, -- [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] { ["enabled"] = true, ["criteria"] = "buff.trueshot.up & full_recharge_time < gcd.max + cast_time & talent.legacy_of_the_windrunners.enabled & talent.windrunners_guidance.enabled", ["action"] = "aimed_shot", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.trueshot.down", ["action"] = "kill_shot", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.salvo.up", ["action"] = "volley", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.trueshot.down", ["action"] = "steel_trap", }, -- [5] { ["enabled"] = true, ["criteria"] = "refreshable & ! talent.serpentstalkers_trickery.enabled & buff.trueshot.down", ["action"] = "serpent_sting", ["cycle_targets"] = 1, }, -- [6] { ["action"] = "explosive_shot", ["enabled"] = true, }, -- [7] { ["action"] = "stampede", ["enabled"] = true, }, -- [8] { ["action"] = "death_chakram", ["enabled"] = true, }, -- [9] { ["enabled"] = true, ["criteria"] = "active_enemies > 1", ["action"] = "wailing_arrow", }, -- [10] { ["enabled"] = true, ["criteria"] = "talent.surging_shots.enabled", ["action"] = "rapid_fire", }, -- [11] { ["action"] = "kill_shot", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["criteria"] = "variable.trueshot_ready & ( buff.trueshot.down || buff.trueshot.remains < 5 )", ["action"] = "trueshot", }, -- [13] { ["enabled"] = true, ["action"] = "multishot", ["description"] = "Trigger Salvo if Volley isn't being used to trigger it.", ["criteria"] = "buff.salvo.up & ! talent.volley.enabled", }, -- [14] { ["enabled"] = true, ["action"] = "aimed_shot", ["cycle_targets"] = 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.", ["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 )", }, -- [15] { ["enabled"] = true, ["action"] = "aimed_shot", ["cycle_targets"] = 1, ["description"] = "Without Serpentstalker's Trickery, target the highest Latent Poison stack. Same rules as the previous line.", ["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", }, -- [16] { ["action"] = "volley", ["enabled"] = true, }, -- [17] { ["action"] = "rapid_fire", ["enabled"] = true, }, -- [18] { ["enabled"] = true, ["criteria"] = "buff.trueshot.down", ["action"] = "wailing_arrow", }, -- [19] { ["enabled"] = true, ["criteria"] = "buff.trueshot.down", ["action"] = "kill_command", }, -- [20] { ["enabled"] = true, ["criteria"] = "buff.precise_shots.up || focus > cost + action.aimed_shot.cost", ["action"] = "chimaera_shot", }, -- [21] { ["enabled"] = true, ["criteria"] = "buff.precise_shots.up || focus > cost + action.aimed_shot.cost", ["action"] = "arcane_shot", }, -- [22] { ["enabled"] = true, ["criteria"] = "buff.trueshot.down", ["action"] = "bag_of_tricks", }, -- [23] { ["action"] = "steady_shot", ["enabled"] = true, }, -- [24] }, ["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"] = 20230512, ["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&(active_enemies=1&(!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)||active_enemies>1||fight_remains<25)' to 'cooldown.trueshot.ready&(active_enemies=1&(!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)||active_enemies>1||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 2: Converted 'talent.legacy_of_the_windrunners' to 'talent.legacy_of_the_windrunners.enabled' (1x).\nLine 2: Converted 'talent.windrunners_guidance' to 'talent.windrunners_guidance.enabled' (1x).\nLine 6: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\nLine 11: Converted 'talent.surging_shots' to 'talent.surging_shots.enabled' (1x).\nLine 14: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\nLine 15: Converted 'talent.serpentstalkers_trickery' to 'talent.serpentstalkers_trickery.enabled' (1x).\nLine 15: Converted 'talent.chimaera_shot' to 'talent.chimaera_shot.enabled' (1x).\nLine 16: Converted 'talent.chimaera_shot' to 'talent.chimaera_shot.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-5fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration%2||boss&trinket.t1.cooldown.durationfight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration/2||boss&trinket.t1.cooldown.durationfight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration%2||boss&trinket.t2.cooldown.durationfight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration/2||boss&trinket.t2.cooldown.durationfight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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&(active_enemies=1&(!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)||active_enemies>1||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+=/aimed_shot,if=buff.trueshot.up&full_recharge_time1\nactions.st+=/rapid_fire,if=talent.surging_shots\nactions.st+=/kill_shot\nactions.st+=/trueshot,if=variable.trueshot_ready&(buff.trueshot.down||buff.trueshot.remains<5)\n# Trigger Salvo if Volley isn't being used to trigger it.\nactions.st+=/multishot,if=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_timeexecute_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_timeexecute_time&active_enemies>1\nactions.st+=/volley\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=execute_time&(buff.precise_shots.down||buff.trueshot.up||full_recharge_time=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.durationtrinket.1.cooldown.duration%2||trinket.2.has_use_buff&trinket.2.cooldown.remains>variable.sync_remains-15&trinket.2.cooldown.remains-5fight_remains)||variable.trinket_2_stronger&(trinket.2.cooldown.remains&(trinket.2.cooldown.remains-5=20||trinket.2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.1.cooldown.duration%2||boss&trinket.1.cooldown.durationfight_remains)))||trinket.2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_1_stronger&(trinket.1.cooldown.remains&(trinket.1.cooldown.remains-5=20||trinket.1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.2.cooldown.duration%2||boss&trinket.2.cooldown.durationfight_remains)))||trinket.1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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"] = 20230426, ["author"] = "SimC", ["desc"] = "2023-04-26: Update from SimulationCraft.\n\n2023-03-28: Racial cooldown usage adjusted for Call of the Wild vs. Bestial Wrath.", ["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] }, ["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", ["value"] = "cooldown.bestial_wrath.remains_guess", ["value_else"] = "cooldown.call_of_the_wild.remains", ["criteria"] = "! talent.call_of_the_wild.enabled", }, -- [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] }, ["cds"] = { { ["enabled"] = true, ["criteria"] = "buff.call_of_the_wild.up || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || boss & fight_remains < 13", ["action"] = "berserking", }, -- [1] { ["enabled"] = true, ["criteria"] = "buff.call_of_the_wild.up || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || 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 || 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 || boss & fight_remains < 9", ["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] }, ["st"] = { { ["enabled"] = true, ["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", ["action"] = "barbed_shot", ["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, ["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", ["action"] = "barbed_shot", ["cycle_targets"] = 1, }, -- [12] { ["action"] = "dire_beast", ["enabled"] = true, }, -- [13] { ["enabled"] = true, ["criteria"] = "refreshable & target.time_to_die > duration", ["action"] = "serpent_sting", ["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] }, ["cleave"] = { { ["enabled"] = true, ["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 )", ["action"] = "barbed_shot", ["cycle_targets"] = 1, }, -- [1] { ["enabled"] = true, ["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", ["action"] = "barbed_shot", ["cycle_targets"] = 1, }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.beast_cleave.remains < 0.25 + gcd.max", ["action"] = "multishot", }, -- [3] { ["action"] = "bestial_wrath", ["enabled"] = true, }, -- [4] { ["enabled"] = true, ["criteria"] = "full_recharge_time < gcd.max & talent.alpha_predator.enabled & talent.kill_cleave.enabled", ["action"] = "kill_command", }, -- [5] { ["action"] = "call_of_the_wild", ["enabled"] = true, }, -- [6] { ["action"] = "explosive_shot", ["enabled"] = true, }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.bestial_wrath.up || boss & fight_remains < 15", ["action"] = "stampede", }, -- [8] { ["action"] = "bloodshed", ["enabled"] = true, }, -- [9] { ["action"] = "death_chakram", ["enabled"] = true, }, -- [10] { ["action"] = "steel_trap", ["enabled"] = true, }, -- [11] { ["action"] = "a_murder_of_crows", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["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 )", ["action"] = "barbed_shot", ["cycle_targets"] = 1, }, -- [13] { ["enabled"] = true, ["criteria"] = "talent.wild_instincts.enabled & buff.call_of_the_wild.up || boss & fight_remains < 9 || talent.wild_call.enabled & charges_fractional > 1.2", ["action"] = "barbed_shot", ["cycle_targets"] = 1, }, -- [14] { ["action"] = "kill_command", ["enabled"] = true, }, -- [15] { ["action"] = "dire_beast", ["enabled"] = true, }, -- [16] { ["enabled"] = true, ["criteria"] = "refreshable & target.time_to_die > duration", ["action"] = "serpent_sting", ["cycle_targets"] = 1, }, -- [17] { ["enabled"] = true, ["criteria"] = "buff.frenzy.remains > execute_time", ["action"] = "barrage", }, -- [18] { ["enabled"] = true, ["criteria"] = "buff.beast_cleave.remains < gcd.max * 2", ["action"] = "multishot", }, -- [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] { ["action"] = "kill_shot", ["enabled"] = true, }, -- [25] }, }, ["version"] = 20230426, ["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-5fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration%2||trinket.t1.cooldown.durationfight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration/2||trinket.t1.cooldown.durationfight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration%2||trinket.t2.cooldown.durationfight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration/2||trinket.t2.cooldown.durationfight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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.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 '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 5: Converted 'talent.alpha_predator' to 'talent.alpha_predator.enabled' (1x).\nLine 5: 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 19: Converted 'pet.main.buff.beast_cleave.remains' to 'buff.beast_cleave.remains' (1x).\nLine 22: Converted 'pet.main.buff.frenzy.remains' to 'buff.frenzy.remains' (1x).\n\nImported 6 action lists.\n", ["spec"] = 253, ["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=buff.call_of_the_wild.up||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<13\nactions.cds+=/blood_fury,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<16\nactions.cds+=/ancestral_call,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<16\nactions.cds+=/fireblood,if=buff.call_of_the_wild.up||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<9\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_time9&(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+=/multishot,if=pet.main.buff.beast_cleave.remainsexecute_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)1.4||full_recharge_timeduration\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)trinket.1.cooldown.duration%2||trinket.2.has_use_buff&trinket.2.cooldown.remains>variable.sync_remains-15&trinket.2.cooldown.remains-5fight_remains)||variable.trinket_2_stronger&(trinket.2.cooldown.remains&(trinket.2.cooldown.remains-5=20||trinket.2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.1.cooldown.duration%2||trinket.1.cooldown.durationfight_remains)))||trinket.2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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-5fight_remains)||variable.trinket_1_stronger&(trinket.1.cooldown.remains&(trinket.1.cooldown.remains-5=20||trinket.1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.2.cooldown.duration%2||trinket.2.cooldown.durationfight_remains)))||trinket.1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||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", }, ["Survival"] = { ["source"] = "# https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230521, ["author"] = "SimC", ["desc"] = "2023-05-21: Kill Shot moved higher in priority.\n\n2023-05-12: Added setting to use Kill Shot during Coordinated Assault for folks using Kill Shot macros.\n\n2023-05-08: High priority Kill Command in cleave should be used for targets that will live long enough to matter.\n\n2023-04-26: Update from SimulationCraft.", ["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"] = "debuff.shredded_armor.down & set_bonus.tier30_4pc & target.time_to_die > 6", ["action"] = "kill_command", }, -- [1] { ["enabled"] = true, ["criteria"] = "buff.coordinated_assault_empower.up || coordinated_assault_kill_shot", ["action"] = "kill_shot", }, -- [2] { ["enabled"] = true, ["criteria"] = "full_recharge_time < gcd.max || ! cooldown.coordinated_assault.remains || buff.coordinated_assault.remains & ! buff.coordinated_assault_empower.up", ["action"] = "wildfire_bomb", }, -- [3] { ["action"] = "death_chakram", ["enabled"] = true, }, -- [4] { ["action"] = "stampede", ["enabled"] = true, }, -- [5] { ["enabled"] = true, ["criteria"] = "cooldown.fury_of_the_eagle.remains || ! talent.fury_of_the_eagle.enabled", ["action"] = "coordinated_assault", }, -- [6] { ["action"] = "explosive_shot", ["enabled"] = true, }, -- [7] { ["enabled"] = true, ["criteria"] = "cooldown.wildfire_bomb.full_recharge_time > spell_targets / 2", ["action"] = "carve", }, -- [8] { ["enabled"] = true, ["criteria"] = "full_recharge_time < gcd.max || dot.shrapnel_bomb.ticking & ( dot.internal_bleeding.stack < 2 || dot.shrapnel_bomb.remains < gcd.max )", ["action"] = "butchery", }, -- [9] { ["enabled"] = true, ["criteria"] = "! dot.wildfire_bomb.ticking", ["action"] = "wildfire_bomb", }, -- [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 )", ["action"] = "butchery", }, -- [14] { ["enabled"] = true, ["criteria"] = "debuff.latent_poison.stack > 8", ["action"] = "mongoose_bite", ["cycle_targets"] = 1, }, -- [15] { ["enabled"] = true, ["criteria"] = "debuff.latent_poison.stack > 8", ["action"] = "raptor_strike", ["cycle_targets"] = 1, }, -- [16] { ["enabled"] = true, ["criteria"] = "focus + cast_regen < focus.max & full_recharge_time < gcd.max", ["action"] = "kill_command", ["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] { ["action"] = "spearhead", ["enabled"] = true, }, -- [21] { ["enabled"] = true, ["criteria"] = "buff.spearhead.remains", ["action"] = "mongoose_bite", ["cycle_targets"] = 1, }, -- [22] { ["enabled"] = true, ["criteria"] = "refreshable & target.time_to_die > 8 & ( ! talent.vipers_venom.enabled || talent.hydras_bite.enabled )", ["action"] = "serpent_sting", ["cycle_targets"] = 1, }, -- [23] { ["enabled"] = true, ["action"] = "mongoose_bite", ["cycle_targets"] = 1, }, -- [24] { ["enabled"] = true, ["action"] = "raptor_strike", ["cycle_targets"] = 1, }, -- [25] }, ["cds"] = { { ["enabled"] = true, ["criteria"] = "buff.coordinated_assault.up || buff.spearhead.up || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled", ["action"] = "blood_fury", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.terms_of_engagement.enabled & focus < focus.max || target.outside10", ["action"] = "harpoon", }, -- [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 < 25 || 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, ["criteria"] = "gcd.remains > gcd.max - 0.1 || settings.gcdSync", ["name"] = "algethar_puzzle_box", }, -- [10] { ["enabled"] = true, ["action"] = "manic_grieftorch", ["use_off_gcd"] = 1, ["criteria"] = "gcd.remains > gcd.max - 0.1 & ! buff.spearhead.up", ["name"] = "manic_grieftorch", }, -- [11] { ["enabled"] = true, ["action"] = "use_items", ["description"] = "Sim would use off GCD just after GCD is invoked, but it is awkward to present in-game.", ["criteria"] = "! buff.spearhead.up", }, -- [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 || coordinated_assault_kill_shot", ["action"] = "kill_shot", }, -- [3] { ["enabled"] = true, ["criteria"] = "( raid_event.adds.in > cooldown.wildfire_bomb.full_recharge_time - ( cooldown.wildfire_bomb.full_recharge_time / 3.5 ) & debuff.shredded_armor.up & ( full_recharge_time < 2 * gcd.max || talent.bombardier.enabled & ! cooldown.coordinated_assault.remains || talent.bombardier.enabled & buff.coordinated_assault.up & buff.coordinated_assault.remains < 2 * gcd.max ) || ! raid_event.adds.exists & time_to_die < 7 ) & set_bonus.tier30_4pc", ["action"] = "wildfire_bomb", }, -- [4] { ["enabled"] = true, ["criteria"] = "full_recharge_time < gcd.max & focus + cast_regen < focus.max & buff.deadly_duo.stack > 1", ["action"] = "kill_command", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "cooldown.wildfire_bomb.full_recharge_time < 2 * gcd.max & debuff.shredded_armor.down & set_bonus.tier30_4pc", ["action"] = "kill_command", ["cycle_targets"] = 1, }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.spearhead.remains", ["action"] = "mongoose_bite", }, -- [7] { ["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", }, -- [8] { ["enabled"] = true, ["criteria"] = "! buff.coordinated_assault.up", ["action"] = "kill_shot", }, -- [9] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & boss & fight_remains < focus / ( variable.mb_rs_cost - cast_regen ) * gcd.max", ["action"] = "raptor_strike", }, -- [10] { ["enabled"] = true, ["criteria"] = "refreshable & target.time_to_die > 7 & ! talent.vipers_venom.enabled", ["action"] = "serpent_sting", ["cycle_targets"] = 1, }, -- [11] { ["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", }, -- [12] { ["enabled"] = true, ["criteria"] = "focus + cast_regen < focus.max", ["action"] = "flanking_strike", }, -- [13] { ["action"] = "stampede", ["enabled"] = true, }, -- [14] { ["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", }, -- [15] { ["enabled"] = true, ["criteria"] = "full_recharge_time < gcd.max & focus + cast_regen < focus.max & ( cooldown.flanking_strike.remains || ! talent.flanking_strike.enabled ) || debuff.shredded_armor.down & set_bonus.tier30_4pc", ["action"] = "kill_command", ["cycle_targets"] = 1, }, -- [16] { ["enabled"] = true, ["criteria"] = "dot.shrapnel_bomb.ticking", ["action"] = "mongoose_bite", }, -- [17] { ["enabled"] = true, ["criteria"] = "refreshable & ! talent.vipers_venom.enabled", ["action"] = "serpent_sting", ["cycle_targets"] = 1, }, -- [18] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > cooldown.wildfire_bomb.full_recharge_time - ( cooldown.wildfire_bomb.full_recharge_time / 3.5 ) & full_recharge_time < gcd.max & ( ! set_bonus.tier29_2pc || active_enemies > 1 )", ["action"] = "wildfire_bomb", }, -- [19] { ["enabled"] = true, ["criteria"] = "buff.mongoose_fury.up", ["action"] = "mongoose_bite", ["cycle_targets"] = 1, }, -- [20] { ["enabled"] = true, ["criteria"] = "talent.ranger.enabled", ["action"] = "explosive_shot", }, -- [21] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > cooldown.wildfire_bomb.full_recharge_time - ( cooldown.wildfire_bomb.full_recharge_time / 3.5 ) & ( full_recharge_time < gcd.max || ! dot.wildfire_bomb.ticking & set_bonus.tier30_4pc )", ["action"] = "wildfire_bomb", }, -- [22] { ["enabled"] = true, ["criteria"] = "focus + action.kill_command.cast_regen > focus.max - 10 || set_bonus.tier30_4pc", ["action"] = "mongoose_bite", ["cycle_targets"] = 1, }, -- [23] { ["enabled"] = true, ["action"] = "raptor_strike", ["cycle_targets"] = 1, }, -- [24] { ["action"] = "steel_trap", ["enabled"] = true, }, -- [25] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > cooldown.wildfire_bomb.full_recharge_time - ( cooldown.wildfire_bomb.full_recharge_time / 3.5 ) & ! dot.wildfire_bomb.ticking", ["action"] = "wildfire_bomb", }, -- [26] { ["enabled"] = true, ["criteria"] = "focus + cast_regen < focus.max", ["action"] = "kill_command", ["cycle_targets"] = 1, }, -- [27] { ["enabled"] = true, ["criteria"] = "! talent.coordinated_kill.enabled & time_to_die > 140", ["action"] = "coordinated_assault", }, -- [28] { ["interrupt"] = "1", ["action"] = "fury_of_the_eagle", ["enabled"] = true, }, -- [29] }, ["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", ["value"] = "action.mongoose_bite.cost", ["value_else"] = "action.raptor_strike.cost", ["criteria"] = "talent.mongoose_bite.enabled", }, -- [4] }, }, ["version"] = 20230521, ["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 1: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 1: 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 4: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 4: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 4: Converted operations in '(raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&debuff.shredded_armor.up&(full_recharge_time<2*gcd.max||talent.bombardier.enabled&!cooldown.coordinated_assault.remains||talent.bombardier.enabled&buff.coordinated_assault.up&buff.coordinated_assault.remains<2*gcd.max)||!raid_event.adds.exists&time_to_die<7)&set_bonus.tier30_4pc' to '(raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time/3.5)&debuff.shredded_armor.up&(full_recharge_time<2*gcd.max||talent.bombardier.enabled&!cooldown.coordinated_assault.remains||talent.bombardier.enabled&buff.coordinated_assault.up&buff.coordinated_assault.remains<2*gcd.max)||!raid_event.adds.exists&time_to_die<7)&set_bonus.tier30_4pc'.\nLine 8: Converted operations in 'active_enemies=1&boss&fight_remainscooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&full_recharge_time1)' to 'raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time/3.5)&full_recharge_time1)'.\nLine 21: Converted 'talent.ranger' to 'talent.ranger.enabled' (1x).\nLine 22: Converted operations in 'raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&(full_recharge_timecooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time/3.5)&(full_recharge_timecooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&!dot.wildfire_bomb.ticking' to 'raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time/3.5)&!dot.wildfire_bomb.ticking'.\nLine 28: Converted 'talent.coordinated_kill' to 'talent.coordinated_kill.enabled' (1x).\n\nThe import for 'cleave' required some automated changes.\nLine 6: Converted 'talent.fury_of_the_eagle' to 'talent.fury_of_the_eagle.enabled' (1x).\nLine 8: 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 23: Converted 'talent.vipers_venom' to 'talent.vipers_venom.enabled' (1x).\nLine 23: Converted 'talent.hydras_bite' to 'talent.hydras_bite.enabled' (1x).\n\nImported 5 action lists.\n", ["spec"] = 255, ["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+=/blood_fury,if=buff.coordinated_assault.up||buff.spearhead.up||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/harpoon,if=talent.terms_of_engagement.enabled&focusgcd\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<25||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\n# Sim would use off GCD just after GCD is invoked, but it is awkward to present in-game.\nactions.cds+=/use_items,if=!buff.spearhead.up\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\n\nactions.cleave+=/kill_command,if=debuff.shredded_armor.down&set_bonus.tier30_4pc&target.time_to_die>6\nactions.cleave+=/kill_shot,if=buff.coordinated_assault_empower.up||coordinated_assault_kill_shot\nactions.cleave+=/wildfire_bomb,if=full_recharge_timespell_targets%2\nactions.cleave+=/butchery,if=full_recharge_time8\nactions.cleave+=/raptor_strike,cycle_targets=1,if=debuff.latent_poison.stack>8\nactions.cleave+=/kill_command,cycle_targets=1,if=focus+cast_regen8&(!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_regenfocus.max-10&(cooldown.death_chakram.remains||!talent.death_chakram)\nactions.st+=/kill_shot,if=buff.coordinated_assault_empower.up||coordinated_assault_kill_shot\nactions.st+=/wildfire_bomb,if=(raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&debuff.shredded_armor.up&(full_recharge_time<2*gcd||talent.bombardier&!cooldown.coordinated_assault.remains||talent.bombardier&buff.coordinated_assault.up&buff.coordinated_assault.remains<2*gcd)||!raid_event.adds.exists&time_to_die<7)&set_bonus.tier30_4pc\nactions.st+=/kill_command,cycle_targets=1,if=full_recharge_time1\nactions.st+=/kill_command,cycle_targets=1,if=cooldown.wildfire_bomb.full_recharge_time<2*gcd&debuff.shredded_armor.down&set_bonus.tier30_4pc\nactions.st+=/mongoose_bite,if=buff.spearhead.remains\nactions.st+=/mongoose_bite,if=active_enemies=1&boss&fight_remains7&!talent.vipers_venom\nactions.st+=/mongoose_bite,if=talent.alpha_predator&buff.mongoose_fury.up&buff.mongoose_fury.remainscooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&full_recharge_time1)\nactions.st+=/mongoose_bite,cycle_targets=1,if=buff.mongoose_fury.up\nactions.st+=/explosive_shot,if=talent.ranger\nactions.st+=/wildfire_bomb,if=raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&(full_recharge_timefocus.max-10||set_bonus.tier30_4pc\nactions.st+=/raptor_strike,cycle_targets=1\nactions.st+=/steel_trap\nactions.st+=/wildfire_bomb,if=raid_event.adds.in>cooldown.wildfire_bomb.full_recharge_time-(cooldown.wildfire_bomb.full_recharge_time%3.5)&!dot.wildfire_bomb.ticking\nactions.st+=/kill_command,cycle_targets=1,if=focus+cast_regen140\nactions.st+=/fury_of_the_eagle,interrupt=1", }, }, ["iconStore"] = { ["minimapPos"] = 267.4870703248537, }, ["notifications"] = { ["y"] = 479.1666564941406, ["x"] = -25.0001220703125, }, ["toggles"] = { ["essences"] = { ["value"] = false, }, }, }, }, }