HekiliDB = { ["namespaces"] = { ["LibDualSpec-1.0"] = { }, }, ["profileKeys"] = { ["Helnen - Draenor"] = "Default", ["Sorastab - Argent Dawn"] = "Default", ["Helfara - Ravencrest"] = "Default", ["Helcel - Ravencrest"] = "Default", ["Sorarms - Argent Dawn"] = "Default", ["Heltha - Ravencrest"] = "Default", ["Helca - Draenor"] = "Default", ["Sorahunt - Argent Dawn"] = "Default", ["Hexcel - Ravencrest"] = "Default", ["Helsora - Draenor"] = "Default", ["Helnen - Ravencrest"] = "Default", ["Hellë - Ravencrest"] = "Default", ["Helarx - Draenor"] = "Default", ["Helefir - Draenor"] = "Default", ["Helfël - Draenor"] = "Default", ["Helca - Ravencrest"] = "Default", ["Sorarcana - Argent Dawn"] = "Default", ["Soralock - Argent Dawn"] = "Default", ["Helom - Ravencrest"] = "Default", ["Cuteifread - Shattered Hand"] = "Default", ["Soradk - Argent Dawn"] = "Default", ["Heloce - Ravencrest"] = "Default", ["Soraefir - Draenor"] = "Default", ["Helmenel - Ravencrest"] = "Default", ["Sorapriest - Argent Dawn"] = "Default", ["Soramonk - Argent Dawn"] = "Default", ["Helfael - Ravencrest"] = "Default", ["Helsora - Ravencrest"] = "Default", }, ["profiles"] = { ["Default"] = { ["toggles"] = { ["interrupts"] = { ["value"] = true, }, ["cooldowns"] = { ["value"] = true, }, }, ["minimapIcon"] = true, ["displays"] = { ["Interrupts"] = { ["rel"] = "CENTER", ["x"] = -55.00000762939453, }, ["Cooldowns"] = { ["rel"] = "CENTER", ["y"] = -230.9998168945313, ["x"] = -912.0000610351562, }, ["Primary"] = { ["y"] = -180.9995880126953, ["x"] = -539.000244140625, ["rel"] = "CENTER", }, ["AOE"] = { ["rel"] = "CENTER", }, ["Defensives"] = { ["rel"] = "CENTER", ["x"] = -110.0000152587891, }, }, ["packs"] = { ["Windwalker"] = { ["source"] = "https://github.com/simulationcraft/simc/blob/dragonflight/profiles/PreRaids/PR_Monk_Windwalker.simc", ["builtIn"] = true, ["date"] = 20230502, ["spec"] = 269, ["desc"] = "2023-05-02: Update for 10.1.\n\n2023-04-17: Translate and reimplement Fists of Fury usage/cancellation during Serenity.\n\n2023-04-15: Update from SimulationCraft.\n\n2023-03-25: Adjust Touch of Death.\n\n2023-02-21: Revise to ensure Fists of Fury is only broken when Serenity is active.\n\n2023-02-20: Major changes to align with latest SimulationCraft priority.\n\n2023-03-08: Revise Manic Grieftorch usage; added requirement that target is expected to live longer than the cast time to reduce risk of partial cast.", ["lists"] = { ["opener"] = { { ["enabled"] = true, ["description"] = "Opener", ["action"] = "summon_white_tiger_statue", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.chi_burst.enabled & chi.max - chi >= 3", ["action"] = "expel_harm", }, -- [2] { ["enabled"] = true, ["criteria"] = "combo_strike & chi.max - chi >= ( 2 + buff.power_strikes.up )", ["action"] = "tiger_palm", ["cycle_targets"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "talent.chi_burst.enabled & chi = 3", ["action"] = "expel_harm", }, -- [4] { ["enabled"] = true, ["criteria"] = "chi.max - chi = 2", ["action"] = "chi_wave", }, -- [5] { ["action"] = "expel_harm", ["enabled"] = true, }, -- [6] { ["enabled"] = true, ["criteria"] = "chi > 1 & chi.max - chi >= 2", ["action"] = "chi_burst", }, -- [7] }, ["serenity_trinkets"] = { { ["enabled"] = true, ["action"] = "horn_of_valor", ["description"] = "Serenity Trinkets", ["criteria"] = "pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled & buff.storm_earth_and_fire.up || boss & fight_remains < 30", }, -- [1] { ["enabled"] = true, ["criteria"] = "( boss || target.time_to_die > 1 + cast_time ) & ( trinket.t1.is.manic_grieftorch & ! trinket.t2.has_use_buff || trinket.t2.is.manic_grieftorch & ! trinket.t1.has_use_buff )", ["action"] = "manic_grieftorch", }, -- [2] { ["enabled"] = true, ["criteria"] = "( pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled ) & ! buff.storm_earth_and_fire.up || boss & fight_remains < 25", ["action"] = "algethar_puzzle_box", }, -- [3] { ["enabled"] = true, ["criteria"] = "trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & buff.serenity.remains > 10 || boss & fight_remains < 30", ["action"] = "trinket1", ["slot"] = "trinket1", }, -- [4] { ["enabled"] = true, ["criteria"] = "! trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30", ["action"] = "trinket1", ["slot"] = "trinket1", }, -- [5] { ["enabled"] = true, ["criteria"] = "trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & buff.serenity.remains > 10 || boss & fight_remains < 30", ["action"] = "trinket2", ["slot"] = "trinket2", }, -- [6] { ["enabled"] = true, ["criteria"] = "! trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30", ["action"] = "trinket2", ["slot"] = "trinket2", }, -- [7] { ["enabled"] = true, ["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled", ["action"] = "use_items", }, -- [8] }, ["cleave"] = { { ["enabled"] = true, ["action"] = "blackout_kick", ["cycle_targets"] = 1, ["description"] = "3 Targets", ["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled", }, -- [1] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.dance_of_chiji.up", ["action"] = "spinning_crane_kick", }, -- [2] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [3] { ["action"] = "fists_of_fury", ["enabled"] = true, }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & buff.pressure_point.up & set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & combo_strike", ["action"] = "spinning_crane_kick", }, -- [6] { ["enabled"] = true, ["criteria"] = "! buff.bonedust_brew.up & buff.pressure_point.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 2", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [9] { ["action"] = "strike_of_the_windlord", ["enabled"] = true, }, -- [10] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.up & ( talent.shadowboxing_treads.enabled || cooldown.rising_sun_kick.remains > 1 )", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [11] { ["action"] = "whirling_dragon_punch", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [13] { ["enabled"] = true, ["criteria"] = "combo_strike & cooldown.fists_of_fury.remains < 3 & buff.chi_energy.stack > 15", ["action"] = "spinning_crane_kick", ["cycle_targets"] = 1, }, -- [14] { ["enabled"] = true, ["criteria"] = "cooldown.fists_of_fury.remains > 4 & chi > 3", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [15] { ["enabled"] = true, ["criteria"] = "combo_strike & cooldown.rising_sun_kick.remains & cooldown.fists_of_fury.remains & chi > 4 & ( ( talent.storm_earth_and_fire.enabled & ! talent.bonedust_brew.enabled ) || ( talent.serenity.enabled ) )", ["action"] = "spinning_crane_kick", ["cycle_targets"] = 1, }, -- [16] { ["enabled"] = true, ["criteria"] = "combo_strike & cooldown.fists_of_fury.remains", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [17] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up", ["action"] = "rushing_jade_wind", }, -- [18] { ["enabled"] = true, ["criteria"] = "combo_strike & talent.shadowboxing_treads.enabled & ! spinning_crane_kick.max", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [19] { ["enabled"] = true, ["criteria"] = "( combo_strike & chi > 5 & talent.storm_earth_and_fire.enabled || combo_strike & chi > 4 & talent.serenity.enabled )", ["action"] = "spinning_crane_kick", ["cycle_targets"] = 1, }, -- [20] }, ["serenity"] = { { ["enabled"] = true, ["action"] = "fists_of_fury", ["description"] = "Serenity Priority", ["criteria"] = "buff.serenity.remains < 1", }, -- [1] { ["enabled"] = true, ["criteria"] = "combo_strike & ! spinning_crane_kick.max & active_enemies > 4 & talent.shdaowboxing_treads.enabled", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [2] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.teachings_of_the_monastery.stack = 3 & buff.teachings_of_the_monastery.remains < 1", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "active_enemies = 4 & buff.pressure_point.up & ! talent.bonedust_brew.enabled", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "active_enemies = 1", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "active_enemies <= 3 & buff.pressure_point.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.pressure_point.up & set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.invokers_delight.up & active_enemies < 3 & talent.jade_ignition.enabled", ["action"] = "fists_of_fury", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.invokers_delight.up & active_enemies > 4", ["action"] = "fists_of_fury", }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.bloodlust.up", ["action"] = "fists_of_fury", }, -- [10] { ["enabled"] = true, ["interrupt_if"] = "buff.serenity.up&(buff.invokers_delight.up&(active_enemies<3&talent.jade_ignition||active_enemies>4)||buff.bloodlust.up||active_enemies=2)", ["criteria"] = "active_enemies = 2", ["action"] = "fists_of_fury", }, -- [11] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [12] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.dance_of_chiji.up & active_enemies >= 2", ["action"] = "spinning_crane_kick", }, -- [13] { ["enabled"] = true, ["criteria"] = "active_enemies = 4 & buff.pressure_point.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [14] { ["enabled"] = true, ["criteria"] = "active_enemies = 3 & combo_strike & set_bonus.tier30_2pc", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [15] { ["enabled"] = true, ["criteria"] = "combo_strike & active_enemies >= 3 & spinning_crane_kick.max", ["action"] = "spinning_crane_kick", }, -- [16] { ["enabled"] = true, ["criteria"] = "combo_strike & active_enemies > 1 & active_enemies < 4 & buff.teachings_of_the_monastery.stack = 2", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [17] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up & active_enemies >= 5", ["action"] = "rushing_jade_wind", }, -- [18] { ["enabled"] = true, ["criteria"] = "talent.shadowboxing_treads.enabled & active_enemies >= 3 & combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [19] { ["enabled"] = true, ["criteria"] = "combo_strike & ( active_enemies > 3 || active_enemies > 2 & spinning_crane_kick.modifier >= 2.3 )", ["action"] = "spinning_crane_kick", }, -- [20] { ["enabled"] = true, ["criteria"] = "active_enemies >= 3", ["action"] = "strike_of_the_windlord", }, -- [21] { ["enabled"] = true, ["criteria"] = "active_enemies = 2 & cooldown.fists_of_fury.remains > 5", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [22] { ["enabled"] = true, ["criteria"] = "active_enemies = 2 & cooldown.fists_of_fury.remains > 5 & talent.shadowboxing_treads.enabled & buff.teachings_of_the_monastery.stack = 1 & combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [23] { ["enabled"] = true, ["criteria"] = "combo_strike & active_enemies > 1", ["action"] = "spinning_crane_kick", }, -- [24] { ["enabled"] = true, ["criteria"] = "active_enemies > 1", ["action"] = "whirling_dragon_punch", }, -- [25] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up & active_enemies >= 3", ["action"] = "rushing_jade_wind", }, -- [26] { ["enabled"] = true, ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [27] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.dance_of_chiji.up", ["action"] = "spinning_crane_kick", }, -- [28] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [29] { ["action"] = "whirling_dragon_punch", ["enabled"] = true, }, -- [30] { ["enabled"] = true, ["criteria"] = "talent.teachings_of_the_monastery.enabled & buff.teachings_of_the_monastery.stack < 3", ["action"] = "tiger_palm", ["cycle_targets"] = 1, }, -- [31] }, ["cd_serenity"] = { { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "Serenity Cooldowns", ["list_name"] = "serenity_trinkets", }, -- [1] { ["enabled"] = true, ["criteria"] = "! cooldown.invoke_xuen_the_white_tiger.remains || active_enemies > 4 || cooldown.invoke_xuen_the_white_tiger.remains > 50 || boss & fight_remains <= 30", ["action"] = "summon_white_tiger_statue", }, -- [2] { ["enabled"] = true, ["criteria"] = "! variable.hold_xuen & talent.bonedust_brew.enabled & cooldown.bonedust_brew.remains <= 5 || boss & fight_remains < 25", ["action"] = "invoke_xuen", }, -- [3] { ["enabled"] = true, ["criteria"] = "! variable.hold_xuen & ! talent.bonedust_brew.enabled & ( cooldown.rising_sun_kick.remains < 2 ) || boss & fight_remains < 25", ["action"] = "invoke_xuen", }, -- [4] { ["enabled"] = true, ["criteria"] = "! buff.bonedust_brew.up & ( cooldown.serenity.up || cooldown.serenity.remains > 15 || boss & fight_remains < 30 & fight_remains > 10 ) || boss & fight_remains < 10", ["action"] = "bonedust_brew", }, -- [5] { ["enabled"] = true, ["criteria"] = "pet.xuen_the_white_tiger.active & target.time_to_die > 15 || ! talent.invoke_xuen_the_white_tiger.enabled || boss & fight_remains < 15", ["action"] = "serenity", }, -- [6] { ["enabled"] = true, ["criteria"] = "combo_strike & ! buff.serenity.up & ( target.health.current < health || buff.hidden_masters_forbidden_touch.up & ( buff.hidden_masters_forbidden_touch.remains < 2 || buff.hidden_masters_forbidden_touch.remains > target.time_to_die ) || target.time_to_die > 60 || debuff.bonedust_brew_debuff.up || boss & fight_remains < 10 )", ["action"] = "touch_of_death", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "fight_remains > 90 || boss & fight_remains < 10", ["action"] = "touch_of_karma", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.serenity.up || boss & fight_remains < 20", ["action"] = "blood_fury", }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.serenity.up || boss & fight_remains < 20", ["action"] = "berserking", }, -- [10] { ["action"] = "lights_judgment", ["enabled"] = true, }, -- [11] { ["enabled"] = true, ["criteria"] = "buff.serenity.up || boss & fight_remains < 20", ["action"] = "fireblood", }, -- [12] { ["enabled"] = true, ["criteria"] = "buff.serenity.up || boss & fight_remains < 20", ["action"] = "ancestral_call", }, -- [13] { ["enabled"] = true, ["criteria"] = "buff.serenity.up || boss & fight_remains < 20", ["action"] = "bag_of_tricks", }, -- [14] }, ["st"] = { { ["enabled"] = true, ["action"] = "blackout_kick", ["cycle_targets"] = 1, ["description"] = "1 Target", ["criteria"] = "buff.teachings_of_the_monastery.stack = 3", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.kicks_of_flowing_momentum.up || buff.pressure_point.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 2", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [4] { ["action"] = "strike_of_the_windlord", ["enabled"] = true, }, -- [5] { ["enabled"] = true, ["criteria"] = "cooldown.fists_of_fury.remains > 4 & talent.xuens_battlegear.enabled", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [6] { ["action"] = "fists_of_fury", ["enabled"] = true, }, -- [7] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.dance_of_chiji.up", ["action"] = "spinning_crane_kick", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.up & cooldown.rising_sun_kick.remains > 1", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & combo_strike & spinning_crane_kick.modifier >= 2.7", ["action"] = "spinning_crane_kick", }, -- [10] { ["enabled"] = true, ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [11] { ["action"] = "whirling_dragon_punch", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up", ["action"] = "rushing_jade_wind", }, -- [13] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [14] }, ["default"] = { { ["enabled"] = true, ["description"] = "Executed every time the actor is available.", ["action"] = "spear_hand_strike", }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "! talent.invoke_xuen_the_white_tiger.enabled || cooldown.invoke_xuen_the_white_tiger.remains > fight_remains || fight_remains - cooldown.invoke_xuen_the_white_tiger.remains < 120 & ( ( talent.serenity.enabled & fight_remains > cooldown.serenity.remains & cooldown.serenity.remains > 10 ) || ( cooldown.storm_earth_and_fire.full_recharge_time < fight_remains & cooldown.storm_earth_and_fire.full_recharge_time > 15 ) || ( cooldown.storm_earth_and_fire.charges = 0 & cooldown.storm_earth_and_fire.remains < fight_remains ) )", ["var_name"] = "hold_xuen", }, -- [2] { ["enabled"] = true, ["action"] = "potion", ["description"] = "Potion", ["criteria"] = "( buff.serenity.up || buff.storm_earth_and_fire.up ) & ( ! talent.xuen_the_white_tiger.enabled || pet.xuen_the_white_tiger.active ) || boss & fight_remains <= 60", }, -- [3] { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "Build Chi at the start of combat", ["criteria"] = "time < 4 & chi < 5 & ! pet.xuen_the_white_tiger.active & ! talent.serenity.enabled", ["list_name"] = "opener", }, -- [4] { ["enabled"] = true, ["action"] = "faeline_stomp", ["cycle_targets"] = 1, ["description"] = "Prioritize Faeline Stomp if playing with Faeline Harmony", ["criteria"] = "combo_strike & talent.faeline_harmony.enabled & debuff.fae_exposure_damage.remains < 1", }, -- [5] { ["enabled"] = true, ["action"] = "tiger_palm", ["cycle_targets"] = 1, ["description"] = "TP if not overcapping Chi or TotM", ["criteria"] = "! buff.serenity.up & buff.teachings_of_the_monastery.stack < 3 & combo_strike & chi.max - chi >= ( 2 + buff.power_strikes.up ) & ( ! talent.invoke_xuen_the_white_tiger.enabled & ! talent.serenity.enabled || ( ! talent.skyreach.enabled || time > 5 || pet.xuen_the_white_tiger.active ) )", }, -- [6] { ["enabled"] = true, ["action"] = "chi_burst", ["description"] = "Use Chi Burst to reset Faeline Stomp", ["criteria"] = "talent.faeline_stomp.enabled & cooldown.faeline_stomp.remains & ( chi.max - chi >= 1 & active_enemies = 1 || chi.max - chi >= 2 & active_enemies >= 2 ) & ! talent.faeline_harmony.enabled", }, -- [7] { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "Use Cooldowns", ["strict"] = 1, ["criteria"] = "! talent.serenity.enabled", ["list_name"] = "cd_sef", }, -- [8] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "talent.serenity.enabled", ["list_name"] = "cd_serenity", }, -- [9] { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "Serenity / Default Priority", ["strict"] = 1, ["criteria"] = "buff.serenity.up", ["list_name"] = "serenity", }, -- [10] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies > 4", ["list_name"] = "heavy_aoe", }, -- [11] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies = 4", ["list_name"] = "aoe", }, -- [12] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies = 3", ["list_name"] = "cleave", }, -- [13] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies = 2", ["list_name"] = "st_cleave", }, -- [14] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies = 1", ["list_name"] = "st", }, -- [15] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "fallthru", }, -- [16] }, ["cd_sef"] = { { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "Storm, Earth and Fire Cooldowns", ["list_name"] = "sef_trinkets", }, -- [1] { ["enabled"] = true, ["criteria"] = "pet.xuen_the_white_tiger.active", ["action"] = "summon_white_tiger_statue", }, -- [2] { ["enabled"] = true, ["criteria"] = "! variable.hold_xuen & talent.bonedust_brew.enabled & cooldown.bonedust_brew.remains <= 5 & ( active_enemies < 3 & chi >= 3 || active_enemies >= 3 & chi >= 2 ) || fight_remains < 25", ["action"] = "invoke_xuen", }, -- [3] { ["enabled"] = true, ["criteria"] = "! variable.hold_xuen & ! talent.bonedust_brew.enabled & ( cooldown.rising_sun_kick.remains < 2 ) & chi >= 3", ["action"] = "invoke_xuen", }, -- [4] { ["enabled"] = true, ["criteria"] = "talent.bonedust_brew.enabled & ( fight_remains < 30 & cooldown.bonedust_brew.remains < 4 & chi >= 4 || buff.bonedust_brew.up || ! spinning_crane_kick.max & active_enemies >= 3 & cooldown.bonedust_brew.remains <= 2 & chi >= 2 ) & ( pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > cooldown.storm_earth_and_fire.full_recharge_time )", ["action"] = "storm_earth_and_fire", }, -- [5] { ["enabled"] = true, ["criteria"] = "( ! buff.bonedust_brew.up & buff.storm_earth_and_fire.up & buff.storm_earth_and_fire.remains < 11 & spinning_crane_kick.max ) || ( ! buff.bonedust_brew.up & fight_remains < 30 & fight_remains > 10 & spinning_crane_kick.max & chi >= 4 ) || fight_remains < 10 || ( ! debuff.skyreach_exhaustion.up & active_enemies >= 4 & spinning_crane_kick.modifier >= 2 ) || ( pet.xuen_the_white_tiger.active & spinning_crane_kick.max & active_enemies >= 4 )", ["action"] = "bonedust_brew", }, -- [6] { ["enabled"] = true, ["action"] = "call_action_list", ["criteria"] = "! buff.bonedust_brew.up & talent.bonedust_brew.enabled & cooldown.bonedust_brew.remains <= 2 & ( fight_remains > 60 & ( cooldown.storm_earth_and_fire.charges > 0 || cooldown.storm_earth_and_fire.remains > 10 ) & ( pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > 10 || variable.hold_xuen ) || ( ( pet.xuen_the_white_tiger.active || cooldown.invoke_xuen_the_white_tiger.remains > 13 ) & ( cooldown.storm_earth_and_fire.charges > 0 || cooldown.storm_earth_and_fire.remains > 13 || buff.storm_earth_and_fire.up ) ) )", ["list_name"] = "bdb_setup", }, -- [7] { ["enabled"] = true, ["criteria"] = "boss & fight_remains < 20 || ( cooldown.storm_earth_and_fire.charges = 2 & cooldown.invoke_xuen_the_white_tiger.remains > cooldown.storm_earth_and_fire.full_recharge_time ) & cooldown.fists_of_fury.remains <= 9 & chi >= 2 & cooldown.whirling_dragon_punch.remains <= 12", ["action"] = "storm_earth_and_fire", }, -- [8] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "touch_of_death", ["cycle_targets"] = 1, }, -- [9] { ["enabled"] = true, ["criteria"] = "fight_remains > 90 || pet.xuen_the_white_tiger.active || variable.hold_xuen || boss & fight_remains < 16", ["action"] = "touch_of_karma", ["cycle_targets"] = 1, }, -- [10] { ["enabled"] = true, ["criteria"] = "fight_remains > 159 || variable.hold_xuen", ["action"] = "touch_of_karma", }, -- [11] { ["enabled"] = true, ["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 20", ["action"] = "blood_fury", }, -- [12] { ["enabled"] = true, ["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 15", ["action"] = "berserking", }, -- [13] { ["action"] = "lights_judgment", ["enabled"] = true, }, -- [14] { ["enabled"] = true, ["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 10", ["action"] = "fireblood", }, -- [15] { ["enabled"] = true, ["criteria"] = "cooldown.invoke_xuen_the_white_tiger.remains > 30 || variable.hold_xuen || boss & fight_remains < 20", ["action"] = "ancestral_call", }, -- [16] { ["enabled"] = true, ["criteria"] = "buff.storm_earth_and_fire.down", ["action"] = "bag_of_tricks", }, -- [17] }, ["sef_trinkets"] = { { ["enabled"] = true, ["action"] = "horn_of_valor", ["description"] = "SEF Trinkets", ["criteria"] = "pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled & buff.storm_earth_and_fire.up || boss & fight_remains < 30", }, -- [1] { ["enabled"] = true, ["criteria"] = "( boss || target.time_to_die > 1 + cast_time ) & ( trinket.t1.is.manic_grieftorch & ! trinket.t2.has_use_buff || trinket.t2.is.manic_grieftorch & ! trinket.t1.has_use_buff )", ["action"] = "manic_grieftorch", }, -- [2] { ["enabled"] = true, ["criteria"] = "( pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled ) & ! buff.storm_earth_and_fire.up || boss & fight_remains < 25", ["action"] = "algethar_puzzle_box", }, -- [3] { ["enabled"] = true, ["criteria"] = "trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || action_cooldown <= 60 & buff.storm_earth_and_fire.remains > 10 || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30", ["action"] = "trinket1", ["slot"] = "trinket1", }, -- [4] { ["enabled"] = true, ["criteria"] = "! trinket.t1.has_use_buff & ! ( trinket.t1.is.horn_of_valor || trinket.t1.is.manic_grieftorch || trinket.t1.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30", ["action"] = "trinket1", ["slot"] = "trinket1", }, -- [5] { ["enabled"] = true, ["criteria"] = "trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || action_cooldown <= 60 & buff.storm_earth_and_fire.remains > 10 || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30", ["action"] = "trinket2", ["slot"] = "trinket2", }, -- [6] { ["enabled"] = true, ["criteria"] = "! trinket.t2.has_use_buff & ! ( trinket.t2.is.horn_of_valor || trinket.t2.is.manic_grieftorch || trinket.t2.is.algethar_puzzle_box ) & ( cooldown.invoke_xuen_the_white_tiger.remains > action_cooldown % 120 || action_cooldown <= 60 & variable.hold_xuen || ! talent.invoke_xuen_the_white_tiger.enabled ) || boss & fight_remains < 30", ["action"] = "trinket2", ["slot"] = "trinket2", }, -- [7] }, ["st_cleave"] = { { ["enabled"] = true, ["action"] = "blackout_kick", ["cycle_targets"] = 1, ["description"] = "2 Targets", ["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [2] { ["action"] = "fists_of_fury", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["criteria"] = "set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.kicks_of_flowing_momentum.up || buff.pressure_point.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 2", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [6] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.dance_of_chiji.up", ["action"] = "spinning_crane_kick", }, -- [7] { ["action"] = "strike_of_the_windlord", ["enabled"] = true, }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.up & ( talent.shadowboxing_treads.enabled || cooldown.rising_sun_kick.remains > 1 )", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [9] { ["action"] = "whirling_dragon_punch", ["enabled"] = true, }, -- [10] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [11] { ["enabled"] = true, ["criteria"] = "! talent.shadowboxing_treads.enabled & cooldown.fists_of_fury.remains > 4 & talent.xuens_battlegear.enabled", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [12] { ["enabled"] = true, ["criteria"] = "combo_strike & cooldown.rising_sun_kick.remains & cooldown.fists_of_fury.remains & ( ! buff.bonedust_brew.up || spinning_crane_kick.modifier < 1.5 )", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [13] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up", ["action"] = "rushing_jade_wind", }, -- [14] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & combo_strike & spinning_crane_kick.modifier >= 2.7", ["action"] = "spinning_crane_kick", }, -- [15] { ["enabled"] = true, ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [16] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [17] { ["enabled"] = true, ["criteria"] = "( combo_strike & chi > 5 & talent.storm_earth_and_fire.enabled || combo_strike & chi > 4 & talent.serenity.enabled )", ["action"] = "spinning_crane_kick", ["cycle_targets"] = 1, }, -- [18] { ["enabled"] = true, ["action"] = "blackout_kick", ["cycle_targets"] = 1, ["description"] = "ST Priority (<3 Targets)", ["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled", }, -- [19] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.dance_of_chiji.up", ["action"] = "spinning_crane_kick", }, -- [20] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [21] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & buff.kicks_of_flowing_momentum.up || buff.pressure_point.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [22] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 2 & talent.shadowboxing_treads.enabled", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [23] { ["action"] = "strike_of_the_windlord", ["enabled"] = true, }, -- [24] { ["action"] = "fists_of_fury", ["enabled"] = true, }, -- [25] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.up & ( talent.shadowboxing_treads.enabled & active_enemies > 1 || cooldown.rising_sun_kick.remains > 1 )", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [26] { ["enabled"] = true, ["criteria"] = "active_enemies = 2", ["action"] = "whirling_dragon_punch", }, -- [27] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [28] { ["enabled"] = true, ["criteria"] = "( active_enemies = 1 || ! talent.shadowboxing_treads.enabled ) & cooldown.fists_of_fury.remains > 4 & talent.xuens_battlegear.enabled", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [29] { ["enabled"] = true, ["criteria"] = "combo_strike & active_enemies = 2 & cooldown.rising_sun_kick.remains & cooldown.fists_of_fury.remains & ( ! buff.bonedust_brew.up || spinning_crane_kick.modifier < 1.5 )", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [30] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up & active_enemies = 2", ["action"] = "rushing_jade_wind", }, -- [31] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & combo_strike & ( active_enemies > 1 || spinning_crane_kick.modifier >= 2.7 )", ["action"] = "spinning_crane_kick", }, -- [32] { ["enabled"] = true, ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [33] { ["action"] = "whirling_dragon_punch", ["enabled"] = true, }, -- [34] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up", ["action"] = "rushing_jade_wind", }, -- [35] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [36] }, ["precombat"] = { { ["action"] = "summon_white_tiger_statue", ["enabled"] = true, }, -- [1] { ["enabled"] = true, ["criteria"] = "chi < chi.max", ["action"] = "expel_harm", }, -- [2] { ["enabled"] = true, ["criteria"] = "! talent.faeline_stomp.enabled", ["action"] = "chi_burst", }, -- [3] { ["action"] = "chi_wave", ["enabled"] = true, }, -- [4] }, ["aoe"] = { { ["enabled"] = true, ["action"] = "spinning_crane_kick", ["description"] = "4 Targets", ["criteria"] = "combo_strike & buff.dance_of_chiji.up & spinning_crane_kick.max", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [2] { ["action"] = "fists_of_fury", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & buff.pressure_point.up & set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & combo_strike & spinning_crane_kick.max", ["action"] = "spinning_crane_kick", }, -- [5] { ["enabled"] = true, ["criteria"] = "! buff.bonedust_brew.up & buff.pressure_point.up & cooldown.fists_of_fury.remains > 5", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [8] { ["enabled"] = true, ["criteria"] = "combo_strike & cooldown.fists_of_fury.remains > 3 & buff.chi_energy.stack > 10", ["action"] = "spinning_crane_kick", }, -- [9] { ["enabled"] = true, ["criteria"] = "combo_strike & set_bonus.tier30_2pc", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [10] { ["enabled"] = true, ["criteria"] = "combo_strike & ( cooldown.fists_of_fury.remains > 3 || chi > 4 ) & spinning_crane_kick.max", ["action"] = "spinning_crane_kick", }, -- [11] { ["action"] = "whirling_dragon_punch", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [13] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up", ["action"] = "rushing_jade_wind", }, -- [14] { ["action"] = "strike_of_the_windlord", ["enabled"] = true, }, -- [15] { ["enabled"] = true, ["criteria"] = "combo_strike & ( cooldown.fists_of_fury.remains > 3 || chi > 4 )", ["action"] = "spinning_crane_kick", }, -- [16] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [17] }, ["fallthru"] = { { ["enabled"] = true, ["action"] = "crackling_jade_lightning", ["description"] = "Fallthru", ["criteria"] = "buff.the_emperors_capacitor.stack > 19 & energy.time_to_max > execute_time - 1 & cooldown.rising_sun_kick.remains > execute_time || buff.the_emperors_capacitor.stack > 14 & ( cooldown.serenity.remains < 5 & talent.serenity.enabled || boss & fight_remains < 5 )", }, -- [1] { ["enabled"] = true, ["criteria"] = "combo_strike", ["action"] = "faeline_stomp", }, -- [2] { ["enabled"] = true, ["criteria"] = "combo_strike & chi.max - chi >= ( 2 + buff.power_strikes.up )", ["action"] = "tiger_palm", ["cycle_targets"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "chi.max - chi >= 1 & active_enemies > 2", ["action"] = "expel_harm", }, -- [4] { ["enabled"] = true, ["criteria"] = "chi.max - chi >= 1 & active_enemies = 1 & raid_event.adds.in > 20 || chi.max - chi >= 2 & active_enemies >= 2", ["action"] = "chi_burst", }, -- [5] { ["action"] = "chi_wave", ["enabled"] = true, }, -- [6] { ["enabled"] = true, ["criteria"] = "chi.max - chi >= 1", ["action"] = "expel_harm", }, -- [7] { ["enabled"] = true, ["criteria"] = "combo_strike & active_enemies >= 5", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [8] { ["enabled"] = true, ["criteria"] = "combo_strike & buff.chi_energy.stack > 30 - 5 * active_enemies & buff.storm_earth_and_fire.down & ( cooldown.rising_sun_kick.remains > 2 & cooldown.fists_of_fury.remains > 2 || cooldown.rising_sun_kick.remains < 3 & cooldown.fists_of_fury.remains > 3 & chi > 3 || cooldown.rising_sun_kick.remains > 3 & cooldown.fists_of_fury.remains < 3 & chi > 4 || chi.max - chi <= 1 & energy.time_to_max < 2 ) || buff.chi_energy.stack > 10 & fight_remains < 7", ["action"] = "spinning_crane_kick", }, -- [9] { ["enabled"] = true, ["criteria"] = "chi.max - chi >= 1", ["action"] = "arcane_torrent", }, -- [10] { ["interrupt"] = "1", ["action"] = "flying_serpent_kick", ["enabled"] = true, }, -- [11] { ["action"] = "tiger_palm", ["enabled"] = true, }, -- [12] }, ["heavy_aoe"] = { { ["enabled"] = true, ["action"] = "spinning_crane_kick", ["description"] = ">4 Targets", ["criteria"] = "combo_strike & buff.dance_of_chiji.up & spinning_crane_kick.max", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.thunderfist.enabled", ["action"] = "strike_of_the_windlord", }, -- [2] { ["enabled"] = true, ["criteria"] = "active_enemies > 8", ["action"] = "whirling_dragon_punch", }, -- [3] { ["action"] = "fists_of_fury", ["enabled"] = true, }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & combo_strike & spinning_crane_kick.max", ["action"] = "spinning_crane_kick", }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.bonedust_brew.up & buff.pressure_point.up & set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3 & talent.shadowboxing_treads.enabled", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "active_enemies >= 5", ["action"] = "whirling_dragon_punch", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.pressure_point.up & set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [9] { ["enabled"] = true, ["criteria"] = "set_bonus.tier30_2pc", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [10] { ["enabled"] = true, ["criteria"] = "talent.whirling_dragon_punch.enabled & cooldown.whirling_dragon_punch.remains < 3 & cooldown.fists_of_fury.remains > 3 & ! buff.kicks_of_flowing_momentum.up", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [11] { ["enabled"] = true, ["criteria"] = "combo_strike & cooldown.fists_of_fury.remains < 5 & buff.chi_energy.stack > 10", ["action"] = "spinning_crane_kick", ["cycle_targets"] = 1, }, -- [12] { ["enabled"] = true, ["criteria"] = "talent.shadowboxing_treads.enabled & combo_strike & set_bonus.tier30_2pc & ! buff.bonedust_brew.up & active_enemies < 15 & ! talent.crane_vortex.enabled", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [13] { ["enabled"] = true, ["criteria"] = "talent.shadowboxing_treads.enabled & combo_strike & set_bonus.tier30_2pc & ! buff.bonedust_brew.up & active_enemies < 8", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [14] { ["enabled"] = true, ["criteria"] = "combo_strike & ( cooldown.fists_of_fury.remains > 3 || chi > 4 ) & spinning_crane_kick.max", ["action"] = "spinning_crane_kick", ["cycle_targets"] = 1, }, -- [15] { ["enabled"] = true, ["criteria"] = "! buff.rushing_jade_wind.up", ["action"] = "rushing_jade_wind", }, -- [16] { ["enabled"] = true, ["criteria"] = "buff.teachings_of_the_monastery.stack = 3", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [17] { ["action"] = "strike_of_the_windlord", ["enabled"] = true, }, -- [18] { ["enabled"] = true, ["criteria"] = "talent.shadowboxing_treads.enabled & combo_strike & ! spinning_crane_kick.max", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [19] { ["enabled"] = true, ["criteria"] = "chi.max - chi >= 1 & active_enemies = 1 & raid_event.adds.in > 20 || chi.max - chi >= 2", ["action"] = "chi_burst", }, -- [20] }, ["bdb_setup"] = { { ["enabled"] = true, ["action"] = "strike_of_the_windlord", ["description"] = "Bonedust Brew Setup", ["criteria"] = "talent.thunderfist.enabled & active_enemies > 3", }, -- [1] { ["enabled"] = true, ["criteria"] = "spinning_crane_kick.max & chi >= 4", ["action"] = "bonedust_brew", }, -- [2] { ["enabled"] = true, ["criteria"] = "combo_strike & chi.max - chi >= 2 & buff.storm_earth_and_fire.up", ["action"] = "tiger_palm", ["cycle_targets"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "combo_strike & ! talent.whirling_dragon_punch.enabled & ! spinning_crane_kick.max", ["action"] = "blackout_kick", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "combo_strike & chi >= 5 & talent.whirling_dragon_punch.enabled", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "combo_strike & active_enemies >= 2 & talent.whirling_dragon_punch.enabled", ["action"] = "rising_sun_kick", ["cycle_targets"] = 1, }, -- [6] }, }, ["version"] = 20230502, ["warnings"] = "The import for 'serenity_trinkets' required some automated changes.\nLine 1: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 2: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 2: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 4: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 4: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 5: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 5: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 5: Converted operations in '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 6: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 6: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 7: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 7: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 7: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 7: Converted operations in '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 8: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 8: Converted operations in 'cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled' to 'cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled'.\n\nThe import for 'cleave' required some automated changes.\nLine 1: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 3: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 11: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 16: Converted 'talent.storm_earth_and_fire' to 'talent.storm_earth_and_fire.enabled' (1x).\nLine 16: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 16: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 19: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 20: Converted 'talent.storm_earth_and_fire' to 'talent.storm_earth_and_fire.enabled' (1x).\nLine 20: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\n\nThe import for 'serenity' required some automated changes.\nLine 2: Converted 'talent.shdaowboxing_treads' to 'talent.shdaowboxing_treads.enabled' (1x).\nLine 4: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 8: Converted 'talent.jade_ignition' to 'talent.jade_ignition.enabled' (1x).\nLine 12: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 19: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 23: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 31: Converted 'talent.teachings_of_the_monastery' to 'talent.teachings_of_the_monastery.enabled' (1x).\n\nThe import for 'cd_serenity' required some automated changes.\nLine 3: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 4: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 6: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 2: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 6: Converted 'talent.xuens_battlegear' to 'talent.xuens_battlegear.enabled' (1x).\n\nThe import for 'heavy_aoe' required some automated changes.\nLine 2: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 7: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 11: Converted 'talent.whirling_dragon_punch' to 'talent.whirling_dragon_punch.enabled' (1x).\nLine 13: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 13: Converted 'talent.crane_vortex' to 'talent.crane_vortex.enabled' (1x).\nLine 14: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 19: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\n\nThe import for 'cd_sef' required some automated changes.\nLine 3: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 4: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 5: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\nLine 7: Converted 'talent.bonedust_brew' to 'talent.bonedust_brew.enabled' (1x).\n\nThe import for 'sef_trinkets' required some automated changes.\nLine 1: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 2: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 2: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 4: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 4: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 4: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted operations in 'trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to 'trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.is.horn_of_valor' to 'trinket.t1.is.horn_of_valor' (1x).\nLine 5: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 5: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 5: Converted operations in '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t1.has_use_buff&!(trinket.t1.is.horn_of_valor||trinket.t1.is.manic_grieftorch||trinket.t1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 6: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 6: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 6: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 6: Converted operations in 'trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to 'trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||action_cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\nLine 7: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.is.horn_of_valor' to 'trinket.t2.is.horn_of_valor' (1x).\nLine 7: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 7: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 7: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 7: Converted operations in '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30' to '!trinket.t2.has_use_buff&!(trinket.t2.is.horn_of_valor||trinket.t2.is.manic_grieftorch||trinket.t2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>action_cooldown%120||action_cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger.enabled)||boss&fight_remains<30'.\n\nThe import for 'st_cleave' required some automated changes.\nLine 1: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 2: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 9: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 12: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 12: Converted 'talent.xuens_battlegear' to 'talent.xuens_battlegear.enabled' (1x).\nLine 18: Converted 'talent.storm_earth_and_fire' to 'talent.storm_earth_and_fire.enabled' (1x).\nLine 18: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 19: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 21: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 23: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 26: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 29: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 29: Converted 'talent.xuens_battlegear' to 'talent.xuens_battlegear.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.faeline_stomp' to 'talent.faeline_stomp.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 7: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\n\nThe import for 'fallthru' required some automated changes.\nLine 1: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 2: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 3: Converted 'talent.xuen_the_white_tiger' to 'talent.xuen_the_white_tiger.enabled' (1x).\nLine 4: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 5: Converted 'talent.faeline_harmony' to 'talent.faeline_harmony.enabled' (1x).\nLine 6: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 6: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 6: Converted 'talent.skyreach' to 'talent.skyreach.enabled' (1x).\nLine 7: Converted 'talent.faeline_stomp' to 'talent.faeline_stomp.enabled' (1x).\nLine 7: Converted 'talent.faeline_harmony' to 'talent.faeline_harmony.enabled' (1x).\nLine 8: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\nLine 9: Converted 'talent.serenity' to 'talent.serenity.enabled' (1x).\n\nThe import for 'bdb_setup' required some automated changes.\nLine 1: Converted 'talent.thunderfist' to 'talent.thunderfist.enabled' (1x).\nLine 4: Converted 'talent.whirling_dragon_punch' to 'talent.whirling_dragon_punch.enabled' (1x).\nLine 5: Converted 'talent.whirling_dragon_punch' to 'talent.whirling_dragon_punch.enabled' (1x).\nLine 6: Converted 'talent.whirling_dragon_punch' to 'talent.whirling_dragon_punch.enabled' (1x).\n\nImported 15 action lists.\n", ["author"] = "SimC", ["profile"] = "actions.precombat+=/summon_white_tiger_statue\nactions.precombat+=/expel_harm,if=chifight_remains||fight_remains-cooldown.invoke_xuen_the_white_tiger.remains<120&((talent.serenity&fight_remains>cooldown.serenity.remains&cooldown.serenity.remains>10)||(cooldown.storm_earth_and_fire.full_recharge_time15)||(cooldown.storm_earth_and_fire.charges=0&cooldown.storm_earth_and_fire.remains=(2+buff.power_strikes.up)&(!talent.invoke_xuen_the_white_tiger&!talent.serenity||(!talent.skyreach||time>5||pet.xuen_the_white_tiger.active))\n# Use Chi Burst to reset Faeline Stomp\nactions+=/chi_burst,if=talent.faeline_stomp&cooldown.faeline_stomp.remains&(chi.max-chi>=1&active_enemies=1||chi.max-chi>=2&active_enemies>=2)&!talent.faeline_harmony\n# Use Cooldowns\nactions+=/call_action_list,name=cd_sef,strict=1,if=!talent.serenity\nactions+=/call_action_list,name=cd_serenity,strict=1,if=talent.serenity\n# Serenity / Default Priority\nactions+=/call_action_list,name=serenity,strict=1,if=buff.serenity.up\nactions+=/call_action_list,name=heavy_aoe,strict=1,if=active_enemies>4\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies=4\nactions+=/call_action_list,name=cleave,strict=1,if=active_enemies=3\nactions+=/call_action_list,name=st_cleave,strict=1,if=active_enemies=2\nactions+=/call_action_list,name=st,strict=1,if=active_enemies=1\nactions+=/call_action_list,name=fallthru\n\n# >4 Targets\nactions.heavy_aoe+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up&spinning_crane_kick.max\nactions.heavy_aoe+=/strike_of_the_windlord,if=talent.thunderfist\nactions.heavy_aoe+=/whirling_dragon_punch,if=active_enemies>8\nactions.heavy_aoe+=/fists_of_fury\nactions.heavy_aoe+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&spinning_crane_kick.max\nactions.heavy_aoe+=/rising_sun_kick,cycle_targets=1,if=buff.bonedust_brew.up&buff.pressure_point.up&set_bonus.tier30_2pc\nactions.heavy_aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.heavy_aoe+=/whirling_dragon_punch,if=active_enemies>=5\nactions.heavy_aoe+=/rising_sun_kick,cycle_targets=1,if=buff.pressure_point.up&set_bonus.tier30_2pc\nactions.heavy_aoe+=/rising_sun_kick,cycle_targets=1,if=set_bonus.tier30_2pc\nactions.heavy_aoe+=/rising_sun_kick,cycle_targets=1,if=talent.whirling_dragon_punch&cooldown.whirling_dragon_punch.remains<3&cooldown.fists_of_fury.remains>3&!buff.kicks_of_flowing_momentum.up\nactions.heavy_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains<5&buff.chi_energy.stack>10\nactions.heavy_aoe+=/blackout_kick,cycle_targets=1,if=talent.shadowboxing_treads&combo_strike&set_bonus.tier30_2pc&!buff.bonedust_brew.up&active_enemies<15&!talent.crane_vortex\nactions.heavy_aoe+=/blackout_kick,cycle_targets=1,if=talent.shadowboxing_treads&combo_strike&set_bonus.tier30_2pc&!buff.bonedust_brew.up&active_enemies<8\nactions.heavy_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&(cooldown.fists_of_fury.remains>3||chi>4)&spinning_crane_kick.max\nactions.heavy_aoe+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.heavy_aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.heavy_aoe+=/strike_of_the_windlord\nactions.heavy_aoe+=/blackout_kick,cycle_targets=1,if=talent.shadowboxing_treads&combo_strike&!spinning_crane_kick.max\nactions.heavy_aoe+=/chi_burst,if=chi.max-chi>=1&active_enemies=1&raid_event.adds.in>20||chi.max-chi>=2\n\n# 4 Targets\nactions.aoe+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up&spinning_crane_kick.max\nactions.aoe+=/strike_of_the_windlord,if=talent.thunderfist\nactions.aoe+=/fists_of_fury\nactions.aoe+=/rising_sun_kick,cycle_targets=1,if=buff.bonedust_brew.up&buff.pressure_point.up&set_bonus.tier30_2pc\nactions.aoe+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&spinning_crane_kick.max\nactions.aoe+=/rising_sun_kick,cycle_targets=1,if=!buff.bonedust_brew.up&buff.pressure_point.up&cooldown.fists_of_fury.remains>5\nactions.aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.aoe+=/rising_sun_kick,cycle_targets=1,if=set_bonus.tier30_2pc\nactions.aoe+=/spinning_crane_kick,if=combo_strike&cooldown.fists_of_fury.remains>3&buff.chi_energy.stack>10\nactions.aoe+=/blackout_kick,cycle_targets=1,if=combo_strike&set_bonus.tier30_2pc\nactions.aoe+=/spinning_crane_kick,if=combo_strike&(cooldown.fists_of_fury.remains>3||chi>4)&spinning_crane_kick.max\nactions.aoe+=/whirling_dragon_punch\nactions.aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.aoe+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.aoe+=/strike_of_the_windlord\nactions.aoe+=/spinning_crane_kick,if=combo_strike&(cooldown.fists_of_fury.remains>3||chi>4)\nactions.aoe+=/blackout_kick,cycle_targets=1,if=combo_strike\n\n# 3 Targets\nactions.cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.cleave+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.cleave+=/strike_of_the_windlord,if=talent.thunderfist\nactions.cleave+=/fists_of_fury\nactions.cleave+=/rising_sun_kick,cycle_targets=1,if=buff.bonedust_brew.up&buff.pressure_point.up&set_bonus.tier30_2pc\nactions.cleave+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike\nactions.cleave+=/rising_sun_kick,cycle_targets=1,if=!buff.bonedust_brew.up&buff.pressure_point.up\nactions.cleave+=/rising_sun_kick,cycle_targets=1,if=set_bonus.tier30_2pc\nactions.cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=2\nactions.cleave+=/strike_of_the_windlord\nactions.cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&(talent.shadowboxing_treads||cooldown.rising_sun_kick.remains>1)\nactions.cleave+=/whirling_dragon_punch\nactions.cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains<3&buff.chi_energy.stack>15\nactions.cleave+=/rising_sun_kick,cycle_targets=1,if=cooldown.fists_of_fury.remains>4&chi>3\nactions.cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&cooldown.rising_sun_kick.remains&cooldown.fists_of_fury.remains&chi>4&((talent.storm_earth_and_fire&!talent.bonedust_brew)||(talent.serenity))\nactions.cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains\nactions.cleave+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&talent.shadowboxing_treads&!spinning_crane_kick.max\nactions.cleave+=/spinning_crane_kick,cycle_targets=1,if=(combo_strike&chi>5&talent.storm_earth_and_fire||combo_strike&chi>4&talent.serenity)\n\n# 2 Targets\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.st_cleave+=/strike_of_the_windlord,if=talent.thunderfist\nactions.st_cleave+=/fists_of_fury\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=set_bonus.tier30_2pc\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=buff.kicks_of_flowing_momentum.up||buff.pressure_point.up\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=2\nactions.st_cleave+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.st_cleave+=/strike_of_the_windlord\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&(talent.shadowboxing_treads||cooldown.rising_sun_kick.remains>1)\nactions.st_cleave+=/whirling_dragon_punch\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=!talent.shadowboxing_treads&cooldown.fists_of_fury.remains>4&talent.xuens_battlegear\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.rising_sun_kick.remains&cooldown.fists_of_fury.remains&(!buff.bonedust_brew.up||spinning_crane_kick.modifier<1.5)\nactions.st_cleave+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.st_cleave+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&spinning_crane_kick.modifier>=2.7\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike\nactions.st_cleave+=/spinning_crane_kick,cycle_targets=1,if=(combo_strike&chi>5&talent.storm_earth_and_fire||combo_strike&chi>4&talent.serenity)\n\n# 1 Target\nactions.st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.st+=/strike_of_the_windlord,if=talent.thunderfist\nactions.st+=/rising_sun_kick,cycle_targets=1,if=buff.kicks_of_flowing_momentum.up||buff.pressure_point.up\nactions.st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=2\nactions.st+=/strike_of_the_windlord\nactions.st+=/rising_sun_kick,cycle_targets=1,if=cooldown.fists_of_fury.remains>4&talent.xuens_battlegear\nactions.st+=/fists_of_fury\nactions.st+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&cooldown.rising_sun_kick.remains>1\nactions.st+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&spinning_crane_kick.modifier>=2.7\nactions.st+=/rising_sun_kick,cycle_targets=1\nactions.st+=/whirling_dragon_punch\nactions.st+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.st+=/blackout_kick,cycle_targets=1,if=combo_strike\n\n# Bonedust Brew Setup\nactions.bdb_setup+=/strike_of_the_windlord,if=talent.thunderfist&active_enemies>3\nactions.bdb_setup+=/bonedust_brew,if=spinning_crane_kick.max&chi>=4\nactions.bdb_setup+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.max-chi>=2&buff.storm_earth_and_fire.up\nactions.bdb_setup+=/blackout_kick,cycle_targets=1,if=combo_strike&!talent.whirling_dragon_punch&!spinning_crane_kick.max\nactions.bdb_setup+=/rising_sun_kick,cycle_targets=1,if=combo_strike&chi>=5&talent.whirling_dragon_punch\nactions.bdb_setup+=/rising_sun_kick,cycle_targets=1,if=combo_strike&active_enemies>=2&talent.whirling_dragon_punch\n\n# Storm, Earth and Fire Cooldowns\nactions.cd_sef+=/call_action_list,name=sef_trinkets\nactions.cd_sef+=/summon_white_tiger_statue,if=pet.xuen_the_white_tiger.active\nactions.cd_sef+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&talent.bonedust_brew&cooldown.bonedust_brew.remains<=5&(active_enemies<3&chi>=3||active_enemies>=3&chi>=2)||fight_remains<25\nactions.cd_sef+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&!talent.bonedust_brew&(cooldown.rising_sun_kick.remains<2)&chi>=3\nactions.cd_sef+=/storm_earth_and_fire,if=talent.bonedust_brew&(fight_remains<30&cooldown.bonedust_brew.remains<4&chi>=4||buff.bonedust_brew.up||!spinning_crane_kick.max&active_enemies>=3&cooldown.bonedust_brew.remains<=2&chi>=2)&(pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>cooldown.storm_earth_and_fire.full_recharge_time)\nactions.cd_sef+=/bonedust_brew,if=(!buff.bonedust_brew.up&buff.storm_earth_and_fire.up&buff.storm_earth_and_fire.remains<11&spinning_crane_kick.max)||(!buff.bonedust_brew.up&fight_remains<30&fight_remains>10&spinning_crane_kick.max&chi>=4)||fight_remains<10||(!debuff.skyreach_exhaustion.up&active_enemies>=4&spinning_crane_kick.modifier>=2)||(pet.xuen_the_white_tiger.active&spinning_crane_kick.max&active_enemies>=4)\nactions.cd_sef+=/call_action_list,name=bdb_setup,if=!buff.bonedust_brew.up&talent.bonedust_brew&cooldown.bonedust_brew.remains<=2&(fight_remains>60&(cooldown.storm_earth_and_fire.charges>0||cooldown.storm_earth_and_fire.remains>10)&(pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>10||variable.hold_xuen)||((pet.xuen_the_white_tiger.active||cooldown.invoke_xuen_the_white_tiger.remains>13)&(cooldown.storm_earth_and_fire.charges>0||cooldown.storm_earth_and_fire.remains>13||buff.storm_earth_and_fire.up)))\nactions.cd_sef+=/storm_earth_and_fire,if=boss&fight_remains<20||(cooldown.storm_earth_and_fire.charges=2&cooldown.invoke_xuen_the_white_tiger.remains>cooldown.storm_earth_and_fire.full_recharge_time)&cooldown.fists_of_fury.remains<=9&chi>=2&cooldown.whirling_dragon_punch.remains<=12\n## actions.cd_sef+=/touch_of_death,cycle_targets=1,if=!boss&combo_strike&target.health60||debuff.bonedust_brew_debuff.up||fight_remains<10)\nactions.cd_sef+=/touch_of_death,cycle_targets=1,if=combo_strike\nactions.cd_sef+=/touch_of_karma,cycle_targets=1,if=fight_remains>90||pet.xuen_the_white_tiger.active||variable.hold_xuen||boss&fight_remains<16\nactions.cd_sef+=/touch_of_karma,if=fight_remains>159||variable.hold_xuen\nactions.cd_sef+=/blood_fury,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<20\nactions.cd_sef+=/berserking,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<15\nactions.cd_sef+=/lights_judgment\nactions.cd_sef+=/fireblood,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<10\nactions.cd_sef+=/ancestral_call,if=cooldown.invoke_xuen_the_white_tiger.remains>30||variable.hold_xuen||boss&fight_remains<20\nactions.cd_sef+=/bag_of_tricks,if=buff.storm_earth_and_fire.down\n\n# Serenity Cooldowns\nactions.cd_serenity+=/call_action_list,name=serenity_trinkets\nactions.cd_serenity+=/summon_white_tiger_statue,if=!cooldown.invoke_xuen_the_white_tiger.remains||active_enemies>4||cooldown.invoke_xuen_the_white_tiger.remains>50||boss&fight_remains<=30\nactions.cd_serenity+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&talent.bonedust_brew&cooldown.bonedust_brew.remains<=5||boss&fight_remains<25\nactions.cd_serenity+=/invoke_xuen_the_white_tiger,if=!variable.hold_xuen&!talent.bonedust_brew&(cooldown.rising_sun_kick.remains<2)||boss&fight_remains<25\nactions.cd_serenity+=/bonedust_brew,if=!buff.bonedust_brew.up&(cooldown.serenity.up||cooldown.serenity.remains>15||boss&fight_remains<30&fight_remains>10)||boss&fight_remains<10\nactions.cd_serenity+=/serenity,if=pet.xuen_the_white_tiger.active&target.time_to_die>15||!talent.invoke_xuen_the_white_tiger||boss&fight_remains<15\n## actions.cd_serenity+=/touch_of_death,cycle_targets=1,if=!boss&combo_strike&target.health60||debuff.bonedust_brew_debuff.up||fight_remains<10)\nactions.cd_serenity+=/touch_of_death,cycle_targets=1,if=combo_strike&!buff.serenity.up&(target.health.currenttarget.time_to_die)||target.time_to_die>60||debuff.bonedust_brew_debuff.up||boss&fight_remains<10)\nactions.cd_serenity+=/touch_of_karma,if=fight_remains>90||boss&fight_remains<10\nactions.cd_serenity+=/blood_fury,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/berserking,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/lights_judgment\nactions.cd_serenity+=/fireblood,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/ancestral_call,if=buff.serenity.up||boss&fight_remains<20\nactions.cd_serenity+=/bag_of_tricks,if=buff.serenity.up||boss&fight_remains<20\n\n# Fallthru\nactions.fallthru+=/crackling_jade_lightning,if=buff.the_emperors_capacitor.stack>19&energy.time_to_max>execute_time-1&cooldown.rising_sun_kick.remains>execute_time||buff.the_emperors_capacitor.stack>14&(cooldown.serenity.remains<5&talent.serenity||boss&fight_remains<5)\nactions.fallthru+=/faeline_stomp,if=combo_strike\nactions.fallthru+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.max-chi>=(2+buff.power_strikes.up)\nactions.fallthru+=/expel_harm,if=chi.max-chi>=1&active_enemies>2\nactions.fallthru+=/chi_burst,if=chi.max-chi>=1&active_enemies=1&raid_event.adds.in>20||chi.max-chi>=2&active_enemies>=2\nactions.fallthru+=/chi_wave\nactions.fallthru+=/expel_harm,if=chi.max-chi>=1\nactions.fallthru+=/blackout_kick,cycle_targets=1,if=combo_strike&active_enemies>=5\nactions.fallthru+=/spinning_crane_kick,if=combo_strike&buff.chi_energy.stack>30-5*active_enemies&buff.storm_earth_and_fire.down&(cooldown.rising_sun_kick.remains>2&cooldown.fists_of_fury.remains>2||cooldown.rising_sun_kick.remains<3&cooldown.fists_of_fury.remains>3&chi>3||cooldown.rising_sun_kick.remains>3&cooldown.fists_of_fury.remains<3&chi>4||chi.max-chi<=1&energy.time_to_max<2)||buff.chi_energy.stack>10&fight_remains<7\nactions.fallthru+=/arcane_torrent,if=chi.max-chi>=1\nactions.fallthru+=/flying_serpent_kick,interrupt=1\nactions.fallthru+=/tiger_palm\n\n# Opener\nactions.opener+=/summon_white_tiger_statue\nactions.opener+=/expel_harm,if=talent.chi_burst.enabled&chi.max-chi>=3\nactions.opener+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.max-chi>=(2+buff.power_strikes.up)\nactions.opener+=/expel_harm,if=talent.chi_burst.enabled&chi=3\nactions.opener+=/chi_wave,if=chi.max-chi=2\nactions.opener+=/expel_harm\nactions.opener+=/chi_burst,if=chi>1&chi.max-chi>=2\n\n# Serenity Priority\nactions.serenity+=/fists_of_fury,if=buff.serenity.remains<1\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike&!spinning_crane_kick.max&active_enemies>4&talent.shdaowboxing_treads\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike&buff.teachings_of_the_monastery.stack=3&buff.teachings_of_the_monastery.remains<1\nactions.serenity+=/rising_sun_kick,cycle_targets=1,if=active_enemies=4&buff.pressure_point.up&!talent.bonedust_brew\nactions.serenity+=/rising_sun_kick,cycle_targets=1,if=active_enemies=1\nactions.serenity+=/rising_sun_kick,cycle_targets=1,if=active_enemies<=3&buff.pressure_point.up\nactions.serenity+=/rising_sun_kick,cycle_targets=1,if=buff.pressure_point.up&set_bonus.tier30_2pc\nactions.serenity+=/fists_of_fury,if=buff.invokers_delight.up&active_enemies<3&talent.jade_ignition\nactions.serenity+=/fists_of_fury,if=buff.invokers_delight.up&active_enemies>4\nactions.serenity+=/fists_of_fury,if=buff.bloodlust.up\nactions.serenity+=/fists_of_fury,if=active_enemies=2,interrupt_if=buff.serenity.up&(buff.invokers_delight.up&(active_enemies<3&talent.jade_ignition||active_enemies>4)||buff.bloodlust.up||active_enemies=2)\nactions.serenity+=/strike_of_the_windlord,if=talent.thunderfist\nactions.serenity+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up&active_enemies>=2\nactions.serenity+=/rising_sun_kick,cycle_targets=1,if=active_enemies=4&buff.pressure_point.up\nactions.serenity+=/blackout_kick,cycle_targets=1,if=active_enemies=3&combo_strike&set_bonus.tier30_2pc\nactions.serenity+=/spinning_crane_kick,if=combo_strike&active_enemies>=3&spinning_crane_kick.max\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike&active_enemies>1&active_enemies<4&buff.teachings_of_the_monastery.stack=2\nactions.serenity+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up&active_enemies>=5\nactions.serenity+=/blackout_kick,cycle_targets=1,if=talent.shadowboxing_treads&active_enemies>=3&combo_strike\nactions.serenity+=/spinning_crane_kick,if=combo_strike&(active_enemies>3||active_enemies>2&spinning_crane_kick.modifier>=2.3)\nactions.serenity+=/strike_of_the_windlord,if=active_enemies>=3\nactions.serenity+=/rising_sun_kick,cycle_targets=1,if=active_enemies=2&cooldown.fists_of_fury.remains>5\nactions.serenity+=/blackout_kick,cycle_targets=1,if=active_enemies=2&cooldown.fists_of_fury.remains>5&talent.shadowboxing_treads&buff.teachings_of_the_monastery.stack=1&combo_strike\nactions.serenity+=/spinning_crane_kick,if=combo_strike&active_enemies>1\nactions.serenity+=/whirling_dragon_punch,if=active_enemies>1\nactions.serenity+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up&active_enemies>=3\nactions.serenity+=/rising_sun_kick,cycle_targets=1\nactions.serenity+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.serenity+=/blackout_kick,cycle_targets=1,if=combo_strike\nactions.serenity+=/whirling_dragon_punch\nactions.serenity+=/tiger_palm,cycle_targets=1,if=talent.teachings_of_the_monastery&buff.teachings_of_the_monastery.stack<3\n\n# ST Priority (<3 Targets)\nactions.st_cleave=blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3&talent.shadowboxing_treads\nactions.st_cleave+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up\nactions.st_cleave+=/strike_of_the_windlord,if=talent.thunderfist\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=active_enemies=1&buff.kicks_of_flowing_momentum.up||buff.pressure_point.up\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=2&talent.shadowboxing_treads\nactions.st_cleave+=/strike_of_the_windlord\nactions.st_cleave+=/fists_of_fury\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.up&(talent.shadowboxing_treads&active_enemies>1||cooldown.rising_sun_kick.remains>1)\nactions.st_cleave+=/whirling_dragon_punch,if=active_enemies=2\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=3\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1,if=(active_enemies=1||!talent.shadowboxing_treads)&cooldown.fists_of_fury.remains>4&talent.xuens_battlegear\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&active_enemies=2&cooldown.rising_sun_kick.remains&cooldown.fists_of_fury.remains&(!buff.bonedust_brew.up||spinning_crane_kick.modifier<1.5)\nactions.st_cleave+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up&active_enemies=2\nactions.st_cleave+=/spinning_crane_kick,if=buff.bonedust_brew.up&combo_strike&(active_enemies>1||spinning_crane_kick.modifier>=2.7)\nactions.st_cleave+=/rising_sun_kick,cycle_targets=1\nactions.st_cleave+=/whirling_dragon_punch\nactions.st_cleave+=/rushing_jade_wind,if=!buff.rushing_jade_wind.up\nactions.st_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike\n\n# SEF Trinkets\nactions.sef_trinkets+=/horn_of_valor,if=pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger&buff.storm_earth_and_fire.up||boss&fight_remains<30\nactions.sef_trinkets+=/manic_grieftorch,if=(boss||target.time_to_die>1+cast_time)&(trinket.1.is.manic_grieftorch&!trinket.2.has_use_buff||trinket.2.is.manic_grieftorch&!trinket.1.has_use_buff)\nactions.sef_trinkets+=/algethar_puzzle_box,if=(pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger)&!buff.storm_earth_and_fire.up||boss&fight_remains<25\nactions.sef_trinkets+=/use_item,slot=trinket1,if=trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.sef_trinkets+=/use_item,slot=trinket1,if=!trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.sef_trinkets+=/use_item,slot=trinket2,if=trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||cooldown<=60&buff.storm_earth_and_fire.remains>10||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.sef_trinkets+=/use_item,slot=trinket2,if=!trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\n\n# Serenity Trinkets\nactions.serenity_trinkets+=/horn_of_valor,if=pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger&buff.storm_earth_and_fire.up||boss&fight_remains<30\nactions.serenity_trinkets+=/manic_grieftorch,if=(boss||target.time_to_die>1+cast_time)&(trinket.1.is.manic_grieftorch&!trinket.2.has_use_buff||trinket.2.is.manic_grieftorch&!trinket.1.has_use_buff)\nactions.serenity_trinkets+=/algethar_puzzle_box,if=(pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger)&!buff.storm_earth_and_fire.up||boss&fight_remains<25\nactions.serenity_trinkets+=/use_item,slot=trinket1,if=trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&buff.serenity.remains>10||boss&fight_remains<30\nactions.serenity_trinkets+=/use_item,slot=trinket1,if=!trinket.1.has_use_buff&!(trinket.1.is.horn_of_valor||trinket.1.is.manic_grieftorch||trinket.1.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.serenity_trinkets+=/use_item,slot=trinket2,if=trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&buff.serenity.remains>10||boss&fight_remains<30\nactions.serenity_trinkets+=/use_item,slot=trinket2,if=!trinket.2.has_use_buff&!(trinket.2.is.horn_of_valor||trinket.2.is.manic_grieftorch||trinket.2.is.algethar_puzzle_box)&(cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger)||boss&fight_remains<30\nactions.serenity_trinkets+=/use_items,if=cooldown.invoke_xuen_the_white_tiger.remains>cooldown%%120||cooldown<=60&variable.hold_xuen||!talent.invoke_xuen_the_white_tiger", }, ["Shadow"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230504, ["author"] = "SimC", ["desc"] = "2023-05-04: Prevent holding_crash variable from blocking Void Eruption if Shadow Crash is not talented or is disabled.\n\n2023-05-03: Additional updates for 10.1.\n\n2023-05-02: Remove Light's Judgment.\n\n2023-04-29: Updates for 10.1.\n\n2023-03-30: Don't cycle_targets for Mind Sear.\n\n2023-03-29: Make 'holding_crash' variable true if you've disabled Shadow Crash.\n\n2023-03-13: Routine update from SimC.\n\n2023-03-05: When Shadow Crash is in-flight, act as though SWP and VT are already applied to your target.", ["lists"] = { ["filler"] = { { ["enabled"] = true, ["action"] = "vampiric_touch", ["cycle_targets"] = 1, ["description"] = "Cast Vampiric Touch to consume Unfurling Darkness, prefering the target with the lowest DoT duration active", ["criteria"] = "refreshable & buff.unfurling_darkness.up", }, -- [1] { ["enabled"] = true, ["criteria"] = "target.health.pct < 20 || buff.deathspeaker.up", ["action"] = "shadow_word_death", ["cycle_targets"] = 1, }, -- [2] { ["action"] = "mind_spike_insanity", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.mind_flay_insanity.up", ["action"] = "mind_flay", }, -- [4] { ["enabled"] = true, ["action"] = "halo", ["description"] = "Save up to 20s if adds are coming soon.", ["criteria"] = "raid_event.adds.in > 20", }, -- [5] { ["enabled"] = true, ["criteria"] = "talent.inescapable_torment.enabled & pet.fiend.active", ["action"] = "shadow_word_death", ["cycle_targets"] = 1, }, -- [6] { ["enabled"] = true, ["action"] = "divine_star", ["description"] = "Save up to 10s if adds are coming soon.", ["criteria"] = "raid_event.adds.in > 10", }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.voidform.up & variable.dots_up", ["action"] = "devouring_plague", }, -- [8] { ["action"] = "mind_spike", ["enabled"] = true, }, -- [9] { ["enabled"] = true, ["action"] = "mind_flay", ["interrupt_if"] = "ticks>=2", ["interrupt_immediate"] = "1", ["chain"] = "1", }, -- [10] { ["enabled"] = true, ["action"] = "shadow_crash", ["description"] = "Use Shadow Crash while moving as a low-priority action when adds will not come in 20 seconds.", ["criteria"] = "raid_event.adds.in > 20", }, -- [11] { ["enabled"] = true, ["action"] = "shadow_word_death", ["cycle_targets"] = 1, ["description"] = "Use Shadow Word: Death while moving as a low-priority action in execute", ["criteria"] = "target.health.pct < 20", }, -- [12] { ["enabled"] = true, ["description"] = "Use Divine Star while moving as a low-priority action", ["action"] = "divine_star", }, -- [13] { ["enabled"] = true, ["description"] = "Use Shadow Word: Death while moving as a low-priority action", ["action"] = "shadow_word_death", }, -- [14] { ["enabled"] = true, ["description"] = "Use Shadow Word: Pain while moving as a low-priority action", ["action"] = "shadow_word_pain", ["cycle_targets"] = 1, }, -- [15] }, ["main_variables"] = { { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( dot.shadow_word_pain.ticking & dot.vampiric_touch.ticking ) || action.shadow_crash.in_flight & talent.whispering_shadows.enabled", ["var_name"] = "dots_up", }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "target.time_to_die < 8 || ( dot.shadow_word_pain.ticking & dot.vampiric_touch.ticking || action.shadow_crash.in_flight ) & dot.devouring_plague.ticking", ["var_name"] = "all_dots_up", }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( cooldown.void_eruption.remains <= gcd.max * 3 & talent.void_eruption.enabled || cooldown.dark_ascension.up & talent.dark_ascension.enabled ) || talent.void_torrent.enabled & talent.psychic_link.enabled & cooldown.void_torrent.remains <= 4 & ( ! raid_event.adds.exists & spell_targets.vampiric_touch > 1 || raid_event.adds.in <= 5 || raid_event.adds.remains >= 6 & ! variable.holding_crash ) & ! buff.voidform.up", ["var_name"] = "pool_for_cds", }, -- [3] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "dot.vampiric_touch.ticking", ["var_name"] = "vts_applied", ["description"] = "Set vts_applied for single-target to support Mindbender entry in cds action list.", }, -- [4] }, ["aoe_variables"] = { { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "spell_targets.vampiric_touch >? 12", ["var_name"] = "max_vts", ["default"] = "12", }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "false", ["var_name"] = "is_vt_possible", ["default"] = "true", }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "true", ["var_name"] = "is_vt_possible", ["criteria"] = "dot.vampiric_touch.refreshable || active_dot.vampiric_touch < cycle_enemies & fight_remains > 8", }, -- [3] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( active_dot.vampiric_touch + 8 * action.shadow_crash.in_flight & talent.whispering_shadows.enabled ) >= variable.max_vts || ! variable.is_vt_possible", ["var_name"] = "vts_applied", ["description"] = "TODO: Revamp to fix undesired behaviour with unstacked fights", }, -- [4] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( variable.max_vts - active_dot.vampiric_touch ) < 4 || raid_event.adds.in < 10 & raid_event.adds.count > ( variable.max_vts - active_dot.vampiric_touch )", ["var_name"] = "holding_crash", ["criteria"] = "variable.holding_crash & talent.whispering_shadows.enabled", }, -- [5] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( active_dot.vampiric_touch + 8 * ! variable.holding_crash ) >= variable.max_vts || ! variable.is_vt_possible", ["var_name"] = "manual_vts_applied", }, -- [6] }, ["trinkets"] = { { ["enabled"] = true, ["action"] = "voidmenders_shadowgem", ["criteria"] = "buff.power_infusion.up || boss & fight_remains < 20", ["name"] = "voidmenders_shadowgem", }, -- [1] { ["enabled"] = true, ["name"] = "darkmoon_deck_box_inferno", ["action"] = "darkmoon_deck_box_inferno", }, -- [2] { ["enabled"] = true, ["name"] = "darkmoon_deck_box_rime", ["action"] = "darkmoon_deck_box_rime", }, -- [3] { ["enabled"] = true, ["name"] = "darkmoon_deck_box_dance", ["action"] = "darkmoon_deck_box_dance", }, -- [4] { ["enabled"] = true, ["name"] = "erupting_spear_fragment", ["action"] = "erupting_spear_fragment", ["criteria"] = "buff.power_infusion.up || raid_event.adds.up || boss & fight_remains < 20", ["description"] = "Use Erupting Spear Fragment with cooldowns, adds are currently active, or the fight will end in less than 20 seconds", }, -- [5] { ["enabled"] = true, ["name"] = "beacon_to_the_beyond", ["action"] = "beacon_to_the_beyond", ["criteria"] = "! raid_event.adds.exists || raid_event.adds.up || spell_targets.beacon_to_the_beyond >= 5 || boss & fight_remains < 20", ["description"] = "Use Beacon to the Beyond on cooldown except to hold for incoming adds or if already facing 5 or more targets", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.voidform.up || buff.power_infusion.up || buff.dark_ascension.up || ( cooldown.void_eruption.remains > 10 & trinket.cooldown.duration <= 60 ) || boss & fight_remains < 20", ["action"] = "use_items", }, -- [7] { ["enabled"] = true, ["name"] = "desperate_invokers_codex", ["action"] = "desperate_invokers_codex", }, -- [8] }, ["main"] = { { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "main_variables", }, -- [1] { ["enabled"] = true, ["action"] = "call_action_list", ["criteria"] = "fight_remains < 30 || time_to_die > 15 & ( ! variable.holding_crash || active_enemies > 2 )", ["list_name"] = "cds", }, -- [2] { ["enabled"] = true, ["action"] = "mindbender", ["description"] = "Use Shadowfiend and Mindbender on cooldown as long as Vampiric Touch and Shadow Word: Pain are active", ["criteria"] = "variable.dots_up & ( fight_remains < 30 || time_to_die > 15 )", }, -- [3] { ["enabled"] = true, ["action"] = "mind_blast", ["cycle_targets"] = 1, ["description"] = "High priority Mind Blast action when using Inescapable Torment", ["criteria"] = "( dot.devouring_plague.ticking & ( cooldown.mind_blast.full_recharge_time <= gcd.max + cast_time ) || pet.fiend.remains <= cast_time + gcd.max ) & pet.fiend.active & talent.inescapable_torment.enabled & pet.fiend.remains > cast_time & active_enemies <= 7", }, -- [4] { ["enabled"] = true, ["criteria"] = "variable.dots_up", ["action"] = "void_bolt", }, -- [5] { ["enabled"] = true, ["action"] = "devouring_plague", ["cycle_targets"] = 1, ["description"] = "Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 20 or to get out an extra Void Bolt by extending Voidform. With Distorted Reality can maintain more than one at a time in multi-target.", ["criteria"] = "refreshable & ! variable.pool_for_cds || insanity.deficit <= 20 || buff.voidform.up & cooldown.void_bolt.remains > buff.voidform.remains & cooldown.void_bolt.remains < ( buff.voidform.remains + 2 )", }, -- [6] { ["enabled"] = true, ["action"] = "shadow_crash", ["description"] = "Use Shadow Crash as long as you are not holding for adds and Vampiric Touch is within pandemic range", ["criteria"] = "! variable.holding_crash & dot.vampiric_touch.refreshable", }, -- [7] { ["enabled"] = true, ["action"] = "vampiric_touch", ["cycle_targets"] = 1, ["description"] = "Put out Vampiric Touch on enemies that will live at least 12s and Shadow Crash is not available soon", ["criteria"] = "refreshable & target.time_to_die >= 12 & ( cooldown.shadow_crash.remains >= dot.vampiric_touch.remains & ! action.shadow_crash.in_flight || variable.holding_crash || ! talent.whispering_shadows.enabled )", }, -- [8] { ["enabled"] = true, ["action"] = "mind_spike_insanity", ["description"] = "High Priority Mind Spike: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available", ["criteria"] = "variable.dots_up & cooldown.mind_blast.full_recharge_time >= gcd.max * 3 & talent.idol_of_cthun.enabled & ( ! cooldown.void_torrent.up || ! talent.void_torrent.enabled )", }, -- [9] { ["enabled"] = true, ["action"] = "mind_flay", ["description"] = "High Priority Mind Flay: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available", ["criteria"] = "buff.mind_flay_insanity.up & variable.dots_up & cooldown.mind_blast.full_recharge_time >= gcd.max * 3 & talent.idol_of_cthun.enabled & ( ! cooldown.void_torrent.up || ! talent.void_torrent.enabled )", }, -- [10] { ["enabled"] = true, ["action"] = "mind_blast", ["description"] = "Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption", ["criteria"] = "variable.dots_up & ( ! buff.mind_devourer.up || cooldown.void_eruption.up & talent.void_eruption.enabled )", }, -- [11] { ["enabled"] = true, ["action"] = "void_torrent", ["cycle_targets"] = 1, ["description"] = "Void Torrent if you are not holding Shadow Crash for an add pack coming, prefer the target with the most DoTs active. Only cast if Devouring Plague is on that target and will last at least 2 seconds", ["criteria"] = "! variable.holding_crash & variable.all_dots_up & dot.devouring_plague.remains >= 2", }, -- [12] { ["enabled"] = true, ["action"] = "mindgames", ["cycle_targets"] = 1, ["description"] = "Cast Mindgames if all DoTs will be active by the time the cast finishes", ["criteria"] = "variable.all_dots_up & dot.devouring_plague.remains >= cast_time", }, -- [13] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "filler", }, -- [14] }, ["precombat"] = { { ["enabled"] = true, ["criteria"] = "! buff.shadowform.up", ["action"] = "shadowform", }, -- [1] { ["action"] = "arcane_torrent", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "2", ["var_name"] = "mind_sear_cutoff", }, -- [3] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "60", ["var_name"] = "pool_amount", }, -- [4] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in >= 25 & spell_targets.shadow_crash <= 8 & boss & ( spell_targets.shadow_crash > 1 || talent.mental_decay.enabled )", ["action"] = "shadow_crash", }, -- [5] { ["enabled"] = true, ["criteria"] = "refreshable & ( ! talent.shadow_crash.enabled || spell_targets.shadow_crash > 8 || spell_targets.shadow_crash = 1 & ! talent.mental_decay.enabled || ! boss )", ["action"] = "vampiric_touch", }, -- [6] }, ["aoe"] = { { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "aoe_variables", }, -- [1] { ["enabled"] = true, ["action"] = "vampiric_touch", ["cycle_targets"] = 1, ["description"] = "High Priority action to put out Vampiric Touch on enemies that will live at least 18 seconds, up to 12 targets manually while prepping AoE", ["criteria"] = "refreshable & target.time_to_die >= 18 & ( dot.vampiric_touch.ticking || ! variable.vts_applied ) & ( variable.max_vts > 0 & ! variable.manual_vts_applied & ! action.shadow_crash.in_flight || ! talent.whispering_shadows.enabled )", }, -- [2] { ["enabled"] = true, ["action"] = "shadow_crash", ["cycle_targets"] = 1, ["description"] = "Use Shadow Crash to apply Vampiric Touch to as many adds as possible while being efficient with Vampiric Touch refresh windows", ["criteria"] = "! variable.holding_crash & ( dot.vampiric_touch.refreshable || dot.vampiric_touch.remains <= target.time_to_die & ! buff.voidform.up & ( raid_event.adds.in - dot.vampiric_touch.remains ) < 15 )", }, -- [3] { ["enabled"] = true, ["action"] = "call_action_list", ["criteria"] = "fight_remains < 30 || time_to_die > 15 & ( ! variable.holding_crash || active_enemies > 2 )", ["list_name"] = "cds", }, -- [4] { ["enabled"] = true, ["action"] = "mindbender", ["description"] = "Use Shadowfiend or Mindbender on cooldown if DoTs are active", ["criteria"] = "( dot.shadow_word_pain.ticking & variable.vts_applied || action.shadow_crash.in_flight & talent.whispering_shadows.enabled ) & ( fight_remains < 30 || time_to_die > 15 )", }, -- [5] { ["enabled"] = true, ["action"] = "mind_blast", ["description"] = "Use Mind Blast when capped on charges and talented into Mind Devourer to fish for the buff or if Inescapable Torment is talented with Mindbender active. Only use when facing 3-7 targets.", ["criteria"] = "( cooldown.mind_blast.full_recharge_time <= gcd.max + cast_time || pet.fiend.remains <= cast_time + gcd.max ) & pet.fiend.active & talent.inescapable_torment.enabled & pet.fiend.remains > cast_time & active_enemies <= 7 & ! buff.mind_devourer.up", }, -- [6] { ["action"] = "void_bolt", ["enabled"] = true, }, -- [7] { ["enabled"] = true, ["action"] = "devouring_plague", ["cycle_targets"] = 1, ["description"] = "Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 20 or to get out an extra Void Bolt by extending Voidform. With Distorted Reality can maintain more than one at a time in multi-target.", ["criteria"] = "refreshable & ! variable.pool_for_cds || insanity.deficit <= 20 || buff.voidform.up & cooldown.void_bolt.remains > buff.voidform.remains & cooldown.void_bolt.remains < ( buff.voidform.remains + 2 )", }, -- [8] { ["enabled"] = true, ["criteria"] = "refreshable & target.time_to_die >= 18 & ( dot.vampiric_touch.ticking || ! variable.vts_applied ) & ( variable.max_vts > 0 & ( cooldown.shadow_crash.remains >= dot.vampiric_touch.remains || variable.holding_crash ) & ! action.shadow_crash.in_flight || ! talent.whispering_shadows.enabled )", ["action"] = "vampiric_touch", ["cycle_targets"] = 1, }, -- [9] { ["enabled"] = true, ["action"] = "mind_spike_insanity", ["description"] = "High Priority Mind Spike: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available and Mindbender is not active", ["criteria"] = "variable.dots_up & cooldown.mind_blast.full_recharge_time >= gcd.max * 3 & talent.idol_of_cthun.enabled & ( ! cooldown.void_torrent.up || ! talent.void_torrent.enabled )", }, -- [10] { ["enabled"] = true, ["action"] = "mind_flay", ["description"] = "High Priority Mind Flay: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available and Mindbender is not active", ["criteria"] = "buff.mind_flay_insanity.up & variable.dots_up & cooldown.mind_blast.full_recharge_time >= gcd.max * 3 & talent.idol_of_cthun.enabled & ( ! cooldown.void_torrent.up || ! talent.void_torrent.enabled )", }, -- [11] { ["enabled"] = true, ["action"] = "mind_blast", ["description"] = "# Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption", ["criteria"] = "variable.vts_applied & ( ! buff.mind_devourer.up || cooldown.void_eruption.up & talent.void_eruption.enabled )", }, -- [12] { ["enabled"] = true, ["action"] = "call_action_list", ["description"] = "Void Torrent action list for AoE", ["criteria"] = "talent.void_torrent.enabled & talent.psychic_link.enabled & cooldown.void_torrent.remains <= 3 & ( ! variable.holding_crash || raid_event.adds.count / ( active_dot.vampiric_touch + raid_event.adds.count ) < 1.5 ) & ( ( insanity >= 50 || dot.devouring_plague.ticking || buff.dark_reveries.up ) || buff.voidform.up || buff.dark_ascension.up )", ["list_name"] = "pl_torrent", }, -- [13] { ["enabled"] = true, ["criteria"] = "active_enemies < 5 & dot.devouring_plague.ticking || talent.psychic_link.enabled", ["action"] = "mindgames", }, -- [14] { ["enabled"] = true, ["criteria"] = "! talent.psychic_link.enabled & variable.dots_up", ["action"] = "void_torrent", ["cycle_targets"] = 1, }, -- [15] { ["enabled"] = true, ["action"] = "mind_flay", ["interrupt_if"] = "ticks>=2", ["interrupt_immediate"] = "1", ["description"] = "High priority action for Mind Flay: Insanity to fish for Idol of C'Thun procs, cancel as soon as something else is more important and most of the channel has completed", ["criteria"] = "buff.mind_flay_insanity.up & talent.idol_of_cthun.enabled", }, -- [16] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "filler", }, -- [17] }, ["cds"] = { { ["enabled"] = true, ["action"] = "potion", ["description"] = "TODO: Check VE/DA enter conditions based on dots", ["criteria"] = "buff.voidform.up || buff.power_infusion.up || buff.dark_ascension.up & ( fight_remains <= cooldown.power_infusion.remains + 15 ) || boss & fight_remains <= 30", }, -- [1] { ["enabled"] = true, ["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 8", ["action"] = "fireblood", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 12", ["action"] = "berserking", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 15", ["action"] = "blood_fury", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 15", ["action"] = "ancestral_call", }, -- [5] { ["enabled"] = true, ["action"] = "power_infusion", ["description"] = "Sync Power Infusion with Voidform or Dark Ascension", ["criteria"] = "( buff.voidform.up || buff.dark_ascension.up )", }, -- [6] { ["enabled"] = true, ["action"] = "void_eruption", ["description"] = "Make sure Mindbender is active before popping Void Eruption and dump charges of Mind Blast before casting", ["criteria"] = "! cooldown.fiend.up & ( pet.fiend.active & cooldown.fiend.remains >= 4 || ! talent.mindbender.enabled || active_enemies > 2 & ! talent.inescapable_torment.rank ) & ( cooldown.mind_blast.charges = 0 || time > 15 )", }, -- [7] { ["enabled"] = true, ["action"] = "dark_ascension", ["description"] = "Make sure Mindbender is active before popping Dark Ascension unless you have insignificant talent points or too many targets", ["criteria"] = "pet.fiend.active & cooldown.fiend.remains >= 4 || ! talent.mindbender.enabled & ! cooldown.fiend.up || active_enemies > 2 & ! talent.inescapable_torment.enabled", }, -- [8] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "trinkets", }, -- [9] { ["enabled"] = true, ["criteria"] = "( dot.shadow_word_pain.ticking & variable.vts_applied || action.shadow_crash.in_flight )", ["action"] = "mindbender", }, -- [10] { ["enabled"] = true, ["action"] = "desperate_prayer", ["description"] = "Use Desperate Prayer to heal up should Shadow Word: Death or other damage bring you below 75%", ["criteria"] = "health.pct <= 75", }, -- [11] }, ["default"] = { { ["action"] = "silence", ["enabled"] = true, }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "talent.shadow_crash.enabled & ! action.shadow_crash.disabled & raid_event.adds.in < 15", ["var_name"] = "holding_crash", }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "( cooldown.void_eruption.remains <= gcd.max * 3 & talent.void_eruption.enabled || cooldown.dark_ascension.up & talent.dark_ascension.enabled ) || talent.void_torrent.enabled & talent.psychic_link.enabled & cooldown.void_torrent.remains <= 4 & ( ! raid_event.adds.exists & spell_targets.vampiric_touch > 1 || raid_event.adds.in <= 5 || raid_event.adds.remains >= 6 & ! variable.holding_crash ) & ! buff.voidform.up", ["var_name"] = "pool_for_cds", }, -- [3] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "active_enemies > 2 || spell_targets.vampiric_touch > 3", ["list_name"] = "aoe", }, -- [4] { ["enabled"] = true, ["action"] = "run_action_list", ["list_name"] = "main", }, -- [5] }, ["pl_torrent"] = { { ["action"] = "void_bolt", ["enabled"] = true, }, -- [1] { ["enabled"] = true, ["criteria"] = "remains <= 6 & cooldown.void_torrent.remains < gcd.max * 2", ["action"] = "vampiric_touch", }, -- [2] { ["enabled"] = true, ["action"] = "devouring_plague", ["description"] = "Use Devouring Plague before Void Torrent cast", ["criteria"] = "remains <= 4 & cooldown.void_torrent.remains < gcd.max * 2", }, -- [3] { ["enabled"] = true, ["criteria"] = "! talent.mindgames.enabled || cooldown.mindgames.remains >= 3 & ! prev_gcd.1.mind_blast", ["action"] = "mind_blast", }, -- [4] { ["enabled"] = true, ["criteria"] = "dot.vampiric_touch.ticking & dot.shadow_word_pain.ticking || buff.voidform.up", ["action"] = "void_torrent", }, -- [5] { ["enabled"] = true, ["criteria"] = "dot.vampiric_touch.ticking & dot.shadow_word_pain.ticking & dot.devouring_plague.ticking || buff.voidform.up", ["action"] = "mindgames", }, -- [6] }, }, ["version"] = 20230504, ["warnings"] = "The import for 'filler' required some automated changes.\nLine 6: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\n\nThe import for 'main_variables' required some automated changes.\nLine 1: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 3: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 3: Converted 'talent.dark_ascension' to 'talent.dark_ascension.enabled' (1x).\nLine 3: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 3: Converted 'talent.psychic_link' to 'talent.psychic_link.enabled' (1x).\n\nThe import for 'aoe_variables' required some automated changes.\nLine 4: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 5: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\n\nThe import for 'main' required some automated changes.\nLine 4: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 8: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 9: Converted 'talent.idol_of_cthun' to 'talent.idol_of_cthun.enabled' (1x).\nLine 9: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 10: Converted 'talent.idol_of_cthun' to 'talent.idol_of_cthun.enabled' (1x).\nLine 10: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 11: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 5: Converted 'talent.mental_decay' to 'talent.mental_decay.enabled' (1x).\nLine 6: Converted 'talent.mental_decay' to 'talent.mental_decay.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 5: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 6: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 9: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 10: Converted 'talent.idol_of_cthun' to 'talent.idol_of_cthun.enabled' (1x).\nLine 10: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 11: Converted 'talent.idol_of_cthun' to 'talent.idol_of_cthun.enabled' (1x).\nLine 11: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 12: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 13: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 13: Converted 'talent.psychic_link' to 'talent.psychic_link.enabled' (1x).\nLine 13: Converted operations in 'talent.void_torrent.enabled&talent.psychic_link.enabled&cooldown.void_torrent.remains<=3&(!variable.holding_crash||raid_event.adds.count%(active_dot.vampiric_touch+raid_event.adds.count)<1.5)&((insanity>=50||dot.devouring_plague.ticking||buff.dark_reveries.up)||buff.voidform.up||buff.dark_ascension.up)' to 'talent.void_torrent.enabled&talent.psychic_link.enabled&cooldown.void_torrent.remains<=3&(!variable.holding_crash||raid_event.adds.count/(active_dot.vampiric_touch+raid_event.adds.count)<1.5)&((insanity>=50||dot.devouring_plague.ticking||buff.dark_reveries.up)||buff.voidform.up||buff.dark_ascension.up)'.\nLine 14: Converted 'talent.psychic_link' to 'talent.psychic_link.enabled' (1x).\nLine 15: Converted 'talent.psychic_link' to 'talent.psychic_link.enabled' (1x).\nLine 16: Converted 'talent.idol_of_cthun' to 'talent.idol_of_cthun.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 7: Converted 'talent.mindbender' to 'talent.mindbender.enabled' (1x).\nLine 8: Converted 'talent.mindbender' to 'talent.mindbender.enabled' (1x).\nLine 8: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.shadow_crash' to 'talent.shadow_crash.enabled' (1x).\nLine 3: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 3: Converted 'talent.dark_ascension' to 'talent.dark_ascension.enabled' (1x).\nLine 3: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 3: Converted 'talent.psychic_link' to 'talent.psychic_link.enabled' (1x).\n\nThe import for 'pl_torrent' required some automated changes.\nLine 4: Converted 'talent.mindgames' to 'talent.mindgames.enabled' (1x).\n\nImported 10 action lists.\n", ["profile"] = "actions.precombat+=/shadowform,if=!buff.shadowform.up\nactions.precombat+=/arcane_torrent\nactions.precombat+=/variable,name=mind_sear_cutoff,op=set,value=2\nactions.precombat+=/variable,name=pool_amount,op=set,value=60\nactions.precombat+=/shadow_crash,if=raid_event.adds.in>=25&spell_targets.shadow_crash<=8&boss&(spell_targets.shadow_crash>1||talent.mental_decay)\nactions.precombat+=/vampiric_touch,if=refreshable&(!talent.shadow_crash.enabled||spell_targets.shadow_crash>8||spell_targets.shadow_crash=1&!talent.mental_decay||!boss)\n\nactions+=/silence\nactions+=/variable,name=holding_crash,op=set,value=talent.shadow_crash&!action.shadow_crash.disabled&raid_event.adds.in<15\nactions+=/variable,name=pool_for_cds,op=set,value=(cooldown.void_eruption.remains<=gcd.max*3&talent.void_eruption||cooldown.dark_ascension.up&talent.dark_ascension)||talent.void_torrent&talent.psychic_link&cooldown.void_torrent.remains<=4&(!raid_event.adds.exists&spell_targets.vampiric_touch>1||raid_event.adds.in<=5||raid_event.adds.remains>=6&!variable.holding_crash)&!buff.voidform.up\nactions+=/run_action_list,name=aoe,strict=1,if=active_enemies>2||spell_targets.vampiric_touch>3\nactions+=/run_action_list,name=main\n\nactions.aoe+=/call_action_list,name=aoe_variables\n# High Priority action to put out Vampiric Touch on enemies that will live at least 18 seconds, up to 12 targets manually while prepping AoE\nactions.aoe+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>=18&(dot.vampiric_touch.ticking||!variable.vts_applied)&(variable.max_vts>0&!variable.manual_vts_applied&!action.shadow_crash.in_flight||!talent.whispering_shadows)\n# Use Shadow Crash to apply Vampiric Touch to as many adds as possible while being efficient with Vampiric Touch refresh windows\nactions.aoe+=/shadow_crash,cycle_targets=1,if=!variable.holding_crash&(dot.vampiric_touch.refreshable||dot.vampiric_touch.remains<=target.time_to_die&!buff.voidform.up&(raid_event.adds.in-dot.vampiric_touch.remains)<15)\nactions.aoe+=/call_action_list,name=cds,if=fight_remains<30||time_to_die>15&(!variable.holding_crash||active_enemies>2)\n# Use Shadowfiend or Mindbender on cooldown if DoTs are active\nactions.aoe+=/mindbender,if=(dot.shadow_word_pain.ticking&variable.vts_applied||action.shadow_crash.in_flight&talent.whispering_shadows)&(fight_remains<30||time_to_die>15)\n# Use Mind Blast when capped on charges and talented into Mind Devourer to fish for the buff or if Inescapable Torment is talented with Mindbender active. Only use when facing 3-7 targets.\nactions.aoe+=/mind_blast,if=(cooldown.mind_blast.full_recharge_time<=gcd.max+cast_time||pet.fiend.remains<=cast_time+gcd.max)&pet.fiend.active&talent.inescapable_torment&pet.fiend.remains>cast_time&active_enemies<=7&!buff.mind_devourer.up\nactions.aoe+=/void_bolt\n# Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 20 or to get out an extra Void Bolt by extending Voidform. With Distorted Reality can maintain more than one at a time in multi-target.\nactions.aoe+=/devouring_plague,cycle_targets=1,if=refreshable&!variable.pool_for_cds||insanity.deficit<=20||buff.voidform.up&cooldown.void_bolt.remains>buff.voidform.remains&cooldown.void_bolt.remains<(buff.voidform.remains+2)\nactions.aoe+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>=18&(dot.vampiric_touch.ticking||!variable.vts_applied)&(variable.max_vts>0&(cooldown.shadow_crash.remains>=dot.vampiric_touch.remains||variable.holding_crash)&!action.shadow_crash.in_flight||!talent.whispering_shadows)\n# High Priority Mind Spike: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available and Mindbender is not active\nactions.aoe+=/mind_spike_insanity,if=variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up||!talent.void_torrent)\n# High Priority Mind Flay: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available and Mindbender is not active\nactions.aoe+=/mind_flay,if=buff.mind_flay_insanity.up&variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up||!talent.void_torrent)\n# # Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption\nactions.aoe+=/mind_blast,if=variable.vts_applied&(!buff.mind_devourer.up||cooldown.void_eruption.up&talent.void_eruption)\n# Void Torrent action list for AoE\nactions.aoe+=/call_action_list,name=pl_torrent,if=talent.void_torrent&talent.psychic_link&cooldown.void_torrent.remains<=3&(!variable.holding_crash||raid_event.adds.count%(active_dot.vampiric_touch+raid_event.adds.count)<1.5)&((insanity>=50||dot.devouring_plague.ticking||buff.dark_reveries.up)||buff.voidform.up||buff.dark_ascension.up)\nactions.aoe+=/mindgames,if=active_enemies<5&dot.devouring_plague.ticking||talent.psychic_link\nactions.aoe+=/void_torrent,cycle_targets=1,if=!talent.psychic_link&variable.dots_up\n# High priority action for Mind Flay: Insanity to fish for Idol of C'Thun procs, cancel as soon as something else is more important and most of the channel has completed\nactions.aoe+=/mind_flay,if=buff.mind_flay_insanity.up&talent.idol_of_cthun,interrupt_if=ticks>=2,interrupt_immediate=1\nactions.aoe+=/call_action_list,name=filler\n\nactions.aoe_variables+=/variable,name=max_vts,op=set,default=12,value=spell_targets.vampiric_touch>?12\nactions.aoe_variables+=/variable,name=is_vt_possible,op=set,value=false,default=true\nactions.aoe_variables+=/variable,name=is_vt_possible,op=set,value=true,condition=dot.vampiric_touch.refreshable||active_dot.vampiric_touch8\n## actions.aoe_variables+=/variable,name=is_vt_possible,op=set,value=1,target_if=max(target.time_to_die*dot.vampiric_touch.refreshable),if=target.time_to_die>=18\n# TODO: Revamp to fix undesired behaviour with unstacked fights\nactions.aoe_variables+=/variable,name=vts_applied,op=set,value=(active_dot.vampiric_touch+8*action.shadow_crash.in_flight&talent.whispering_shadows)>=variable.max_vts||!variable.is_vt_possible\nactions.aoe_variables+=/variable,name=holding_crash,op=set,value=(variable.max_vts-active_dot.vampiric_touch)<4||raid_event.adds.in<10&raid_event.adds.count>(variable.max_vts-active_dot.vampiric_touch),if=variable.holding_crash&talent.whispering_shadows\nactions.aoe_variables+=/variable,name=manual_vts_applied,op=set,value=(active_dot.vampiric_touch+8*!variable.holding_crash)>=variable.max_vts||!variable.is_vt_possible\n\n# TODO: Check VE/DA enter conditions based on dots\nactions.cds+=/potion,if=buff.voidform.up||buff.power_infusion.up||buff.dark_ascension.up&(fight_remains<=cooldown.power_infusion.remains+15)||boss&fight_remains<=30\nactions.cds+=/fireblood,if=buff.power_infusion.up||boss&fight_remains<=8\nactions.cds+=/berserking,if=buff.power_infusion.up||boss&fight_remains<=12\nactions.cds+=/blood_fury,if=buff.power_infusion.up||boss&fight_remains<=15\nactions.cds+=/ancestral_call,if=buff.power_infusion.up||boss&fight_remains<=15\n# Sync Power Infusion with Voidform or Dark Ascension\nactions.cds+=/power_infusion,if=(buff.voidform.up||buff.dark_ascension.up)\n# Make sure Mindbender is active before popping Void Eruption and dump charges of Mind Blast before casting\nactions.cds+=/void_eruption,if=!cooldown.fiend.up&(pet.fiend.active&cooldown.fiend.remains>=4||!talent.mindbender||active_enemies>2&!talent.inescapable_torment.rank)&(cooldown.mind_blast.charges=0||time>15)\n# Make sure Mindbender is active before popping Dark Ascension unless you have insignificant talent points or too many targets\nactions.cds+=/dark_ascension,if=pet.fiend.active&cooldown.fiend.remains>=4||!talent.mindbender&!cooldown.fiend.up||active_enemies>2&!talent.inescapable_torment\nactions.cds+=/call_action_list,name=trinkets\nactions.cds+=/mindbender,if=(dot.shadow_word_pain.ticking&variable.vts_applied||action.shadow_crash.in_flight)\n# Use Desperate Prayer to heal up should Shadow Word: Death or other damage bring you below 75%\nactions.cds+=/desperate_prayer,if=health.pct<=75\n\n# Cast Vampiric Touch to consume Unfurling Darkness, prefering the target with the lowest DoT duration active\nactions.filler+=/vampiric_touch,cycle_targets=1,if=refreshable&buff.unfurling_darkness.up\nactions.filler+=/shadow_word_death,cycle_targets=1,if=target.health.pct<20||buff.deathspeaker.up\nactions.filler+=/mind_spike_insanity\nactions.filler+=/mind_flay,if=buff.mind_flay_insanity.up\n# Save up to 20s if adds are coming soon.\nactions.filler+=/halo,if=raid_event.adds.in>20\nactions.filler+=/shadow_word_death,cycle_targets=1,if=talent.inescapable_torment&pet.fiend.active\n# Save up to 10s if adds are coming soon.\nactions.filler+=/divine_star,if=raid_event.adds.in>10\nactions.filler+=/devouring_plague,if=buff.voidform.up&variable.dots_up\nactions.filler+=/mind_spike\nactions.filler+=/mind_flay,chain=1,interrupt_immediate=1,interrupt_if=ticks>=2\n# Use Shadow Crash while moving as a low-priority action when adds will not come in 20 seconds.\nactions.filler+=/shadow_crash,if=raid_event.adds.in>20\n# Use Shadow Word: Death while moving as a low-priority action in execute\nactions.filler+=/shadow_word_death,cycle_targets=1,if=target.health.pct<20\n# Use Divine Star while moving as a low-priority action\nactions.filler+=/divine_star\n# Use Shadow Word: Death while moving as a low-priority action\nactions.filler+=/shadow_word_death\n# Use Shadow Word: Pain while moving as a low-priority action\nactions.filler+=/shadow_word_pain,cycle_targets=1\n\nactions.main+=/call_action_list,name=main_variables\nactions.main+=/call_action_list,name=cds,if=fight_remains<30||time_to_die>15&(!variable.holding_crash||active_enemies>2)\n# Use Shadowfiend and Mindbender on cooldown as long as Vampiric Touch and Shadow Word: Pain are active\nactions.main+=/mindbender,if=variable.dots_up&(fight_remains<30||time_to_die>15)\n# High priority Mind Blast action when using Inescapable Torment\nactions.main+=/mind_blast,cycle_targets=1,if=(dot.devouring_plague.ticking&(cooldown.mind_blast.full_recharge_time<=gcd.max+cast_time)||pet.fiend.remains<=cast_time+gcd.max)&pet.fiend.active&talent.inescapable_torment&pet.fiend.remains>cast_time&active_enemies<=7\nactions.main+=/void_bolt,if=variable.dots_up\n# Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 20 or to get out an extra Void Bolt by extending Voidform. With Distorted Reality can maintain more than one at a time in multi-target.\nactions.main+=/devouring_plague,cycle_targets=1,if=refreshable&!variable.pool_for_cds||insanity.deficit<=20||buff.voidform.up&cooldown.void_bolt.remains>buff.voidform.remains&cooldown.void_bolt.remains<(buff.voidform.remains+2)\n# Use Shadow Crash as long as you are not holding for adds and Vampiric Touch is within pandemic range\nactions.main+=/shadow_crash,if=!variable.holding_crash&dot.vampiric_touch.refreshable\n# Put out Vampiric Touch on enemies that will live at least 12s and Shadow Crash is not available soon\nactions.main+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>=12&(cooldown.shadow_crash.remains>=dot.vampiric_touch.remains&!action.shadow_crash.in_flight||variable.holding_crash||!talent.whispering_shadows)\n# High Priority Mind Spike: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available\nactions.main+=/mind_spike_insanity,if=variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up||!talent.void_torrent)\n# High Priority Mind Flay: Insanity to fish for C'Thun procs when Mind Blast is not capped and Void Torrent is not available\nactions.main+=/mind_flay,if=buff.mind_flay_insanity.up&variable.dots_up&cooldown.mind_blast.full_recharge_time>=gcd*3&talent.idol_of_cthun&(!cooldown.void_torrent.up||!talent.void_torrent)\n# Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption\nactions.main+=/mind_blast,if=variable.dots_up&(!buff.mind_devourer.up||cooldown.void_eruption.up&talent.void_eruption)\n# Void Torrent if you are not holding Shadow Crash for an add pack coming, prefer the target with the most DoTs active. Only cast if Devouring Plague is on that target and will last at least 2 seconds\nactions.main+=/void_torrent,cycle_targets=1,if=!variable.holding_crash&variable.all_dots_up&dot.devouring_plague.remains>=2\n# Cast Mindgames if all DoTs will be active by the time the cast finishes\nactions.main+=/mindgames,cycle_targets=1,if=variable.all_dots_up&dot.devouring_plague.remains>=cast_time\nactions.main+=/call_action_list,name=filler\n\nactions.main_variables+=/variable,name=dots_up,op=set,value=(dot.shadow_word_pain.ticking&dot.vampiric_touch.ticking)||action.shadow_crash.in_flight&talent.whispering_shadows\nactions.main_variables+=/variable,name=all_dots_up,op=set,value=target.time_to_die<8||(dot.shadow_word_pain.ticking&dot.vampiric_touch.ticking||action.shadow_crash.in_flight)&dot.devouring_plague.ticking\nactions.main_variables+=/variable,name=pool_for_cds,op=set,value=(cooldown.void_eruption.remains<=gcd.max*3&talent.void_eruption||cooldown.dark_ascension.up&talent.dark_ascension)||talent.void_torrent&talent.psychic_link&cooldown.void_torrent.remains<=4&(!raid_event.adds.exists&spell_targets.vampiric_touch>1||raid_event.adds.in<=5||raid_event.adds.remains>=6&!variable.holding_crash)&!buff.voidform.up\n# Set vts_applied for single-target to support Mindbender entry in cds action list.\nactions.main_variables+=/variable,name=vts_applied,op=set,value=dot.vampiric_touch.ticking\n\nactions.pl_torrent+=/void_bolt\nactions.pl_torrent+=/vampiric_touch,if=remains<=6&cooldown.void_torrent.remains=3&!prev_gcd.1.mind_blast\nactions.pl_torrent+=/void_torrent,if=dot.vampiric_touch.ticking&dot.shadow_word_pain.ticking||buff.voidform.up\nactions.pl_torrent+=/mindgames,if=dot.vampiric_touch.ticking&dot.shadow_word_pain.ticking&dot.devouring_plague.ticking||buff.voidform.up\n\nactions.trinkets+=/use_item,name=voidmenders_shadowgem,if=buff.power_infusion.up||boss&fight_remains<20\nactions.trinkets+=/use_item,name=darkmoon_deck_box_inferno\nactions.trinkets+=/use_item,name=darkmoon_deck_box_rime\nactions.trinkets+=/use_item,name=darkmoon_deck_box_dance\n# Use Erupting Spear Fragment with cooldowns, adds are currently active, or the fight will end in less than 20 seconds\nactions.trinkets+=/use_item,name=erupting_spear_fragment,if=buff.power_infusion.up||raid_event.adds.up||boss&fight_remains<20\n# Use Beacon to the Beyond on cooldown except to hold for incoming adds or if already facing 5 or more targets\nactions.trinkets+=/use_item,name=beacon_to_the_beyond,if=!raid_event.adds.exists||raid_event.adds.up||spell_targets.beacon_to_the_beyond>=5||boss&fight_remains<20\nactions.trinkets+=/use_items,if=buff.voidform.up||buff.power_infusion.up||buff.dark_ascension.up||(cooldown.void_eruption.remains>10&trinket.cooldown.duration<=60)||boss&fight_remains<20\nactions.trinkets+=/use_item,name=desperate_invokers_codex", ["spec"] = 258, }, ["Unholy"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230430, ["spec"] = 252, ["desc"] = "2023-04-30: Update trinket logic from SimC.\n\n2023-04-15: Minor tweak to use Festering Strike in preparation for Apocalypse.\n\n2023-04-04: Unholy update from SimC.\n\n2023-03-20: More updates for 10.0.7.\n\n2023-03-13: Update for 10.0.7.", ["lists"] = { ["aoe_setup"] = { { ["enabled"] = true, ["action"] = "any_dnd", ["description"] = "AoE Setup", ["criteria"] = "( ! talent.bursting_sores.enabled || death_knight.fwounded_targets >= cycle_enemies || death_knight.fwounded_targets >= 8 || raid_event.adds.exists & raid_event.adds.remains <= 11 & raid_event.adds.remains > 5 )", }, -- [1] { ["enabled"] = true, ["action"] = "festering_strike", ["criteria"] = "death_knight.fwounded_targets < active_enemies & talent.bursting_sores.enabled", ["cycle_targets"] = 1, }, -- [2] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power || fight_remains < 10", ["action"] = "epidemic", }, -- [3] { ["enabled"] = true, ["action"] = "festering_strike", ["criteria"] = "death_knight.fwounded_targets < active_enemies", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["action"] = "festering_strike", ["criteria"] = "cooldown.apocalypse.remains < variable.apoc_timing & debuff.festering_wound.stack < 4", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & ! talent.epidemic.enabled", ["action"] = "death_coil", }, -- [6] }, ["high_priority"] = { { ["enabled"] = true, ["action"] = "potion", ["description"] = "Priority Actions", ["criteria"] = "( pet.gargoyle.remains < 30 & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 || cooldown.summon_gargoyle.ready ) & ( buff.dark_transformation.up & buff.dark_transformation.remains < 30 || pet.army_ghoul.active & pet.army_ghoul.remains <= 30 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 30 ) || boss & fight_remains <= 30", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.summon_gargoyle.enabled & cooldown.summon_gargoyle.remains < 2 || ! talent.summon_gargoyle.enabled || boss & fight_remains < 35", ["action"] = "army_of_the_dead", }, -- [2] { ["enabled"] = true, ["criteria"] = "( active_enemies <= 3 || ! talent.epidemic.enabled ) & ( pet.gargoyle.active & talent.commander_of_the_dead.enabled & buff.commander_of_the_dead.up & cooldown.apocalypse.remains < 5 & buff.commander_of_the_dead.remains > 26 || debuff.death_rot.up & debuff.death_rot.remains < gcd.max )", ["action"] = "death_coil", }, -- [3] { ["enabled"] = true, ["criteria"] = "active_enemies >= 4 & ( talent.commander_of_the_dead.enabled & buff.commander_of_the_dead.up & cooldown.apocalypse.remains < 5 || debuff.death_rot.up & debuff.death_rot.remains < gcd.max )", ["action"] = "epidemic", }, -- [4] { ["enabled"] = true, ["criteria"] = "debuff.festering_wound.up & ( ! talent.apocalypse.enabled || cooldown.apocalypse.remains > variable.apoc_timing + 3 || active_enemies >= 3 ) & talent.plaguebringer.enabled & ( talent.superstrain.enabled || talent.unholy_blight.enabled ) & buff.plaguebringer.remains < gcd.max", ["action"] = "wound_spender", }, -- [5] { ["enabled"] = true, ["criteria"] = "variable.st_planning & ( ( ! talent.apocalypse.enabled || cooldown.apocalypse.remains ) & talent.morbidity.enabled || ! talent.morbidity.enabled ) || variable.adds_remain || boss & fight_remains < 21", ["action"] = "unholy_blight", }, -- [6] { ["enabled"] = true, ["action"] = "outbreak", ["criteria"] = "target.time_to_die > dot.virulent_plague.remains & ( dot.virulent_plague.refreshable || talent.superstrain.enabled & ( dot.frost_fever_superstrain.refreshable || dot.blood_plague_superstrain.refreshable ) ) & ( ! talent.unholy_blight.enabled || talent.unholy_blight.enabled & cooldown.unholy_blight.remains > 15 / ( ( talent.superstrain.enabled * 3 ) + ( talent.plaguebringer.enabled * 2 ) + ( talent.ebon_fever.enabled * 2 ) ) )", ["cycle_targets"] = 1, }, -- [7] }, ["aoe_burst"] = { { ["enabled"] = true, ["action"] = "epidemic", ["description"] = "AoE Burst", ["criteria"] = "( ! talent.bursting_sores.enabled || rune < 1 || talent.bursting_sores.enabled & debuff.festering_wound.stack = 0 ) & ! variable.pooling_runic_power & ( active_enemies >= 6 || runic_power.deficit < 30 || buff.festermight.stack = 20 )", }, -- [1] { ["enabled"] = true, ["action"] = "wound_spender", ["criteria"] = "debuff.festering_wound.stack >= 1", ["cycle_targets"] = 1, }, -- [2] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power || fight_remains < 10", ["action"] = "epidemic", }, -- [3] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & ! talent.epidemic.enabled", ["action"] = "death_coil", }, -- [4] { ["action"] = "wound_spender", ["enabled"] = true, }, -- [5] }, ["default"] = { { ["action"] = "mind_freeze", ["enabled"] = true, }, -- [1] { ["action"] = "strangulate", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["criteria"] = "runic_power.deficit > 40 & ( pet.gargoyle.active || ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > cooldown.antimagic_shell.duration )", ["action"] = "antimagic_shell", }, -- [3] { ["enabled"] = true, ["criteria"] = "death_knight.amz_absorb_percent > 0 & runic_power.deficit > 70 & talent.assimilation.enabled & ( pet.gargoyle.active || ! talent.summon_gargoyle.enabled )", ["action"] = "antimagic_zone", }, -- [4] { ["enabled"] = true, ["op"] = "setif", ["description"] = "Variables", ["criteria"] = "talent.improved_death_coil.enabled & ! talent.coil_of_devastation.enabled & active_enemies >= 3 || talent.coil_of_devastation.enabled & active_enemies >= 4 || ! talent.improved_death_coil.enabled & active_enemies >= 2", ["value"] = "1", ["action"] = "variable", ["value_else"] = "0", ["var_name"] = "epidemic_priority", }, -- [5] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "garg_setup", ["criteria"] = "active_enemies >= 3 || cooldown.summon_gargoyle.remains > 1 & cooldown.apocalypse.remains > 1 || ! talent.apocalypse.enabled & cooldown.summon_gargoyle.remains > 1 || ! talent.summon_gargoyle.enabled || time > 20", ["value_else"] = "0", ["value"] = "1", }, -- [6] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "apoc_timing", ["criteria"] = "cooldown.apocalypse.remains < 10 & debuff.festering_wound.stack <= 4 & cooldown.unholy_assault.remains > 10", ["value_else"] = "2", ["value"] = "10", }, -- [7] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "festermight_tracker", ["criteria"] = "! pet.gargoyle.active & talent.festermight.enabled & buff.festermight.up & ( buff.festermight.remains / ( 5 * gcd.max ) ) >= 1", ["value_else"] = "debuff.festering_wound.stack >= ( 3 - talent.infected_claws.enabled )", ["value"] = "debuff.festering_wound.stack >= 1", }, -- [8] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "pop_wounds", ["criteria"] = "( cooldown.apocalypse.remains > variable.apoc_timing || ! talent.apocalypse.enabled ) & ( variable.festermight_tracker || debuff.festering_wound.stack >= 1 & ! talent.apocalypse.enabled || debuff.festering_wound.stack >= 1 & cooldown.unholy_assault.remains < 20 & talent.unholy_assault.enabled & variable.st_planning || debuff.rotten_touch.up & debuff.festering_wound.stack >= 1 || debuff.festering_wound.stack > 4 ) || fight_remains < 5 & debuff.festering_wound.stack >= 1", ["value_else"] = "0", ["value"] = "1", }, -- [9] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "pooling_runic_power", ["criteria"] = "talent.vile_contagion.enabled & cooldown.vile_contagion.remains < 3 & runic_power < 60 & ! variable.st_planning", ["value_else"] = "0", ["value"] = "1", }, -- [10] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "st_planning", ["criteria"] = "active_enemies <= 3 & ( ! raid_event.adds.exists || raid_event.adds.in > 15 )", ["value_else"] = "0", ["value"] = "1", }, -- [11] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "adds_remain", ["criteria"] = "active_enemies >= 4 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.remains > 6 )", ["value_else"] = "0", ["value"] = "1", }, -- [12] { ["enabled"] = true, ["description"] = "Call Action Lists", ["action"] = "call_action_list", ["list_name"] = "high_priority", }, -- [13] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "trinkets", }, -- [14] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "variable.garg_setup = 0", ["list_name"] = "garg_setup", }, -- [15] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "variable.st_planning", ["list_name"] = "cooldowns", }, -- [16] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "variable.adds_remain", ["list_name"] = "aoe_cooldowns", }, -- [17] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "racials", }, -- [18] { ["enabled"] = true, ["criteria"] = "variable.adds_remain & cooldown.any_dnd.remains < 10 & ! death_and_decay.ticking", ["action"] = "call_action_list", ["list_name"] = "aoe_setup", }, -- [19] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies >= 4 & death_and_decay.ticking", ["list_name"] = "aoe_burst", }, -- [20] { ["enabled"] = true, ["criteria"] = "active_enemies >= 4 & ( cooldown.any_dnd.remains > 10 & ! death_and_decay.ticking || ! variable.adds_remain )", ["action"] = "call_action_list", ["list_name"] = "aoe", }, -- [21] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies <= 3", ["list_name"] = "generic", }, -- [22] }, ["cooldowns"] = { { ["enabled"] = true, ["action"] = "summon_gargoyle", ["description"] = "ST/Cleave Cooldowns", ["criteria"] = "buff.commander_of_the_dead.up || ! talent.commander_of_the_dead.enabled", }, -- [1] { ["enabled"] = true, ["criteria"] = "! pet.ghoul.active", ["action"] = "raise_dead", }, -- [2] { ["enabled"] = true, ["criteria"] = "cooldown.apocalypse.remains < 5", ["action"] = "dark_transformation", }, -- [3] { ["enabled"] = true, ["action"] = "apocalypse", ["criteria"] = "variable.st_planning & debuff.festering_wound.stack >= 4", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "variable.st_planning & ( pet.gargoyle.active & pet.gargoyle.remains <= 21 || ! talent.summon_gargoyle.enabled & talent.army_of_the_damned.enabled & pet.army_ghoul.active & pet.apoc_ghoul.active || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_damned.enabled & buff.dark_transformation.up || ! talent.summon_gargoyle.enabled & ! talent.summon_gargoyle.enabled & buff.dark_transformation.up ) || boss & fight_remains <= 21", ["action"] = "empower_rune_weapon", }, -- [5] { ["enabled"] = true, ["criteria"] = "rune < 3 & variable.st_planning", ["action"] = "abomination_limb", }, -- [6] { ["enabled"] = true, ["action"] = "unholy_assault", ["criteria"] = "variable.st_planning", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > 5", ["action"] = "soul_reaper", }, -- [8] { ["enabled"] = true, ["action"] = "soul_reaper", ["criteria"] = "target.time_to_pct_35 < 5 & active_enemies >= 2 & target.time_to_die > ( dot.soul_reaper.remains + 5 )", ["cycle_targets"] = 1, }, -- [9] }, ["generic"] = { { ["enabled"] = true, ["action"] = "death_coil", ["description"] = "Generic", ["criteria"] = "! variable.epidemic_priority & ( ! variable.pooling_runic_power & ( rune < 3 || pet.gargoyle.active || buff.sudden_doom.react || cooldown.apocalypse.remains < 10 & debuff.festering_wound.stack > 3 ) || boss & fight_remains < 10 )", }, -- [1] { ["enabled"] = true, ["criteria"] = "variable.epidemic_priority & ( ! variable.pooling_runic_power & ( rune < 3 || pet.gargoyle.active || buff.sudden_doom.react || cooldown.apocalypse.remains < 10 & debuff.festering_wound.stack > 3 ) || boss & fight_remains < 10 )", ["action"] = "epidemic", }, -- [2] { ["enabled"] = true, ["criteria"] = "! death_and_decay.ticking & ( active_enemies >= 2 || talent.unholy_ground.enabled & ( pet.apoc_ghoul.active & pet.apoc_ghoul.remains >= 10 || pet.gargoyle.active & pet.gargoyle.remains > 5 || pet.army_ghoul.active & pet.army_ghoul.remains > 5 ) ) & death_knight.fwounded_targets >= cycle_enemies", ["action"] = "any_dnd", }, -- [3] { ["enabled"] = true, ["action"] = "wound_spender", ["criteria"] = "variable.pop_wounds || active_enemies >= 2 & death_and_decay.ticking", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["action"] = "festering_strike", ["criteria"] = "! variable.pop_wounds", ["cycle_targets"] = 1, }, -- [5] { ["action"] = "death_coil", ["enabled"] = true, }, -- [6] }, ["aoe_cooldowns"] = { { ["enabled"] = true, ["action"] = "vile_contagion", ["cycle_targets"] = 1, ["criteria"] = "debuff.festering_wound.stack >= 4 & cooldown.any_dnd.remains < 3", ["description"] = "AoE Cooldowns", }, -- [1] { ["action"] = "summon_gargoyle", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["criteria"] = "rune < 2 || buff.festermight.stack > 10 || ! talent.festermight.enabled || buff.festermight.up & buff.festermight.remains < 12", ["action"] = "abomination_limb", }, -- [3] { ["enabled"] = true, ["action"] = "apocalypse", ["criteria"] = "talent.bursting_sores.enabled & debuff.festering_wound.up & ( ! death_and_decay.ticking & cooldown.death_and_decay.remains & rune < 3 || death_and_decay.ticking & rune = 0 ) || ! talent.bursting_sores.enabled & debuff.festering_wound.stack >= 4", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["action"] = "unholy_assault", ["criteria"] = "debuff.festering_wound.stack <= 2 || buff.dark_transformation.up", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "! pet.ghoul.active", ["action"] = "raise_dead", }, -- [6] { ["enabled"] = true, ["criteria"] = "( cooldown.any_dnd.remains < 10 & talent.infected_claws.enabled & ( ( cooldown.vile_contagion.remains || raid_event.adds.exists & raid_event.adds.in > 10 ) & death_knight.fwounded_targets < active_enemies || ! talent.vile_contagion.enabled ) & ( raid_event.adds.remains > 5 || ! raid_event.adds.exists ) || ! talent.infected_claws.enabled )", ["action"] = "dark_transformation", }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.dark_transformation.up", ["action"] = "empower_rune_weapon", }, -- [8] { ["enabled"] = true, ["criteria"] = "! buff.dark_transformation.up & cooldown.dark_transformation.remains > 6 || boss & fight_remains < gcd.max", ["action"] = "sacrificial_pact", }, -- [9] }, ["precombat"] = { { ["action"] = "raise_dead", ["enabled"] = true, }, -- [1] { ["enabled"] = true, ["action"] = "army_of_the_dead", ["precombat_time"] = "2", }, -- [2] }, ["racials"] = { { ["enabled"] = true, ["action"] = "arcane_torrent", ["description"] = "Racials", ["criteria"] = "runic_power.deficit > 20 & ( cooldown.summon_gargoyle.remains < gcd.max || ! talent.summon_gargoyle.enabled || pet.gargoyle.active & rune < 2 & debuff.festering_wound.stack < 1 )", }, -- [1] { ["enabled"] = true, ["criteria"] = "( buff.blood_fury.duration >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= buff.blood_fury.duration || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.blood_fury.duration || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.blood_fury.duration", ["action"] = "blood_fury", }, -- [2] { ["enabled"] = true, ["criteria"] = "( buff.berserking.duration >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= buff.berserking.duration || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.berserking.duration || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.berserking.duration", ["action"] = "berserking", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.unholy_strength.up & ( ! talent.festermight.enabled || buff.festermight.remains < target.time_to_die || buff.unholy_strength.remains < target.time_to_die )", ["action"] = "lights_judgment", }, -- [4] { ["enabled"] = true, ["criteria"] = "( pet.gargoyle.remains < 15 & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= 15 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 15 || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= 15", ["action"] = "ancestral_call", }, -- [5] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 || ( rune.deficit >= 5 & runic_power.deficit >= 60 )", ["action"] = "arcane_pulse", }, -- [6] { ["enabled"] = true, ["criteria"] = "( buff.fireblood.duration >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= buff.fireblood.duration || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.fireblood.duration || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.fireblood.duration", ["action"] = "fireblood", }, -- [7] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & ( buff.unholy_strength.up || boss & fight_remains < 5 )", ["action"] = "bag_of_tricks", }, -- [8] }, ["trinkets"] = { { ["enabled"] = true, ["action"] = "gavel_of_the_first_arbiter", ["description"] = "Trinkets", ["name"] = "gavel_of_the_first_arbiter", }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon", ["var_name"] = "trinket_1_exclude", }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon", ["var_name"] = "trinket_2_exclude", }, -- [3] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff ) & ! variable.trinket_1_exclude", ["var_name"] = "trinket_1_buffs", }, -- [4] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff ) & ! variable.trinket_2_exclude", ["var_name"] = "trinket_2_buffs", }, -- [5] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "trinket_1_sync", ["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % 45 = 0 )", ["value_else"] = "0.5", ["value"] = "1", }, -- [6] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "trinket_2_sync", ["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % 45 = 0 )", ["value_else"] = "0.5", ["value"] = "1", }, -- [7] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.is.algethar_puzzle_box", ["var_name"] = "trinket_1_manual", }, -- [8] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t2.is.algethar_puzzle_box", ["var_name"] = "trinket_2_manual", }, -- [9] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "trinket_priority", ["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs & ( trinket.t2.has_cooldown & ! variable.trinket_2_exclude || ! trinket.t1.has_cooldown ) || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )", ["value_else"] = "1", ["value"] = "2", }, -- [10] { ["enabled"] = true, ["name"] = "algethar_puzzle_box", ["use_off_gcd"] = 1, ["action"] = "algethar_puzzle_box", ["criteria"] = "cooldown.summon_gargoyle.remains < 5 & rune <= 4 || ! talent.summon_gargoyle.enabled & pet.army_ghoul.active || active_enemies > 3 & variable.adds_remain", }, -- [11] { ["enabled"] = true, ["action"] = "trinket1", ["slot"] = "trinket1", ["use_off_gcd"] = 1, ["criteria"] = "! variable.trinket_1_manual & variable.trinket_1_buffs & ( ( ! talent.summon_gargoyle.enabled & ( ( ! talent.army_of_the_dead.enabled || cooldown.army_of_the_dead.remains_expected > 60 || death_knight.disable_aotd ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) || pet.army_ghoul.active ) || talent.summon_gargoyle.enabled & pet.gargoyle.active || cooldown.summon_gargoyle.remains > 80 ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) & ( variable.trinket_2_exclude || variable.trinket_priority = 1 || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown ) ) || boss & trinket.t1.buff_duration >= fight_remains", }, -- [12] { ["enabled"] = true, ["action"] = "trinket2", ["slot"] = "trinket2", ["use_off_gcd"] = 1, ["criteria"] = "! variable.trinket_2_manual & variable.trinket_2_buffs & ( ( ! talent.summon_gargoyle.enabled & ( ( ! talent.army_of_the_dead.enabled || cooldown.army_of_the_dead.remains_expected > 60 || death_knight.disable_aotd ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) || pet.army_ghoul.active ) || talent.summon_gargoyle.enabled & pet.gargoyle.active || cooldown.summon_gargoyle.remains > 80 ) & ( pet.apoc_ghoul.active || ( ! talent.apocalypse.enabled || active_enemies >= 2 ) & buff.dark_transformation.up ) & ( variable.trinket_1_exclude || variable.trinket_priority = 2 || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown ) ) || boss & trinket.t2.buff_duration >= fight_remains", }, -- [13] { ["enabled"] = true, ["action"] = "trinket1", ["slot"] = "trinket1", ["use_off_gcd"] = 1, ["criteria"] = "! variable.trinket_1_manual & ! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown || ! variable.trinket_2_buffs || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & cooldown.army_of_the_dead.remains_expected > 20 || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & cooldown.dark_transformation.remains > 20 || cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15", }, -- [14] { ["enabled"] = true, ["action"] = "trinket2", ["slot"] = "trinket2", ["use_off_gcd"] = 1, ["criteria"] = "! variable.trinket_2_manual & ! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown || ! variable.trinket_1_buffs || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & cooldown.army_of_the_dead.remains_expected > 20 || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & cooldown.dark_transformation.remains > 20 || cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15", }, -- [15] { ["enabled"] = true, ["action"] = "use_items", ["criteria"] = "( ! variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( ! variable.trinket_2_buffs || trinket.t2.cooldown.remains )", ["use_off_gcd"] = 1, }, -- [16] }, ["garg_setup"] = { { ["enabled"] = true, ["action"] = "apocalypse", ["description"] = "Garg Setup", ["criteria"] = "debuff.festering_wound.stack >= 4 & ( buff.commander_of_the_dead.up & pet.gargoyle.remains < 21 || ! talent.commander_of_the_dead.enabled )", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.commander_of_the_dead.enabled & ( cooldown.dark_transformation.remains < 3 || buff.commander_of_the_dead.up ) || ! talent.commander_of_the_dead.enabled & talent.unholy_assault.enabled & cooldown.unholy_assault.remains < 10 || ! talent.unholy_assault.enabled & ! talent.commander_of_the_dead.enabled", ["action"] = "army_of_the_dead", }, -- [2] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > 5", ["action"] = "soul_reaper", }, -- [3] { ["enabled"] = true, ["action"] = "summon_gargoyle", ["criteria"] = "buff.commander_of_the_dead.up || ! talent.commander_of_the_dead.enabled & runic_power >= 40", ["use_off_gcd"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "pet.gargoyle.active & pet.gargoyle.remains <= 21", ["action"] = "empower_rune_weapon", }, -- [5] { ["enabled"] = true, ["criteria"] = "pet.gargoyle.active & pet.gargoyle.remains <= 21", ["action"] = "unholy_assault", }, -- [6] { ["enabled"] = true, ["criteria"] = "( pet.gargoyle.remains < 30 & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 || cooldown.summon_gargoyle.ready ) & ( buff.dark_transformation.up & buff.dark_transformation.remains < 30 || pet.army_ghoul.active & pet.army_ghoul.remains <= 30 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 30 )", ["action"] = "potion", }, -- [7] { ["enabled"] = true, ["criteria"] = "talent.commander_of_the_dead.enabled & runic_power >= 40 || ! talent.commander_of_the_dead.enabled", ["action"] = "dark_transformation", }, -- [8] { ["enabled"] = true, ["criteria"] = "! death_and_decay.ticking & debuff.festering_wound.stack > 0", ["action"] = "any_dnd", }, -- [9] { ["enabled"] = true, ["criteria"] = "debuff.festering_wound.stack = 0 || talent.apocalypse.enabled & cooldown.apocalypse.remains < 3 * gcd.max & debuff.festering_wound.stack < 4 || runic_power < 40 || ! talent.apocalypse.enabled", ["action"] = "festering_strike", }, -- [10] { ["enabled"] = true, ["criteria"] = "rune <= 1", ["action"] = "death_coil", }, -- [11] }, ["aoe"] = { { ["enabled"] = true, ["action"] = "epidemic", ["description"] = "Generic AoE", ["criteria"] = "! variable.pooling_runic_power || fight_remains < 10", }, -- [1] { ["enabled"] = true, ["action"] = "wound_spender", ["criteria"] = "variable.pop_wounds", ["cycle_targets"] = 1, }, -- [2] { ["enabled"] = true, ["action"] = "festering_strike", ["criteria"] = "! variable.pop_wounds", ["cycle_targets"] = 1, }, -- [3] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & ! talent.epidemic.enabled", ["action"] = "death_coil", }, -- [4] }, }, ["version"] = 20230430, ["warnings"] = "The import for 'aoe_setup' required some automated changes.\nLine 1: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 2: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 6: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\n\nThe import for 'cooldowns' required some automated changes.\nLine 1: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_damned' to 'talent.army_of_the_damned.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_damned' to 'talent.army_of_the_damned.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\n\nThe import for 'aoe_burst' required some automated changes.\nLine 1: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 1: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 4: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\n\nThe import for 'racials' required some automated changes.\nLine 2: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 3: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 4: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 7: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\n\nThe import for 'garg_setup' required some automated changes.\nLine 1: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 2: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 2: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 2: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 2: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 2: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 4: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 7: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 8: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 8: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 10: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 10: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\n\nThe import for 'generic' required some automated changes.\nLine 3: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\n\nThe import for 'aoe_cooldowns' required some automated changes.\nLine 3: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 4: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 4: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 7: Converted 'talent.infected_claws' to 'talent.infected_claws.enabled' (1x).\nLine 7: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 7: Converted 'talent.infected_claws' to 'talent.infected_claws.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 4: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 2: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 2: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 3: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 3: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 4: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 4: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 4: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 4: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 4: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 5: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 5: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 5: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 5: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 5: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted operations in 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%%45=0)' to 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%45=0)'.\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted operations in 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%%45=0)' to 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%45=0)'.\nLine 8: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 9: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 10: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 10: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 10: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 10: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 10: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 10: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 10: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 10: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 10: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 10: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 10: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.t2.has_cooldown&!variable.trinket_2_exclude||!trinket.t1.has_cooldown)||variable.trinket_2_buffs&((trinket.t2.cooldown.duration%trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration%trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))' to '!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.t2.has_cooldown&!variable.trinket_2_exclude||!trinket.t1.has_cooldown)||variable.trinket_2_buffs&((trinket.t2.cooldown.duration/trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration/trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))'.\nLine 11: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 12: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 12: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 12: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 12: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 12: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 12: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 12: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 13: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 13: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 13: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 13: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 13: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 13: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 13: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 13: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 13: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 13: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 14: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 14: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 14: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 14: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 14: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 14: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 14: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 14: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 14: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 15: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 15: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 15: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 15: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 15: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 15: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 15: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 15: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 15: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 16: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 16: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 16: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 16: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 4: Converted 'talent.assimilation' to 'talent.assimilation.enabled' (1x).\nLine 4: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.improved_death_coil' to 'talent.improved_death_coil.enabled' (1x).\nLine 5: Converted 'talent.coil_of_devastation' to 'talent.coil_of_devastation.enabled' (1x).\nLine 5: Converted 'talent.coil_of_devastation' to 'talent.coil_of_devastation.enabled' (1x).\nLine 5: Converted 'talent.improved_death_coil' to 'talent.improved_death_coil.enabled' (1x).\nLine 6: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 8: Converted 'talent.infected_claws' to 'talent.infected_claws.enabled' (1x).\nLine 8: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 8: Converted operations in '!pet.gargoyle.active&talent.festermight.enabled&buff.festermight.up&(buff.festermight.remains%(5*gcd.max))>=1' to '!pet.gargoyle.active&talent.festermight.enabled&buff.festermight.up&(buff.festermight.remains/(5*gcd.max))>=1'.\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 10: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\n\nThe import for 'high_priority' required some automated changes.\nLine 1: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 2: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 2: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 3: Converted 'talent.epidemic' to 'talent.epidemic.enabled' (1x).\nLine 3: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 4: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.plaguebringer' to 'talent.plaguebringer.enabled' (1x).\nLine 5: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 5: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 6: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 6: Converted 'talent.morbidity' to 'talent.morbidity.enabled' (1x).\nLine 6: Converted 'talent.morbidity' to 'talent.morbidity.enabled' (1x).\nLine 7: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 7: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 7: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 7: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 7: Converted 'talent.plaguebringer' to 'talent.plaguebringer.enabled' (1x).\nLine 7: Converted 'talent.ebon_fever' to 'talent.ebon_fever.enabled' (1x).\nLine 7: Converted operations in 'target.time_to_die>dot.virulent_plague.remains&(dot.virulent_plague.refreshable||talent.superstrain.enabled&(dot.frost_fever_superstrain.refreshable||dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight.enabled||talent.unholy_blight.enabled&cooldown.unholy_blight.remains>15%((talent.superstrain.enabled*3)+(talent.plaguebringer.enabled*2)+(talent.ebon_fever.enabled*2)))' to 'target.time_to_die>dot.virulent_plague.remains&(dot.virulent_plague.refreshable||talent.superstrain.enabled&(dot.frost_fever_superstrain.refreshable||dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight.enabled||talent.unholy_blight.enabled&cooldown.unholy_blight.remains>15/((talent.superstrain.enabled*3)+(talent.plaguebringer.enabled*2)+(talent.ebon_fever.enabled*2)))'.\n\nImported 12 action lists.\n", ["author"] = "SimulationCraft", ["profile"] = "actions.precombat+=/raise_dead\nactions.precombat+=/army_of_the_dead,precombat_time=2\n\nactions+=/mind_freeze\nactions+=/strangulate\nactions+=/antimagic_shell,if=runic_power.deficit>40&(pet.gargoyle.active||!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>cooldown.antimagic_shell.duration)\nactions+=/antimagic_zone,if=death_knight.amz_absorb_percent>0&runic_power.deficit>70&talent.assimilation&(pet.gargoyle.active||!talent.summon_gargoyle)\n# Variables\nactions+=/variable,name=epidemic_priority,op=setif,value=1,value_else=0,condition=talent.improved_death_coil&!talent.coil_of_devastation&active_enemies>=3||talent.coil_of_devastation&active_enemies>=4||!talent.improved_death_coil&active_enemies>=2\nactions+=/variable,name=garg_setup,op=setif,value=1,value_else=0,condition=active_enemies>=3||cooldown.summon_gargoyle.remains>1&cooldown.apocalypse.remains>1||!talent.apocalypse&cooldown.summon_gargoyle.remains>1||!talent.summon_gargoyle||time>20\nactions+=/variable,name=apoc_timing,op=setif,value=10,value_else=2,condition=cooldown.apocalypse.remains<10&debuff.festering_wound.stack<=4&cooldown.unholy_assault.remains>10\nactions+=/variable,name=festermight_tracker,op=setif,value=debuff.festering_wound.stack>=1,value_else=debuff.festering_wound.stack>=(3-talent.infected_claws),condition=!pet.gargoyle.active&talent.festermight&buff.festermight.up&(buff.festermight.remains%(5*gcd.max))>=1\nactions+=/variable,name=pop_wounds,op=setif,value=1,value_else=0,condition=(cooldown.apocalypse.remains>variable.apoc_timing||!talent.apocalypse)&(variable.festermight_tracker||debuff.festering_wound.stack>=1&!talent.apocalypse||debuff.festering_wound.stack>=1&cooldown.unholy_assault.remains<20&talent.unholy_assault&variable.st_planning||debuff.rotten_touch.up&debuff.festering_wound.stack>=1||debuff.festering_wound.stack>4)||fight_remains<5&debuff.festering_wound.stack>=1\nactions+=/variable,name=pooling_runic_power,op=setif,value=1,value_else=0,condition=talent.vile_contagion&cooldown.vile_contagion.remains<3&runic_power<60&!variable.st_planning\nactions+=/variable,name=st_planning,op=setif,value=1,value_else=0,condition=active_enemies<=3&(!raid_event.adds.exists||raid_event.adds.in>15)\nactions+=/variable,name=adds_remain,op=setif,value=1,value_else=0,condition=active_enemies>=4&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.remains>6)\n## Use Power Infusion while Gargoyle is up, as well as Apocalypse or with Dark Transformation if Apocalypse or Gargoyle are not talented\n## actions+=/invoke_external_buff,name=power_infusion,if=variable.st_planning&(pet.gargoyle.active&pet.gargoyle.remains<=20||!talent.summon_gargoyle&talent.army_of_the_dead&pet.army_ghoul.active&pet.apoc_ghoul.active||!talent.summon_gargoyle&!talent.army_of_the_dead&buff.dark_transformation.up||!talent.summon_gargoyle&buff.dark_transformation.up||!pet.gargoyle.active&cooldown.summon_gargoyle.remains+5>cooldown.invoke_external_buff.duration||active_enemies>=3&(buff.dark_transformation.up||death_and_decay.ticking))||boss&fight_remains<=21\n# Call Action Lists\nactions+=/call_action_list,name=high_priority\nactions+=/call_action_list,name=trinkets\nactions+=/run_action_list,name=garg_setup,strict=1,if=variable.garg_setup=0\nactions+=/call_action_list,name=cooldowns,strict=1,if=variable.st_planning\nactions+=/call_action_list,name=aoe_cooldowns,strict=1,if=variable.adds_remain\nactions+=/call_action_list,name=racials\nactions+=/call_action_list,name=aoe_setup,if=variable.adds_remain&cooldown.any_dnd.remains<10&!death_and_decay.ticking\nactions+=/call_action_list,name=aoe_burst,strict=1,if=active_enemies>=4&death_and_decay.ticking\nactions+=/call_action_list,name=aoe,if=active_enemies>=4&(cooldown.any_dnd.remains>10&!death_and_decay.ticking||!variable.adds_remain)\nactions+=/call_action_list,name=generic,strict=1,if=active_enemies<=3\n\n# Priority Actions\nactions.high_priority+=/potion,if=(pet.gargoyle.remains<30&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60||cooldown.summon_gargoyle.ready)&(buff.dark_transformation.up&buff.dark_transformation.remains<30||pet.army_ghoul.active&pet.army_ghoul.remains<=30||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=30)||boss&fight_remains<=30\nactions.high_priority+=/army_of_the_dead,if=talent.summon_gargoyle&cooldown.summon_gargoyle.remains<2||!talent.summon_gargoyle||boss&fight_remains<35\nactions.high_priority+=/death_coil,if=(active_enemies<=3||!talent.epidemic)&(pet.gargoyle.active&talent.commander_of_the_dead&buff.commander_of_the_dead.up&cooldown.apocalypse.remains<5&buff.commander_of_the_dead.remains>26||debuff.death_rot.up&debuff.death_rot.remains=4&(talent.commander_of_the_dead&buff.commander_of_the_dead.up&cooldown.apocalypse.remains<5||debuff.death_rot.up&debuff.death_rot.remainsvariable.apoc_timing+3||active_enemies>=3)&talent.plaguebringer&(talent.superstrain||talent.unholy_blight)&buff.plaguebringer.remainsdot.virulent_plague.remains&(dot.virulent_plague.refreshable||talent.superstrain&(dot.frost_fever_superstrain.refreshable||dot.blood_plague_superstrain.refreshable))&(!talent.unholy_blight||talent.unholy_blight&cooldown.unholy_blight.remains>15%((talent.superstrain*3)+(talent.plaguebringer*2)+(talent.ebon_fever*2)))\n\n# AoE Cooldowns\nactions.aoe_cooldowns+=/vile_contagion,cycle_targets=1,if=debuff.festering_wound.stack>=4&cooldown.any_dnd.remains<3\nactions.aoe_cooldowns+=/summon_gargoyle\nactions.aoe_cooldowns+=/abomination_limb,if=rune<2||buff.festermight.stack>10||!talent.festermight||buff.festermight.up&buff.festermight.remains<12\nactions.aoe_cooldowns+=/apocalypse,cycle_targets=1,if=talent.bursting_sores&debuff.festering_wound.up&(!death_and_decay.ticking&cooldown.death_and_decay.remains&rune<3||death_and_decay.ticking&rune=0)||!talent.bursting_sores&debuff.festering_wound.stack>=4\nactions.aoe_cooldowns+=/unholy_assault,cycle_targets=1,if=debuff.festering_wound.stack<=2||buff.dark_transformation.up\nactions.aoe_cooldowns+=/raise_dead,if=!pet.ghoul.active\nactions.aoe_cooldowns+=/dark_transformation,if=(cooldown.any_dnd.remains<10&talent.infected_claws&((cooldown.vile_contagion.remains||raid_event.adds.exists&raid_event.adds.in>10)&death_knight.fwounded_targets5||!raid_event.adds.exists)||!talent.infected_claws)\nactions.aoe_cooldowns+=/empower_rune_weapon,if=buff.dark_transformation.up\nactions.aoe_cooldowns+=/sacrificial_pact,if=!buff.dark_transformation.up&cooldown.dark_transformation.remains>6||boss&fight_remains=cycle_enemies||death_knight.fwounded_targets>=8||raid_event.adds.exists&raid_event.adds.remains<=11&raid_event.adds.remains>5)\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=death_knight.fwounded_targets=6||runic_power.deficit<30||buff.festermight.stack=20)\nactions.aoe_burst+=/wound_spender,cycle_targets=1,if=debuff.festering_wound.stack>=1\nactions.aoe_burst+=/epidemic,if=!variable.pooling_runic_power||fight_remains<10\nactions.aoe_burst+=/death_coil,if=!variable.pooling_runic_power&!talent.epidemic\nactions.aoe_burst+=/wound_spender\n\n# Generic AoE\nactions.aoe+=/epidemic,if=!variable.pooling_runic_power||fight_remains<10\nactions.aoe+=/wound_spender,cycle_targets=1,if=variable.pop_wounds\nactions.aoe+=/festering_strike,cycle_targets=1,if=!variable.pop_wounds\nactions.aoe+=/death_coil,if=!variable.pooling_runic_power&!talent.epidemic\n# ST/Cleave Cooldowns\nactions.cooldowns+=/summon_gargoyle,if=buff.commander_of_the_dead.up||!talent.commander_of_the_dead\nactions.cooldowns+=/raise_dead,if=!pet.ghoul.active\nactions.cooldowns+=/dark_transformation,if=cooldown.apocalypse.remains<5\nactions.cooldowns+=/apocalypse,cycle_targets=1,if=variable.st_planning&debuff.festering_wound.stack>=4\nactions.cooldowns+=/empower_rune_weapon,if=variable.st_planning&(pet.gargoyle.active&pet.gargoyle.remains<=21||!talent.summon_gargoyle&talent.army_of_the_damned&pet.army_ghoul.active&pet.apoc_ghoul.active||!talent.summon_gargoyle&!talent.army_of_the_damned&buff.dark_transformation.up||!talent.summon_gargoyle&!talent.summon_gargoyle&buff.dark_transformation.up)||boss&fight_remains<=21\nactions.cooldowns+=/abomination_limb,if=rune<3&variable.st_planning\nactions.cooldowns+=/unholy_assault,cycle_targets=1,if=variable.st_planning\nactions.cooldowns+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>5\nactions.cooldowns+=/soul_reaper,cycle_targets=1,if=target.time_to_pct_35<5&active_enemies>=2&target.time_to_die>(dot.soul_reaper.remains+5)\n\n# Garg Setup\nactions.garg_setup+=/apocalypse,if=debuff.festering_wound.stack>=4&(buff.commander_of_the_dead.up&pet.gargoyle.remains<21||!talent.commander_of_the_dead)\nactions.garg_setup+=/army_of_the_dead,if=talent.commander_of_the_dead&(cooldown.dark_transformation.remains<3||buff.commander_of_the_dead.up)||!talent.commander_of_the_dead&talent.unholy_assault&cooldown.unholy_assault.remains<10||!talent.unholy_assault&!talent.commander_of_the_dead\nactions.garg_setup+=/soul_reaper,if=active_enemies=1&target.time_to_pct_35<5&target.time_to_die>5\nactions.garg_setup+=/summon_gargoyle,use_off_gcd=1,if=buff.commander_of_the_dead.up||!talent.commander_of_the_dead&runic_power>=40\nactions.garg_setup+=/empower_rune_weapon,if=pet.gargoyle.active&pet.gargoyle.remains<=21\nactions.garg_setup+=/unholy_assault,if=pet.gargoyle.active&pet.gargoyle.remains<=21\nactions.garg_setup+=/potion,if=(pet.gargoyle.remains<30&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60||cooldown.summon_gargoyle.ready)&(buff.dark_transformation.up&buff.dark_transformation.remains<30||pet.army_ghoul.active&pet.army_ghoul.remains<=30||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=30)\nactions.garg_setup+=/dark_transformation,if=talent.commander_of_the_dead&runic_power>=40||!talent.commander_of_the_dead\nactions.garg_setup+=/any_dnd,if=!death_and_decay.ticking&debuff.festering_wound.stack>0\nactions.garg_setup+=/festering_strike,if=debuff.festering_wound.stack=0||talent.apocalypse&cooldown.apocalypse.remains<3*gcd.max&debuff.festering_wound.stack<4||runic_power<40||!talent.apocalypse\nactions.garg_setup+=/death_coil,if=rune<=1\n\n# Generic\nactions.generic+=/death_coil,if=!variable.epidemic_priority&(!variable.pooling_runic_power&(rune<3||pet.gargoyle.active||buff.sudden_doom.react||cooldown.apocalypse.remains<10&debuff.festering_wound.stack>3)||boss&fight_remains<10)\nactions.generic+=/epidemic,if=variable.epidemic_priority&(!variable.pooling_runic_power&(rune<3||pet.gargoyle.active||buff.sudden_doom.react||cooldown.apocalypse.remains<10&debuff.festering_wound.stack>3)||boss&fight_remains<10)\nactions.generic+=/any_dnd,if=!death_and_decay.ticking&(active_enemies>=2||talent.unholy_ground&(pet.apoc_ghoul.active&pet.apoc_ghoul.remains>=10||pet.gargoyle.active&pet.gargoyle.remains>5||pet.army_ghoul.active&pet.army_ghoul.remains>5))&death_knight.fwounded_targets>=cycle_enemies\nactions.generic+=/wound_spender,cycle_targets=1,if=variable.pop_wounds||active_enemies>=2&death_and_decay.ticking\nactions.generic+=/festering_strike,cycle_targets=1,if=!variable.pop_wounds\nactions.generic+=/death_coil\n\n# Racials\nactions.racials+=/arcane_torrent,if=runic_power.deficit>20&(cooldown.summon_gargoyle.remains=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.blood_fury.duration||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.blood_fury.duration||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=buff.blood_fury.duration\nactions.racials+=/berserking,if=(buff.berserking.duration>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.berserking.duration||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.berserking.duration||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=buff.berserking.duration\nactions.racials+=/lights_judgment,if=buff.unholy_strength.up&(!talent.festermight||buff.festermight.remains60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=15||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=15||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=15\nactions.racials+=/arcane_pulse,if=active_enemies>=2||(rune.deficit>=5&runic_power.deficit>=60)\nactions.racials+=/fireblood,if=(buff.fireblood.duration>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.fireblood.duration||pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=buff.fireblood.duration||active_enemies>=2&death_and_decay.ticking)||boss&fight_remains<=buff.fireblood.duration\nactions.racials+=/bag_of_tricks,if=active_enemies=1&(buff.unholy_strength.up||boss&fight_remains<5)\n\n# Trinkets\nactions.trinkets=use_item,name=gavel_of_the_first_arbiter\nactions.trinkets+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.trinkets+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\nactions.trinkets+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_buff.strength||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit)&!variable.trinket_1_exclude\nactions.trinkets+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_buff.strength||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit)&!variable.trinket_2_exclude\nactions.trinkets+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%45=0)\nactions.trinkets+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%45=0)\nactions.trinkets+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box\nactions.trinkets+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box\nactions.trinkets+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.2.has_cooldown&!variable.trinket_2_exclude||!trinket.1.has_cooldown)||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.trinkets+=/use_item,use_off_gcd=1,name=algethar_puzzle_box,use_off_gcd=1,if=cooldown.summon_gargoyle.remains<5&rune<=4||!talent.summon_gargoyle&pet.army_ghoul.active||active_enemies>3&variable.adds_remain\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_manual&variable.trinket_1_buffs&((!talent.summon_gargoyle&((!talent.army_of_the_dead||cooldown.army_of_the_dead.remains_expected>60||death_knight.disable_aotd)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)||pet.army_ghoul.active)||talent.summon_gargoyle&pet.gargoyle.active||cooldown.summon_gargoyle.remains>80)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)&(variable.trinket_2_exclude||variable.trinket_priority=1||trinket.2.cooldown.remains||!trinket.2.has_cooldown))||boss&trinket.1.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_manual&variable.trinket_2_buffs&((!talent.summon_gargoyle&((!talent.army_of_the_dead||cooldown.army_of_the_dead.remains_expected>60||death_knight.disable_aotd)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)||pet.army_ghoul.active)||talent.summon_gargoyle&pet.gargoyle.active||cooldown.summon_gargoyle.remains>80)&(pet.apoc_ghoul.active||(!talent.apocalypse||active_enemies>=2)&buff.dark_transformation.up)&(variable.trinket_1_exclude||variable.trinket_priority=2||trinket.1.cooldown.remains||!trinket.1.has_cooldown))||boss&trinket.2.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_manual&!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!trinket.2.has_cooldown||!variable.trinket_2_buffs||!talent.summon_gargoyle&!talent.army_of_the_dead||!talent.summon_gargoyle&talent.army_of_the_dead&cooldown.army_of_the_dead.remains_expected>20||!talent.summon_gargoyle&!talent.army_of_the_dead&cooldown.dark_transformation.remains>20||cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_manual&!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!trinket.1.has_cooldown||!variable.trinket_1_buffs||!talent.summon_gargoyle&!talent.army_of_the_dead||!talent.summon_gargoyle&talent.army_of_the_dead&cooldown.army_of_the_dead.remains_expected>20||!talent.summon_gargoyle&!talent.army_of_the_dead&cooldown.dark_transformation.remains>20||cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15\nactions.trinkets+=/use_items,use_off_gcd=1,if=(!variable.trinket_1_buffs||trinket.1.cooldown.remains)&(!variable.trinket_2_buffs||trinket.2.cooldown.remains)", }, ["Frost DK"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230430, ["author"] = "SimC", ["desc"] = "2023-04-30: Trinket logic updated from SimC.\n\n2023-03-27: Minor SimC updates.\n\n2023-03-25: Updates (mainly to Obliteration).\n\n2023-03-21: Fix Breath of Sindragosa.\n\n2023-03-13: Updates for 10.0.7.\n\n2023-02-20: Additional adjustments for leveling and/or taking Obliteration without ERW.\n\n2023-02-19: Adjusted variable.pooling_runes such that you are not pooling when you are already at max runes. It is unclear why this check isn't needed in SimulationCraft, but is required in-game.", ["lists"] = { ["single_target"] = { { ["enabled"] = true, ["action"] = "remorseless_winter", ["description"] = "Single Target Rotation", ["criteria"] = "variable.rw_buffs || variable.adds_remain", }, -- [1] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.stack < 2 & runic_power.deficit < 20 & ! variable.two_hand_check", ["action"] = "frost_strike", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority", ["action"] = "frostscythe", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.up", ["action"] = "obliterate", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.rime.up & talent.icebreaker.rank = 2", ["action"] = "howling_blast", }, -- [5] { ["enabled"] = true, ["criteria"] = "rune < 4 & runic_power.deficit > 25 & talent.obliteration.enabled & talent.breath_of_sindragosa.enabled", ["action"] = "horn_of_winter", }, -- [6] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & ( variable.rp_buffs || runic_power.deficit < 25 || debuff.razorice.stack = 5 & talent.shattering_blade.enabled )", ["action"] = "frost_strike", }, -- [7] { ["enabled"] = true, ["criteria"] = "variable.rime_buffs", ["action"] = "howling_blast", }, -- [8] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & ! death_knight.runeforge.razorice & ( debuff.razorice.stack < 5 || debuff.razorice.remains < gcd.max * 3 )", ["action"] = "glacial_advance", }, -- [9] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runes", ["action"] = "obliterate", }, -- [10] { ["enabled"] = true, ["criteria"] = "rune < 4 & runic_power.deficit > 25 & ( ! talent.breath_of_sindragosa.enabled || cooldown.breath_of_sindragosa.remains > cooldown.horn_of_winter.duration )", ["action"] = "horn_of_winter", }, -- [11] { ["enabled"] = true, ["criteria"] = "runic_power.deficit > 20", ["action"] = "arcane_torrent", }, -- [12] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power", ["action"] = "frost_strike", }, -- [13] }, ["cold_heart"] = { { ["enabled"] = true, ["action"] = "chains_of_ice", ["description"] = "Cold Heart", ["criteria"] = "boss & fight_remains < gcd.max & ( rune < 2 || ! buff.killing_machine.up & ( ! variable.two_hand_check & buff.cold_heart.stack >= 4 || variable.two_hand_check & buff.cold_heart.stack > 8 ) || buff.killing_machine.up & ( ! variable.two_hand_check & buff.cold_heart.stack > 8 || variable.two_hand_check & buff.cold_heart.stack > 10 ) )", }, -- [1] { ["enabled"] = true, ["criteria"] = "! talent.obliteration.enabled & buff.pillar_of_frost.up & buff.cold_heart.stack >= 10 & ( buff.pillar_of_frost.remains < gcd.max * ( 1 + ( talent.frostwyrms_fury.enabled & cooldown.frostwyrms_fury.ready ) ) || buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max )", ["action"] = "chains_of_ice", }, -- [2] { ["enabled"] = true, ["criteria"] = "! talent.obliteration.enabled & death_knight.runeforge.fallen_crusader & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains_expected > 15 & ( buff.cold_heart.stack >= 10 & buff.unholy_strength.up || buff.cold_heart.stack >= 13 )", ["action"] = "chains_of_ice", }, -- [3] { ["enabled"] = true, ["criteria"] = "! talent.obliteration.enabled & ! death_knight.runeforge.fallen_crusader & buff.cold_heart.stack >= 10 & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains_expected > 20", ["action"] = "chains_of_ice", }, -- [4] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & ( buff.cold_heart.stack >= 14 & ( buff.unholy_strength.up || buff.chaos_bane.up ) || buff.cold_heart.stack >= 19 || cooldown.pillar_of_frost.remains_expected < 3 & buff.cold_heart.stack >= 14 )", ["action"] = "chains_of_ice", }, -- [5] }, ["breath_oblit"] = { { ["enabled"] = true, ["action"] = "frostscythe", ["description"] = "Breath & Obliteration Active Rotation", ["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority", }, -- [1] { ["enabled"] = true, ["action"] = "obliterate", ["criteria"] = "buff.killing_machine.up", ["cycle_targets"] = 1, }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.rime.up", ["action"] = "howling_blast", }, -- [3] { ["enabled"] = true, ["criteria"] = "! buff.killing_machine.up", ["action"] = "howling_blast", }, -- [4] { ["enabled"] = true, ["criteria"] = "runic_power.deficit > 25", ["action"] = "horn_of_winter", }, -- [5] { ["enabled"] = true, ["criteria"] = "runic_power.deficit > 20", ["action"] = "arcane_torrent", }, -- [6] }, ["breath"] = { { ["enabled"] = true, ["action"] = "remorseless_winter", ["description"] = "Breath Active Rotation", ["criteria"] = "variable.rw_buffs || variable.adds_remain", }, -- [1] { ["enabled"] = true, ["criteria"] = "variable.rime_buffs & runic_power > ( 45 - talent.rage_of_the_frozen_champion.enabled * 8 )", ["action"] = "howling_blast", }, -- [2] { ["enabled"] = true, ["criteria"] = "rune < 2 & runic_power.deficit > 25", ["action"] = "horn_of_winter", }, -- [3] { ["enabled"] = true, ["action"] = "obliterate", ["criteria"] = "buff.killing_machine.up & ! variable.frostscythe_priority", ["cycle_targets"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority", ["action"] = "frostscythe", }, -- [5] { ["enabled"] = true, ["criteria"] = "variable.frostscythe_priority & runic_power > 45", ["action"] = "frostscythe", }, -- [6] { ["enabled"] = true, ["action"] = "obliterate", ["criteria"] = "runic_power.deficit > 40 || buff.pillar_of_frost.up & runic_power.deficit > 15", ["cycle_targets"] = 1, }, -- [7] { ["enabled"] = true, ["criteria"] = "! death_and_decay.ticking & runic_power < 32 & rune.time_to_2 > runic_power / 16", ["action"] = "death_and_decay", }, -- [8] { ["enabled"] = true, ["criteria"] = "runic_power < 32 & rune.time_to_2 > runic_power / 16", ["action"] = "remorseless_winter", }, -- [9] { ["enabled"] = true, ["criteria"] = "runic_power < 32 & rune.time_to_2 > runic_power / 16", ["action"] = "howling_blast", }, -- [10] { ["enabled"] = true, ["action"] = "obliterate", ["criteria"] = "runic_power.deficit > 25", ["cycle_targets"] = 1, }, -- [11] { ["enabled"] = true, ["criteria"] = "buff.rime.up", ["action"] = "howling_blast", }, -- [12] { ["enabled"] = true, ["criteria"] = "runic_power < 60", ["action"] = "arcane_torrent", }, -- [13] }, ["obliteration"] = { { ["enabled"] = true, ["action"] = "remorseless_winter", ["description"] = "Obliteration Active Rotation", ["criteria"] = "active_enemies > 3", }, -- [1] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & buff.rime.up", ["action"] = "howling_blast", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max", ["action"] = "frost_strike", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & ! death_and_decay.ticking", ["action"] = "glacial_advance", }, -- [4] { ["enabled"] = true, ["action"] = "obliterate", ["criteria"] = "buff.killing_machine.up & ! variable.frostscythe_priority", ["cycle_targets"] = 1, }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.up & variable.frostscythe_priority", ["action"] = "frostscythe", }, -- [6] { ["enabled"] = true, ["criteria"] = "! dot.frost_fever.ticking & ! buff.killing_machine.up", ["action"] = "howling_blast", }, -- [7] { ["enabled"] = true, ["criteria"] = "! death_knight.runeforge.razorice & ! buff.killing_machine.react & ( debuff.razorice.stack < 5 || debuff.razorice.remains < gcd.max * 3 )", ["action"] = "glacial_advance", }, -- [8] { ["enabled"] = true, ["action"] = "frost_strike", ["criteria"] = "! buff.killing_machine.up & ( rune < 2 || variable.rp_buffs || debuff.razorice.stack = 5 & talent.shattering_blade.enabled ) & ! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 )", ["cycle_targets"] = 1, }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.rime.up & ! buff.killing_machine.up", ["action"] = "howling_blast", }, -- [10] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & variable.rp_buffs & ! buff.killing_machine.up & active_enemies >= 2", ["action"] = "glacial_advance", }, -- [11] { ["enabled"] = true, ["action"] = "frost_strike", ["criteria"] = "! buff.killing_machine.up & ! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 )", ["cycle_targets"] = 1, }, -- [12] { ["enabled"] = true, ["criteria"] = "! buff.killing_machine.up & runic_power < 25", ["action"] = "howling_blast", }, -- [13] { ["enabled"] = true, ["criteria"] = "rune < 1 & runic_power < 25", ["action"] = "arcane_torrent", }, -- [14] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & active_enemies >= 2", ["action"] = "glacial_advance", }, -- [15] { ["enabled"] = true, ["action"] = "frost_strike", ["criteria"] = "! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 )", ["cycle_targets"] = 1, }, -- [16] { ["enabled"] = true, ["criteria"] = "buff.rime.up", ["action"] = "howling_blast", }, -- [17] { ["enabled"] = true, ["action"] = "obliterate", ["cycle_targets"] = 1, }, -- [18] }, ["default"] = { { ["action"] = "mind_freeze", ["enabled"] = true, }, -- [1] { ["action"] = "strangulate", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "active_enemies = 1 & ( raid_event.adds.in > 15 || ! raid_event.adds.exists )", ["description"] = "Prevent specified trinkets being used with automatic lines actions.default+=/variable,name=specified_trinket,value=", ["var_name"] = "st_planning", }, -- [3] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "active_enemies >= 2 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.remains > 5 )", ["var_name"] = "adds_remain", }, -- [4] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "buff.rime.up & ( talent.rage_of_the_frozen_champion.enabled || talent.avalanche.enabled || talent.icebreaker.enabled )", ["var_name"] = "rime_buffs", }, -- [5] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "talent.unleashed_frenzy.enabled & ( buff.unleashed_frenzy.remains < gcd.max * 3 || buff.unleashed_frenzy.stack < 3 ) || talent.icy_talons.enabled & ( buff.icy_talons.remains < gcd.max * 3 || buff.icy_talons.stack < 3 )", ["var_name"] = "rp_buffs", }, -- [6] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "talent.pillar_of_frost.enabled & buff.pillar_of_frost.up || ! talent.pillar_of_frost.enabled & buff.empower_rune_weapon.up || ! talent.pillar_of_frost.enabled & ! talent.empower_rune_weapon.enabled", ["var_name"] = "cooldown_check", }, -- [7] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "talent.frostscythe.enabled & ( buff.killing_machine.up || active_enemies >= 3 ) & ( ! talent.improved_obliterate.enabled & ! talent.frigid_executioner.enabled & ! talent.frostreaper.enabled & ! talent.might_of_the_frozen_wastes.enabled || ! talent.cleaving_strikes.enabled || talent.cleaving_strikes.enabled & ( active_enemies > 6 || ! death_and_decay.ticking & active_enemies > 3 ) )", ["var_name"] = "frostscythe_priority", }, -- [8] { ["enabled"] = true, ["op"] = "setif", ["description"] = "Formulaic approach to determine the time before these abilities come off cooldown that the simulation should star to pool resources. Capped at 15s in the run_action_list call.", ["criteria"] = "runic_power < 35 & rune < 2 & cooldown.pillar_of_frost.remains_expected < 10", ["value"] = "( ( cooldown.pillar_of_frost.remains_expected + 1 ) / gcd.max ) / ( ( rune + 3 ) * ( runic_power + 5 ) ) * 100", ["action"] = "variable", ["value_else"] = "3", ["var_name"] = "oblit_pooling_time", }, -- [9] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "breath_pooling_time", ["criteria"] = "runic_power.deficit > 10 & cooldown.breath_of_sindragosa.remains < 10", ["value_else"] = "3", ["value"] = "( ( cooldown.breath_of_sindragosa.remains + 1 ) / gcd.max ) / ( ( rune + 1 ) * ( runic_power + 20 ) ) * 100", }, -- [10] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "rune < 4 & talent.obliteration.enabled & cooldown.pillar_of_frost.remains_expected < variable.oblit_pooling_time", ["var_name"] = "pooling_runes", }, -- [11] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "talent.breath_of_sindragosa.enabled & cooldown.breath_of_sindragosa.remains < variable.breath_pooling_time || talent.obliteration.enabled & runic_power < 35 & cooldown.pillar_of_frost.remains_expected < variable.oblit_pooling_time", ["var_name"] = "pooling_runic_power", }, -- [12] { ["enabled"] = true, ["action"] = "antimagic_shell", ["description"] = "Use Power Infusion while Pillar of Frost is up, as well as Breath of Sindragosa or on cooldown if Pillar of Frost and Breath of Sindragosa are not talented", ["criteria"] = "runic_power.deficit > 40", }, -- [13] { ["enabled"] = true, ["criteria"] = "death_knight.amz_absorb_percent > 0 & runic_power.deficit > 70 & talent.assimilation.enabled & ( buff.breath_of_sindragosa.up & cooldown.empower_rune_weapon.charges < 2 || ! talent.breath_of_sindragosa.enabled & ! buff.pillar_of_frost.up )", ["action"] = "antimagic_zone", }, -- [14] { ["enabled"] = true, ["action"] = "howling_blast", ["description"] = "Maintain Frost Fever, Icy Talons and Unleashed Frenzy", ["criteria"] = "! dot.frost_fever.ticking & active_enemies >= 2 & ( ! talent.obliteration.enabled || talent.obliteration.enabled & ( ! buff.pillar_of_frost.up || buff.pillar_of_frost.up & ! buff.killing_machine.up ) )", }, -- [15] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 & variable.rp_buffs & talent.obliteration.enabled & talent.breath_of_sindragosa.enabled & ! buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time", ["action"] = "glacial_advance", }, -- [16] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 & variable.rp_buffs & talent.breath_of_sindragosa.enabled & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time", ["action"] = "glacial_advance", }, -- [17] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 & variable.rp_buffs & ! talent.breath_of_sindragosa.enabled & talent.obliteration.enabled & ! buff.pillar_of_frost.up", ["action"] = "glacial_advance", }, -- [18] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & variable.rp_buffs & talent.obliteration.enabled & talent.breath_of_sindragosa.enabled & ! buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time", ["action"] = "frost_strike", }, -- [19] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & variable.rp_buffs & talent.breath_of_sindragosa.enabled & ! buff.breath_of_sindragosa.up & cooldown.breath_of_sindragosa.remains > variable.breath_pooling_time", ["action"] = "frost_strike", }, -- [20] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & variable.rp_buffs & ! talent.breath_of_sindragosa.enabled & talent.obliteration.enabled & ! buff.pillar_of_frost.up", ["action"] = "frost_strike", }, -- [21] { ["enabled"] = true, ["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & variable.rw_buffs", ["action"] = "remorseless_winter", }, -- [22] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & active_enemies >= 3 & variable.adds_remain", ["action"] = "remorseless_winter", }, -- [23] { ["enabled"] = true, ["description"] = "Choose Action list to run", ["action"] = "call_action_list", ["list_name"] = "trinkets", }, -- [24] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "cooldowns", }, -- [25] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "racials", }, -- [26] { ["enabled"] = true, ["criteria"] = "talent.cold_heart.enabled & ( ! buff.killing_machine.up || talent.breath_of_sindragosa.enabled ) & ( ( debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice & ! talent.glacial_advance.enabled & ! talent.avalanche.enabled ) || boss & fight_remains <= gcd.max )", ["action"] = "call_action_list", ["list_name"] = "cold_heart", }, -- [27] { ["enabled"] = true, ["criteria"] = "buff.breath_of_sindragosa.up & talent.obliteration.enabled & buff.pillar_of_frost.up", ["action"] = "run_action_list", ["list_name"] = "breath_oblit", }, -- [28] { ["enabled"] = true, ["criteria"] = "buff.breath_of_sindragosa.up & ( ! talent.obliteration.enabled || talent.obliteration.enabled & ! buff.pillar_of_frost.up )", ["action"] = "run_action_list", ["list_name"] = "breath", }, -- [29] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up", ["action"] = "run_action_list", ["list_name"] = "obliteration", }, -- [30] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2", ["action"] = "call_action_list", ["list_name"] = "aoe", }, -- [31] { ["enabled"] = true, ["criteria"] = "active_enemies = 1", ["action"] = "call_action_list", ["list_name"] = "single_target", }, -- [32] }, ["precombat"] = { { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon", ["var_name"] = "trinket_1_exclude", }, -- [1] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon", ["var_name"] = "trinket_2_exclude", }, -- [2] { ["enabled"] = true, ["op"] = "setif", ["description"] = "Evaluates a trinkets cooldown, divided by pillar of frost, empower rune weapon, or breath of sindragosa's cooldown. If it's value has no remainder return 1, else return 0.5.", ["criteria"] = "trinket.t1.has_use_buff & ( talent.pillar_of_frost.enabled & ! talent.breath_of_sindragosa.enabled & ( trinket.t1.cooldown.duration % cooldown.pillar_of_frost.duration = 0 ) || talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.duration % trinket.t1.cooldown.duration = 0 ) )", ["value"] = "1", ["action"] = "variable", ["value_else"] = "0.5", ["var_name"] = "trinket_1_sync", }, -- [3] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "trinket_2_sync", ["criteria"] = "trinket.t2.has_use_buff & ( talent.pillar_of_frost.enabled & ! talent.breath_of_sindragosa.enabled & ( trinket.t2.cooldown.duration % cooldown.pillar_of_frost.duration = 0 ) || talent.breath_of_sindragosa.enabled & ( cooldown.breath_of_sindragosa.duration % trinket.t2.cooldown.duration = 0 ) )", ["value_else"] = "0.5", ["value"] = "1", }, -- [4] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff & ! variable.trinket_1_exclude )", ["var_name"] = "trinket_1_buffs", }, -- [5] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff & ! variable.trinket_2_exclude )", ["var_name"] = "trinket_2_buffs", }, -- [6] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "trinket_priority", ["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )", ["value_else"] = "1", ["value"] = "2", }, -- [7] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t1.is.algethar_puzzle_box", ["var_name"] = "trinket_1_manual", }, -- [8] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "trinket.t2.is.algethar_puzzle_box", ["var_name"] = "trinket_2_manual", }, -- [9] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "talent.gathering_storm.enabled || talent.everfrost.enabled", ["var_name"] = "rw_buffs", }, -- [10] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "main_hand.2h", ["var_name"] = "two_hand_check", }, -- [11] }, ["racials"] = { { ["enabled"] = true, ["action"] = "blood_fury", ["description"] = "Racial Abilities", ["criteria"] = "variable.cooldown_check", }, -- [1] { ["enabled"] = true, ["criteria"] = "variable.cooldown_check", ["action"] = "berserking", }, -- [2] { ["enabled"] = true, ["criteria"] = "variable.cooldown_check", ["action"] = "arcane_pulse", }, -- [3] { ["enabled"] = true, ["criteria"] = "variable.cooldown_check", ["action"] = "lights_judgment", }, -- [4] { ["enabled"] = true, ["criteria"] = "variable.cooldown_check", ["action"] = "ancestral_call", }, -- [5] { ["enabled"] = true, ["criteria"] = "variable.cooldown_check", ["action"] = "fireblood", }, -- [6] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & buff.unholy_strength.up", ["action"] = "bag_of_tricks", }, -- [7] { ["enabled"] = true, ["criteria"] = "! talent.obliteration.enabled & buff.pillar_of_frost.up & ( buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max * 3 || buff.pillar_of_frost.remains < gcd.max * 3 )", ["action"] = "bag_of_tricks", }, -- [8] }, ["trinkets"] = { { ["enabled"] = true, ["name"] = "algethar_puzzle_box", ["use_off_gcd"] = 1, ["action"] = "algethar_puzzle_box", ["criteria"] = "! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains < 2 & ( ! talent.breath_of_sindragosa.enabled || runic_power > 60 & ( buff.breath_of_sindragosa.up || cooldown.breath_of_sindragosa.remains < 2 ) )", }, -- [1] { ["enabled"] = true, ["action"] = "trinket1", ["slot"] = "trinket1", ["use_off_gcd"] = 1, ["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! buff.pillar_of_frost.up & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & ( buff.breath_of_sindragosa.up || buff.pillar_of_frost.up ) & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || boss & trinket.t1.buff_duration >= fight_remains", ["description"] = "The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.", }, -- [2] { ["enabled"] = true, ["action"] = "trinket2", ["slot"] = "trinket2", ["use_off_gcd"] = 1, ["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! buff.pillar_of_frost.up & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & ( buff.breath_of_sindragosa.up || buff.pillar_of_frost.up ) & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || boss & trinket.t2.buff_duration >= fight_remains", }, -- [3] { ["enabled"] = true, ["action"] = "trinket1", ["slot"] = "trinket1", ["use_off_gcd"] = 1, ["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) || ( trinket.t1.cast_time > 0 & ! buff.pillar_of_frost.up || ! trinket.t1.cast_time > 0 ) || talent.pillar_of_frost.enabled & cooldown.pillar_of_frost.remains_expected > 20 || ! talent.pillar_of_frost.enabled )", ["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.", }, -- [4] { ["enabled"] = true, ["action"] = "trinket2", ["slot"] = "trinket2", ["use_off_gcd"] = 1, ["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs ) || ( trinket.t2.cast_time > 0 & ! buff.pillar_of_frost.up || ! trinket.t2.cast_time > 0 ) || talent.pillar_of_frost.enabled & cooldown.pillar_of_frost.remains_expected > 20 || ! talent.pillar_of_frost.enabled )", }, -- [5] { ["enabled"] = true, ["action"] = "use_items", ["criteria"] = "( ! variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( ! variable.trinket_2_buffs || trinket.t2.cooldown.remains )", ["use_off_gcd"] = 1, }, -- [6] }, ["cooldowns"] = { { ["enabled"] = true, ["action"] = "potion", ["description"] = "Cooldowns", ["criteria"] = "variable.cooldown_check || boss & fight_remains < 25", }, -- [1] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & ! buff.empower_rune_weapon.up & rune < 6 & ( cooldown.pillar_of_frost.remains_expected < 7 & ( variable.adds_remain || variable.st_planning ) || buff.pillar_of_frost.up ) || boss & fight_remains < 20", ["action"] = "empower_rune_weapon", }, -- [2] { ["enabled"] = true, ["action"] = "empower_rune_weapon", ["criteria"] = "buff.breath_of_sindragosa.up & talent.breath_of_sindragosa.enabled & ! buff.empower_rune_weapon.up & ( runic_power < 70 & rune < 3 || time < 10 )", ["use_off_gcd"] = 1, }, -- [3] { ["enabled"] = true, ["action"] = "empower_rune_weapon", ["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & ! buff.empower_rune_weapon.up & rune < 5 & ( cooldown.pillar_of_frost.remains_expected < 7 || buff.pillar_of_frost.up || ! talent.pillar_of_frost.enabled )", ["use_off_gcd"] = 1, }, -- [4] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains < 3 & ( variable.adds_remain || variable.st_planning ) || boss & fight_remains < 12", ["action"] = "abomination_limb", }, -- [5] { ["enabled"] = true, ["criteria"] = "talent.breath_of_sindragosa.enabled & ( variable.adds_remain || variable.st_planning )", ["action"] = "abomination_limb", }, -- [6] { ["enabled"] = true, ["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & ( variable.adds_remain || variable.st_planning )", ["action"] = "abomination_limb", }, -- [7] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 & ( ! death_and_decay.ticking & talent.cleaving_strikes.enabled || ! talent.cleaving_strikes.enabled || active_enemies <= 5 )", ["action"] = "chill_streak", }, -- [8] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & ( variable.adds_remain || variable.st_planning ) & ( ! talent.empower_rune_weapon.enabled || buff.empower_rune_weapon.up || cooldown.empower_rune_weapon.remains ) || boss & fight_remains < 12", ["action"] = "pillar_of_frost", }, -- [9] { ["enabled"] = true, ["criteria"] = "talent.breath_of_sindragosa.enabled & ( variable.adds_remain || variable.st_planning ) & ( ! talent.icecap.enabled & ( runic_power > 70 || cooldown.breath_of_sindragosa.remains > 40 ) || talent.icecap.enabled & ( cooldown.breath_of_sindragosa.remains > 10 || buff.breath_of_sindragosa.up ) )", ["action"] = "pillar_of_frost", }, -- [10] { ["enabled"] = true, ["criteria"] = "talent.icecap.enabled & ! talent.obliteration.enabled & ! talent.breath_of_sindragosa.enabled & ( variable.adds_remain || variable.st_planning )", ["action"] = "pillar_of_frost", }, -- [11] { ["enabled"] = true, ["criteria"] = "! buff.breath_of_sindragosa.up & runic_power > 60 & ( variable.adds_remain || variable.st_planning ) || boss & fight_remains < 30", ["action"] = "breath_of_sindragosa", }, -- [12] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.remains < gcd.max * 2 & buff.pillar_of_frost.up & ! talent.obliteration.enabled || ! talent.pillar_of_frost.enabled ) & ( ! raid_event.adds.exists || ( raid_event.adds.in > 15 + raid_event.adds.duration || talent.absolute_zero.enabled & raid_event.adds.in > 15 + raid_event.adds.duration ) ) || boss & fight_remains < 3", ["action"] = "frostwyrms_fury", }, -- [13] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.up || raid_event.adds.exists & raid_event.adds.up & raid_event.adds.in > cooldown.pillar_of_frost.remains_expected - raid_event.adds.in - raid_event.adds.duration ) & ( buff.pillar_of_frost.remains < gcd.max * 2 || raid_event.adds.exists & raid_event.adds.remains < gcd.max * 2 )", ["action"] = "frostwyrms_fury", }, -- [14] { ["enabled"] = true, ["criteria"] = "talent.obliteration.enabled & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.up & ! variable.two_hand_check || ! buff.pillar_of_frost.up & variable.two_hand_check & cooldown.pillar_of_frost.remains || ! talent.pillar_of_frost.enabled ) & ( ( buff.pillar_of_frost.remains < gcd.max || buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max ) & ( debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice & ! talent.glacial_advance.enabled ) )", ["action"] = "frostwyrms_fury", }, -- [15] { ["action"] = "raise_dead", ["enabled"] = true, }, -- [16] { ["enabled"] = true, ["criteria"] = "fight_remains > 5 & target.time_to_pct_35 < 5 & active_enemies <= 2 & ( talent.obliteration.enabled & ( buff.pillar_of_frost.up & ! buff.killing_machine.up || ! buff.pillar_of_frost.up ) || talent.breath_of_sindragosa.enabled & ( buff.breath_of_sindragosa.up & runic_power > 40 || ! buff.breath_of_sindragosa.up ) || ! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled )", ["action"] = "soul_reaper", }, -- [17] { ["enabled"] = true, ["criteria"] = "! talent.glacial_advance.enabled & ! buff.breath_of_sindragosa.up & pet.ghoul.remains < gcd.max * 2 & active_enemies > 3", ["action"] = "sacrificial_pact", }, -- [18] { ["enabled"] = true, ["criteria"] = "! death_and_decay.ticking & variable.adds_remain & ( buff.pillar_of_frost.up & buff.pillar_of_frost.remains > 5 & buff.pillar_of_frost.remains < 11 || ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains > 10 || boss & fight_remains < 11 ) & ( active_enemies > 5 || talent.cleaving_strikes.enabled & active_enemies >= 2 )", ["action"] = "any_dnd", }, -- [19] }, ["aoe"] = { { ["enabled"] = true, ["description"] = "AoE Action List", ["action"] = "remorseless_winter", }, -- [1] { ["enabled"] = true, ["criteria"] = "buff.rime.up || ! dot.frost_fever.ticking", ["action"] = "howling_blast", }, -- [2] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & variable.rp_buffs", ["action"] = "glacial_advance", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.killing_machine.up & talent.cleaving_strikes.enabled & death_and_decay.ticking & ! variable.frostscythe_priority", ["action"] = "obliterate", }, -- [4] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power", ["action"] = "glacial_advance", }, -- [5] { ["enabled"] = true, ["criteria"] = "variable.frostscythe_priority", ["action"] = "frostscythe", }, -- [6] { ["enabled"] = true, ["criteria"] = "! variable.frostscythe_priority", ["action"] = "obliterate", }, -- [7] { ["enabled"] = true, ["criteria"] = "! variable.pooling_runic_power & ! talent.glacial_advance.enabled", ["action"] = "frost_strike", }, -- [8] { ["enabled"] = true, ["criteria"] = "rune < 2 & runic_power.deficit > 25", ["action"] = "horn_of_winter", }, -- [9] { ["enabled"] = true, ["criteria"] = "runic_power.deficit > 25", ["action"] = "arcane_torrent", }, -- [10] }, }, ["version"] = 20230430, ["warnings"] = "The import for 'single_target' required some automated changes.\nLine 6: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 6: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 7: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 11: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\n\nThe import for 'cold_heart' required some automated changes.\nLine 2: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 2: Converted 'talent.frostwyrms_fury' to 'talent.frostwyrms_fury.enabled' (1x).\nLine 3: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 4: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 5: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'breath' required some automated changes.\nLine 2: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 8: Converted operations in '!death_and_decay.ticking&runic_power<32&rune.time_to_2>runic_power%16' to '!death_and_decay.ticking&runic_power<32&rune.time_to_2>runic_power/16'.\nLine 9: Converted operations in 'runic_power<32&rune.time_to_2>runic_power%16' to 'runic_power<32&rune.time_to_2>runic_power/16'.\nLine 10: Converted operations in 'runic_power<32&rune.time_to_2>runic_power%16' to 'runic_power<32&rune.time_to_2>runic_power/16'.\n\nThe import for 'racials' required some automated changes.\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 8: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 5: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 5: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 5: Converted 'talent.icebreaker' to 'talent.icebreaker.enabled' (1x).\nLine 6: Converted 'talent.unleashed_frenzy' to 'talent.unleashed_frenzy.enabled' (1x).\nLine 6: Converted 'talent.icy_talons' to 'talent.icy_talons.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.empower_rune_weapon' to 'talent.empower_rune_weapon.enabled' (1x).\nLine 8: Converted 'talent.frostscythe' to 'talent.frostscythe.enabled' (1x).\nLine 8: Converted 'talent.improved_obliterate' to 'talent.improved_obliterate.enabled' (1x).\nLine 8: Converted 'talent.frigid_executioner' to 'talent.frigid_executioner.enabled' (1x).\nLine 8: Converted 'talent.frostreaper' to 'talent.frostreaper.enabled' (1x).\nLine 8: Converted 'talent.might_of_the_frozen_wastes' to 'talent.might_of_the_frozen_wastes.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 9: Converted operations in '((cooldown.pillar_of_frost.remains_expected+1)%gcd.max)%((rune+3)*(runic_power+5))*100' to '((cooldown.pillar_of_frost.remains_expected+1)/gcd.max)/((rune+3)*(runic_power+5))*100'.\nLine 10: Converted operations in '((cooldown.breath_of_sindragosa.remains+1)%gcd.max)%((rune+1)*(runic_power+20))*100' to '((cooldown.breath_of_sindragosa.remains+1)/gcd.max)/((rune+1)*(runic_power+20))*100'.\nLine 11: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 12: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 12: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 14: Converted 'talent.assimilation' to 'talent.assimilation.enabled' (1x).\nLine 14: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 15: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 15: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 16: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 16: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 18: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 18: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 19: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 19: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 20: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 21: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 21: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 22: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 22: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 23: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 27: Converted 'talent.cold_heart' to 'talent.cold_heart.enabled' (1x).\nLine 27: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 27: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 27: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 28: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 29: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 29: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 30: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 1: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 2: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 2: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 3: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted operations in 'trinket.t1.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t1.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%%trinket.t1.cooldown.duration=0))' to 'trinket.t1.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t1.cooldown.duration%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%trinket.t1.cooldown.duration=0))'.\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 4: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted operations in 'trinket.t2.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t2.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%%trinket.t2.cooldown.duration=0))' to 'trinket.t2.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t2.cooldown.duration%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%trinket.t2.cooldown.duration=0))'.\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 5: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 5: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 5: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 5: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 5: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 6: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 6: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 6: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 6: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 6: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 7: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 7: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 7: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 7: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 7: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 7: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration%trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration%trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))' to '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration/trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration/trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))'.\nLine 8: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 9: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 10: Converted 'talent.gathering_storm' to 'talent.gathering_storm.enabled' (1x).\nLine 10: Converted 'talent.everfrost' to 'talent.everfrost.enabled' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'cooldowns' required some automated changes.\nLine 2: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 3: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 4: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 5: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 6: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 7: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 8: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 9: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 9: Converted 'talent.empower_rune_weapon' to 'talent.empower_rune_weapon.enabled' (1x).\nLine 10: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 10: Converted 'talent.icecap' to 'talent.icecap.enabled' (1x).\nLine 10: Converted 'talent.icecap' to 'talent.icecap.enabled' (1x).\nLine 11: Converted 'talent.icecap' to 'talent.icecap.enabled' (1x).\nLine 11: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 11: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 13: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 13: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 13: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 13: Converted 'talent.absolute_zero' to 'talent.absolute_zero.enabled' (1x).\nLine 14: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 15: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 15: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 15: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 15: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 17: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 18: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 19: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 4: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 5: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\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.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\n\nThe import for 'obliteration' required some automated changes.\nLine 9: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 9: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 12: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 16: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 4: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 8: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\n\nImported 11 action lists.\n", ["profile"] = "actions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\n# Evaluates a trinkets cooldown, divided by pillar of frost, empower rune weapon, or breath of sindragosa's cooldown. If it's value has no remainder return 1, else return 0.5.\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(talent.pillar_of_frost&!talent.breath_of_sindragosa&(trinket.1.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.duration%%trinket.1.cooldown.duration=0))\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(talent.pillar_of_frost&!talent.breath_of_sindragosa&(trinket.2.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa&(cooldown.breath_of_sindragosa.duration%%trinket.2.cooldown.duration=0))\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_buff.strength||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit&!variable.trinket_1_exclude)\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_buff.strength||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit&!variable.trinket_2_exclude)\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box\nactions.precombat+=/variable,name=rw_buffs,value=talent.gathering_storm||talent.everfrost\nactions.precombat+=/variable,name=two_hand_check,value=main_hand.2h\n\nactions+=/mind_freeze\nactions+=/strangulate\n# Prevent specified trinkets being used with automatic lines actions+=/variable,name=specified_trinket,value=\nactions+=/variable,name=st_planning,value=active_enemies=1&(raid_event.adds.in>15||!raid_event.adds.exists)\nactions+=/variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.remains>5)\nactions+=/variable,name=rime_buffs,value=buff.rime.up&(talent.rage_of_the_frozen_champion||talent.avalanche||talent.icebreaker)\nactions+=/variable,name=rp_buffs,value=talent.unleashed_frenzy&(buff.unleashed_frenzy.remains=3)&(!talent.improved_obliterate&!talent.frigid_executioner&!talent.frostreaper&!talent.might_of_the_frozen_wastes||!talent.cleaving_strikes||talent.cleaving_strikes&(active_enemies>6||!death_and_decay.ticking&active_enemies>3))\n# Formulaic approach to determine the time before these abilities come off cooldown that the simulation should star to pool resources. Capped at 15s in the run_action_list call.\nactions+=/variable,name=oblit_pooling_time,op=setif,value=((cooldown.pillar_of_frost.remains_expected+1)%gcd.max)%((rune+3)*(runic_power+5))*100,value_else=3,condition=runic_power<35&rune<2&cooldown.pillar_of_frost.remains_expected<10\nactions+=/variable,name=breath_pooling_time,op=setif,value=((cooldown.breath_of_sindragosa.remains+1)%gcd.max)%((rune+1)*(runic_power+20))*100,value_else=3,condition=runic_power.deficit>10&cooldown.breath_of_sindragosa.remains<10\nactions+=/variable,name=pooling_runes,value=rune<4&talent.obliteration&cooldown.pillar_of_frost.remains_expectedPower Infusion while Pillar of Frost is up, as well as Breath of Sindragosa or on cooldown if Pillar of Frost and Breath of Sindragosa are not talented\n## actions+=/invoke_external_buff,name=power_infusion,if=(buff.pillar_of_frost.up||!talent.pillar_of_frost)&(talent.obliteration||talent.breath_of_sindragosa&buff.breath_of_sindragosa.up||!talent.breath_of_sindragosa&!talent.obliteration)\nactions+=/antimagic_shell,if=runic_power.deficit>40\nactions+=/antimagic_zone,if=death_knight.amz_absorb_percent>0&runic_power.deficit>70&talent.assimilation&(buff.breath_of_sindragosa.up&cooldown.empower_rune_weapon.charges<2||!talent.breath_of_sindragosa&!buff.pillar_of_frost.up)\n# Maintain Frost Fever, Icy Talons and Unleashed Frenzy\nactions+=/howling_blast,if=!dot.frost_fever.ticking&active_enemies>=2&(!talent.obliteration||talent.obliteration&(!buff.pillar_of_frost.up||buff.pillar_of_frost.up&!buff.killing_machine.up))\nactions+=/glacial_advance,if=active_enemies>=2&variable.rp_buffs&talent.obliteration&talent.breath_of_sindragosa&!buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/glacial_advance,if=active_enemies>=2&variable.rp_buffs&talent.breath_of_sindragosa&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/glacial_advance,if=active_enemies>=2&variable.rp_buffs&!talent.breath_of_sindragosa&talent.obliteration&!buff.pillar_of_frost.up\nactions+=/frost_strike,if=active_enemies=1&variable.rp_buffs&talent.obliteration&talent.breath_of_sindragosa&!buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/frost_strike,if=active_enemies=1&variable.rp_buffs&talent.breath_of_sindragosa&!buff.breath_of_sindragosa.up&cooldown.breath_of_sindragosa.remains>variable.breath_pooling_time\nactions+=/frost_strike,if=active_enemies=1&variable.rp_buffs&!talent.breath_of_sindragosa&talent.obliteration&!buff.pillar_of_frost.up\nactions+=/remorseless_winter,if=!talent.breath_of_sindragosa&!talent.obliteration&variable.rw_buffs\nactions+=/remorseless_winter,if=talent.obliteration&active_enemies>=3&variable.adds_remain\n# Choose Action list to run\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=racials\nactions+=/call_action_list,name=cold_heart,if=talent.cold_heart&(!buff.killing_machine.up||talent.breath_of_sindragosa)&((debuff.razorice.stack=5||!death_knight.runeforge.razorice&!talent.glacial_advance&!talent.avalanche)||boss&fight_remains<=gcd.max)\nactions+=/run_action_list,name=breath_oblit,if=buff.breath_of_sindragosa.up&talent.obliteration&buff.pillar_of_frost.up\nactions+=/run_action_list,name=breath,if=buff.breath_of_sindragosa.up&(!talent.obliteration||talent.obliteration&!buff.pillar_of_frost.up)\nactions+=/run_action_list,name=obliteration,if=talent.obliteration&buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up\nactions+=/call_action_list,name=aoe,if=active_enemies>=2\nactions+=/call_action_list,name=single_target,if=active_enemies=1\n\n# AoE Action List\nactions.aoe+=/remorseless_winter\nactions.aoe+=/howling_blast,if=buff.rime.up||!dot.frost_fever.ticking\nactions.aoe+=/glacial_advance,if=!variable.pooling_runic_power&variable.rp_buffs\nactions.aoe+=/obliterate,if=buff.killing_machine.up&talent.cleaving_strikes&death_and_decay.ticking&!variable.frostscythe_priority\nactions.aoe+=/glacial_advance,if=!variable.pooling_runic_power\nactions.aoe+=/frostscythe,if=variable.frostscythe_priority\nactions.aoe+=/obliterate,if=!variable.frostscythe_priority\nactions.aoe+=/frost_strike,if=!variable.pooling_runic_power&!talent.glacial_advance\nactions.aoe+=/horn_of_winter,if=rune<2&runic_power.deficit>25\nactions.aoe+=/arcane_torrent,if=runic_power.deficit>25\n\n# Breath Active Rotation\nactions.breath+=/remorseless_winter,if=variable.rw_buffs||variable.adds_remain\nactions.breath+=/howling_blast,if=variable.rime_buffs&runic_power>(45-talent.rage_of_the_frozen_champion*8)\nactions.breath+=/horn_of_winter,if=rune<2&runic_power.deficit>25\nactions.breath+=/obliterate,cycle_targets=1,if=buff.killing_machine.up&!variable.frostscythe_priority\nactions.breath+=/frostscythe,if=buff.killing_machine.up&variable.frostscythe_priority\nactions.breath+=/frostscythe,if=variable.frostscythe_priority&runic_power>45\nactions.breath+=/obliterate,cycle_targets=1,if=runic_power.deficit>40||buff.pillar_of_frost.up&runic_power.deficit>15\nactions.breath+=/death_and_decay,if=!death_and_decay.ticking&runic_power<32&rune.time_to_2>runic_power%16\nactions.breath+=/remorseless_winter,if=runic_power<32&rune.time_to_2>runic_power%16\nactions.breath+=/howling_blast,if=runic_power<32&rune.time_to_2>runic_power%16\nactions.breath+=/obliterate,cycle_targets=1,if=runic_power.deficit>25\nactions.breath+=/howling_blast,if=buff.rime.up\nactions.breath+=/arcane_torrent,if=runic_power<60\n\n# Breath & Obliteration Active Rotation\nactions.breath_oblit+=/frostscythe,if=buff.killing_machine.up&variable.frostscythe_priority\nactions.breath_oblit+=/obliterate,cycle_targets=1,if=buff.killing_machine.up\nactions.breath_oblit+=/howling_blast,if=buff.rime.up\nactions.breath_oblit+=/howling_blast,if=!buff.killing_machine.up\nactions.breath_oblit+=/horn_of_winter,if=runic_power.deficit>25\nactions.breath_oblit+=/arcane_torrent,if=runic_power.deficit>20\n\n# Cold Heart\nactions.cold_heart+=/chains_of_ice,if=boss&fight_remains=4||variable.two_hand_check&buff.cold_heart.stack>8)||buff.killing_machine.up&(!variable.two_hand_check&buff.cold_heart.stack>8||variable.two_hand_check&buff.cold_heart.stack>10))\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&buff.pillar_of_frost.up&buff.cold_heart.stack>=10&(buff.pillar_of_frost.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_expected>20\nactions.cold_heart+=/chains_of_ice,if=talent.obliteration&!buff.pillar_of_frost.up&(buff.cold_heart.stack>=14&(buff.unholy_strength.up||buff.chaos_bane.up)||buff.cold_heart.stack>=19||cooldown.pillar_of_frost.remains_expected<3&buff.cold_heart.stack>=14)\n\n# Cooldowns\nactions.cooldowns+=/potion,if=variable.cooldown_check||boss&fight_remains<25\nactions.cooldowns+=/empower_rune_weapon,if=talent.obliteration&!buff.empower_rune_weapon.up&rune<6&(cooldown.pillar_of_frost.remains_expected<7&(variable.adds_remain||variable.st_planning)||buff.pillar_of_frost.up)||boss&fight_remains<20\nactions.cooldowns+=/empower_rune_weapon,use_off_gcd=1,if=buff.breath_of_sindragosa.up&talent.breath_of_sindragosa&!buff.empower_rune_weapon.up&(runic_power<70&rune<3||time<10)\nactions.cooldowns+=/empower_rune_weapon,use_off_gcd=1,if=!talent.breath_of_sindragosa&!talent.obliteration&!buff.empower_rune_weapon.up&rune<5&(cooldown.pillar_of_frost.remains_expected<7||buff.pillar_of_frost.up||!talent.pillar_of_frost)\nactions.cooldowns+=/abomination_limb,if=talent.obliteration&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains<3&(variable.adds_remain||variable.st_planning)||boss&fight_remains<12\nactions.cooldowns+=/abomination_limb,if=talent.breath_of_sindragosa&(variable.adds_remain||variable.st_planning)\nactions.cooldowns+=/abomination_limb,if=!talent.breath_of_sindragosa&!talent.obliteration&(variable.adds_remain||variable.st_planning)\nactions.cooldowns+=/chill_streak,if=active_enemies>=2&(!death_and_decay.ticking&talent.cleaving_strikes||!talent.cleaving_strikes||active_enemies<=5)\nactions.cooldowns+=/pillar_of_frost,if=talent.obliteration&(variable.adds_remain||variable.st_planning)&(!talent.empower_rune_weapon||buff.empower_rune_weapon.up||cooldown.empower_rune_weapon.remains)||boss&fight_remains<12\nactions.cooldowns+=/pillar_of_frost,if=talent.breath_of_sindragosa&(variable.adds_remain||variable.st_planning)&(!talent.icecap&(runic_power>70||cooldown.breath_of_sindragosa.remains>40)||talent.icecap&(cooldown.breath_of_sindragosa.remains>10||buff.breath_of_sindragosa.up))\nactions.cooldowns+=/pillar_of_frost,if=talent.icecap&!talent.obliteration&!talent.breath_of_sindragosa&(variable.adds_remain||variable.st_planning)\nactions.cooldowns+=/breath_of_sindragosa,if=!buff.breath_of_sindragosa.up&runic_power>60&(variable.adds_remain||variable.st_planning)||boss&fight_remains<30\nactions.cooldowns+=/frostwyrms_fury,if=active_enemies=1&(talent.pillar_of_frost&buff.pillar_of_frost.remains15+raid_event.adds.duration||talent.absolute_zero&raid_event.adds.in>15+raid_event.adds.duration))||boss&fight_remains<3\nactions.cooldowns+=/frostwyrms_fury,if=active_enemies>=2&(talent.pillar_of_frost&buff.pillar_of_frost.up||raid_event.adds.exists&raid_event.adds.up&raid_event.adds.in>cooldown.pillar_of_frost.remains_expected-raid_event.adds.in-raid_event.adds.duration)&(buff.pillar_of_frost.remains5&target.time_to_pct_35<5&active_enemies<=2&(talent.obliteration&(buff.pillar_of_frost.up&!buff.killing_machine.up||!buff.pillar_of_frost.up)||talent.breath_of_sindragosa&(buff.breath_of_sindragosa.up&runic_power>40||!buff.breath_of_sindragosa.up)||!talent.breath_of_sindragosa&!talent.obliteration)\nactions.cooldowns+=/sacrificial_pact,if=!talent.glacial_advance&!buff.breath_of_sindragosa.up&pet.ghoul.remains3\nactions.cooldowns+=/any_dnd,if=!death_and_decay.ticking&variable.adds_remain&(buff.pillar_of_frost.up&buff.pillar_of_frost.remains>5&buff.pillar_of_frost.remains<11||!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains>10||boss&fight_remains<11)&(active_enemies>5||talent.cleaving_strikes&active_enemies>=2)\n\n# Obliteration Active Rotation\nactions.obliteration+=/remorseless_winter,if=active_enemies>3\nactions.obliteration+=/howling_blast,if=buff.killing_machine.stack<2&buff.pillar_of_frost.remains=2\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!buff.killing_machine.up&!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1)\nactions.obliteration+=/howling_blast,if=!buff.killing_machine.up&runic_power<25\nactions.obliteration+=/arcane_torrent,if=rune<1&runic_power<25\nactions.obliteration+=/glacial_advance,if=!variable.pooling_runic_power&active_enemies>=2\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1)\nactions.obliteration+=/howling_blast,if=buff.rime.up\nactions.obliteration+=/obliterate,cycle_targets=1\n\n# Racial Abilities\nactions.racials+=/blood_fury,if=variable.cooldown_check\nactions.racials+=/berserking,if=variable.cooldown_check\nactions.racials+=/arcane_pulse,if=variable.cooldown_check\nactions.racials+=/lights_judgment,if=variable.cooldown_check\nactions.racials+=/ancestral_call,if=variable.cooldown_check\nactions.racials+=/fireblood,if=variable.cooldown_check\nactions.racials+=/bag_of_tricks,if=talent.obliteration&!buff.pillar_of_frost.up&buff.unholy_strength.up\nactions.racials+=/bag_of_tricks,if=!talent.obliteration&buff.pillar_of_frost.up&(buff.unholy_strength.up&buff.unholy_strength.remains25&talent.obliteration&talent.breath_of_sindragosa\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power&(variable.rp_buffs||runic_power.deficit<25||debuff.razorice.stack=5&talent.shattering_blade)\nactions.single_target+=/howling_blast,if=variable.rime_buffs\nactions.single_target+=/glacial_advance,if=!variable.pooling_runic_power&!death_knight.runeforge.razorice&(debuff.razorice.stack<5||debuff.razorice.remains25&(!talent.breath_of_sindragosa||cooldown.breath_of_sindragosa.remains>cooldown.horn_of_winter.duration)\nactions.single_target+=/arcane_torrent,if=runic_power.deficit>20\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power\n\nactions.trinkets+=/use_item,use_off_gcd=1,name=algethar_puzzle_box,if=!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains<2&(!talent.breath_of_sindragosa||runic_power>60&(buff.breath_of_sindragosa.up||cooldown.breath_of_sindragosa.remains<2))\n# The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.pillar_of_frost.up&trinket.1.cast_time>0||!trinket.1.cast_time>0)&(buff.breath_of_sindragosa.up||buff.pillar_of_frost.up)&(variable.trinket_2_exclude||!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||boss&trinket.1.proc.any_dps.duration>=fight_remains\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&(!buff.pillar_of_frost.up&trinket.2.cast_time>0||!trinket.2.cast_time>0)&(buff.breath_of_sindragosa.up||buff.pillar_of_frost.up)&(variable.trinket_1_exclude||!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||boss&trinket.2.proc.any_dps.duration>=fight_remains\n# If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&(!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs)||(trinket.1.cast_time>0&!buff.pillar_of_frost.up||!trinket.1.cast_time>0)||talent.pillar_of_frost&cooldown.pillar_of_frost.remains_expected>20||!talent.pillar_of_frost)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&(!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs)||(trinket.2.cast_time>0&!buff.pillar_of_frost.up||!trinket.2.cast_time>0)||talent.pillar_of_frost&cooldown.pillar_of_frost.remains_expected>20||!talent.pillar_of_frost)\nactions.trinkets+=/use_items,use_off_gcd=1,if=(!variable.trinket_1_buffs||trinket.1.cooldown.remains)&(!variable.trinket_2_buffs||trinket.2.cooldown.remains)", ["spec"] = 251, }, ["Arcane"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230502, ["spec"] = 62, ["desc"] = "2023-05-02: Update for 10.1.", ["lists"] = { ["aoe_rotation"] = { { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack < 2", ["action"] = "arcane_orb", }, -- [1] { ["enabled"] = true, ["criteria"] = "( ! talent.evocation.enabled || cooldown.evocation.remains > 12 ) & ( ! talent.arcane_surge.enabled || cooldown.arcane_surge.remains > 12 ) & ( ! talent.touch_of_the_magi.enabled || cooldown.touch_of_the_magi.remains > 12 ) & buff.arcane_surge.down", ["action"] = "shifting_power", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.arcane_surge.down", ["action"] = "ice_nova", }, -- [3] { ["enabled"] = true, ["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.arcane_surge.down", ["action"] = "nether_tempest", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.clearcasting.react & talent.arcane_harmony.enabled & talent.rune_of_power.enabled & cooldown.rune_of_power.remains < ( gcd.max * 2 )", ["action"] = "arcane_missiles", }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack || mana.pct < 10", ["action"] = "arcane_barrage", }, -- [6] { ["action"] = "arcane_explosion", ["enabled"] = true, }, -- [7] }, ["aoe_spark_phase"] = { { ["enabled"] = true, ["action"] = "cancel_buff", ["criteria"] = "prev_gcd.1.arcane_blast & cooldown.arcane_surge.remains > 75", ["buff_name"] = "presence_of_mind", }, -- [1] { ["enabled"] = true, ["criteria"] = "cooldown.arcane_surge.remains < 75 & cooldown.arcane_surge.remains > 30", ["action"] = "rune_of_power", }, -- [2] { ["action"] = "radiant_spark", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["action"] = "timebreaching_talon", ["criteria"] = "cooldown.arcane_surge.remains <= ( gcd.max * 2 )", ["name"] = "timebreaching_talon", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack >= 3 & prev_gcd.1.radiant_spark", ["action"] = "arcane_explosion", }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack < 3", ["action"] = "arcane_orb", ["line_cd"] = "15", }, -- [6] { ["enabled"] = true, ["criteria"] = "talent.arcane_echo.enabled", ["action"] = "nether_tempest", ["line_cd"] = "15", }, -- [7] { ["action"] = "arcane_surge", ["enabled"] = true, }, -- [8] { ["enabled"] = true, ["criteria"] = "cooldown.arcane_surge.remains < 75 & debuff.radiant_spark_vulnerability.stack = 4", ["action"] = "arcane_barrage", }, -- [9] { ["enabled"] = true, ["criteria"] = "( debuff.radiant_spark_vulnerability.stack = 2 & cooldown.arcane_surge.remains > 75 ) || ( debuff.radiant_spark_vulnerability.stack = 1 & cooldown.arcane_surge.remains < 75 )", ["action"] = "arcane_barrage", }, -- [10] { ["enabled"] = true, ["action"] = "touch_of_the_magi", ["criteria"] = "prev_gcd.1.arcane_barrage", ["use_off_gcd"] = 1, }, -- [11] { ["action"] = "presence_of_mind", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["criteria"] = "debuff.radiant_spark_vulnerability.stack = 2 || debuff.radiant_spark_vulnerability.stack = 3", ["action"] = "arcane_blast", }, -- [13] { ["enabled"] = true, ["criteria"] = "( debuff.radiant_spark_vulnerability.stack = 4 & buff.arcane_surge.up ) || ( debuff.radiant_spark_vulnerability.stack = 3 & buff.arcane_surge.down )", ["action"] = "arcane_barrage", }, -- [14] }, ["aoe_touch_phase"] = { { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "1 - variable.conserve_mana", ["criteria"] = "debuff.touch_of_the_magi.remains > 9", ["var_name"] = "conserve_mana", }, -- [1] { ["action"] = "meteor", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["criteria"] = "talent.arcane_bombardment.enabled & target.health.pct < 35 & debuff.touch_of_the_magi.remains <= gcd.max", ["action"] = "arcane_barrage", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & active_enemies >= variable.aoe_target_count & cooldown.arcane_orb.remains <= execute_time", ["action"] = "arcane_barrage", }, -- [4] { ["enabled"] = true, ["action"] = "arcane_missiles", ["chain"] = "1", ["criteria"] = "buff.clearcasting.react & ( talent.arcane_echo.enabled || talent.arcane_harmony.enabled )", }, -- [5] { ["enabled"] = true, ["action"] = "arcane_missiles", ["chain"] = "1", ["criteria"] = "buff.clearcasting.stack > 1 & talent.conjure_mana_gem.enabled & cooldown.use_mana_gem.ready", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack < 2", ["action"] = "arcane_orb", }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack", ["action"] = "arcane_barrage", }, -- [8] { ["action"] = "arcane_explosion", ["enabled"] = true, }, -- [9] }, ["touch_phase"] = { { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "1 - variable.conserve_mana", ["criteria"] = "debuff.touch_of_the_magi.remains > 9", ["var_name"] = "conserve_mana", }, -- [1] { ["action"] = "meteor", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["criteria"] = "( ! talent.arcane_bombardment.enabled || target.health.pct > 35 ) & buff.arcane_surge.up & debuff.touch_of_the_magi.remains <= gcd.max", ["action"] = "presence_of_mind", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.presence_of_mind.up & buff.arcane_charge.stack = buff.arcane_charge.max_stack", ["action"] = "arcane_blast", }, -- [4] { ["enabled"] = true, ["criteria"] = "( buff.arcane_harmony.up || ( talent.arcane_bombardment.enabled & target.health.pct < 35 ) ) & debuff.touch_of_the_magi.remains <= gcd.max", ["action"] = "arcane_barrage", }, -- [5] { ["enabled"] = true, ["action"] = "arcane_missiles", ["chain"] = "1", ["criteria"] = "buff.clearcasting.stack > 1 & talent.conjure_mana_gem.enabled & cooldown.use_mana_gem.ready", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.nether_precision.up", ["action"] = "arcane_blast", }, -- [7] { ["enabled"] = true, ["action"] = "arcane_missiles", ["interrupt_if"] = "debuff.touch_of_the_magi.up&active_enemies30", ["criteria"] = "buff.clearcasting.react & ( debuff.touch_of_the_magi.remains > execute_time || ! talent.presence_of_mind.enabled )", ["chain"] = "1", }, -- [8] { ["action"] = "arcane_blast", ["enabled"] = true, }, -- [9] { ["action"] = "arcane_barrage", ["enabled"] = true, }, -- [10] }, ["rotation"] = { { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack < 3 & ( buff.bloodlust.down || mana.pct > 70 || cooldown.touch_of_the_magi.remains > 30 )", ["action"] = "arcane_orb", }, -- [1] { ["enabled"] = true, ["criteria"] = "( ! talent.evocation.enabled || cooldown.evocation.remains > 12 ) & ( ! talent.arcane_surge.enabled || cooldown.arcane_surge.remains > 12 ) & ( ! talent.touch_of_the_magi.enabled || cooldown.touch_of_the_magi.remains > 12 ) & buff.arcane_surge.down & fight_remains > 15", ["action"] = "shifting_power", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack < 3 & target.health.pct < 35 & talent.arcane_bombardment.enabled", ["action"] = "presence_of_mind", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.presence_of_mind.up & target.health.pct < 35 & talent.arcane_bombardment.enabled & buff.arcane_charge.stack < 3", ["action"] = "arcane_blast", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.clearcasting.react & buff.clearcasting.stack = buff.clearcasting.max_stack", ["action"] = "arcane_missiles", }, -- [5] { ["enabled"] = true, ["criteria"] = "( refreshable || ! ticking ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack & ( buff.temporal_warp.up || mana.pct < 10 || ! talent.shifting_power.enabled ) & buff.arcane_surge.down & fight_remains >= 12", ["action"] = "nether_tempest", }, -- [6] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & mana.pct < 50 & ! talent.evocation.enabled & fight_remains > 20", ["action"] = "arcane_barrage", }, -- [7] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & mana.pct < 70 & variable.conserve_mana & buff.bloodlust.up & cooldown.touch_of_the_magi.remains > 5 & fight_remains > 20", ["action"] = "arcane_barrage", }, -- [8] { ["enabled"] = true, ["criteria"] = "buff.clearcasting.react & buff.concentration.up & buff.arcane_charge.stack = buff.arcane_charge.max_stack", ["action"] = "arcane_missiles", }, -- [9] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & buff.nether_precision.up", ["action"] = "arcane_blast", }, -- [10] { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack & mana.pct < 60 & variable.conserve_mana & ( ! talent.rune_of_power.enabled || cooldown.rune_of_power.remains > 5 ) & cooldown.touch_of_the_magi.remains > 10 & cooldown.evocation.remains > 40 & fight_remains > 20", ["action"] = "arcane_barrage", }, -- [11] { ["enabled"] = true, ["criteria"] = "buff.clearcasting.react & buff.nether_precision.down", ["action"] = "arcane_missiles", }, -- [12] { ["action"] = "arcane_blast", ["enabled"] = true, }, -- [13] { ["action"] = "arcane_barrage", ["enabled"] = true, }, -- [14] }, ["standard_cooldowns"] = { { ["enabled"] = true, ["criteria"] = "buff.arcane_charge.stack = buff.arcane_charge.max_stack", ["action"] = "arcane_surge", }, -- [1] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_surge & talent.arcane_echo.enabled", ["action"] = "nether_tempest", }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.arcane_surge.up & cooldown.touch_of_the_magi.ready", ["action"] = "meteor", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.arcane_surge.up & cooldown.touch_of_the_magi.ready", ["action"] = "arcane_barrage", }, -- [4] { ["enabled"] = true, ["criteria"] = "cooldown.touch_of_the_magi.remains <= ( gcd.max * 2 ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack", ["action"] = "rune_of_power", }, -- [5] { ["enabled"] = true, ["criteria"] = "cooldown.touch_of_the_magi.remains <= ( gcd.max * 2 ) & buff.arcane_charge.stack = buff.arcane_charge.max_stack", ["action"] = "meteor", }, -- [6] { ["enabled"] = true, ["action"] = "touch_of_the_magi", ["criteria"] = "prev_gcd.1.arcane_barrage", ["use_off_gcd"] = 1, }, -- [7] }, ["default"] = { { ["enabled"] = true, ["description"] = "Executed every time the actor is available.", ["action"] = "counterspell", }, -- [1] { ["enabled"] = true, ["criteria"] = "cooldown.arcane_surge.ready", ["action"] = "potion", }, -- [2] { ["enabled"] = true, ["criteria"] = "talent.temporal_warp.enabled & buff.exhaustion.up & ( cooldown.arcane_surge.ready || fight_remains <= 40 || buff.arcane_surge.up & fight_remains <= 80 )", ["action"] = "time_warp", }, -- [3] { ["enabled"] = true, ["criteria"] = "buff.arcane_surge.down & buff.rune_of_power.down & debuff.touch_of_the_magi.down", ["action"] = "lights_judgment", }, -- [4] { ["enabled"] = true, ["criteria"] = "buff.arcane_surge.down & buff.rune_of_power.down & debuff.touch_of_the_magi.down", ["action"] = "bag_of_tricks", }, -- [5] { ["enabled"] = true, ["criteria"] = "( prev_gcd.1.arcane_surge & ! ( buff.temporal_warp.up & buff.bloodlust.up ) ) || ( buff.arcane_surge.up & debuff.touch_of_the_magi.up )", ["action"] = "berserking", }, -- [6] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_surge", ["action"] = "blood_fury", }, -- [7] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_surge", ["action"] = "fireblood", }, -- [8] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_surge", ["action"] = "ancestral_call", }, -- [9] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_surge", ["action"] = "use_items", }, -- [10] { ["enabled"] = true, ["action"] = "conjured_chillglobe", ["criteria"] = "mana.pct > 65 & ( ! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20 )", ["name"] = "conjured_chillglobe", }, -- [11] { ["enabled"] = true, ["action"] = "darkmoon_deck_rime", ["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20", ["name"] = "darkmoon_deck_rime", }, -- [12] { ["enabled"] = true, ["action"] = "darkmoon_deck_dance", ["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20", ["name"] = "darkmoon_deck_dance", }, -- [13] { ["enabled"] = true, ["action"] = "darkmoon_deck_inferno", ["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20", ["name"] = "darkmoon_deck_inferno", }, -- [14] { ["enabled"] = true, ["action"] = "desperate_invokers_codex", ["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20", ["name"] = "desperate_invokers_codex", }, -- [15] { ["enabled"] = true, ["action"] = "iceblood_deathsnare", ["criteria"] = "! variable.steroid_trinket_equipped || cooldown.arcane_surge.remains > 20", ["name"] = "iceblood_deathsnare", }, -- [16] { ["enabled"] = true, ["criteria"] = "fight_remains < 2", ["action"] = "arcane_barrage", }, -- [17] { ["enabled"] = true, ["criteria"] = "buff.rune_of_power.down & buff.arcane_surge.down & debuff.touch_of_the_magi.down & ( mana.pct < 10 & cooldown.touch_of_the_magi.remains < 25 )", ["action"] = "evocation", ["interrupt_if"] = "mana.pct>=95&(!talent.siphon_storm||talent.siphon_storm&fight_remains>10&cooldown.arcane_surge.remains<1)", }, -- [18] { ["enabled"] = true, ["criteria"] = "buff.rune_of_power.down & debuff.touch_of_the_magi.down & buff.arcane_surge.down & cooldown.arcane_surge.remains < fight_remains & ! mana_gem_charges", ["action"] = "conjure_mana_gem", }, -- [19] { ["enabled"] = true, ["criteria"] = "talent.cascading_power.enabled & buff.clearcasting.stack < 2 & buff.arcane_surge.up", ["action"] = "mana_gem", }, -- [20] { ["enabled"] = true, ["criteria"] = "! talent.cascading_power.enabled & prev_gcd.1.arcane_surge", ["action"] = "mana_gem", }, -- [21] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "talent.radiant_spark.enabled & variable.aoe_spark_phase", ["list_name"] = "aoe_spark_phase", }, -- [22] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "talent.radiant_spark.enabled & variable.spark_phase", ["list_name"] = "spark_phase", }, -- [23] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "debuff.touch_of_the_magi.up & active_enemies >= variable.aoe_target_count", ["list_name"] = "aoe_touch_phase", }, -- [24] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "debuff.touch_of_the_magi.up & active_enemies < variable.aoe_target_count", ["list_name"] = "touch_phase", }, -- [25] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "variable.rop_phase", ["list_name"] = "rop_phase", }, -- [26] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "! talent.radiant_spark.enabled & ( ! talent.rune_of_power.enabled || active_enemies >= variable.aoe_target_count )", ["list_name"] = "standard_cooldowns", }, -- [27] { ["enabled"] = true, ["action"] = "call_action_list", ["strict"] = 1, ["criteria"] = "active_enemies >= variable.aoe_target_count", ["list_name"] = "aoe_rotation", }, -- [28] { ["enabled"] = true, ["action"] = "call_action_list", ["list_name"] = "rotation", }, -- [29] }, ["precombat"] = { { ["action"] = "arcane_intellect", ["enabled"] = true, }, -- [1] { ["action"] = "arcane_familiar", ["enabled"] = true, }, -- [2] { ["action"] = "conjure_mana_gem", ["enabled"] = true, }, -- [3] { ["enabled"] = true, ["op"] = "setif", ["action"] = "variable", ["var_name"] = "opener_min_mana", ["criteria"] = "talent.arcane_harmony.enabled", ["value_else"] = "200000", ["value"] = "225000", }, -- [4] { ["enabled"] = true, ["op"] = "set", ["action"] = "variable", ["value"] = "equipped.gladiators_badge || equipped.irideus_fragment || equipped.erupting_spear_fragment || equipped.spoils_of_neltharus || equipped.tome_of_unstable_power || equipped.timebreaching_talon || equipped.horn_of_valor", ["var_name"] = "steroid_trinket_equipped", }, -- [5] { ["action"] = "mirror_image", ["enabled"] = true, }, -- [6] { ["enabled"] = true, ["criteria"] = "! talent.siphon_storm.enabled", ["action"] = "arcane_blast", }, -- [7] { ["enabled"] = true, ["criteria"] = "talent.siphon_storm.enabled", ["action"] = "evocation", }, -- [8] }, ["rop_phase"] = { { ["action"] = "rune_of_power", ["enabled"] = true, }, -- [1] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.rune_of_power", ["action"] = "arcane_blast", }, -- [2] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_blast & prev_gcd.2.rune_of_power", ["action"] = "arcane_blast", }, -- [3] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_blast & prev_gcd.3.rune_of_power", ["action"] = "arcane_blast", }, -- [4] { ["action"] = "arcane_surge", ["enabled"] = true, }, -- [5] { ["enabled"] = true, ["criteria"] = "prev_gcd.1.arcane_blast & prev_gcd.4.rune_of_power", ["action"] = "arcane_blast", }, -- [6] { ["enabled"] = true, ["criteria"] = "talent.arcane_echo.enabled", ["action"] = "nether_tempest", ["line_cd"] = "15", }, -- [7] { ["action"] = "meteor", ["enabled"] = true, }, -- [8] { ["action"] = "arcane_barrage", ["enabled"] = true, }, -- [9] { ["enabled"] = true, ["action"] = "touch_of_the_magi", ["criteria"] = "prev_gcd.1.arcane_barrage", ["use_off_gcd"] = 1, }, -- [10] }, ["spark_phase"] = { { ["enabled"] = true, ["criteria"] = "! ticking & variable.opener & buff.bloodlust.up", ["action"] = "nether_tempest", ["line_cd"] = "45", }, -- [1] { ["action"] = "rune_of_power", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["criteria"] = "variable.opener & cooldown.arcane_surge.ready & buff.bloodlust.up & mana >= variable.opener_min_mana & buff.rune_of_power.remains > gcd.max * 4", ["action"] = "arcane_blast", }, -- [3] { ["enabled"] = true, ["action"] = "arcane_missiles", ["chain"] = "1", ["criteria"] = "variable.opener & buff.bloodlust.up & buff.clearcasting.react & buff.clearcasting.stack >= 2 & cooldown.radiant_spark.remains < 5 & buff.nether_precision.down", }, -- [4] { ["enabled"] = true, ["action"] = "arcane_missiles", ["chain"] = "1", ["criteria"] = "talent.arcane_harmony.enabled & buff.arcane_harmony.stack < 15 & ( ( variable.opener & buff.bloodlust.up ) || buff.clearcasting.react & cooldown.radiant_spark.remains < 5 ) & cooldown.arcane_surge.remains < 30", }, -- [5] { ["action"] = "radiant_spark", ["enabled"] = true, }, -- [6] { ["enabled"] = true, ["action"] = "timebreaching_talon", ["criteria"] = "cooldown.arcane_surge.remains <= ( gcd.max * 3 )", ["name"] = "timebreaching_talon", }, -- [7] { ["enabled"] = true, ["criteria"] = "( prev_gcd.4.radiant_spark & cooldown.arcane_surge.remains <= execute_time ) || ! ticking & prev_gcd.5.radiant_spark", ["action"] = "nether_tempest", }, -- [8] { ["enabled"] = true, ["criteria"] = "( ! talent.nether_tempest.enabled & prev_gcd.4.radiant_spark ) || prev_gcd.1.nether_tempest", ["action"] = "arcane_surge", }, -- [9] { ["enabled"] = true, ["criteria"] = "( talent.nether_tempest.enabled & prev_gcd.6.radiant_spark ) || ( ! talent.nether_tempest.enabled & prev_gcd.5.radiant_spark )", ["action"] = "meteor", }, -- [10] { ["enabled"] = true, ["criteria"] = "cast_time >= gcd.max & execute_time < debuff.radiant_spark_vulnerability.remains & ( ! talent.arcane_bombardment.enabled || target.health.pct >= 35 ) & ( talent.nether_tempest.enabled & prev_gcd.6.radiant_spark || ! talent.nether_tempest.enabled & prev_gcd.5.radiant_spark ) & ! talent.meteor.enabled", ["action"] = "arcane_blast", }, -- [11] { ["enabled"] = true, ["criteria"] = "debuff.radiant_spark_vulnerability.stack = 4", ["action"] = "arcane_barrage", }, -- [12] { ["enabled"] = true, ["action"] = "touch_of_the_magi", ["criteria"] = "prev_gcd.1.arcane_barrage & ( action.arcane_barrage.in_flight_remains <= 0.2 || gcd.remains <= 0.2 )", ["use_off_gcd"] = 1, }, -- [13] { ["action"] = "arcane_blast", ["enabled"] = true, }, -- [14] { ["action"] = "arcane_barrage", ["enabled"] = true, }, -- [15] }, }, ["version"] = 20230502, ["warnings"] = "The import for 'aoe_rotation' required some automated changes.\nLine 2: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 2: Converted 'talent.arcane_surge' to 'talent.arcane_surge.enabled' (1x).\nLine 2: Converted 'talent.touch_of_the_magi' to 'talent.touch_of_the_magi.enabled' (1x).\nLine 5: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 5: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'aoe_spark_phase' required some automated changes.\nLine 7: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\n\nThe import for 'aoe_touch_phase' required some automated changes.\nLine 3: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 5: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\nLine 5: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 6: Converted 'talent.conjure_mana_gem' to 'talent.conjure_mana_gem.enabled' (1x).\n\nThe import for 'touch_phase' required some automated changes.\nLine 3: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 5: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 6: Converted 'talent.conjure_mana_gem' to 'talent.conjure_mana_gem.enabled' (1x).\nLine 8: Converted 'talent.presence_of_mind' to 'talent.presence_of_mind.enabled' (1x).\n\nThe import for 'rotation' required some automated changes.\nLine 2: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 2: Converted 'talent.arcane_surge' to 'talent.arcane_surge.enabled' (1x).\nLine 2: Converted 'talent.touch_of_the_magi' to 'talent.touch_of_the_magi.enabled' (1x).\nLine 3: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 4: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 6: Converted 'talent.shifting_power' to 'talent.shifting_power.enabled' (1x).\nLine 7: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 11: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'standard_cooldowns' required some automated changes.\nLine 2: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.temporal_warp' to 'talent.temporal_warp.enabled' (1x).\nLine 20: Converted 'talent.cascading_power' to 'talent.cascading_power.enabled' (1x).\nLine 21: Converted 'talent.cascading_power' to 'talent.cascading_power.enabled' (1x).\nLine 22: Converted 'talent.radiant_spark' to 'talent.radiant_spark.enabled' (1x).\nLine 23: Converted 'talent.radiant_spark' to 'talent.radiant_spark.enabled' (1x).\nLine 27: Converted 'talent.radiant_spark' to 'talent.radiant_spark.enabled' (1x).\nLine 27: Converted 'talent.rune_of_power' to 'talent.rune_of_power.enabled' (1x).\n\nThe import for 'rop_phase' required some automated changes.\nLine 7: Converted 'talent.arcane_echo' to 'talent.arcane_echo.enabled' (1x).\n\nThe import for 'spark_phase' required some automated changes.\nLine 5: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 9: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 10: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 10: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 11: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 11: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 11: Converted 'talent.nether_tempest' to 'talent.nether_tempest.enabled' (1x).\nLine 11: Converted 'talent.meteor' to 'talent.meteor.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 7: Converted 'talent.siphon_storm' to 'talent.siphon_storm.enabled' (1x).\nLine 8: Converted 'talent.siphon_storm' to 'talent.siphon_storm.enabled' (1x).\n\nImported 10 action lists.\n", ["profile"] = "actions.precombat+=/arcane_intellect\nactions.precombat+=/arcane_familiar\nactions.precombat+=/conjure_mana_gem\n## actions.precombat+=/variable,name=aoe_target_count,op=reset,default=3\n## actions.precombat+=/variable,name=conserve_mana,op=set,value=0\nactions.precombat+=/variable,name=opener_min_mana,op=setif,condition=talent.arcane_harmony,value=225000,value_else=200000\nactions.precombat+=/variable,name=steroid_trinket_equipped,op=set,value=equipped.gladiators_badge||equipped.irideus_fragment||equipped.erupting_spear_fragment||equipped.spoils_of_neltharus||equipped.tome_of_unstable_power||equipped.timebreaching_talon||equipped.horn_of_valor\nactions.precombat+=/mirror_image\nactions.precombat+=/arcane_blast,if=!talent.siphon_storm\nactions.precombat+=/evocation,if=talent.siphon_storm\n\n# Executed every time the actor is available.\nactions=counterspell\nactions+=/potion,if=cooldown.arcane_surge.ready\nactions+=/time_warp,if=talent.temporal_warp&buff.exhaustion.up&(cooldown.arcane_surge.ready||fight_remains<=40||buff.arcane_surge.up&fight_remains<=80)\nactions+=/lights_judgment,if=buff.arcane_surge.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down\nactions+=/bag_of_tricks,if=buff.arcane_surge.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down\nactions+=/berserking,if=(prev_gcd.1.arcane_surge&!(buff.temporal_warp.up&buff.bloodlust.up))||(buff.arcane_surge.up&debuff.touch_of_the_magi.up)\nactions+=/blood_fury,if=prev_gcd.1.arcane_surge\nactions+=/fireblood,if=prev_gcd.1.arcane_surge\n## Not supported by the addon; cannot control if another player grants Power Infusion.\n## actions+=/invoke_external_buff,name=power_infusion,if=!talent.radiant_spark&prev_gcd.1.arcane_surge\nactions+=/ancestral_call,if=prev_gcd.1.arcane_surge\nactions+=/use_items,if=prev_gcd.1.arcane_surge\n## TODO: actions+=/use_item,name=tinker_breath_of_neltharion,if=cooldown.arcane_surge.remains&buff.rune_of_power.down&buff.arcane_surge.down&debuff.touch_of_the_magi.down\nactions+=/use_item,name=conjured_chillglobe,if=mana.pct>65&(!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20)\nactions+=/use_item,name=darkmoon_deck_rime,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=darkmoon_deck_dance,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=darkmoon_deck_inferno,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=desperate_invokers_codex,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\nactions+=/use_item,name=iceblood_deathsnare,if=!variable.steroid_trinket_equipped||cooldown.arcane_surge.remains>20\n## actions+=/variable,name=aoe_spark_phase,op=set,value=1,if=active_enemies>=variable.aoe_target_count&(action.arcane_orb.charges>0||buff.arcane_charge.stack>=3)&(!talent.rune_of_power||cooldown.rune_of_power.ready)&cooldown.radiant_spark.ready&cooldown.touch_of_the_magi.remains<=(gcd.max*2)\n## actions+=/variable,name=aoe_spark_phase,op=set,value=0,if=variable.aoe_spark_phase&debuff.radiant_spark_vulnerability.down&dot.radiant_spark.remains<5&cooldown.radiant_spark.remains\n## actions+=/variable,name=spark_phase,op=set,value=1,if=buff.arcane_charge.stack>=3&active_enemies=3&cooldown.rune_of_power.ready&active_enemies=95&!talent.siphon_storm\n## actions+=/cancel_action,if=action.evocation.channeling&(mana.pct>fight_remains*4)&!(fight_remains>10&cooldown.arcane_surge.remains<1)\nactions+=/arcane_barrage,if=fight_remains<2\nactions+=/evocation,if=buff.rune_of_power.down&buff.arcane_surge.down&debuff.touch_of_the_magi.down&(mana.pct<10&cooldown.touch_of_the_magi.remains<25),interrupt_if=mana.pct>=95&(!talent.siphon_storm||talent.siphon_storm&fight_remains>10&cooldown.arcane_surge.remains<1)\nactions+=/conjure_mana_gem,if=buff.rune_of_power.down&debuff.touch_of_the_magi.down&buff.arcane_surge.down&cooldown.arcane_surge.remains=variable.aoe_target_count\nactions+=/call_action_list,name=touch_phase,strict=1,if=debuff.touch_of_the_magi.up&active_enemies=variable.aoe_target_count)\nactions+=/call_action_list,name=aoe_rotation,strict=1,if=active_enemies>=variable.aoe_target_count\nactions+=/call_action_list,name=rotation\n\nactions.aoe_rotation=arcane_orb,if=buff.arcane_charge.stack<2\nactions.aoe_rotation+=/shifting_power,if=(!talent.evocation||cooldown.evocation.remains>12)&(!talent.arcane_surge||cooldown.arcane_surge.remains>12)&(!talent.touch_of_the_magi||cooldown.touch_of_the_magi.remains>12)&buff.arcane_surge.down\nactions.aoe_rotation+=/ice_nova,if=buff.arcane_surge.down\nactions.aoe_rotation+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.arcane_surge.down\nactions.aoe_rotation+=/arcane_missiles,if=buff.clearcasting.react&talent.arcane_harmony&talent.rune_of_power&cooldown.rune_of_power.remains<(gcd.max*2)\nactions.aoe_rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack||mana.pct<10\nactions.aoe_rotation+=/arcane_explosion\n\nactions.aoe_spark_phase=cancel_buff,name=presence_of_mind,if=prev_gcd.1.arcane_blast&cooldown.arcane_surge.remains>75\nactions.aoe_spark_phase+=/rune_of_power,if=cooldown.arcane_surge.remains<75&cooldown.arcane_surge.remains>30\nactions.aoe_spark_phase+=/radiant_spark\nactions.aoe_spark_phase+=/use_item,name=timebreaching_talon,if=cooldown.arcane_surge.remains<=(gcd.max*2)\nactions.aoe_spark_phase+=/arcane_explosion,if=buff.arcane_charge.stack>=3&prev_gcd.1.radiant_spark\nactions.aoe_spark_phase+=/arcane_orb,if=buff.arcane_charge.stack<3,line_cd=15\nactions.aoe_spark_phase+=/nether_tempest,if=talent.arcane_echo,line_cd=15\nactions.aoe_spark_phase+=/arcane_surge\n## actions.aoe_spark_phase+=/wait,sec=0.05,if=cooldown.arcane_surge.remains>75&prev_gcd.1.arcane_blast&!talent.presence_of_mind,line_cd=15\n## actions.aoe_spark_phase+=/wait,sec=0.05,if=prev_gcd.1.arcane_surge,line_cd=15\n## actions.aoe_spark_phase+=/wait,sec=0.05,if=cooldown.arcane_surge.remains<75&debuff.radiant_spark_vulnerability.stack=3&!talent.presence_of_mind,line_cd=15\nactions.aoe_spark_phase+=/arcane_barrage,if=cooldown.arcane_surge.remains<75&debuff.radiant_spark_vulnerability.stack=4\nactions.aoe_spark_phase+=/arcane_barrage,if=(debuff.radiant_spark_vulnerability.stack=2&cooldown.arcane_surge.remains>75)||(debuff.radiant_spark_vulnerability.stack=1&cooldown.arcane_surge.remains<75)\nactions.aoe_spark_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage\nactions.aoe_spark_phase+=/presence_of_mind\nactions.aoe_spark_phase+=/arcane_blast,if=debuff.radiant_spark_vulnerability.stack=2||debuff.radiant_spark_vulnerability.stack=3\nactions.aoe_spark_phase+=/arcane_barrage,if=(debuff.radiant_spark_vulnerability.stack=4&buff.arcane_surge.up)||(debuff.radiant_spark_vulnerability.stack=3&buff.arcane_surge.down)\n\nactions.aoe_touch_phase+=/variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana\nactions.aoe_touch_phase+=/meteor\nactions.aoe_touch_phase+=/arcane_barrage,if=talent.arcane_bombardment&target.health.pct<35&debuff.touch_of_the_magi.remains<=gcd.max\nactions.aoe_touch_phase+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&active_enemies>=variable.aoe_target_count&cooldown.arcane_orb.remains<=execute_time\nactions.aoe_touch_phase+=/arcane_missiles,if=buff.clearcasting.react&(talent.arcane_echo||talent.arcane_harmony),chain=1\nactions.aoe_touch_phase+=/arcane_missiles,if=buff.clearcasting.stack>1&talent.conjure_mana_gem&cooldown.use_mana_gem.ready,chain=1\nactions.aoe_touch_phase+=/arcane_orb,if=buff.arcane_charge.stack<2\nactions.aoe_touch_phase+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.aoe_touch_phase+=/arcane_explosion\n\nactions.rop_phase=rune_of_power\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.rune_of_power\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.2.rune_of_power\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.3.rune_of_power\nactions.rop_phase+=/arcane_surge\nactions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.4.rune_of_power\nactions.rop_phase+=/nether_tempest,if=talent.arcane_echo,line_cd=15\nactions.rop_phase+=/meteor\nactions.rop_phase+=/arcane_barrage\nactions.rop_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage\n\nactions.rotation+=/arcane_orb,if=buff.arcane_charge.stack<3&(buff.bloodlust.down||mana.pct>70||cooldown.touch_of_the_magi.remains>30)\nactions.rotation+=/shifting_power,if=(!talent.evocation||cooldown.evocation.remains>12)&(!talent.arcane_surge||cooldown.arcane_surge.remains>12)&(!talent.touch_of_the_magi||cooldown.touch_of_the_magi.remains>12)&buff.arcane_surge.down&fight_remains>15\nactions.rotation+=/presence_of_mind,if=buff.arcane_charge.stack<3&target.health.pct<35&talent.arcane_bombardment\nactions.rotation+=/arcane_blast,if=buff.presence_of_mind.up&target.health.pct<35&talent.arcane_bombardment&buff.arcane_charge.stack<3\nactions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.clearcasting.stack=buff.clearcasting.max_stack\nactions.rotation+=/nether_tempest,if=(refreshable||!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(buff.temporal_warp.up||mana.pct<10||!talent.shifting_power)&buff.arcane_surge.down&fight_remains>=12\nactions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<50&!talent.evocation&fight_remains>20\nactions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<70&variable.conserve_mana&buff.bloodlust.up&cooldown.touch_of_the_magi.remains>5&fight_remains>20\nactions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.concentration.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.rotation+=/arcane_blast,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.nether_precision.up\nactions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<60&variable.conserve_mana&(!talent.rune_of_power||cooldown.rune_of_power.remains>5)&cooldown.touch_of_the_magi.remains>10&cooldown.evocation.remains>40&fight_remains>20\nactions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.nether_precision.down\nactions.rotation+=/arcane_blast\nactions.rotation+=/arcane_barrage\n\nactions.spark_phase+=/nether_tempest,if=!ticking&variable.opener&buff.bloodlust.up,line_cd=45\nactions.spark_phase+=/rune_of_power\nactions.spark_phase+=/arcane_blast,if=variable.opener&cooldown.arcane_surge.ready&buff.bloodlust.up&mana>=variable.opener_min_mana&buff.rune_of_power.remains>gcd.max*4\nactions.spark_phase+=/arcane_missiles,if=variable.opener&buff.bloodlust.up&buff.clearcasting.react&buff.clearcasting.stack>=2&cooldown.radiant_spark.remains<5&buff.nether_precision.down,chain=1\nactions.spark_phase+=/arcane_missiles,if=talent.arcane_harmony&buff.arcane_harmony.stack<15&((variable.opener&buff.bloodlust.up)||buff.clearcasting.react&cooldown.radiant_spark.remains<5)&cooldown.arcane_surge.remains<30,chain=1\nactions.spark_phase+=/radiant_spark\nactions.spark_phase+=/use_item,name=timebreaching_talon,if=cooldown.arcane_surge.remains<=(gcd.max*3)\n## Not supported by addon; cannot control if another player grants you Power Infusion.\n## actions.spark_phase+=/invoke_external_buff,name=power_infusion,if=prev_gcd.1.radiant_spark&cooldown.arcane_surge.remains<=(gcd.max*3)\nactions.spark_phase+=/nether_tempest,if=(prev_gcd.4.radiant_spark&cooldown.arcane_surge.remains<=execute_time)||!ticking&prev_gcd.5.radiant_spark\nactions.spark_phase+=/arcane_surge,if=(!talent.nether_tempest&prev_gcd.4.radiant_spark)||prev_gcd.1.nether_tempest\nactions.spark_phase+=/meteor,if=(talent.nether_tempest&prev_gcd.6.radiant_spark)||(!talent.nether_tempest&prev_gcd.5.radiant_spark)\nactions.spark_phase+=/arcane_blast,if=cast_time>=gcd&execute_time=35)&(talent.nether_tempest&prev_gcd.6.radiant_spark||!talent.nether_tempest&prev_gcd.5.radiant_spark)&!talent.meteor\n## actions.spark_phase+=/wait,sec=0.05,if=!talent.meteor&(talent.nether_tempest&prev_gcd.6.radiant_spark)||(!talent.nether_tempest&prev_gcd.5.radiant_spark),line_cd=15\nactions.spark_phase+=/arcane_barrage,if=debuff.radiant_spark_vulnerability.stack=4\nactions.spark_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage&(action.arcane_barrage.in_flight_remains<=0.2||gcd.remains<=0.2)\nactions.spark_phase+=/arcane_blast\nactions.spark_phase+=/arcane_barrage\n\nactions.standard_cooldowns=arcane_surge,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.standard_cooldowns+=/nether_tempest,if=prev_gcd.1.arcane_surge&talent.arcane_echo\nactions.standard_cooldowns+=/meteor,if=buff.arcane_surge.up&cooldown.touch_of_the_magi.ready\nactions.standard_cooldowns+=/arcane_barrage,if=buff.arcane_surge.up&cooldown.touch_of_the_magi.ready\nactions.standard_cooldowns+=/rune_of_power,if=cooldown.touch_of_the_magi.remains<=(gcd.max*2)&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.standard_cooldowns+=/meteor,if=cooldown.touch_of_the_magi.remains<=(gcd.max*2)&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.standard_cooldowns+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage\n\nactions.touch_phase=variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana\nactions.touch_phase+=/meteor\nactions.touch_phase+=/presence_of_mind,if=(!talent.arcane_bombardment||target.health.pct>35)&buff.arcane_surge.up&debuff.touch_of_the_magi.remains<=gcd.max\nactions.touch_phase+=/arcane_blast,if=buff.presence_of_mind.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack\nactions.touch_phase+=/arcane_barrage,if=(buff.arcane_harmony.up||(talent.arcane_bombardment&target.health.pct<35))&debuff.touch_of_the_magi.remains<=gcd.max\nactions.touch_phase+=/arcane_missiles,if=buff.clearcasting.stack>1&talent.conjure_mana_gem&cooldown.use_mana_gem.ready,chain=1\nactions.touch_phase+=/arcane_blast,if=buff.nether_precision.up\nactions.touch_phase+=/arcane_missiles,if=buff.clearcasting.react&(debuff.touch_of_the_magi.remains>execute_time||!talent.presence_of_mind),chain=1,interrupt_if=debuff.touch_of_the_magi.up&active_enemies30\nactions.touch_phase+=/arcane_blast\nactions.touch_phase+=/arcane_barrage", ["author"] = "SimulationCraft", }, ["Arms"] = { ["source"] = "https://github.com/simulationcraft/simc/", ["builtIn"] = true, ["date"] = 20230508, ["author"] = "SimulationCraft", ["desc"] = "2023-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"] = "irideus_fragment", }, -- [6] { ["enabled"] = true, ["criteria"] = "! buff.avatar.up & ! debuff.colossus_smash.up", ["action"] = "manic_grieftorch", }, -- [7] { ["enabled"] = true, ["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25", ["action"] = "gladiators_badge", }, -- [8] { ["action"] = "use_items", ["enabled"] = true, }, -- [9] { ["enabled"] = true, ["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50", ["action"] = "arcane_torrent", }, -- [10] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains", ["action"] = "lights_judgment", }, -- [11] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains", ["action"] = "bag_of_tricks", }, -- [12] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.remains > 6", ["action"] = "berserking", }, -- [13] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "ancestral_call", }, -- [14] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "blood_fury", }, -- [15] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up", ["action"] = "ancestral_call", }, -- [16] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "raid_event.adds.exists || active_enemies > 2", ["list_name"] = "hac", }, -- [17] { ["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", }, -- [18] { ["enabled"] = true, ["action"] = "run_action_list", ["strict"] = 1, ["criteria"] = "! raid_event.adds.exists", ["list_name"] = "single_target", }, -- [19] }, ["precombat"] = { { ["action"] = "battle_stance", ["enabled"] = true, }, -- [1] { ["action"] = "battle_shout", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["name"] = "algethar_puzzle_box", ["action"] = "algethar_puzzle_box", }, -- [3] { ["enabled"] = true, ["criteria"] = "! talent.titans_torment.enabled & ! talent.blademasters_torment.enabled", ["action"] = "avatar", }, -- [4] { ["enabled"] = true, ["criteria"] = "! talent.reckless_abandon.enabled", ["action"] = "recklessness", }, -- [5] }, ["execute"] = { { ["enabled"] = true, ["criteria"] = "spell_targets.whirlwind > 1", ["action"] = "sweeping_strikes", }, -- [1] { ["enabled"] = true, ["criteria"] = "remains <= gcd.max & ( ! talent.warbreaker.enabled & cooldown.colossus_smash.remains < 4 || talent.warbreaker.enabled & cooldown.warbreaker.remains < 4 ) & target.time_to_die > 12", ["action"] = "rend", }, -- [2] { ["enabled"] = true, ["criteria"] = "cooldown.colossus_smash.ready || debuff.colossus_smash.up || boss & fight_remains < 20", ["action"] = "avatar", }, -- [3] { ["action"] = "warbreaker", ["enabled"] = true, }, -- [4] { ["action"] = "colossus_smash", ["enabled"] = true, }, -- [5] { ["enabled"] = true, ["criteria"] = "buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up", ["action"] = "thunderous_roar", }, -- [6] { ["enabled"] = true, ["criteria"] = "debuff.colossus_smash.up || buff.test_of_might.up", ["action"] = "spear_of_bastion", }, -- [7] { ["enabled"] = true, ["criteria"] = "rage < 40", ["action"] = "skullsplitter", }, -- [8] { ["enabled"] = true, ["criteria"] = "spell_targets.whirlwind > 2 & dot.deep_wounds.remains < gcd.max", ["action"] = "cleave", }, -- [9] { ["enabled"] = true, ["criteria"] = "rage < 40 & buff.martial_prowess.stack < 2", ["action"] = "overpower", }, -- [10] { ["enabled"] = true, ["criteria"] = "debuff.executioners_precision.stack = 2 || dot.deep_wounds.remains <= gcd.max", ["action"] = "mortal_strike", }, -- [11] { ["action"] = "execute", ["enabled"] = true, }, -- [12] { ["enabled"] = true, ["criteria"] = "talent.sonic_boom.enabled", ["action"] = "shockwave", }, -- [13] { ["action"] = "overpower", ["enabled"] = true, }, -- [14] { ["action"] = "bladestorm", ["enabled"] = true, }, -- [15] }, ["hac"] = { { ["enabled"] = true, ["criteria"] = "buff.juggernaut.up & buff.juggernaut.remains < gcd.max", ["action"] = "execute", }, -- [1] { ["enabled"] = true, ["criteria"] = "active_enemies > 2 & talent.thunder_clap.enabled & talent.blood_and_thunder.enabled & talent.rend.enabled & dot.rend.remains <= dot.rend.duration * 0.3", ["action"] = "thunder_clap", }, -- [2] { ["enabled"] = true, ["criteria"] = "active_enemies >= 2 & ( cooldown.bladestorm.remains > 15 || ! talent.bladestorm.enabled )", ["action"] = "sweeping_strikes", }, -- [3] { ["enabled"] = true, ["criteria"] = "active_enemies = 1 & remains <= gcd.max & ( target.health.pct > 20 || talent.massacre.enabled & target.health.pct > 35 ) || talent.tide_of_blood.enabled & cooldown.skullsplitter.remains <= gcd.max & ( cooldown.colossus_smash.remains <= gcd.max || debuff.colossus_smash.up ) & dot.rend.remains < dot.rend.duration * 0.85", ["action"] = "rend", }, -- [4] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 15 || talent.blademasters_torment.enabled & active_enemies > 1 || boss & fight_remains < 20", ["action"] = "avatar", }, -- [5] { ["enabled"] = true, ["criteria"] = "raid_event.adds.in > 22 || active_enemies > 1", ["action"] = "warbreaker", }, -- [6] { ["enabled"] = true, ["criteria"] = "( target.health.pct < 20 || talent.massacre.enabled & target.health.pct < 35 )", ["action"] = "colossus_smash", ["cycle_targets"] = 1, }, -- [7] { ["action"] = "colossus_smash", ["enabled"] = true, }, -- [8] { ["enabled"] = true, ["criteria"] = "( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & raid_event.adds.in > 15 || active_enemies > 1 & dot.deep_wounds.remains", ["action"] = "thunderous_roar", }, -- [9] { ["enabled"] = true, ["criteria"] = "( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & raid_event.adds.in > 15", ["action"] = "spear_of_bastion", }, -- [10] { ["enabled"] = true, ["criteria"] = "talent.unhinged.enabled & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up )", ["action"] = "bladestorm", }, -- [11] { ["enabled"] = true, ["criteria"] = "active_enemies > 1 & ( buff.test_of_might.up || ! talent.test_of_might.enabled & debuff.colossus_smash.up ) & raid_event.adds.in > 30 || active_enemies > 1 & dot.deep_wounds.remains", ["action"] = "bladestorm", }, -- [12] { ["enabled"] = true, ["criteria"] = "active_enemies > 2 || ! talent.battlelord.enabled & buff.merciless_bonegrinder.up & cooldown.mortal_strike.remains > gcd.max", ["action"] = "cleave", }, -- [13] { ["enabled"] = true, ["criteria"] = "active_enemies > 2 || talent.storm_of_swords.enabled & ( buff.merciless_bonegrinder.up || buff.hurricane.up )", ["action"] = "whirlwind", }, -- [14] { ["enabled"] = true, ["criteria"] = "rage < 40 || talent.tide_of_blood.enabled & dot.rend.remains & ( buff.sweeping_strikes.up & active_enemies >= 2 || debuff.colossus_smash.up || buff.test_of_might.up )", ["action"] = "skullsplitter", }, -- [15] { ["enabled"] = true, ["criteria"] = "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"] = 20230508, ["warnings"] = "The import for 'single_target' required some automated changes.\nLine 3: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 4: Converted 'talent.warlords_torment' to 'talent.warlords_torment.enabled' (1x).\nLine 4: Converted 'talent.warlords_torment' to 'talent.warlords_torment.enabled' (1x).\nLine 8: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 8: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 9: Converted 'talent.hurricane' to 'talent.hurricane.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 9: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 10: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 10: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 13: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 13: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 14: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 14: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 15: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 15: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 16: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 16: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 17: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 17: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 18: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 20: Converted 'talent.crushing_force' to 'talent.crushing_force.enabled' (1x).\nLine 21: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 21: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 4: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 5: Converted 'talent.reckless_abandon' to 'talent.reckless_abandon.enabled' (1x).\n\nThe import for 'execute' required some automated changes.\nLine 2: Converted 'talent.warbreaker' to 'talent.warbreaker.enabled' (1x).\nLine 2: Converted 'talent.warbreaker' to 'talent.warbreaker.enabled' (1x).\nLine 6: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 13: Converted 'talent.sonic_boom' to 'talent.sonic_boom.enabled' (1x).\n\nThe import for 'hac' required some automated changes.\nLine 2: Converted 'talent.thunder_clap' to 'talent.thunder_clap.enabled' (1x).\nLine 2: Converted 'talent.blood_and_thunder' to 'talent.blood_and_thunder.enabled' (1x).\nLine 2: Converted 'talent.rend' to 'talent.rend.enabled' (1x).\nLine 3: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 4: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 4: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 5: Converted 'talent.blademasters_torment' to 'talent.blademasters_torment.enabled' (1x).\nLine 7: Converted 'talent.massacre' to 'talent.massacre.enabled' (1x).\nLine 9: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 10: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 11: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 11: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 12: Converted 'talent.test_of_might' to 'talent.test_of_might.enabled' (1x).\nLine 13: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 14: Converted 'talent.storm_of_swords' to 'talent.storm_of_swords.enabled' (1x).\nLine 15: Converted 'talent.tide_of_blood' to 'talent.tide_of_blood.enabled' (1x).\nLine 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\nactions.precombat+=/avatar,if=!talent.titans_torment&!talent.blademasters_torment\nactions.precombat+=/recklessness,if=!talent.reckless_abandon\n\nactions+=/charge,if=time<=0.5||movement.distance>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+=/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||boss&fight_remains<20\nactions.hac+=/warbreaker,if=raid_event.adds.in>22||active_enemies>1\nactions.hac+=/colossus_smash,cycle_targets=1,if=(target.health.pct<20||talent.massacre&target.health.pct<35)\nactions.hac+=/colossus_smash\nactions.hac+=/thunderous_roar,if=(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&raid_event.adds.in>15||active_enemies>1&dot.deep_wounds.remains\nactions.hac+=/spear_of_bastion,if=(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&raid_event.adds.in>15\nactions.hac+=/bladestorm,if=talent.unhinged&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)\nactions.hac+=/bladestorm,if=active_enemies>1&(buff.test_of_might.up||!talent.test_of_might&debuff.colossus_smash.up)&raid_event.adds.in>30||active_enemies>1&dot.deep_wounds.remains\nactions.hac+=/cleave,if=active_enemies>2||!talent.battlelord&buff.merciless_bonegrinder.up&cooldown.mortal_strike.remains>gcd\nactions.hac+=/whirlwind,if=active_enemies>2||talent.storm_of_swords&(buff.merciless_bonegrinder.up||buff.hurricane.up)\nactions.hac+=/skullsplitter,if=rage<40||talent.tide_of_blood&dot.rend.remains&(buff.sweeping_strikes.up&active_enemies>=2||debuff.colossus_smash.up||buff.test_of_might.up)\nactions.hac+=/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"] = { ["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] }, ["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] }, ["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] }, ["combustion_cooldowns"] = { { ["action"] = "potion", ["enabled"] = true, }, -- [1] { ["action"] = "blood_fury", ["enabled"] = true, }, -- [2] { ["enabled"] = true, ["criteria"] = "buff.combustion.up", ["action"] = "berserking", }, -- [3] { ["action"] = "fireblood", ["enabled"] = true, }, -- [4] { ["action"] = "ancestral_call", ["enabled"] = true, }, -- [5] { ["enabled"] = true, ["criteria"] = "( talent.temporal_warp.enabled || runeforge.temporal_warp.enabled ) & buff.exhaustion.up", ["action"] = "time_warp", }, -- [6] { ["enabled"] = true, ["action"] = "gladiators_badge", ["effect_name"] = "gladiators_badge", }, -- [7] { ["enabled"] = true, ["name"] = "irideus_fragment", ["action"] = "irideus_fragment", }, -- [8] { ["enabled"] = true, ["name"] = "spoils_of_neltharus", ["action"] = "spoils_of_neltharus", }, -- [9] { ["enabled"] = true, ["name"] = "tome_of_unstable_power", ["action"] = "tome_of_unstable_power", }, -- [10] { ["enabled"] = true, ["name"] = "timebreaching_talon", ["action"] = "timebreaching_talon", }, -- [11] { ["enabled"] = true, ["name"] = "voidmenders_shadowgem", ["action"] = "voidmenders_shadowgem", }, -- [12] { ["enabled"] = true, ["name"] = "horn_of_valor", ["action"] = "horn_of_valor", }, -- [13] }, ["active_talents"] = { { ["enabled"] = true, ["criteria"] = "active_enemies > 1 & buff.combustion.down & ( variable.time_to_combustion > cooldown.living_bomb.duration || variable.time_to_combustion <= 0 )", ["action"] = "living_bomb", }, -- [1] { ["enabled"] = true, ["criteria"] = "variable.time_to_combustion <= 0 || buff.combustion.remains > travel_time || ( cooldown.meteor.duration < variable.time_to_combustion & ! talent.rune_of_power.enabled ) || talent.rune_of_power.enabled & buff.rune_of_power.up & variable.time_to_combustion > action.meteor.cooldown || fight_remains < variable.time_to_combustion", ["action"] = "meteor", }, -- [2] { ["enabled"] = true, ["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_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] }, }, ["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_remains