22698 lines
1.6 MiB
Lua
Raw Normal View History

2023-05-09 22:28:02 +02:00
HekiliDB = {
2024-12-23 17:08:14 +01:00
["namespaces"] = {
["LibDualSpec-1.0"] = {
},
},
["profileKeys"] = {
["Helnen - Draenor"] = "Default",
["Helfara - Ravencrest"] = "Default",
["Sorastab - Argent Dawn"] = "Default",
["Hellë - Ravencrest"] = "Default",
["Helsora - Draenor"] = "Default",
["Helcel - Ravencrest"] = "Default",
["Helnen - Ravencrest"] = "Default",
["Helefir - Draenor"] = "Default",
["Helsora - Ravencrest"] = "Default",
["Helfael - Ravencrest"] = "Default",
["Helë - Ravencrest"] = "Default",
["Helfël - Draenor"] = "Default",
["Hexcel - Ravencrest"] = "Default",
["Sorahunt - Argent Dawn"] = "Default",
["Helom - Ravencrest"] = "Default",
["Helarx - Draenor"] = "Default",
["Soramonk - Argent Dawn"] = "Default",
["Cuteifread - Shattered Hand"] = "Default",
["Helca - Ravencrest"] = "Default",
["Sorarcana - Argent Dawn"] = "Default",
["Soralock - Argent Dawn"] = "Default",
["Helefir - Ravencrest"] = "Default",
["Sorarms - Argent Dawn"] = "Default",
["Soradk - Argent Dawn"] = "Default",
["Heloce - Ravencrest"] = "Default",
["Soraefir - Draenor"] = "Default",
["Helmenel - Ravencrest"] = "Default",
["Helfurr - Draenor"] = "Default",
["Helca - Draenor"] = "Default",
["Heltha - Ravencrest"] = "Default",
["Sorapriest - Argent Dawn"] = "Default",
},
["profiles"] = {
["Default"] = {
["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,
},
},
["iconStore"] = {
["minimapPos"] = 137.5528731943385,
["hide"] = true,
},
["minimapIcon"] = true,
["runOnce"] = {
["forceReloadClassDefaultOptions_20220306_70"] = true,
["forceReloadClassDefaultOptions_20220306_65"] = true,
["forceReloadClassDefaultOptions_20220306_252"] = true,
["forceReloadClassDefaultOptions_20220306_71"] = true,
["forceReloadClassDefaultOptions_20220306_254"] = true,
["forceReloadClassDefaultOptions_20220306_102"] = true,
["forceReloadClassDefaultOptions_20220306_269"] = true,
["forceReloadClassDefaultOptions_20220306_63"] = true,
["updateMaxRefreshToNewSpecOptions_20220222"] = true,
["forceReloadClassDefaultOptions_20220306_66"] = true,
["forceReloadClassDefaultOptions_20220306_267"] = true,
["forceReloadClassDefaultOptions_20220306_72"] = true,
["forceReloadClassDefaultOptions_20220306_270"] = true,
["forceReloadClassDefaultOptions_20220306_263"] = true,
["forceReloadClassDefaultOptions_20220306_1467"] = true,
["resetAberrantPackageDates_20190728_1"] = true,
["forceReloadClassDefaultOptions_20220306_104"] = true,
["forceReloadClassDefaultOptions_20220306_103"] = true,
["forceReloadClassDefaultOptions_20220306_253"] = true,
["forceReloadClassDefaultOptions_20220306_73"] = true,
["forceReloadClassDefaultOptions_20220306_105"] = true,
["forceReloadClassDefaultOptions_20220306_251"] = true,
["forceReloadClassDefaultOptions_20220306_264"] = true,
["forceSpellFlashBrightness_20221030"] = true,
["forceReloadClassDefaultOptions_20220306_64"] = true,
["forceReloadClassDefaultOptions_20220306_257"] = true,
["forceReloadClassDefaultOptions_20220306_577"] = true,
["forceEnableEnhancedRecheckBoomkin_20210712"] = true,
["forceReloadClassDefaultOptions_20220306_256"] = true,
["forceReloadClassDefaultOptions_20220306_266"] = true,
["forceReloadClassDefaultOptions_20220306_265"] = true,
["forceReloadClassDefaultOptions_20220306_581"] = true,
["forceReloadAllDefaultPriorities_20220228"] = true,
["forceReloadClassDefaultOptions_20220306_262"] = true,
["forceReloadClassDefaultOptions_20220306_268"] = true,
["forceReloadClassDefaultOptions_20220306_258"] = true,
["forceReloadClassDefaultOptions_20220306_250"] = true,
["forceReloadClassDefaultOptions_20220306_255"] = true,
["forceReloadClassDefaultOptions_20220306_1468"] = true,
["forceReloadClassDefaultOptions_20220306_260"] = true,
["forceReloadClassDefaultOptions_20220306_62"] = true,
["forceEnableAllClassesOnceDueToBug_20220225"] = true,
["forceReloadClassDefaultOptions_20220306_261"] = true,
["fixHavocPriorityVersion_20240805"] = true,
["forceReloadClassDefaultOptions_20220306_1473"] = true,
["removeOldThrottles_20241115"] = true,
["forceReloadClassDefaultOptions_20220306_259"] = true,
},
["notifications"] = {
["y"] = 506.9998474121094,
["x"] = -6.999880790710449,
},
["specs"] = {
[62] = {
["settings"] = {
["cancel_pom"] = false,
["check_explosion_range"] = true,
},
},
[1467] = {
["settings"] = {
["use_early_chain"] = false,
["use_clipping"] = false,
["fire_breath_fixed"] = 0,
["use_unravel"] = false,
["use_deep_breath"] = true,
["dragonrage_pad"] = 0.5,
["use_verdant_embrace"] = false,
},
},
[63] = {
["settings"] = {
["prevent_hardcasts"] = false,
["check_explosion_range"] = true,
["pyroblast_pull"] = false,
},
},
[250] = {
["settings"] = {
["rt_damage"] = 30,
["save_blood_shield"] = true,
["vb_damage"] = 50,
["ibf_damage"] = 40,
["death_strike_pool_amount"] = 65,
},
},
[251] = {
["settings"] = {
["bos_rp"] = 50,
["ams_usage"] = "damage",
},
},
[252] = {
["settings"] = {
["dps_shell"] = false,
["disable_iqd_execute"] = false,
},
},
[1468] = {
["settings"] = {
["spend_essence"] = false,
["use_deep_breath"] = true,
["fire_breath_fixed"] = 0,
["use_unravel"] = false,
},
},
[253] = {
["settings"] = {
["check_pet_range"] = false,
["avoid_bw_overlap"] = false,
["pet_healing"] = 0,
["barbed_shot_grace_period"] = 0.5,
["mark_any"] = false,
},
},
[254] = {
["settings"] = {
["prevent_hardcasts"] = false,
["trueshot_rapid_fire"] = true,
["mark_any"] = false,
["pet_healing"] = 0,
["eagletalon_swap"] = false,
},
},
[255] = {
["settings"] = {
["mark_any"] = false,
["pet_healing"] = 0,
["allow_focus_overcap"] = false,
["use_harpoon"] = true,
},
["cycle"] = true,
},
[66] = {
["settings"] = {
["goak_damage"] = 40,
["wog_health"] = 40,
["ds_damage"] = 60,
["sentinel_def"] = false,
},
},
[257] = {
["settings"] = {
["sw_death_protection"] = 50,
},
},
[258] = {
["settings"] = {
["pad_void_bolt"] = true,
["ignore_solvent"] = true,
["min_sear_ticks"] = 2,
["sw_death_protection"] = 50,
["pad_ascended_blast"] = true,
},
},
[259] = {
["settings"] = {
["vanish_charges_reserved"] = 0,
["mfd_points"] = 3,
["dot_threshold"] = 7,
["max_garrote_spread"] = 10,
["solo_vanish"] = true,
["priority_rotation"] = false,
["envenom_pool_pct"] = 50,
["fok_critical_cp_prediction"] = "predict",
},
},
[260] = {
["settings"] = {
["vanish_charges_reserved"] = 0,
["no_rtb_in_dance_cto"] = true,
["stealth_padding"] = 0.1,
["crackshot_lock"] = false,
["sinister_clash"] = -0.5,
["mfd_points"] = 3,
["use_ld_opener"] = false,
["check_blade_rush_range"] = true,
["solo_vanish"] = true,
["allow_shadowmeld"] = false,
["never_roll_in_window"] = false,
["ambush_anyway"] = false,
},
},
[261] = {
["settings"] = {
["rupture_duration"] = 12,
["mfd_points"] = 3,
["solo_vanish"] = true,
["priority_rotation"] = false,
["vanish_charges_reserved"] = 0,
},
},
[262] = {
["settings"] = {
["purge_icd"] = 12,
["hostile_dispel"] = false,
["stack_buffer"] = 1.1,
},
},
[581] = {
["settings"] = {
["frailty_stacks"] = 1,
["brand_charges"] = 0,
["infernal_charges"] = 1,
},
},
[264] = {
["settings"] = {
["second_shield"] = "earth_shield",
["healing_mode"] = false,
},
},
[265] = {
["settings"] = {
["default_pet"] = "summon_sayaad",
["manage_ds_ticks"] = false,
},
},
[266] = {
["settings"] = {
["dcon_imps"] = 0,
},
},
[267] = {
["settings"] = {
["default_pet"] = "summon_sayaad",
["fixed_aoe_3_plus"] = false,
["cleave_apl"] = false,
},
},
[268] = {
["settings"] = {
["bof_percent"] = 50,
["purify_for_celestial"] = true,
["max_damage"] = true,
["vivify_percent"] = 65,
["purify_for_niuzao"] = true,
["purify_stagger_maxhp"] = 6,
["ox_walker"] = true,
["eh_percent"] = 65,
["purify_stagger_currhp"] = 12,
},
},
[269] = {
["settings"] = {
["sef_one_charge"] = false,
["tok_damage"] = 1,
["check_wdp_range"] = false,
["allow_fsk"] = false,
["use_diffuse"] = false,
["check_sck_range"] = false,
},
},
[270] = {
["settings"] = {
["aoe_rsk"] = false,
["single_zen_pulse"] = false,
["save_faeline"] = false,
["roll_movement"] = 5,
},
},
[70] = {
["settings"] = {
["sov_damage"] = 20,
["check_wake_range"] = false,
["desync_toll"] = false,
},
},
[102] = {
["settings"] = {
["delay_berserking"] = false,
["vigil_damage"] = 50,
["starlord_cancel"] = false,
},
},
[71] = {
["settings"] = {
["shockwave_interrupt"] = true,
["spell_reflection_filter"] = true,
["heroic_charge"] = false,
},
},
[103] = {
["settings"] = {
["delay_berserking"] = false,
["regrowth"] = true,
["frenzy_cp"] = 2,
["filler_regrowth"] = false,
["allow_crit_prediction"] = true,
["rip_duration"] = 9,
["owlweave_cat"] = false,
["use_funnel"] = false,
["lazy_swipe"] = false,
["solo_prowl"] = false,
["zerk_biteweave"] = false,
["vigil_damage"] = 50,
},
},
[72] = {
["settings"] = {
["check_ww_range"] = false,
["charge_min_range"] = 10,
["t30_bloodthirst_crit"] = 95,
["shockwave_interrupt"] = true,
["spell_reflection_filter"] = true,
["heroic_charge"] = false,
},
},
[104] = {
["settings"] = {
["maul_anyway"] = true,
["ironfur_damage_threshold"] = 5,
["vigil_damage"] = 50,
["catweave_bear"] = false,
["max_ironfur"] = 1,
["mangle_more"] = false,
["maul_rage"] = 20,
["owlweave_bear"] = false,
["shift_for_convoke"] = false,
},
},
[73] = {
["settings"] = {
["spell_block_amount"] = 25,
["rallying_cry_health"] = 50,
["spell_reflection_filter"] = true,
["stack_shield_block"] = false,
["stance_weaving"] = false,
["last_stand_amount"] = 50,
["rallying_cry_condition"] = false,
["shield_wall_amount"] = 50,
["last_stand_condition"] = false,
["spell_block_health"] = 75,
["shield_wall_condition"] = false,
["shield_wall_health"] = 50,
["overlap_ignore_pain"] = false,
["rallying_cry_amount"] = 50,
["last_stand_offensively"] = false,
["shockwave_interrupt"] = true,
["last_stand_health"] = 50,
["victory_rush_health"] = 75,
["reserve_rage"] = 35,
},
},
[263] = {
["settings"] = {
["filler_shock"] = true,
["purge_icd"] = 12,
["hostile_dispel"] = false,
["pwave_gcds"] = 4,
["pad_lava_lash"] = true,
["pad_windstrike"] = true,
["funnel_priority"] = false,
["pwave_targets"] = 0,
["burn_before_wave"] = true,
["project_windfury"] = 0,
},
},
[105] = {
["settings"] = {
["healing_mode"] = false,
},
},
[64] = {
["settings"] = {
["check_explosion_range"] = true,
["prevent_hardcasts"] = false,
["limit_ice_lance"] = false,
["manual_water_jet"] = false,
},
},
[577] = {
["settings"] = {
["retreat_and_return"] = "off",
["retreat_filler"] = false,
["fel_rush_charges"] = 0,
["demon_blades_acknowledged"] = false,
["throw_glaive_charges"] = 0,
["recommend_movement"] = true,
["fel_rush_filler"] = true,
["unbound_movement"] = false,
},
},
[256] = {
["settings"] = {
["sw_death_protection"] = 50,
},
},
[1473] = {
["settings"] = {
["use_early_chain"] = false,
["manage_attunement"] = false,
["fire_breath_fixed"] = 0,
["use_unravel"] = false,
["use_clipping"] = false,
["manage_source_of_magic"] = false,
["use_verdant_embrace"] = false,
},
},
},
["packs"] = {
["Windwalker"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/thewrwithin/profiles/PreRaids/PR_Monk_Windwalker.simc",
["builtIn"] = true,
["date"] = 20240928.2,
["spec"] = 269,
["desc"] = "2024-09-28: SimC update, address SEF issue in-game vs. sims\n\n2024-09-24: Xuen fix\n\n2024-09-01, 09-22: SimC update\n\n2024-08-30: Allow Tiger Palm to break Hit Combo sometimes\n\n2024-08-29: SimC update\n\n2024-08-25: Relax opener outside of boss fights\n\n2024-08-22: SimC update\n\n2024-07-26: The War Within",
["lists"] = {
["default_cleave"] = {
{
["enabled"] = true,
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
["description"] = "2-4 targets",
["criteria"] = "buff.pressure_point.up & active_enemies < 4 & cooldown.fists_of_fury.remains > 4",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.stack = 2 & active_enemies > 3",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( energy > 55 & talent.inner_peace.enabled || energy > 60 & ! talent.inner_peace.enabled ) & combo_strike & chi.max - chi >= 2 & buff.teachings_of_the_monastery.stack < buff.teachings_of_the_monastery.max_stack & ( talent.energy_burst.enabled & ! buff.bok_proc.up || ! talent.energy_burst.enabled ) & ! buff.ordered_elements.up || ( talent.energy_burst.enabled & ! buff.bok_proc.up || ! talent.energy_burst.enabled ) & ! buff.ordered_elements.up & ! cooldown.fists_of_fury.remains & chi < 3 || ( prev.strike_of_the_windlord || cooldown.strike_of_the_windlord.remains ) & cooldown.celestial_conduit.remains < 2 & buff.ordered_elements.up & chi < 5 & combo_strike || ( ! buff.heart_of_the_jade_serpent_cdr.up || ! buff.heart_of_the_jade_serpent_cdr_celestial.up ) & combo_strike & chi.deficit >= 2 & ! buff.ordered_elements.up",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["action"] = "touch_of_death",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.storm_earth_and_fire.up & cooldown.strike_of_the_windlord.remains & ( talent.xuens_bond.enabled || ! talent.xuens_bond.enabled & buff.invokers_delight.up ) || boss & fight_remains < 15",
["action"] = "celestial_conduit",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! pet.xuen_the_white_tiger.active & prev.tiger_palm & time < 5 || buff.heart_of_the_jade_serpent_cdr_celestial.up & buff.pressure_point.up",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.heart_of_the_jade_serpent_cdr_celestial.up",
["action"] = "fists_of_fury",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.heart_of_the_jade_serpent_cdr_celestial.up",
["action"] = "whirling_dragon_punch",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.gale_force.enabled & buff.invokers_delight.up & ( buff.bloodlust.up || cooldown.celestial_conduit.remains & ! buff.heart_of_the_jade_serpent_cdr_celestial.up )",
["action"] = "strike_of_the_windlord",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up & buff.bloodlust.up",
["action"] = "fists_of_fury",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up & buff.bloodlust.up & active_enemies < 3",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 8 & ( active_enemies < 3 || talent.shadowboxing_treads.enabled )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! talent.revolving_whirl.enabled || talent.revolving_whirl.enabled & buff.dance_of_chiji.stack < 2 & active_enemies > 2 || active_enemies < 3",
["action"] = "whirling_dragon_punch",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "time > 5 & ( cooldown.invoke_xuen_the_white_tiger.remains > 15 || talent.flurry_strikes.enabled )",
["action"] = "strike_of_the_windlord",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.the_emperors_capacitor.stack > 19 & combo_strike & talent.power_of_the_thunder_king.enabled",
["action"] = "crackling_jade_lightning",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.stack = 2",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & active_enemies < 5 & buff.wisdom_of_the_wall_flurry.up & active_enemies < 4",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "fists_of_fury",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & active_enemies < 5 & buff.wisdom_of_the_wall_flurry.up",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up & buff.chi_energy.stack > 29",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "chi > 4 & ( active_enemies < 3 || talent.glory_of_the_dawn.enabled ) || chi > 2 & energy > 50 & ( active_enemies < 3 || talent.glory_of_the_dawn.enabled ) || cooldown.fists_of_fury.remains > 2 & ( active_enemies < 3 || talent.glory_of_the_dawn.enabled )",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 4 & ! talent.knowledge_of_the_broken_temple.enabled & talent.shadowboxing_treads.enabled & active_enemies < 3",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & talent.crane_vortex.enabled & active_enemies > 2",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & active_enemies < 5",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & chi.deficit >= 2 & ( ! buff.ordered_elements.up || energy.time_to_max <= gcd.max * 3 )",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & cooldown.fists_of_fury.remains & buff.teachings_of_the_monastery.stack > 3 & cooldown.rising_sun_kick.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.singularly_focused_jade.enabled || talent.jadefire_harmony.enabled",
["action"] = "jadefire_stomp",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & cooldown.fists_of_fury.remains & ( buff.teachings_of_the_monastery.stack > 3 || buff.ordered_elements.up ) & ( talent.shadowboxing_treads.enabled || buff.bok_proc.up || buff.ordered_elements.up )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ! buff.ordered_elements.up & talent.crane_vortex.enabled & active_enemies > 2 & chi > 4",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.ordered_elements.up",
["action"] = "chi_burst",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ( buff.ordered_elements.up || buff.bok_proc.up & chi.deficit >= 1 & talent.energy_burst.enabled ) & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & cooldown.fists_of_fury.remains & ( chi > 2 || energy > 60 || buff.bok_proc.up )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "jadefire_stomp",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & chi.deficit >= 1",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & talent.hit_combo.enabled",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "buff.ordered_elements.up & ! talent.hit_combo.enabled & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! combo_strike & chi < 3 & ! cooldown.fists_of_fury.remains",
["action"] = "tiger_palm",
},
},
["aoe_opener"] = {
{
["enabled"] = true,
["action"] = "tiger_palm",
["cycle_targets"] = 1,
["description"] = "Hekili: Modified to check Hit Combo since you will go pack-to-pack in dungeons (vs. single-encounter sims).",
["criteria"] = "chi < 6 & ( combo_strike || ! talent.hit_combo.enabled )",
},
},
["default_aoe"] = {
{
["enabled"] = true,
["action"] = "tiger_palm",
["cycle_targets"] = 1,
["description"] = ">=5 Targets",
["criteria"] = "( energy > 55 & talent.inner_peace.enabled || energy > 60 & ! talent.inner_peace.enabled ) & combo_strike & chi.max - chi >= 2 & buff.teachings_of_the_monastery.stack < buff.teachings_of_the_monastery.max_stack & ( talent.energy_burst.enabled & ! buff.bok_proc.up ) & ! buff.ordered_elements.up || ( talent.energy_burst.enabled & ! buff.bok_proc.up ) & ! buff.ordered_elements.up & ! cooldown.fists_of_fury.remains & chi < 3 || ( prev.strike_of_the_windlord || cooldown.strike_of_the_windlord.remains ) & cooldown.celestial_conduit.remains < 2 & buff.ordered_elements.up & chi < 5 & combo_strike",
},
{
["action"] = "touch_of_death",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.dance_of_chiji.stack = 2 & combo_strike",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.chi_energy.stack > 29 & cooldown.fists_of_fury.remains < 5",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.storm_earth_and_fire.up & cooldown.strike_of_the_windlord.remains & ( talent.xuens_bond.enabled || ! talent.xuens_bond.enabled & buff.invokers_delight.up ) || boss & fight_remains < 15",
["action"] = "celestial_conduit",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! talent.xuens_battlegear.enabled & ! cooldown.whirling_dragon_punch.remains & cooldown.fists_of_fury.remains > 1 & ( ! talent.revolving_whirl.enabled || talent.revolving_whirl.enabled & buff.dance_of_chiji.stack < 2 & active_enemies > 2 ) || ! buff.storm_earth_and_fire.up & buff.pressure_point.up",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! talent.revolving_whirl.enabled || talent.revolving_whirl.enabled & buff.dance_of_chiji.stack < 2 & active_enemies > 2",
["action"] = "whirling_dragon_punch",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.bok_proc.up & chi < 2 & talent.energy_burst.enabled & energy < 55",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "time > 5 & ( cooldown.invoke_xuen_the_white_tiger.remains > 15 || talent.flurry_strikes.enabled )",
["action"] = "strike_of_the_windlord",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 8 & talent.shadowboxing_treads.enabled",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.the_emperors_capacitor.stack > 19 & combo_strike & talent.power_of_the_thunder_king.enabled",
["action"] = "crackling_jade_lightning",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "fists_of_fury",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & buff.wisdom_of_the_wall_flurry.up & chi < 6",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & chi > 5",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up & buff.chi_energy.stack > 29 & cooldown.fists_of_fury.remains < 5",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.pressure_point.up & cooldown.fists_of_fury.remains > 2",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up & spinning_crane_kick.max",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & talent.crane_vortex.enabled & active_enemies > 2 & spinning_crane_kick.max",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & buff.ordered_elements.up",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & chi.deficit >= 2 & ( ! buff.ordered_elements.up || energy.time_to_max <= gcd.max * 3 )",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.singularly_focused_jade.enabled || talent.jadefire_harmony.enabled",
["action"] = "jadefire_stomp",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ! buff.ordered_elements.up & talent.crane_vortex.enabled & active_enemies > 2 & chi > 4 & spinning_crane_kick.max",
["action"] = "spinning_crane_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & cooldown.fists_of_fury.remains & ( buff.teachings_of_the_monastery.stack > 3 || buff.ordered_elements.up ) & ( talent.shadowboxing_treads.enabled || buff.bok_proc.up )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ! cooldown.fists_of_fury.remains & chi < 3",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ( chi > 3 || energy > 55 )",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ( buff.ordered_elements.up || buff.bok_proc.up & chi.deficit >= 1 & talent.energy_burst.enabled ) & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & cooldown.fists_of_fury.remains & ( chi > 2 || energy > 60 || buff.bok_proc.up )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "jadefire_stomp",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & chi.deficit >= 1",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.ordered_elements.up",
["action"] = "chi_burst",
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & talent.hit_combo.enabled & spinning_crane_kick.max",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "buff.ordered_elements.up & ! talent.hit_combo.enabled & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! combo_strike & chi < 3 & ! cooldown.fists_of_fury.remains",
["action"] = "tiger_palm",
},
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "target.debuff.casting.react",
["action"] = "spear_hand_strike",
},
{
["enabled"] = true,
["description"] = "Potion",
["criteria"] = "buff.storm_earth_and_fire.up & ( ! talent.invoke_xuen.enabled || pet.xuen_the_white_tiger.active ) || boss & fight_remains <= 30",
["action"] = "potion",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "false",
["var_name"] = "has_external_pi",
["description"] = "Enable PI if available",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Use Trinkets",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Openers",
["strict"] = 1,
["criteria"] = "time < 3 & active_enemies > 2 & chi.deficit > 0",
["list_name"] = "aoe_opener",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "time < 4 & active_enemies < 3 & chi.deficit > 0",
["list_name"] = "normal_opener",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Use Cooldowns",
["strict"] = 1,
["criteria"] = "talent.storm_earth_and_fire.enabled",
["list_name"] = "cooldowns",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Default Priority",
["strict"] = 1,
["criteria"] = "active_enemies >= 5",
["list_name"] = "default_aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 1 & ( ! boss || chi.deficit = 0 || time > 7 || ! talent.celestial_conduit.enabled ) & active_enemies < 5",
["list_name"] = "default_cleave",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 2",
["list_name"] = "default_st",
},
},
["precombat"] = {
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
},
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "debuff.mark_of_the_crane.refreshable & ( fight_remains > 14 & boss || fight_remains > 22 ) & ! cooldown.invoke_xuen_the_white_tiger.remains & ( chi < 5 & ! talent.ordered_elements.enabled || chi < 3 ) & ( combo_strike || ! talent.hit_combo.enabled )",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( ! boss & active_enemies = 1 & ( time < 10 || talent.xuens_bond.enabled & talent.celestial_conduit.enabled ) || boss || active_enemies > 1 ) & cooldown.storm_earth_and_fire.ready & ( fight_remains > 14 & boss || fight_remains > 22 ) & ( active_enemies > 2 || debuff.acclamation.up || ! talent.ordered_elements.enabled & time < 5 ) & ( chi > 2 & talent.ordered_elements.enabled || chi > 5 || chi > 3 & energy < 50 || energy < 50 & active_enemies = 1 || prev.tiger_palm & ! talent.ordered_elements.enabled & time < 5 ) || boss & fight_remains < 30",
["action"] = "invoke_xuen",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( fight_remains > 14 & boss || fight_remains > 22 ) & ( active_enemies > 2 || cooldown.rising_sun_kick.remains || ! talent.ordered_elements.enabled ) & ( ( buff.invokers_delight.remains > 10 & ! buff.bloodlust.up || buff.bloodlust.up & cooldown.storm_earth_and_fire.full_recharge_time < 1 ) || cooldown.storm_earth_and_fire.full_recharge_time <= cooldown.invoke_xuen_the_white_tiger.true_remains & ! buff.bloodlust.up & ( active_enemies > 1 || cooldown.strike_of_the_windlord.remains < 2 & ( talent.flurry_strikes.enabled || buff.heart_of_the_jade_serpent.up ) ) & ( chi > 3 || chi > 1 & talent.ordered_elements.enabled ) || cooldown.storm_earth_and_fire.full_recharge_time < 10 & ( chi > 3 || chi > 1 & talent.ordered_elements.enabled ) ) || boss & fight_remains < 30 || prev.invoke_xuen_the_white_tiger || buff.invokers_delight.remains > 10 & ! boss & ( cooldown.rising_sun_kick.remains || ! talent.ordered_elements.enabled || active_enemies > 2 )",
["action"] = "storm_earth_and_fire",
["cycle_targets"] = 1,
},
{
["action"] = "touch_of_karma",
["enabled"] = true,
},
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
["criteria"] = "( pet.xuen_the_white_tiger.active || ! talent.invoke_xuen_the_white_tiger.enabled ) & ! buff.storm_earth_and_fire.up || boss & fight_remains < 25",
["description"] = "Use Power Infusion while Invoke Xuen, the White Tiger is active.",
},
{
["enabled"] = true,
["criteria"] = "buff.storm_earth_and_fire.up",
["name"] = "erupting_spear_fragment",
["action"] = "erupting_spear_fragment",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! trinket.t2.has_use_buff & ! buff.storm_earth_and_fire.up & ! pet.xuen_the_white_tiger.active || ( trinket.t1.has_use_buff || trinket.t2.has_use_buff ) & cooldown.invoke_xuen_the_white_tiger.remains > 30 || boss & fight_remains < 5",
["action"] = "manic_grieftorch",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! trinket.t2.has_use_buff & ! buff.storm_earth_and_fire.up & ! pet.xuen_the_white_tiger.active || ( trinket.t1.has_use_buff || trinket.t2.has_use_buff ) & cooldown.invoke_xuen_the_white_tiger.remains > 30 || boss & fight_remains < 10",
["action"] = "beacon_to_the_beyond",
},
{
["enabled"] = true,
["criteria"] = "cooldown.fists_of_fury.remains < 2 & cooldown.invoke_xuen_the_white_tiger.remains > 10 || boss & fight_remains < 12",
["action"] = "djaruun_pillar_of_the_elder_flame",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! trinket.t2.has_use_buff || ( trinket.t1.has_use_buff || trinket.t2.has_use_buff ) & cooldown.invoke_xuen_the_white_tiger.remains > 10 || boss & fight_remains < 10",
["action"] = "dragonfire_bomb_dispenser",
},
{
["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"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! trinket.t2.has_use_buff || ( trinket.t1.has_use_buff || trinket.t2.has_use_buff ) & cooldown.invoke_xuen_the_white_tiger.remains > 30",
["action"] = "trinket1",
},
{
["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"] = "mydas_talisman",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.has_use_buff & ! trinket.t2.has_use_buff || ( trinket.t1.has_use_buff || trinket.t2.has_use_buff ) & cooldown.invoke_xuen_the_white_tiger.remains > 30",
["action"] = "mydas_talisman",
},
},
["normal_opener"] = {
{
["enabled"] = true,
["action"] = "tiger_palm",
["cycle_targets"] = 1,
["description"] = "normal opener",
["criteria"] = "chi < 6 & ( combo_strike || ! talent.hit_combo.enabled )",
},
{
["enabled"] = true,
["criteria"] = "talent.ordered_elements.enabled",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
},
["default_st"] = {
{
["enabled"] = true,
["description"] = "1 target",
["criteria"] = "buff.pressure_point.up || buff.ordered_elements.remains <= gcd.max * 3 & buff.storm_earth_and_fire.up",
["action"] = "rising_sun_kick",
},
{
["enabled"] = true,
["criteria"] = "( energy > 55 & talent.inner_peace.enabled || energy > 60 & ! talent.inner_peace.enabled ) & combo_strike & chi.max - chi >= 2 & buff.teachings_of_the_monastery.stack < buff.teachings_of_the_monastery.max_stack & ( talent.energy_burst.enabled & ! buff.bok_proc.up || ! talent.energy_burst.enabled ) & ! buff.ordered_elements.up || ( talent.energy_burst.enabled & ! buff.bok_proc.up || ! talent.energy_burst.enabled ) & ! buff.ordered_elements.up & ! cooldown.fists_of_fury.remains & chi < 3 || ( prev.strike_of_the_windlord || cooldown.strike_of_the_windlord.remains ) & cooldown.celestial_conduit.remains < 2 & buff.ordered_elements.up & chi < 5 & combo_strike || ( ! buff.heart_of_the_jade_serpent_cdr.up || ! buff.heart_of_the_jade_serpent_cdr_celestial.up ) & combo_strike & chi.deficit >= 2 & ! buff.ordered_elements.up",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["action"] = "touch_of_death",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.invokers_delight.up & ! buff.storm_earth_and_fire.up & talent.ordered_elements.enabled",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.storm_earth_and_fire.up & ( ! talent.ordered_elements.enabled || buff.ordered_elements.up ) & cooldown.strike_of_the_windlord.remains & ( talent.xuens_bond.enabled || ! talent.xuens_bond.enabled & buff.invokers_delight.up ) || boss & fight_remains < 15",
["action"] = "celestial_conduit",
},
{
["enabled"] = true,
["criteria"] = "! pet.xuen_the_white_tiger.active & prev.tiger_palm & time < 5 || buff.storm_earth_and_fire.up & talent.ordered_elements.enabled",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.gale_force.enabled & buff.invokers_delight.up & ( buff.bloodlust.up || cooldown.celestial_conduit.remains & ! buff.heart_of_the_jade_serpent_cdr_celestial.up )",
["action"] = "strike_of_the_windlord",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up & buff.bloodlust.up",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up & buff.bloodlust.up",
["action"] = "fists_of_fury",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack > 3 & buff.ordered_elements.up & cooldown.rising_sun_kick.remains > 1 & cooldown.fists_of_fury.remains > 2",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.dance_of_chiji.stack = 2 & combo_strike & buff.power_infusion.up & buff.bloodlust.up",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up & buff.bloodlust.up",
["action"] = "whirling_dragon_punch",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & buff.power_infusion.up & buff.bloodlust.up",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack > 4 & cooldown.rising_sun_kick.remains > 1 & cooldown.fists_of_fury.remains > 2",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.heart_of_the_jade_serpent_cdr_celestial.up & ! buff.dance_of_chiji.stack = 2 || buff.ordered_elements.up || talent.knowledge_of_the_broken_temple.enabled",
["action"] = "whirling_dragon_punch",
},
{
["enabled"] = true,
["criteria"] = "time > 5 & ( cooldown.invoke_xuen_the_white_tiger.remains > 15 || talent.flurry_strikes.enabled )",
["action"] = "strike_of_the_windlord",
},
{
["enabled"] = true,
["criteria"] = "chi > 4 || chi > 2 & energy > 50 || cooldown.fists_of_fury.remains > 2",
["action"] = "rising_sun_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled & buff.wisdom_of_the_wall_flurry.up",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & chi.deficit >= 2 & energy.time_to_max <= gcd.max * 3",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack > 7 & talent.memory_of_the_monastery.enabled & ! buff.memory_of_the_monastery.up & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["action"] = "fists_of_fury",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( buff.dance_of_chiji.stack = 2 || buff.dance_of_chiji.remains < 2 & buff.dance_of_chiji.up ) & combo_strike & ! buff.ordered_elements.up",
["action"] = "spinning_crane_kick",
},
{
["action"] = "whirling_dragon_punch",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.teachings_of_the_monastery.stack = 4 & ! talent.knowledge_of_the_broken_temple.enabled & cooldown.rising_sun_kick.remains > 1 & cooldown.fists_of_fury.remains > 2",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.dance_of_chiji.stack = 2 & combo_strike",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & cooldown.rising_sun_kick.remains > 1 & cooldown.fists_of_fury.remains > 2",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.dance_of_chiji.up & ( buff.ordered_elements.up || energy.time_to_max >= gcd.max * 3 & talent.sequenced_strikes.enabled & talent.energy_burst.enabled || ! talent.sequenced_strikes.enabled || ! talent.energy_burst.enabled || buff.dance_of_chiji.remains <= gcd.max * 3 )",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & energy.time_to_max <= gcd.max * 3 & talent.flurry_strikes.enabled",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.singularly_focused_jade.enabled || talent.jadefire_harmony.enabled",
["action"] = "jadefire_stomp",
},
{
["enabled"] = true,
["criteria"] = "! buff.ordered_elements.up",
["action"] = "chi_burst",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & ( buff.ordered_elements.up || buff.bok_proc.up & chi.deficit >= 1 & talent.energy_burst.enabled ) & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.the_emperors_capacitor.stack > 19 & ! buff.ordered_elements.up & combo_strike",
["action"] = "crackling_jade_lightning",
},
{
["enabled"] = true,
["criteria"] = "combo_strike & cooldown.fists_of_fury.remains & ( chi > 2 || energy > 60 || buff.bok_proc.up )",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["action"] = "jadefire_stomp",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & chi.deficit >= 1",
["action"] = "tiger_palm",
["cycle_targets"] = 1,
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "combo_strike & buff.ordered_elements.up & talent.hit_combo.enabled",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "buff.ordered_elements.up & ! talent.hit_combo.enabled & cooldown.fists_of_fury.remains",
["action"] = "blackout_kick",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "prev.tiger_palm & chi < 3 & ! cooldown.fists_of_fury.remains",
["action"] = "tiger_palm",
},
},
},
["version"] = 20240928.2,
["warnings"] = "The import for 'default_cleave' required some automated changes.\nLine 3: Converted 'talent.inner_peace' to 'talent.inner_peace.enabled' (1x).\nLine 3: Converted 'talent.inner_peace' to 'talent.inner_peace.enabled' (1x).\nLine 3: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 3: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 3: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 3: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 5: Converted 'talent.xuens_bond' to 'talent.xuens_bond.enabled' (1x).\nLine 5: Converted 'talent.xuens_bond' to 'talent.xuens_bond.enabled' (1x).\nLine 9: Converted 'talent.gale_force' to 'talent.gale_force.enabled' (1x).\nLine 12: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 13: Converted 'talent.revolving_whirl' to 'talent.revolving_whirl.enabled' (1x).\nLine 13: Converted 'talent.revolving_whirl' to 'talent.revolving_whirl.enabled' (1x).\nLine 14: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 15: Converted 'talent.power_of_the_thunder_king' to 'talent.power_of_the_thunder_king.enabled' (1x).\nLine 17: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 19: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 21: Converted 'talent.glory_of_the_dawn' to 'talent.glory_of_the_dawn.enabled' (1x).\nLine 21: Converted 'talent.glory_of_the_dawn' to 'talent.glory_of_the_dawn.enabled' (1x).\nLine 21: Converted 'talent.glory_of_the_dawn' to 'talent.glory_of_the_dawn.enabled' (1x).\nLine 22: Converted 'talent.knowledge_of_the_broken_temple' to 'talent.knowledge_of_the_broken_temple.enabled' (1x).\nLine 22: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 24: Converted 'talent.crane_vortex' to 'talent.crane_vortex.enabled' (1x).\nLine 25: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 28: Converted 'talent.singularly_focused_jade' to 'talent.singularly_focused_jade.enabled' (1x).\nLine 28: Converted 'talent.jadefire_harmony' to 'talent.jadefire_harmony.enabled' (1x).\nLine 29: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 30: Converted 'talent.crane_vortex' to 'talent.crane_vortex.enabled' (1x).\nLine 32: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 37: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\nLine 38: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\n\nThe import for 'aoe_opener' required some automated changes.\nLine 1: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\n\nThe import for 'default_st' required some automated changes.\nLine 2: Converted 'talent.inner_peace' to 'talent.inner_peace.enabled' (1x).\nLine 2: Converted 'talent.inner_peace' to 'talent.inner_peace.enabled' (1x).\nLine 2: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 2: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 2: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 2: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 4: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 5: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 5: Converted 'talent.xuens_bond' to 'talent.xuens_bond.enabled' (1x).\nLine 5: Converted 'talent.xuens_bond' to 'talent.xuens_bond.enabled' (1x).\nLine 6: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 7: Converted 'talent.gale_force' to 'talent.gale_force.enabled' (1x).\nLine 13: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 15: Converted 'talent.knowledge_of_the_broken_temple' to 'talent.knowledge_of_the_broken_temple.enabled' (1x).\nLine 16: Converted 'talent.flurry_strikes' to 'talent.fl
["author"] = "SimC",
["profile"] = "actions.precombat+=/use_item,name=imperfect_ascendancy_serum\n\nactions+=/spear_hand_strike,if=target.debuff.casting.react\n# Potion\nactions+=/potion,if=buff.storm_earth_and_fire.up&(!talent.invoke_xuen||pet.xuen_the_white_tiger.active)||boss&fight_remains<=30\n# Enable PI if available\nactions+=/variable,name=has_external_pi,value=false\n# Use Trinkets\nactions+=/call_action_list,name=trinkets\n# Openers\nactions+=/call_action_list,name=aoe_opener,strict=1,if=time<3&active_enemies>2&chi.deficit>0\nactions+=/call_action_list,name=normal_opener,strict=1,if=time<4&active_enemies<3&chi.deficit>0\n# Use Cooldowns\nactions+=/call_action_list,name=cooldowns,strict=1,if=talent.storm_earth_and_fire\n# Default Priority\nactions+=/call_action_list,name=default_aoe,strict=1,if=active_enemies>=5\nactions+=/call_action_list,name=default_cleave,if=active_enemies>1&(!boss||chi.deficit=0||time>7||!talent.celestial_conduit)&active_enemies<5\nactions+=/call_action_list,name=default_st,strict=1,if=active_enemies<2\n\n# Use Power Infusion while Invoke Xuen, the White Tiger is active.\nactions.trinkets+=/use_item,name=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.trinkets+=/use_item,name=erupting_spear_fragment,if=buff.storm_earth_and_fire.up\nactions.trinkets+=/manic_grieftorch,if=!trinket.1.has_use_buff&!trinket.2.has_use_buff&!buff.storm_earth_and_fire.up&!pet.xuen_the_white_tiger.active||(trinket.1.has_use_buff||trinket.2.has_use_buff)&cooldown.invoke_xuen_the_white_tiger.remains>30||boss&fight_remains<5\nactions.trinkets+=/beacon_to_the_beyond,if=!trinket.1.has_use_buff&!trinket.2.has_use_buff&!buff.storm_earth_and_fire.up&!pet.xuen_the_white_tiger.active||(trinket.1.has_use_buff||trinket.2.has_use_buff)&cooldown.invoke_xuen_the_white_tiger.remains>30||boss&fight_remains<10\nactions.trinkets+=/djaruun_pillar_of_the_elder_flame,if=cooldown.fists_of_fury.remains<2&cooldown.invoke_xuen_the_white_tiger.remains>10||boss&fight_remains<12\nactions.trinkets+=/dragonfire_bomb_dispenser,if=!trinket.1.has_use_buff&!trinket.2.has_use_buff||(trinket.1.has_use_buff||trinket.2.has_use_buff)&cooldown.invoke_xuen_the_white_tiger.remains>10||boss&fight_remains<10\nactions.trinkets+=/trinket1,if=(pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger)&buff.storm_earth_and_fire.up||boss&fight_remains<25\nactions.trinkets+=/trinket1,if=!trinket.1.has_use_buff&!trinket.2.has_use_buff||(trinket.1.has_use_buff||trinket.2.has_use_buff)&cooldown.invoke_xuen_the_white_tiger.remains>30\nactions.trinkets+=/trinket2,if=(pet.xuen_the_white_tiger.active||!talent.invoke_xuen_the_white_tiger)&buff.storm_earth_and_fire.up||boss&fight_remains<25\nactions.trinkets+=/trinket2,if=!trinket.1.has_use_buff&!trinket.2.has_use_buff||(trinket.1.has_use_buff||trinket.2.has_use_buff)&cooldown.invoke_xuen_the_white_tiger.remains>30\n\nactions.cooldowns+=/tiger_palm,cycle_targets=1,if=debuff.mark_of_the_crane.refreshable&(fight_remains>14&boss||fight_remains>22)&!cooldown.invoke_xuen_the_white_tiger.remains&(chi<5&!talent.ordered_elements||chi<3)&(combo_strike||!talent.hit_combo)\nactions.cooldowns+=/invoke_xuen_the_white_tiger,cycle_targets=1,if=(!boss&active_enemies=1&(time<10||talent.xuens_bond&talent.celestial_conduit)||boss||active_enemies>1)&cooldown.storm_earth_and_fire.ready&(fight_remains>14&boss||fight_remains>22)&(active_enemies>2||debuff.acclamation.up||!talent.ordered_elements&time<5)&(chi>2&talent.ordered_elements||chi>5||chi>3&energy<50||energy<50&active_enemies=1||prev.tiger_palm&!talent.ordered_elements&time<5)||boss&fight_remains<30\nactions.cooldowns+=/storm_earth_and_fire,cycle_targets=1,if=(fight_remains>14&boss||fight_remains>22)&(active_enemies>2||cooldown.rising_sun_kick.remains||!talent.ordered_elements)&((buff.invokers_delight.remains>10&!buff.bloodlust.up||buff.bloodlust.up&cooldown.storm_earth_and_fire.full_recharge_time<1)||cooldown.storm_earth_and_fire.full_recharge_time<=cooldown.invoke_xuen_the_white_tiger.true_rem
},
["Shadow"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241102,
["author"] = "SimC",
["desc"] = "2024-11-02: Unfurling Darkness adjustments\n\n2024-10-29: SimC update\n\n2024-10-27: Work on VT/Shadow Crash\n\n2024-10-22: 11.0.5 update\n\n2024-10-21: SimC update\n\n2024-10-06: PI; Don't VT with Shadow Crash in flight (Whispering Shadows)\n\n2024-09-08, 10-06: SimC update\n\n2024-09-06: Modified to enable DP/VT with CDs toggled off\n\n2024-09-05: SimC update\n\n2024-08-22: Trinket update\n\n2024-08-11: Buff Power Word: Fortitude\n\n2024-08-01: Add SW:Death entry from sim update; another sim update\n\n2024-07-29: Tweak target swap logic\n\n2024-07-28: The War Within",
["lists"] = {
["filler"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Consume empowered fillers",
["strict"] = 1,
["criteria"] = "( buff.mind_spike_insanity.up || buff.mind_flay_insanity.up ) & dot.devouring_plague.remains > action.mind_spike.cast_time || ! talent.mind_spike.enabled",
["list_name"] = "empowered_filler",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
["criteria"] = "talent.unfurling_darkness.enabled & buff.unfurling_darkness_cd.remains < ( execute_time - 0.2 ) & talent.inner_quietus.enabled",
["description"] = "Cast Vampiric Touch to proc Unfurling Darkness",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["criteria"] = "target.health.pct < 20 || ( buff.deathspeaker.up || set_bonus.tier31_2pc ) & dot.devouring_plague.ticking",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["criteria"] = "talent.inescapable_torment.enabled & pet.fiend.active",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.empowered_surges.enabled & buff.surge_of_insanity.up || buff.voidform.up & talent.void_eruption.enabled",
["action"] = "devouring_plague",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["criteria"] = "talent.unfurling_darkness.enabled & buff.unfurling_darkness_cd.remains < ( execute_time - 0.2 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "halo",
["description"] = "Save up to 20s if adds are coming soon.",
["criteria"] = "spell_targets > 1",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "buff.mind_spike_insanity.up || buff.mind_flay_insanity.up",
["list_name"] = "empowered_filler",
},
{
["enabled"] = true,
["action"] = "mind_spike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "mind_flay",
["cycle_targets"] = 1,
["interrupt_if"] = "ticks>=2",
["interrupt_immediate"] = "1",
["chain"] = "1",
["interrupt_global"] = "1",
},
{
["action"] = "divine_star",
["enabled"] = true,
},
{
["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"] = "! set_bonus.tier31_4pc",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["cycle_targets"] = 1,
["criteria"] = "target.health.pct < 20",
["description"] = "Use Shadow Word: Death while moving as a low-priority action in execute",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["description"] = "Use Shadow Word: Death while moving as a low-priority action",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "shadow_word_pain",
["cycle_targets"] = 1,
["criteria"] = "set_bonus.tier31_4pc",
["description"] = "Use Shadow Word: Pain while moving as a low-priority action with T31 4pc",
},
{
["enabled"] = true,
["action"] = "shadow_word_pain",
["cycle_targets"] = 1,
["criteria"] = "! set_bonus.tier31_4pc",
["description"] = "Use Shadow Word: Pain while moving as a low-priority action without T31 4pc",
},
},
["aoe_variables"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.vampiric_touch >? 12",
["default"] = "12",
["var_name"] = "max_vts",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["default"] = "1",
["var_name"] = "is_vt_possible",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["criteria"] = "target.time_to_die >= 18 & dot.vampiric_touch.refreshable",
["var_name"] = "is_vt_possible",
},
{
["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",
["description"] = "TODO: Revamp to fix undesired behaviour with unstacked fights",
["var_name"] = "dots_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.max_vts - active_dot.vampiric_touch ) < 4",
["criteria"] = "variable.holding_crash & talent.whispering_shadows.enabled & active_enemies > 1",
["var_name"] = "holding_crash",
},
{
["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",
},
},
["empowered_filler"] = {
{
["enabled"] = true,
["action"] = "mind_spike_insanity",
["criteria"] = "buff.mind_spike_insanity.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "mind_flay",
["criteria"] = "buff.mind_flay_insanity.up",
["cycle_targets"] = 1,
},
},
["default"] = {
{
["action"] = "silence",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "false",
["var_name"] = "holding_crash",
},
{
["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 & ! variable.holding_crash & ! buff.voidform.up",
["var_name"] = "pool_for_cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "main",
},
},
["precombat"] = {
{
["action"] = "power_word_fortitude",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.shadowform.up",
["action"] = "shadowform",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "dr_force_prio",
["default"] = "0",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "me_force_prio",
["default"] = "1",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "max_vts",
["default"] = "12",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "is_vt_possible",
["default"] = "0",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "pooling_mindblasts",
["default"] = "0",
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "boss & active_enemies <= 4 & ( fight_remains >= 120 || active_enemies <= 2 )",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.shadow_crash <= 8 & ( ! set_bonus.tier31_4pc || spell_targets.shadow_crash > 1 )",
["action"] = "shadow_crash",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.whispering_shadows.enabled || ! action.shadow_crash.in_flight ) & ( ! talent.shadow_crash.enabled || spell_targets.shadow_crash > 8 || ! boss || set_bonus.tier31_4pc & spell_targets.shadow_crash = 1 )",
["action"] = "vampiric_touch",
},
},
["aoe"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.vampiric_touch >? 12",
["default"] = "12",
["var_name"] = "max_vts",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["default"] = "1",
["var_name"] = "is_vt_possible",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["criteria"] = "target.time_to_die >= 18 & dot.vampiric_touch.refreshable",
["var_name"] = "is_vt_possible",
},
{
["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",
["description"] = "TODO: Revamp to fix undesired behaviour with unstacked fights",
["var_name"] = "dots_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.max_vts - active_dot.vampiric_touch ) < 4",
["criteria"] = "variable.holding_crash & talent.whispering_shadows.enabled & active_enemies > 1",
["var_name"] = "holding_crash",
},
{
["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",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
["criteria"] = "( buff.unfurling_darkness.up || buff.unfurling_darkness_cd.down || buff.unfurling_darkness_cd.remains > 2 * gcd.max ) & ( target.time_to_die >= 18 & ( dot.vampiric_touch.ticking || ! variable.dots_up ) ) & ( ( variable.max_vts > 0 & ! variable.manual_vts_applied & ! action.shadow_crash.in_flight || ! talent.whispering_shadows.enabled ) & ! buff.entropic_rift.up )",
["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",
},
{
["enabled"] = true,
["action"] = "shadow_crash",
["cycle_targets"] = 1,
["criteria"] = "! variable.holding_crash & ( dot.vampiric_touch.refreshable || dot.vampiric_touch.remains <= target.time_to_die & ! buff.voidform.up )",
["description"] = "Use Shadow Crash to apply Vampiric Touch to as many adds as possible while being efficient with Vampiric Touch refresh windows",
},
},
["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 & ( boss & fight_remains <= cooldown.power_infusion.remains + 15 ) ) & ( fight_remains >= 320 || buff.bloodlust.react ) || boss & fight_remains <= 30",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 8",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 12",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 15",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up || boss & fight_remains <= 15",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["action"] = "power_infusion",
["description"] = "Sync Power Infusion with Voidform or Dark Ascension",
["criteria"] = "buff.voidform.up || buff.dark_ascension.up",
},
{
["enabled"] = true,
["action"] = "halo",
["description"] = "Make sure Mindbender is active before popping Dark Ascension unless you have insignificant talent points or too many targets",
["criteria"] = "talent.power_surge.enabled & ( pet.fiend.active & cooldown.fiend.remains >= 4 & talent.mindbender.enabled || ! talent.mindbender.enabled & ! cooldown.fiend.up || active_enemies > 2 & ! talent.inescapable_torment.enabled || ! talent.dark_ascension.enabled ) & ( cooldown.mind_blast.charges = 0 || ! talent.void_eruption.enabled || cooldown.void_eruption.remains >= gcd.max * 4 )",
},
{
["enabled"] = true,
["action"] = "void_eruption",
["description"] = "Make sure Mindbender is active before popping Void Eruption and dump charges of Mind Blast before casting",
["criteria"] = "( pet.fiend.active & cooldown.fiend.remains >= 4 || ! talent.mindbender.enabled & ! cooldown.fiend.up || active_enemies > 2 & ! talent.inescapable_torment.enabled ) & ( cooldown.mind_blast.charges = 0 || time > 15 )",
},
{
["enabled"] = true,
["criteria"] = "( pet.fiend.active & cooldown.fiend.remains >= 4 || ! talent.mindbender.enabled & ! cooldown.fiend.up || active_enemies > 2 & ! talent.inescapable_torment.enabled ) & ( active_dot.devouring_plague >= 1 || insanity >= ( 15 + 5 * ! talent.minds_eye.enabled + 5 * talent.distorted_reality.enabled - pet.fiend.active * 6 ) )",
["action"] = "dark_ascension",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
},
{
["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",
},
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "aberrant_spellforge",
["use_off_gcd"] = 1,
["action"] = "aberrant_spellforge",
["criteria"] = "gcd.remains > 0 & buff.aberrant_spellforge.stack <= 4",
},
{
["enabled"] = true,
["action"] = "spymasters_web",
["criteria"] = "( buff.power_infusion.up & buff.spymasters_report.stack >= 40 & fight_remains > 240 ) || ( buff.power_infusion.up & buff.bloodlust.up & buff.spymasters_report.stack >= 10 ) || buff.power_infusion.up & ( fight_remains < 120 ) || ( fight_remains <= 20 || buff.dark_ascension.up & fight_remains <= 60 || buff.entropic_rift.up & talent.entropic_rift.enabled & fight_remains <= 30 ) & ! buff.spymasters_web.up",
["name"] = "spymasters_web",
},
{
["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",
},
},
["main"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_dot.vampiric_touch >= cycle_enemies || action.shadow_crash.in_flight & talent.whispering_shadows.enabled",
["criteria"] = "active_enemies < 3",
["var_name"] = "dots_up",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Are we pooling mindblasts? Currently only used for Voidweaver, [Hekili] modified to still allow us to build Insanity when CDs are toggled off.",
["criteria"] = "talent.void_blast.enabled & cooldown.void_torrent.remains <= gcd.max * ( 1 + talent.mind_melt.enabled ) & insanity > action.devouring_plague.cost",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0",
["var_name"] = "pooling_mindblasts",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 30 || target.time_to_die > 15 & ( ! variable.holding_crash || active_enemies > 2 )",
["action"] = "call_action_list",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
["criteria"] = "buff.unfurling_darkness.up & talent.mind_melt.enabled & talent.void_blast.enabled & buff.mind_melt.stack < 2 & cooldown.mindbender.up & cooldown.dark_ascension.up & time <= 4",
["description"] = "High priority action to consume Unfurling Darkness during the opener with Voidweaver",
},
{
["enabled"] = true,
["action"] = "mind_spike",
["description"] = "High priority action to Mind Spike to get to enough Insanity during the opener with Voidweaver",
["criteria"] = "talent.mind_melt.enabled & talent.void_blast.enabled & ( buff.mind_melt.stack < ( 1 * talent.distorted_reality.enabled + 1 - talent.unfurling_darkness.enabled - talent.minds_eye.enabled * 1 ) & talent.halo.enabled || ! talent.halo.enabled & buff.mind_melt.stack < 2 ) & cooldown.mindbender.up & cooldown.dark_ascension.up & time <= 4 & insanity <= 20",
},
{
["enabled"] = true,
["action"] = "mindbender",
["description"] = "Use Shadowfiend and Mindbender on cooldown as long as Vampiric Touch and Shadow Word: Pain are active and sync with Dark Ascension",
["criteria"] = "( dot.shadow_word_pain.ticking & variable.dots_up || action.shadow_crash.in_flight & talent.whispering_shadows.enabled ) & ( boss & fight_remains < 30 || target.time_to_die > 15 ) & ( ! talent.dark_ascension.enabled || cooldown.dark_ascension.remains < gcd.max || boss & fight_remains < 15 )",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["cycle_targets"] = 1,
["criteria"] = "priest.force_devour_matter & talent.devour_matter.enabled",
["description"] = "High Priority Shadow Word: Death when you are forcing the bonus from Devour Matter",
},
{
["enabled"] = true,
["action"] = "void_blast",
["cycle_targets"] = 1,
["criteria"] = "( dot.devouring_plague.remains >= execute_time || buff.entropic_rift.remains <= gcd.max || action.void_torrent.channeling & talent.void_empowerment.enabled ) & ( insanity.deficit >= 16 || cooldown.mind_blast.full_recharge_time <= gcd.max || buff.entropic_rift.remains <= gcd.max ) & ( ! talent.mind_devourer.enabled || ! buff.mind_devourer.up || buff.entropic_rift.remains <= gcd.max )",
["description"] = "Blast more burst :wicked:",
},
{
["enabled"] = true,
["action"] = "devouring_plague",
["cycle_targets"] = 1,
["criteria"] = "( dot.devouring_plague.remains <= gcd.max || variable.dr_force_prio || ! talent.distorted_reality.enabled & variable.me_force_prio ) & buff.voidform.up & talent.perfected_form.enabled & buff.voidform.remains <= gcd.max & talent.void_eruption.enabled",
["description"] = "Do not let Voidform Expire if you can avoid it.",
},
{
["enabled"] = true,
["sec"] = "cooldown.mind_blast.recharge_time",
["action"] = "wait",
["criteria"] = "cooldown.mind_blast.recharge_time < buff.entropic_rift.remains & buff.entropic_rift.up & buff.entropic_rift.remains < gcd.max & cooldown.mind_blast.charges < 1",
},
{
["enabled"] = true,
["action"] = "mind_blast",
["cycle_targets"] = 1,
["criteria"] = "talent.void_eruption.enabled & buff.voidform.up & full_recharge_time <= gcd.max & ( ! talent.insidious_ire.enabled || dot.devouring_plague.remains >= execute_time ) & ( cooldown.void_bolt.remains / gcd.max - cooldown.void_bolt.remains % gcd.max ) * gcd.max <= 0.25 & ( cooldown.void_bolt.remains / gcd.max - cooldown.void_bolt.remains % gcd.max ) >= 0.01",
["description"] = "Complicated do not overcap mindblast and use it to protect against void bolt cd desync",
},
{
["enabled"] = true,
["action"] = "void_bolt",
["cycle_targets"] = 1,
["criteria"] = "insanity.deficit > 16 & cooldown.void_bolt.remains <= 0.1",
["description"] = "Use Voidbolt on the enemy with the largest time to die. We do no care about dots because Voidbolt is only accessible inside voidform which guarantees maximum effect",
},
{
["enabled"] = true,
["action"] = "devouring_plague",
["cycle_targets"] = 1,
["criteria"] = "active_dot.devouring_plague <= 1 & dot.devouring_plague.remains <= gcd.max & ( ! talent.void_eruption.enabled || cooldown.void_eruption.remains >= gcd.max * 3 ) || insanity.deficit <= 16",
["description"] = "Do not overcap on insanity",
},
{
["enabled"] = true,
["action"] = "void_torrent",
["cycle_targets"] = 1,
["criteria"] = "( dot.devouring_plague.ticking || talent.void_eruption.enabled & cooldown.void_eruption.up ) & talent.entropic_rift.enabled & ! variable.holding_crash",
["description"] = "Cast Void Torrent at very high priority if Voidweaver",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["cycle_targets"] = 1,
["criteria"] = "talent.depth_of_shadows.enabled & ( target.health.pct <= 20 || buff.deathspeaker.up & talent.deathspeaker.enabled ) & talent.inescapable_torment.enabled",
["description"] = "Snipe SWDs with Depth of Shadows to spawn pets. Prefer targets with Devouring Plague on them.",
},
{
["enabled"] = true,
["action"] = "mind_blast",
["cycle_targets"] = 1,
["criteria"] = "( cooldown.mind_blast.full_recharge_time <= gcd.max + execute_time || pet.fiend.remains <= execute_time + gcd.max ) & pet.fiend.active & talent.inescapable_torment.enabled & pet.fiend.remains >= execute_time & active_enemies <= 7 & ( ! buff.mind_devourer.up || ! talent.mind_devourer.enabled ) & dot.devouring_plague.remains > execute_time & ! variable.pooling_mindblasts",
["description"] = "Use Mind Blasts if using Inescapable Torment and you are capping charges or it will expire soon. Do not use if pooling Mindblast.",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["cycle_targets"] = 1,
["criteria"] = "pet.fiend.remains <= ( gcd.max + 1 ) & pet.fiend.active & talent.inescapable_torment.enabled & active_enemies <= 7",
["description"] = "High Priority Shadow Word: Death is Mindbender is expiring in less than a gcd plus wiggle room",
},
{
["enabled"] = true,
["action"] = "void_bolt",
["cycle_targets"] = 1,
["criteria"] = "cooldown.void_bolt.remains <= 0.1",
["description"] = "Use Voidbolt on the enemy with the largest time to die. Force a cooldown check here to make sure SimC doesn't wait too long (i.e. weird MF:I desync with GCD)",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
["criteria"] = "buff.unfurling_darkness.up & active_dot.vampiric_touch <= 5",
["description"] = "Spend UFD as a high priority action",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Do not overcap MSI or MFI during Empowered Surges (Archon).",
["strict"] = 1,
["criteria"] = "( buff.mind_spike_insanity.stack > 2 & talent.mind_spike.enabled || buff.mind_flay_insanity.stack > 2 & ! talent.mind_spike.enabled ) & talent.empowered_surges.enabled & ! cooldown.void_eruption.up",
["list_name"] = "empowered_filler",
},
{
["enabled"] = true,
["action"] = "devouring_plague",
["description"] = "Spend your Insanity on Devouring Plague at will if the fight will end in less than 10s",
["criteria"] = "boss & fight_remains <= duration + 4",
},
{
["enabled"] = true,
["action"] = "devouring_plague",
["cycle_targets"] = 1,
["criteria"] = "( dot.devouring_plague.remains <= gcd.max || variable.dr_force_prio || ! talent.distorted_reality.enabled & variable.me_force_prio ) & ( insanity.deficit <= 35 & talent.distorted_reality.enabled || buff.mind_devourer.up & cooldown.mind_blast.up & ( cooldown.void_eruption.remains >= 3 * gcd.max || ! talent.void_eruption.enabled ) & talent.mind_devourer.enabled || buff.entropic_rift.up || buff.voidform.up & talent.perfected_form.enabled & talent.void_eruption.enabled )",
["description"] = "Use Devouring Plague to maximize uptime. Short circuit if you are capping on Insanity within 35 With Distorted Reality can maintain more than one at a time in multi-target.",
},
{
["enabled"] = true,
["action"] = "void_torrent",
["cycle_targets"] = 1,
["criteria"] = "! variable.holding_crash & ! talent.entropic_rift.enabled & dot.devouring_plague.remains >= 2.5",
["description"] = "Use Void Torrent if it will get near full Mastery Value and you have Cthun and Void Eruption. Prune this action for Entropic Rift Builds.",
},
{
["enabled"] = true,
["action"] = "shadow_crash",
["cycle_targets"] = 1,
["criteria"] = "dot.vampiric_touch.refreshable & ! variable.holding_crash",
["description"] = "Use Shadow Crash as long as you are not holding for adds and Vampiric Touch is within pandemic range",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
["criteria"] = "refreshable & buff.unfurling_darkness_cd.remains < ( execute_time - 0.2 ) & talent.unfurling_darkness.enabled & ! buff.dark_ascension.up & talent.inner_quietus.enabled & active_dot.vampiric_touch <= 5",
["description"] = "Acquire UFD",
},
{
["enabled"] = true,
["action"] = "vampiric_touch",
["cycle_targets"] = 1,
["criteria"] = "refreshable & target.time_to_die > 12 & ( dot.vampiric_touch.ticking || ! variable.dots_up ) & ( variable.max_vts > 0 || active_enemies = 1 ) & ( cooldown.shadow_crash.remains >= dot.vampiric_touch.remains || variable.holding_crash || ! talent.whispering_shadows.enabled ) & ( ! action.shadow_crash.in_flight || ! talent.whispering_shadows.enabled )",
["description"] = "Put out Vampiric Touch on enemies that will live at least 12s and Shadow Crash is not available soon",
},
{
["enabled"] = true,
["action"] = "shadow_word_death",
["cycle_targets"] = 1,
["criteria"] = "variable.dots_up & buff.deathspeaker.up",
["description"] = "Spend Deathspeaker Procs",
},
{
["enabled"] = true,
["action"] = "mind_blast",
["cycle_targets"] = 1,
["criteria"] = "( ! buff.mind_devourer.up || ! talent.mind_devourer.enabled || cooldown.void_eruption.up & talent.void_eruption.enabled ) & ! variable.pooling_mindblasts",
["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",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "filler",
},
},
},
["version"] = 20241102,
["warnings"] = "The import for 'filler' required some automated changes.\nLine 1: Converted 'talent.mind_spike' to 'talent.mind_spike.enabled' (1x).\nLine 2: Converted 'talent.unfurling_darkness' to 'talent.unfurling_darkness.enabled' (1x).\nLine 2: Converted 'talent.inner_quietus' to 'talent.inner_quietus.enabled' (1x).\nLine 4: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 5: Converted 'talent.empowered_surges' to 'talent.empowered_surges.enabled' (1x).\nLine 5: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 6: Converted 'talent.unfurling_darkness' to 'talent.unfurling_darkness.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 1: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 2: Converted 'talent.void_blast' to 'talent.void_blast.enabled' (1x).\nLine 2: Converted 'talent.mind_melt' to 'talent.mind_melt.enabled' (1x).\nLine 4: Converted 'talent.mind_melt' to 'talent.mind_melt.enabled' (1x).\nLine 4: Converted 'talent.void_blast' to 'talent.void_blast.enabled' (1x).\nLine 5: Converted 'talent.mind_melt' to 'talent.mind_melt.enabled' (1x).\nLine 5: Converted 'talent.void_blast' to 'talent.void_blast.enabled' (1x).\nLine 5: Converted 'talent.distorted_reality' to 'talent.distorted_reality.enabled' (1x).\nLine 5: Converted 'talent.unfurling_darkness' to 'talent.unfurling_darkness.enabled' (1x).\nLine 5: Converted 'talent.minds_eye' to 'talent.minds_eye.enabled' (1x).\nLine 5: Converted 'talent.halo' to 'talent.halo.enabled' (1x).\nLine 5: Converted 'talent.halo' to 'talent.halo.enabled' (1x).\nLine 6: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 6: Converted 'talent.dark_ascension' to 'talent.dark_ascension.enabled' (1x).\nLine 7: Converted 'talent.devour_matter' to 'talent.devour_matter.enabled' (1x).\nLine 8: Converted 'talent.void_empowerment' to 'talent.void_empowerment.enabled' (1x).\nLine 8: Converted 'talent.mind_devourer' to 'talent.mind_devourer.enabled' (1x).\nLine 9: Converted 'talent.distorted_reality' to 'talent.distorted_reality.enabled' (1x).\nLine 9: Converted 'talent.perfected_form' to 'talent.perfected_form.enabled' (1x).\nLine 9: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 11: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 11: Converted 'talent.insidious_ire' to 'talent.insidious_ire.enabled' (1x).\nLine 11: Converted operations in 'talent.void_eruption.enabled&buff.voidform.up&full_recharge_time<=gcd.max&(!talent.insidious_ire.enabled||dot.devouring_plague.remains>=execute_time)&(cooldown.void_bolt.remains%gcd.max-cooldown.void_bolt.remains%%gcd.max)*gcd.max<=0.25&(cooldown.void_bolt.remains%gcd.max-cooldown.void_bolt.remains%%gcd.max)>=0.01' to 'talent.void_eruption.enabled&buff.voidform.up&full_recharge_time<=gcd.max&(!talent.insidious_ire.enabled||dot.devouring_plague.remains>=execute_time)&(cooldown.void_bolt.remains/gcd.max-cooldown.void_bolt.remains%gcd.max)*gcd.max<=0.25&(cooldown.void_bolt.remains/gcd.max-cooldown.void_bolt.remains%gcd.max)>=0.01'.\nLine 13: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 14: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 14: Converted 'talent.entropic_rift' to 'talent.entropic_rift.enabled' (1x).\nLine 15: Converted 'talent.depth_of_shadows' to 'talent.depth_of_shadows.enabled' (1x).\nLine 15: Converted 'talent.deathspeaker' to 'talent.deathspeaker.enabled' (1x).\nLine 15: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 16: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 16: Converted 'talent.mind_devourer' to 'tal
["profile"] = "actions.precombat+=/power_word_fortitude\nactions.precombat+=/shadowform,if=!buff.shadowform.up\nactions.precombat+=/variable,name=dr_force_prio,default=0,op=reset\nactions.precombat+=/variable,name=me_force_prio,default=1,op=reset\nactions.precombat+=/variable,name=max_vts,default=12,op=reset\nactions.precombat+=/variable,name=is_vt_possible,default=0,op=reset\nactions.precombat+=/variable,name=pooling_mindblasts,default=0,op=reset\nactions.precombat+=/arcane_torrent\n## actions.precombat+=/use_item,name=aberrant_spellforge\nactions.precombat+=/halo,if=boss&active_enemies<=4&(fight_remains>=120||active_enemies<=2)\nactions.precombat+=/shadow_crash,if=spell_targets.shadow_crash<=8&(!set_bonus.tier31_4pc||spell_targets.shadow_crash>1)\nactions.precombat+=/vampiric_touch,if=(!talent.whispering_shadows||!action.shadow_crash.in_flight)&(!talent.shadow_crash.enabled||spell_targets.shadow_crash>8||!boss||set_bonus.tier31_4pc&spell_targets.shadow_crash=1)\n\nactions+=/silence\nactions+=/variable,name=holding_crash,op=set,value=false\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&!variable.holding_crash&!buff.voidform.up\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>2\nactions+=/run_action_list,name=main\n\nactions.aoe+=/variable,name=max_vts,op=set,default=12,value=spell_targets.vampiric_touch>?12\nactions.aoe+=/variable,name=is_vt_possible,op=set,value=0,default=1\nactions.aoe+=/variable,name=is_vt_possible,op=set,value=1,if=target.time_to_die>=18&dot.vampiric_touch.refreshable\n# TODO: Revamp to fix undesired behaviour with unstacked fights\nactions.aoe+=/variable,name=dots_up,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+=/variable,name=holding_crash,op=set,value=(variable.max_vts-active_dot.vampiric_touch)<4,if=variable.holding_crash&talent.whispering_shadows&active_enemies>1\nactions.aoe+=/variable,name=manual_vts_applied,op=set,value=(active_dot.vampiric_touch+8*!variable.holding_crash)>=variable.max_vts||!variable.is_vt_possible\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=(buff.unfurling_darkness.up||buff.unfurling_darkness_cd.down||buff.unfurling_darkness_cd.remains>2*gcd)&(target.time_to_die>=18&(dot.vampiric_touch.ticking||!variable.dots_up))&((variable.max_vts>0&!variable.manual_vts_applied&!action.shadow_crash.in_flight||!talent.whispering_shadows)&!buff.entropic_rift.up)\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)\n\nactions.main+=/variable,name=dots_up,op=set,value=active_dot.vampiric_touch>=cycle_enemies||action.shadow_crash.in_flight&talent.whispering_shadows,if=active_enemies<3\n# Are we pooling mindblasts? Currently only used for Voidweaver; [Hekili] modified to still allow us to build Insanity when CDs are toggled off.\nactions.main+=/variable,name=pooling_mindblasts,op=setif,value=1,value_else=0,condition=talent.void_blast&cooldown.void_torrent.remains<=gcd.max*(1+talent.mind_melt)&insanity>action.devouring_plague.cost\nactions.main+=/call_action_list,name=cds,if=boss&fight_remains<30||target.time_to_die>15&(!variable.holding_crash||active_enemies>2)\n# High priority action to consume Unfurling Darkness during the opener with Voidweaver\nactions.main+=/vampiric_touch,cycle_targets=1,if=buff.unfurling_darkness.up&talent.mind_melt&talent.void_blast&buff.mind_melt.stack<2&cooldown.mindbender.up&cooldown.dark_ascension.up&time<=4\n# High priority action to Mind Spike to get to enough
["spec"] = 258,
},
["Unholy"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241109,
["spec"] = 252,
["desc"] = "2024-11-09: Revise variables\n\n2024-11-05: SimC update (Death Coil)\n\n2024-10-23, 10-25: SimC update\n\n2024-10-22: 11.0.5\n\n2024-10-11: SimC update; Festering Scythe update\n\n2024-10-06: Use UA more in AOE\n\n2024-10-01: SimC update\n\n2024-08-28, 09-05, 09-15: SimC update\n\n2024-08-07, 09, 11: Updated priority from SimC\n\n2024-07-23: The War Within",
["lists"] = {
["san_fishing"] = {
{
["enabled"] = true,
["description"] = "San'layn Fishing",
["criteria"] = "death_knight.ams_absorb_percent > 0 & runic_power < 40",
["action"] = "antimagic_shell",
},
{
["enabled"] = true,
["criteria"] = "! buff.death_and_decay.up & ! buff.vampiric_strike.up",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "buff.sudden_doom.up & talent.doomed_bidding.enabled",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 35 & fight_remains > 5",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "! buff.vampiric_strike.up",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "( debuff.festering_wound.stack >= 3 - pet.abomination.active & cooldown.apocalypse.remains > variable.apoc_timing ) || buff.vampiric_strike.up",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack < 3 - pet.abomination.active",
["action"] = "festering_strike",
},
},
["aoe_setup"] = {
{
["enabled"] = true,
["description"] = "AoE Setup",
["criteria"] = "buff.festering_scythe.up",
["action"] = "festering_strike",
},
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & ( ! talent.bursting_sores.enabled & ! talent.vile_contagion.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 || ! buff.death_and_decay.up & talent.defile.enabled )",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "debuff.chains_of_ice_trollbane_slow.up",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "! talent.vile_contagion.enabled",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "cooldown.vile_contagion.remains < 5 || death_knight.fwounded_targets >= cycle_enemies & debuff.festering_wound.stack <= 4",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & buff.sudden_doom.react & active_enemies < variable.epidemic_targets",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & buff.sudden_doom.up",
["action"] = "epidemic",
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "cooldown.apocalypse.remains < gcd.max & debuff.festering_wound.stack = 0 || death_knight.fwounded_targets < cycle_enemies",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & active_enemies < variable.epidemic_targets",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "epidemic",
},
},
["cds_aoe"] = {
{
["enabled"] = true,
["action"] = "unholy_assault",
["criteria"] = "active_enemies > 1 & ( cooldown.vile_contagion.remains < 3 || cooldown.vile_contagion.remains > 40 || ! talent.vile_contagion.enabled )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "vile_contagion",
["criteria"] = "debuff.festering_wound.stack >= 4 & ( raid_event.adds.remains > 4 || ! raid_event.adds.exists & fight_remains > 4 ) & ( raid_event.adds.exists & raid_event.adds.remains <= 11 || cooldown.any_dnd.remains < 3 || buff.death_and_decay.up & debuff.festering_wound.stack >= 4 ) || active_enemies > 1 & debuff.festering_wound.stack = 6",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ( cooldown.vile_contagion.remains > 5 || ! talent.vile_contagion.enabled || death_and_decay.ticking || cooldown.death_and_decay.remains < 3 )",
["action"] = "dark_transformation",
},
{
["enabled"] = true,
["criteria"] = "dot.virulent_plague.ticks_remain < 5 & ( dot.virulent_plague.refreshable || talent.morbidity.enabled & ! buff.gift_of_the_sanlayn.up & talent.superstrain.enabled & dot.frost_fever.refreshable & dot.blood_plague.refreshable ) & ( ! talent.unholy_blight.enabled || talent.unholy_blight.enabled & cooldown.dark_transformation.remains ) & ( ! talent.raise_abomination.enabled || talent.raise_abomination.enabled & cooldown.raise_abomination.remains )",
["action"] = "outbreak",
},
{
["enabled"] = true,
["action"] = "apocalypse",
["criteria"] = "active_enemies > 1 & rune <= 3",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "abomination_limb",
},
},
["cds_aoe_san"] = {
{
["enabled"] = true,
["description"] = "San'layn AoE Cooldowns",
["criteria"] = "active_enemies > 1 & buff.death_and_decay.up",
["action"] = "dark_transformation",
},
{
["enabled"] = true,
["action"] = "unholy_assault",
["criteria"] = "active_enemies > 1 & ( cooldown.vile_contagion.remains < 6 || cooldown.vile_contagion.remains > 40 || ! talent.vile_contagion.enabled ) || boss & fight_remains < 20",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "vile_contagion",
["criteria"] = "debuff.festering_wound.stack >= 4 & ( raid_event.adds.remains > 4 || ! raid_event.adds.exists & fight_remains > 4 ) & ( raid_event.adds.exists & raid_event.adds.remains <= 11 || cooldown.any_dnd.remains < 3 || buff.death_and_decay.up & debuff.festering_wound.stack >= 4 ) || active_enemies > 1 & debuff.festering_wound.stack = 6",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( dot.virulent_plague.refreshable || talent.morbidity.enabled & ! buff.gift_of_the_sanlayn.up & talent.superstrain.enabled & dot.frost_fever.refreshable & dot.blood_plague.refreshable ) & ( ! talent.unholy_blight.enabled || talent.unholy_blight.enabled & cooldown.dark_transformation.remains > 15 / ( ( 2 * talent.superstrain.enabled ) + ( 2 * talent.ebon_fever.enabled ) + ( 2 * talent.plaguebringer.enabled ) ) ) & ( ! talent.raise_abomination.enabled || talent.raise_abomination.enabled & cooldown.raise_abomination.remains > 15 / ( ( 2 * talent.superstrain.enabled ) + ( 2 * talent.ebon_fever.enabled ) + ( 2 * talent.plaguebringer.enabled ) ) )",
["action"] = "outbreak",
},
{
["enabled"] = true,
["action"] = "apocalypse",
["criteria"] = "active_enemies > 1 & rune <= 3",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "abomination_limb",
},
},
["st"] = {
{
["enabled"] = true,
["description"] = "Single Taget Non-San'layn",
["criteria"] = "target.health.pct <= 35 & fight_remains > 5",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "debuff.chains_of_ice_trollbane_slow.up",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "talent.unholy_ground.enabled & ! buff.death_and_decay.up & ( pet.apoc_ghoul.active || pet.abomination.active || pet.gargoyle.active )",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & variable.spend_rp || boss & fight_remains < 10",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack < 4 & ( ! variable.pop_wounds || buff.festering_scythe.up )",
["action"] = "festering_strike",
},
{
["enabled"] = true,
["criteria"] = "variable.pop_wounds",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "! variable.pop_wounds & debuff.festering_wound.stack >= 4",
["action"] = "wound_spender",
},
},
["aoe_burst"] = {
{
["enabled"] = true,
["description"] = "AoE Burst",
["criteria"] = "buff.festering_scythe.up",
["action"] = "festering_strike",
},
{
["enabled"] = true,
["criteria"] = "! buff.vampiric_strike.react & active_enemies < variable.epidemic_targets & ( ! talent.bursting_sores.enabled || talent.bursting_sores.enabled & death_knight.fwounded_targets < active_enemies & death_knight.fwounded_targets < active_enemies * 0.4 & buff.sudden_doom.react || buff.sudden_doom.react & ( talent.doomed_bidding.enabled & talent.menacing_magus.enabled || talent.rotten_touch.enabled || debuff.death_rot.remains < gcd.max ) )",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "! buff.vampiric_strike.up & ( ! talent.bursting_sores.enabled || talent.bursting_sores.enabled & death_knight.fwounded_targets < cycle_enemies & death_knight.fwounded_targets < active_enemies * 0.4 & buff.sudden_doom.up || buff.sudden_doom.up & ( buff.a_feast_of_souls.up || debuff.death_rot.remains < gcd.max || debuff.death_rot.stack < 10 ) )",
["action"] = "epidemic",
},
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "debuff.chains_of_ice_trollbane_slow.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "debuff.festering_wound.stack >= 1 || buff.vampiric_strike.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies < variable.epidemic_targets",
["action"] = "death_coil",
},
{
["action"] = "epidemic",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "debuff.festering_wound.stack <= 2",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "wound_spender",
["cycle_targets"] = 1,
},
},
["default"] = {
{
["action"] = "mind_freeze",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "apoc_timing",
["criteria"] = "cooldown.apocalypse.remains < 5 & debuff.festering_wound.stack < 1 & cooldown.unholy_assault.remains > 5",
["value_else"] = "0",
["value"] = "3",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( cooldown.apocalypse.remains > variable.apoc_timing || ! talent.apocalypse.enabled ) & ( debuff.festering_wound.stack >= 1 & cooldown.unholy_assault.remains < 20 & talent.unholy_assault.enabled & active_enemies = 1 || debuff.rotten_touch.up & debuff.festering_wound.stack >= 1 || debuff.festering_wound.stack >= 4 - pet.abomination.active ) || fight_remains < 5 & debuff.festering_wound.stack >= 1",
["var_name"] = "pop_wounds",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.vile_contagion.enabled & cooldown.vile_contagion.remains < 5 & runic_power < 30",
["var_name"] = "pooling_runic_power",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["value"] = "( ! talent.rotten_touch.enabled || talent.rotten_touch.enabled & ! debuff.rotten_touch.up || runic_power.deficit < 20 ) & ( ( talent.improved_death_coil.enabled & ( active_enemies = 2 || talent.coil_of_devastation.enabled ) || rune < 3 || pet.gargoyle.active || buff.sudden_doom.up || ! variable.pop_wounds & debuff.festering_wound.stack >= 4 ) )",
["var_name"] = "spend_rp",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "3 + talent.improved_death_coil.enabled + ( talent.frenzied_bloodthirst.enabled & buff.essence_of_the_blood_queen.stack > 5 ) + ( talent.hungering_thirst.enabled & talent.harbinger_of_doom.enabled & buff.sudden_doom.up )",
["var_name"] = "epidemic_targets",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call Action Lists",
["strict"] = 1,
["criteria"] = "talent.vampiric_strike.enabled",
["list_name"] = "san_trinkets",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.vampiric_strike.enabled",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["description"] = "Racials",
["criteria"] = "runic_power < 20 & rune < 2",
["action"] = "arcane_torrent",
},
{
["enabled"] = true,
["criteria"] = "( buff.blood_fury.duration + 3 >= 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 + 3 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.blood_fury.duration + 3 || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.blood_fury.duration + 3",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "( buff.berserking.duration + 3 >= 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 + 3 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.berserking.duration + 3 || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.berserking.duration + 3",
["action"] = "berserking",
},
{
["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",
},
{
["enabled"] = true,
["criteria"] = "( 18 >= pet.gargoyle.remains & pet.gargoyle.active ) || ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( pet.army_ghoul.active & pet.army_ghoul.remains <= 18 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 18 || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= 18",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2 || ( rune.deficit >= 5 & runic_power.deficit >= 60 )",
["action"] = "arcane_pulse",
},
{
["enabled"] = true,
["criteria"] = "( buff.fireblood.duration + 3 >= 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 + 3 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= buff.fireblood.duration + 3 || active_enemies >= 2 & death_and_decay.ticking ) || boss & fight_remains <= buff.fireblood.duration + 3",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( buff.unholy_strength.up || boss & fight_remains < 5 )",
["action"] = "bag_of_tricks",
},
{
["enabled"] = true,
["description"] = "Shared Cooldowns",
["criteria"] = "active_enemies >= 1 & ( ! talent.summon_gargoyle.enabled || cooldown.summon_gargoyle.remains > 60 ) & ( buff.dark_transformation.up & 30 >= buff.dark_transformation.remains || pet.army_ghoul.active & pet.army_ghoul.remains <= 30 || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= 30 || pet.abomination.active & pet.abomination.remains <= 30 ) || boss & fight_remains <= 30",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "( talent.commander_of_the_dead.enabled & cooldown.dark_transformation.remains < 5 || ! talent.commander_of_the_dead.enabled & active_enemies >= 1 ) || boss & fight_remains < 35",
["action"] = "army_of_the_dead",
},
{
["action"] = "army_of_the_dead",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "summon_gargoyle",
["criteria"] = "( buff.commander_of_the_dead.up || ! talent.commander_of_the_dead.enabled & active_enemies >= 1 ) || boss & fight_remains < 25",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "death_knight.ams_absorb_percent > 0 & runic_power < 30 & rune < 2",
["action"] = "antimagic_shell",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.vampiric_strike.enabled & active_enemies >= 2",
["list_name"] = "cds_aoe_san",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.vampiric_strike.enabled & active_enemies >= 2",
["list_name"] = "cds_aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.vampiric_strike.enabled & active_enemies = 1",
["list_name"] = "cds_san",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.vampiric_strike.enabled & active_enemies = 1",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 2",
["list_name"] = "cleave",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ! death_and_decay.ticking & cooldown.death_and_decay.remains < 10",
["action"] = "call_action_list",
["list_name"] = "aoe_setup",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 3 & ( death_and_decay.ticking || buff.death_and_decay.up & death_knight.fwounded_targets >= ( cycle_enemies * 0.5 ) )",
["list_name"] = "aoe_burst",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3 & ! death_and_decay.ticking",
["action"] = "call_action_list",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & talent.gift_of_the_sanlayn.enabled & ! cooldown.dark_transformation.ready & ! buff.gift_of_the_sanlayn.up & buff.essence_of_the_blood_queen.remains < cooldown.dark_transformation.remains + 2",
["action"] = "run_action_list",
["list_name"] = "san_fishing",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 1 & talent.vampiric_strike.enabled",
["list_name"] = "san_st",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 1 & ! talent.vampiric_strike.enabled",
["list_name"] = "st",
},
},
["san_trinkets"] = {
{
["enabled"] = true,
["name"] = "fyralath_the_dreamrender",
["description"] = "Trinkets San'layn",
["criteria"] = "dot.mark_of_fyralath.ticking & ( active_enemies < 5 || active_enemies > 21 || boss & fight_remains < 4 ) & ( pet.abomination.active || pet.army_ghoul.active || ! talent.raise_abomination.enabled & ! talent.army_of_the_dead.enabled || time > 15 )",
["action"] = "fyralath_the_dreamrender",
},
{
["enabled"] = true,
["criteria"] = "( active_enemies > 1 || active_enemies = 1 ) & cooldown.dark_transformation.remains < 10",
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "variable.trinket_1_buffs & ( buff.dark_transformation.up & buff.dark_transformation.remains < variable.trinket_1_duration * 0.73 & ( variable.trinket_priority = 1 || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown ) ) || variable.trinket_1_duration >= fight_remains & boss",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "variable.trinket_2_buffs & ( buff.dark_transformation.up & buff.dark_transformation.remains < variable.trinket_2_duration * 0.73 & ( variable.trinket_priority = 2 || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown ) ) || variable.trinket_2_duration >= fight_remains & boss",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t1.cast_time > 0 & ! buff.gift_of_the_sanlayn.up || ! trinket.t1.cast_time > 0 ) & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & ( ! talent.raise_abomination.enabled & cooldown.army_of_the_dead.remains > 20 || talent.raise_abomination.enabled & cooldown.raise_abomination.remains > 20 ) || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled & cooldown.dark_transformation.remains > 20 || talent.summon_gargoyle.enabled & cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t2.cast_time > 0 & ! buff.gift_of_the_sanlayn.up || ! trinket.t2.cast_time > 0 ) & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & ( ! talent.raise_abomination.enabled & cooldown.army_of_the_dead.remains > 20 || talent.raise_abomination.enabled & cooldown.raise_abomination.remains > 20 ) || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled & cooldown.dark_transformation.remains > 20 || talent.summon_gargoyle.enabled & cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15",
["slot"] = "trinket2",
},
},
["cds"] = {
{
["enabled"] = true,
["description"] = "Non-San'layn Cooldowns",
["criteria"] = "active_enemies = 1 & ( cooldown.apocalypse.remains < 8 || ! talent.apocalypse.enabled || active_enemies >= 1 ) || boss & fight_remains < 20",
["action"] = "dark_transformation",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( cooldown.apocalypse.remains < gcd.max * 2 || ! talent.apocalypse.enabled || active_enemies >= 2 & buff.dark_transformation.up ) || boss & fight_remains < 20",
["action"] = "unholy_assault",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 || fight_remains < 20",
["action"] = "apocalypse",
},
{
["enabled"] = true,
["action"] = "outbreak",
["criteria"] = "target.time_to_die > dot.virulent_plague.remains & dot.virulent_plague.ticks_remain < 5 & ( dot.virulent_plague.refreshable || talent.superstrain.enabled & ( dot.frost_fever.refreshable || dot.blood_plague.refreshable ) ) & ( ! talent.unholy_blight.enabled || talent.plaguebringer.enabled ) & ( ! talent.raise_abomination.enabled || talent.raise_abomination.enabled & cooldown.raise_abomination.remains > dot.virulent_plague.ticks_remain * 3 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ! buff.sudden_doom.up & ( buff.festermight.up & buff.festermight.stack > 8 || ! talent.festermight.enabled ) & ( pet.apoc_ghoul.remains < 5 || ! talent.apocalypse.enabled ) & debuff.festering_wound.stack <= 2 || boss & fight_remains < 12",
["action"] = "abomination_limb",
},
},
["cds_san"] = {
{
["enabled"] = true,
["description"] = "San'layn Cooldowns",
["criteria"] = "active_enemies >= 1 & active_enemies = 1 & ( talent.apocalypse.enabled & pet.apoc_ghoul.active || ! talent.apocalypse.enabled ) || boss & fight_remains < 20",
["action"] = "dark_transformation",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( buff.dark_transformation.up & buff.dark_transformation.remains < 12 ) || boss & fight_remains < 20",
["action"] = "unholy_assault",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 || fight_remains < 20",
["action"] = "apocalypse",
},
{
["enabled"] = true,
["action"] = "outbreak",
["criteria"] = "target.time_to_die > dot.virulent_plague.remains & dot.virulent_plague.ticks_remain < 5 & ( dot.virulent_plague.refreshable || talent.morbidity.enabled & buff.infliction_of_sorrow.up & talent.superstrain.enabled & dot.frost_fever.refreshable & dot.blood_plague.refreshable ) & ( ! talent.unholy_blight.enabled || talent.unholy_blight.enabled & cooldown.dark_transformation.remains ) & ( ! talent.raise_abomination.enabled || talent.raise_abomination.enabled & cooldown.raise_abomination.remains )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 1 & active_enemies = 1 & ! buff.gift_of_the_sanlayn.up & ! buff.sudden_doom.up & buff.festermight.up & debuff.festering_wound.stack <= 2 || ! buff.gift_of_the_sanlayn.up & fight_remains < 12",
["action"] = "abomination_limb",
},
},
["precombat"] = {
{
["action"] = "raise_dead",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "army_of_the_dead",
["precombat_time"] = "2",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff || trinket.t1.is.mirror_of_fractured_tomorrows || trinket.t1.is.treacherous_transmitter",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || trinket.t2.is.mirror_of_fractured_tomorrows || trinket.t2.is.treacherous_transmitter",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_duration",
["criteria"] = "trinket.t1.is.mirror_of_fractured_tomorrows || trinket.t1.is.treacherous_transmitter",
["value_else"] = "trinket.t1.buff_duration",
["value"] = "20",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_duration",
["criteria"] = "trinket.t2.is.mirror_of_fractured_tomorrows || trinket.t2.is.treacherous_transmitter",
["value_else"] = "trinket.t2.buff_duration",
["value"] = "20",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_high_value",
["criteria"] = "trinket.t1.is.treacherous_transmitter",
["value_else"] = "1",
["value"] = "2",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_high_value",
["criteria"] = "trinket.t2.is.treacherous_transmitter",
["value_else"] = "1",
["value"] = "2",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_sync",
["criteria"] = "variable.trinket_1_buffs & ( talent.apocalypse.enabled & trinket.t1.cooldown.duration % cooldown.apocalypse.duration = 0 || talent.dark_transformation.enabled & trinket.t1.cooldown.duration % cooldown.dark_transformation.duration = 0 ) || trinket.t1.is.treacherous_transmitter",
["value_else"] = "0.5",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "variable.trinket_2_buffs & ( talent.apocalypse.enabled & trinket.t2.cooldown.duration % cooldown.apocalypse.duration = 0 || talent.dark_transformation.enabled & trinket.t2.cooldown.duration % cooldown.dark_transformation.duration = 0 ) || trinket.t2.is.treacherous_transmitter",
["value_else"] = "0.5",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs & ( trinket.t2.has_cooldown || ! trinket.t1.has_cooldown ) || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / variable.trinket_2_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) * ( variable.trinket_2_high_value ) * ( 1 + ( ( trinket.t2.ilvl - trinket.t1.ilvl ) / 100 ) ) ) > ( ( trinket.t1.cooldown.duration / variable.trinket_1_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) * ( variable.trinket_1_high_value ) * ( 1 + ( ( trinket.t1.ilvl - trinket.t2.ilvl ) / 100 ) ) )",
["value_else"] = "1",
["value"] = "2",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "damage_trinket_priority",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_2_buffs & trinket.t2.ilvl >= trinket.t1.ilvl",
["value_else"] = "1",
["value"] = "2",
},
},
["aoe"] = {
{
["enabled"] = true,
["description"] = "AOE",
["criteria"] = "buff.festering_scythe.up",
["action"] = "festering_strike",
},
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "debuff.festering_wound.stack >= 1 & buff.death_and_decay.up & talent.bursting_sores.enabled & cooldown.apocalypse.remains > variable.apoc_timing",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & active_enemies < variable.epidemic_targets",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "epidemic",
},
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "debuff.chains_of_ice_trollbane_slow.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "cooldown.apocalypse.remains < variable.apoc_timing || buff.festering_scythe.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "debuff.festering_wound.stack < 2",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "wound_spender",
["criteria"] = "debuff.festering_wound.stack >= 1 & cooldown.apocalypse.remains > gcd.max || buff.vampiric_strike.up & dot.virulent_plague.ticking",
["cycle_targets"] = 1,
},
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "fyralath_the_dreamrender",
["description"] = "Trinkets Non-San'layn",
["criteria"] = "dot.mark_of_fyralath.ticking & ( active_enemies < 5 || active_enemies > 21 || boss & fight_remains < 4 ) & ( pet.abomination.active || pet.army_ghoul.active || ! talent.raise_abomination.enabled & ! talent.army_of_the_dead.enabled || time > 15 )",
["action"] = "fyralath_the_dreamrender",
},
{
["enabled"] = true,
["criteria"] = "( active_enemies > 1 || active_enemies = 1 ) & cooldown.dark_transformation.remains < 10",
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "variable.trinket_1_buffs & ( variable.trinket_priority = 1 || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains > 20 & ( ! talent.apocalypse.enabled & buff.dark_transformation.up || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= variable.trinket_1_duration & pet.apoc_ghoul.remains > 5 ) ) & ( talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled & pet.army_ghoul.active & pet.army_ghoul.remains <= variable.trinket_1_duration & pet.army_ghoul.remains > 10 || talent.raise_abomination.enabled & pet.abomination.active & pet.abomination.remains <= variable.trinket_1_duration & pet.abomination.remains > 10 || talent.apocalypse.enabled & pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= variable.trinket_1_duration + 3 & pet.apoc_ghoul.remains > 5 || ! talent.raise_abomination.enabled & ! talent.apocalypse.enabled & buff.dark_transformation.up || trinket.t2.cooldown.remains ) || fight_remains <= variable.trinket_1_duration & boss",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "variable.trinket_2_buffs & ( variable.trinket_priority = 2 || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains > 20 & ( ! talent.apocalypse.enabled & buff.dark_transformation.up || pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= variable.trinket_2_duration & pet.apoc_ghoul.remains > 5 ) ) & ( talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled & pet.army_ghoul.active & pet.army_ghoul.remains <= variable.trinket_2_duration & pet.army_ghoul.remains > 10 || talent.raise_abomination.enabled & pet.abomination.active & pet.abomination.remains <= variable.trinket_2_duration & pet.abomination.remains > 10 || talent.apocalypse.enabled & pet.apoc_ghoul.active & pet.apoc_ghoul.remains <= variable.trinket_2_duration + 3 & pet.apoc_ghoul.remains > 5 || ! talent.raise_abomination.enabled & ! talent.apocalypse.enabled & buff.dark_transformation.up || trinket.t1.cooldown.remains ) || fight_remains <= variable.trinket_2_duration & boss",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & ( ! talent.raise_abomination.enabled & cooldown.army_of_the_dead.remains > 20 || talent.raise_abomination.enabled & cooldown.raise_abomination.remains > 20 ) || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled & cooldown.dark_transformation.remains > 20 || talent.summon_gargoyle.enabled & cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled || ! talent.summon_gargoyle.enabled & talent.army_of_the_dead.enabled & ( ! talent.raise_abomination.enabled & cooldown.army_of_the_dead.remains > 20 || talent.raise_abomination.enabled & cooldown.raise_abomination.remains > 20 ) || ! talent.summon_gargoyle.enabled & ! talent.army_of_the_dead.enabled & ! talent.raise_abomination.enabled & cooldown.dark_transformation.remains > 20 || talent.summon_gargoyle.enabled & cooldown.summon_gargoyle.remains > 20 & ! pet.gargoyle.active ) || boss & fight_remains < 15",
["slot"] = "trinket2",
},
},
["cleave"] = {
{
["enabled"] = true,
["description"] = "Cleave",
["criteria"] = "! death_and_decay.ticking",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "death_coil",
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "! variable.pop_wounds & debuff.festering_wound.stack < 4 || buff.festering_scythe.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "festering_strike",
["criteria"] = "cooldown.apocalypse.remains < variable.apoc_timing & debuff.festering_wound.stack < 4",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.pop_wounds",
["action"] = "wound_spender",
},
},
["san_st"] = {
{
["enabled"] = true,
["description"] = "Single Target San'layn",
["criteria"] = "! death_and_decay.ticking & talent.unholy_ground.enabled & cooldown.dark_transformation.remains < 5",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "buff.sudden_doom.up & buff.gift_of_the_sanlayn.remains & ( talent.doomed_bidding.enabled || talent.rotten_touch.enabled ) || rune < 3 & ! buff.runic_corruption.up",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "buff.gift_of_the_sanlayn.up & buff.vampiric_strike.up || talent.gift_of_the_sanlayn.enabled & buff.dark_transformation.up & buff.dark_transformation.remains < gcd.max",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "target.health.pct <= 35 & ! buff.gift_of_the_sanlayn.up & fight_remains > 5",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "buff.vampiric_strike.up & debuff.festering_wound.stack >= 1",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "( debuff.festering_wound.stack = 0 & cooldown.apocalypse.remains < variable.apoc_timing ) || ( talent.gift_of_the_sanlayn.enabled & ! buff.gift_of_the_sanlayn.up || ! talent.gift_of_the_sanlayn.enabled ) & ( buff.festering_scythe.up || debuff.festering_wound.stack <= 1 )",
["action"] = "festering_strike",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.apocalypse.enabled || cooldown.apocalypse.remains > variable.apoc_timing ) & ( debuff.festering_wound.stack >= 3 - pet.abomination.active || buff.vampiric_strike.up )",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & debuff.death_rot.remains < gcd.max || ( buff.sudden_doom.up & debuff.festering_wound.stack >= 1 || rune < 2 )",
["action"] = "death_coil",
},
{
["enabled"] = true,
["criteria"] = "debuff.festering_wound.stack > 4",
["action"] = "wound_spender",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "death_coil",
},
},
},
["version"] = 20241109,
["warnings"] = "The import for 'san_fishing' required some automated changes.\nLine 3: Converted 'talent.doomed_bidding' to 'talent.doomed_bidding.enabled' (1x).\n\nThe import for 'aoe_setup' required some automated changes.\nLine 2: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 2: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 2: Converted 'talent.defile' to 'talent.defile.enabled' (1x).\nLine 4: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\n\nThe import for 'cds_aoe' required some automated changes.\nLine 1: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 3: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 4: Converted 'talent.morbidity' to 'talent.morbidity.enabled' (1x).\nLine 4: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 4: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 4: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 4: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 4: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\n\nThe import for 'cds_aoe_san' required some automated changes.\nLine 2: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 4: Converted 'talent.morbidity' to 'talent.morbidity.enabled' (1x).\nLine 4: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 4: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 4: Converted 'talent.unholy_blight' to 'talent.unholy_blight.enabled' (1x).\nLine 4: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 4: Converted 'talent.ebon_fever' to 'talent.ebon_fever.enabled' (1x).\nLine 4: Converted 'talent.plaguebringer' to 'talent.plaguebringer.enabled' (1x).\nLine 4: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 4: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 4: Converted 'talent.superstrain' to 'talent.superstrain.enabled' (1x).\nLine 4: Converted 'talent.ebon_fever' to 'talent.ebon_fever.enabled' (1x).\nLine 4: Converted 'talent.plaguebringer' to 'talent.plaguebringer.enabled' (1x).\nLine 4: Converted operations in '(dot.virulent_plague.refreshable||talent.morbidity.enabled&!buff.gift_of_the_sanlayn.up&talent.superstrain.enabled&dot.frost_fever.refreshable&dot.blood_plague.refreshable)&(!talent.unholy_blight.enabled||talent.unholy_blight.enabled&cooldown.dark_transformation.remains>15%((2*talent.superstrain.enabled)+(2*talent.ebon_fever.enabled)+(2*talent.plaguebringer.enabled)))&(!talent.raise_abomination.enabled||talent.raise_abomination.enabled&cooldown.raise_abomination.remains>15%((2*talent.superstrain.enabled)+(2*talent.ebon_fever.enabled)+(2*talent.plaguebringer.enabled)))' to '(dot.virulent_plague.refreshable||talent.morbidity.enabled&!buff.gift_of_the_sanlayn.up&talent.superstrain.enabled&dot.frost_fever.refreshable&dot.blood_plague.refreshable)&(!talent.unholy_blight.enabled||talent.unholy_blight.enabled&cooldown.dark_transformation.remains>15/((2*talent.superstrain.enabled)+(2*talent.ebon_fever.enabled)+(2*talent.plaguebringer.enabled)))&(!talent.raise_abomination.enabled||talent.raise_abomination.enabled&cooldown.raise_abomination.remains>15/((2*talent.superstrain.enabled)+(2*talent.ebon_fever.enabled)+(2*talent.plaguebringer.enabled)))'.\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 1: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 3: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'talent.ap
["author"] = "SimulationCraft",
["profile"] = "actions.precombat+=/raise_dead\nactions.precombat+=/army_of_the_dead,precombat_time=2\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||trinket.1.is.mirror_of_fractured_tomorrows||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||trinket.2.is.mirror_of_fractured_tomorrows||trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_1_duration,op=setif,value=20,value_else=trinket.1.proc.any_dps.duration,condition=trinket.1.is.mirror_of_fractured_tomorrows||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_duration,op=setif,value=20,value_else=trinket.2.proc.any_dps.duration,condition=trinket.2.is.mirror_of_fractured_tomorrows||trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_1_high_value,op=setif,value=2,value_else=1,condition=trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_high_value,op=setif,value=2,value_else=1,condition=trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(talent.apocalypse&trinket.1.cooldown.duration%%cooldown.apocalypse.duration=0||talent.dark_transformation&trinket.1.cooldown.duration%%cooldown.dark_transformation.duration=0)||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(talent.apocalypse&trinket.2.cooldown.duration%%cooldown.apocalypse.duration=0||talent.dark_transformation&trinket.2.cooldown.duration%%cooldown.dark_transformation.duration=0)||trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.2.has_cooldown||!trinket.1.has_cooldown)||variable.trinket_2_buffs&((trinket.2.cooldown.duration%variable.trinket_2_duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync)*(variable.trinket_2_high_value)*(1+((trinket.2.ilvl-trinket.1.ilvl)%100)))>((trinket.1.cooldown.duration%variable.trinket_1_duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync)*(variable.trinket_1_high_value)*(1+((trinket.1.ilvl-trinket.2.ilvl)%100)))\nactions.precombat+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl\n\nactions+=/mind_freeze\n## actions+=/variable,name=st_planning,op=set,value=active_enemies=1\n## actions+=/variable,name=adds_remain,op=set,value=active_enemies>1\nactions+=/variable,name=apoc_timing,op=set,value=3,value_else=0,condition=cooldown.apocalypse.remains<5&debuff.festering_wound.stack<1&cooldown.unholy_assault.remains>5\nactions+=/variable,name=pop_wounds,op=set,value=(cooldown.apocalypse.remains>variable.apoc_timing||!talent.apocalypse)&(debuff.festering_wound.stack>=1&cooldown.unholy_assault.remains<20&talent.unholy_assault&active_enemies=1||debuff.rotten_touch.up&debuff.festering_wound.stack>=1||debuff.festering_wound.stack>=4-pet.abomination.active)||fight_remains<5&debuff.festering_wound.stack>=1\nactions+=/variable,name=pooling_runic_power,op=set,value=talent.vile_contagion&cooldown.vile_contagion.remains<5&runic_power<30\nactions+=/variable,name=spend_rp,op=setif,value=(!talent.rotten_touch||talent.rotten_touch&!debuff.rotten_touch.up||runic_power.deficit<20)&((talent.improved_death_coil&(active_enemies=2||talent.coil_of_devastation)||rune<3||pet.gargoyle.active||buff.sudden_doom.up||!variable.pop_wounds&debuff.festering_wound.stack>=4))\nactions+=/variable,name=epidemic_targets,value=3+talent.improved_death_coil+(talent.frenzied_bloodthirst&buff.essence_of_the_blood_queen.stack>5)+(talent.hungering_thirst&talent.harbinger_of_doom&buff.sudden_doom.up)\n# Call Action Lists\nactions+=/call_action_list,name=san_trinkets,strict=1,if=talent.vampiric_strike\nactions+=/call_action_list,name=trinkets,s
},
["Frost DK"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241206,
["author"] = "SimC",
["desc"] = "2024-12-06: SimC update\n\n2024-11-21: Implement State Expression \"breath_ticks_left\" to help prevent dropping out of breath list prematurely\n\n2024-11-01: Update APL to remove nested actions\n\n2024-10-30.2: Merge SimC update with Refactor inline with WoWHead\n\n2024-10-30: SimC update\n\n2024-10-29: Allow trinket use with PoF disabled; don't waste Reaper's Mark\n\n2024-10-23: Fix Soul Reaper\n\n2024-10-22: 11.0.5\n\n2024-10-21: SimC update\n\n2024-10-11: Update from SimC; handle PoF/BoS desyncs\n\n2024-09-28: Minor adjustments\n\n2024-09-14, 09-21: SimC update\n\n2024-09-10: Fix pooling_runes\n\n2024-08-26, 08-28, 09-04, 09-05, 09-08, 09-09: Sim update\n\n2024-07-30, 08-14, 08-15, 08-24: Sim update\n\n2024-07-23: The War Within",
["lists"] = {
["single_target"] = {
{
["enabled"] = true,
["description"] = "Single Target Rotation",
["criteria"] = "talent.a_feast_of_souls.enabled & debuff.razorice.stack = 5 & talent.shattering_blade.enabled & buff.a_feast_of_souls.up",
["action"] = "frost_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack = 2 || buff.exterminate.up",
["action"] = "obliterate",
},
{
["enabled"] = true,
["criteria"] = "( debuff.razorice.stack = 5 & talent.shattering_blade.enabled ) || ( rune < 2 & ! talent.icebreaker.enabled )",
["action"] = "frost_strike",
},
{
["enabled"] = true,
["criteria"] = "variable.rime_buffs & talent.icebreaker.enabled",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up & ! variable.pooling_runes",
["action"] = "obliterate",
},
{
["enabled"] = true,
["criteria"] = "fight_remains > 5 & target.time_to_pct_35 < 5 & target.time_to_pct_0 > 5 & rune > 2",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ( variable.rp_buffs || ( ! talent.shattering_blade.enabled & runic_power.deficit < 20 ) )",
["action"] = "frost_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.rime.up & ( ! talent.breath_of_sindragosa.enabled || talent.rage_of_the_frozen_champion.enabled || cooldown.breath_of_sindragosa.remains )",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ! ( main_hand.2h || talent.shattering_blade.enabled )",
["action"] = "frost_strike",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runes & main_hand.2h",
["action"] = "obliterate",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "frost_strike",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runes",
["action"] = "obliterate",
},
{
["enabled"] = true,
["criteria"] = "! dot.frost_fever.ticking",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "rune < 2 & runic_power.deficit > 25 & ( ! talent.breath_of_sindragosa.enabled || variable.true_breath_cooldown > cooldown.horn_of_winter.duration - 15 )",
["action"] = "horn_of_winter",
},
{
["enabled"] = true,
["criteria"] = "! talent.breath_of_sindragosa.enabled & runic_power.deficit > 20",
["action"] = "arcane_torrent",
},
},
["cold_heart"] = {
{
["enabled"] = true,
["description"] = "Cold Heart",
["criteria"] = "fight_remains < gcd.max & ( rune < 2 || ! buff.killing_machine.up & ( ! main_hand.2h & buff.cold_heart.stack >= 4 || main_hand.2h & buff.cold_heart.stack > 8 ) || buff.killing_machine.up & ( ! main_hand.2h & buff.cold_heart.stack > 8 || main_hand.2h & buff.cold_heart.stack > 10 ) )",
["action"] = "chains_of_ice",
},
{
["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",
},
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & death_knight.runeforge.fallen_crusader & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains > 15 & ( buff.cold_heart.stack >= 10 & buff.unholy_strength.up || buff.cold_heart.stack >= 13 )",
["action"] = "chains_of_ice",
},
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & ! death_knight.runeforge.fallen_crusader & buff.cold_heart.stack >= 10 & ! buff.pillar_of_frost.up & cooldown.pillar_of_frost.remains > 20",
["action"] = "chains_of_ice",
},
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & ( buff.cold_heart.stack >= 14 & buff.unholy_strength.up || buff.cold_heart.stack >= 19 || cooldown.pillar_of_frost.remains < 3 & buff.cold_heart.stack >= 14 )",
["action"] = "chains_of_ice",
},
},
["obliteration"] = {
{
["enabled"] = true,
["action"] = "obliterate",
["cycle_targets"] = 1,
["description"] = "Obliteration Active Rotation",
["criteria"] = "buff.killing_machine.up & ( buff.exterminate.up || fight_remains < gcd.max * 2 )",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & variable.rime_buffs",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & ! buff.death_and_decay.up & variable.ga_priority",
["action"] = "glacial_advance",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack < 2 & buff.pillar_of_frost.remains < gcd.max & ! buff.death_and_decay.up",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "debuff.razorice.stack = 5 & talent.shattering_blade.enabled & talent.a_feast_of_souls.enabled & buff.a_feast_of_souls.up",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up",
["action"] = "obliterate",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "fight_remains > 5 & target.time_to_pct_35 < 5 & target.time_to_pct_0 > 5 & rune > 2",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "! buff.killing_machine.up & ( ! dot.frost_fever.ticking )",
["action"] = "howling_blast",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( variable.ga_priority || debuff.razorice.stack < 5 ) & ( ! death_knight.runeforge.razorice & ( debuff.razorice.stack < 5 || debuff.razorice.remains < gcd.max * 3 ) || ( ( variable.rp_buffs || rune < 2 ) & active_enemies > 1 ) )",
["action"] = "glacial_advance",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( rune < 2 || variable.rp_buffs || debuff.razorice.stack = 5 & talent.shattering_blade.enabled ) & ! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 || talent.shattered_frost.enabled )",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.rime.up",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ( ! talent.glacial_advance.enabled || active_enemies = 1 || talent.shattered_frost.enabled )",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & variable.ga_priority",
["action"] = "glacial_advance",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "rune < 3",
["action"] = "horn_of_winter",
},
{
["enabled"] = true,
["criteria"] = "rune < 1 & runic_power < 30",
["action"] = "arcane_torrent",
},
{
["enabled"] = true,
["criteria"] = "! buff.killing_machine.up",
["action"] = "howling_blast",
},
},
["precombat"] = {
{
["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.",
["value"] = "1",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "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 ) )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["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 ) )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_cooldown & ( 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 ) || trinket.t1.is.treacherous_transmitter",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_cooldown & ( 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 ) || trinket.t2.is.treacherous_transmitter",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_duration",
["value"] = "15",
["value_else"] = "trinket.t1.buff_duration",
["criteria"] = "trinket.t1.is.treacherous_transmitter",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_duration",
["value"] = "15",
["value_else"] = "trinket.t2.buff_duration",
["criteria"] = "trinket.t2.is.treacherous_transmitter",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs & ( trinket.t2.has_cooldown || ! trinket.t1.has_cooldown ) || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / variable.trinket_2_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) * ( 1 + ( ( trinket.t2.ilvl - trinket.t1.ilvl ) / 100 ) ) ) > ( ( trinket.t1.cooldown.duration / variable.trinket_1_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) * ( 1 + ( ( trinket.t1.ilvl - trinket.t2.ilvl ) / 100 ) ) )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "damage_trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_2_buffs & trinket.t2.ilvl >= trinket.t1.ilvl",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.algethar_puzzle_box || trinket.t1.is.treacherous_transmitter",
["var_name"] = "trinket_1_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.algethar_puzzle_box || trinket.t2.is.treacherous_transmitter",
["var_name"] = "trinket_2_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.gathering_storm.enabled || talent.biting_cold.enabled",
["var_name"] = "rw_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "17",
["var_name"] = "breath_rp_cost",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.rage_of_the_frozen_champion.enabled || talent.icebreaker.enabled || talent.bind_in_darkness.enabled",
["var_name"] = "static_rime_buffs",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "breath_rp_threshold",
["description"] = "APL Variable Option: How much Runic Power to pool before casting Breath of Sindragosa",
["default"] = "settings.bos_rp",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "erw_breath_rp_trigger",
["description"] = "APL Variable Option: Used with erw_breath_rune_trigger to determine when resources are low enough to use Empower Rune Weapon",
["default"] = "70",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "erw_breath_rune_trigger",
["description"] = "APL Variable Option: Used with erw_breath_rp_trigger to determine when resources are low enough to use Empower Rune Weapon",
["default"] = "3",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "oblit_rune_pooling",
["description"] = "APL Variable Option: How many Runes the APL will try to pool for Pillar of Frost with Obliteration. It is not a guarantee, just a goal.",
["default"] = "4",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "breath_rime_rp_threshold",
["description"] = "APL Variable Option: Amount of Runic Power pooled during Breath of Sindragosa to be able to use Rime",
["default"] = "60",
},
},
["aoe"] = {
{
["enabled"] = true,
["description"] = "AoE Action List",
["criteria"] = "buff.killing_machine.up & talent.cleaving_strikes.enabled & buff.death_and_decay.up",
["action"] = "obliterate",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & debuff.razorice.stack = 5 & talent.shattering_blade.enabled & ( talent.shattered_frost.enabled || active_enemies < 4 )",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! dot.frost_fever.ticking",
["action"] = "howling_blast",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.rime.up",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.stack > 0",
["action"] = "obliterate",
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power & ( variable.ga_priority || debuff.razorice.stack < 5 )",
["action"] = "glacial_advance",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.pooling_runic_power",
["action"] = "frost_strike",
["cycle_targets"] = 1,
},
{
["action"] = "obliterate",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "rune < 2 & runic_power.deficit > 25 & ( ! talent.breath_of_sindragosa.enabled || variable.true_breath_cooldown > cooldown.horn_of_winter.duration - 15 )",
["action"] = "horn_of_winter",
},
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 25",
["action"] = "arcane_torrent",
},
},
["breath"] = {
{
["enabled"] = true,
["action"] = "obliterate",
["cycle_targets"] = 1,
["description"] = "Breath Active Rotation",
["criteria"] = "buff.killing_machine.stack = 2",
},
{
["enabled"] = true,
["criteria"] = "fight_remains > 5 & target.time_to_pct_35 < 5 & target.time_to_pct_0 > 5 & runic_power > 50",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "( variable.rime_buffs || ! buff.killing_machine.up & buff.pillar_of_frost.up & talent.obliteration.enabled & ! buff.bonegrinder_frost.up ) & runic_power > ( variable.breath_rime_rp_threshold - ( talent.rage_of_the_frozen_champion.enabled * 6 ) ) || ! dot.frost_fever.ticking",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "rune < 2 & runic_power.deficit > 30 & ( ! buff.empower_rune_weapon.up || runic_power < variable.breath_rp_cost * 2 * gcd.max )",
["action"] = "horn_of_winter",
},
{
["enabled"] = true,
["criteria"] = "buff.killing_machine.up || runic_power.deficit > 20",
["action"] = "obliterate",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.breath_dying",
["action"] = "remorseless_winter",
},
{
["enabled"] = true,
["criteria"] = "! death_and_decay.ticking & ( variable.st_planning & talent.unholy_ground.enabled & runic_power.deficit >= 10 & ! talent.obliteration.enabled || variable.breath_dying )",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "variable.breath_dying",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["criteria"] = "runic_power < 60",
["action"] = "arcane_torrent",
},
{
["enabled"] = true,
["criteria"] = "buff.rime.up",
["action"] = "howling_blast",
},
},
["default"] = {
{
["enabled"] = true,
["description"] = "Interrupt",
["action"] = "mind_freeze",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1",
["var_name"] = "st_planning",
["description"] = "Variables",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies > 1",
["var_name"] = "adds_remain",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.st_planning || variable.adds_remain )",
["var_name"] = "sending_cds",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.rime.up & ( variable.static_rime_buffs || talent.avalanche.enabled & ! talent.arctic_assault.enabled & debuff.razorice.stack < 5 )",
["var_name"] = "rime_buffs",
},
{
["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 + ( 2 * talent.smothering_offense.enabled ) + ( 2 * talent.dark_talons.enabled ) ) )",
["var_name"] = "rp_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.pillar_of_frost.enabled & buff.pillar_of_frost.up & ( talent.obliteration.enabled & buff.pillar_of_frost.remains > 10 || ! talent.obliteration.enabled ) || ! talent.pillar_of_frost.enabled & buff.empower_rune_weapon.up || ! talent.pillar_of_frost.enabled & ! talent.empower_rune_weapon.enabled || active_enemies >= 2 & buff.pillar_of_frost.up",
["var_name"] = "cooldown_check",
},
{
["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.",
["value"] = "cooldown.breath_of_sindragosa.remains",
["var_name"] = "true_breath_cooldown",
["action"] = "variable",
["value_else"] = "cooldown.pillar_of_frost.remains",
["criteria"] = "cooldown.breath_of_sindragosa.remains > cooldown.pillar_of_frost.remains",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "oblit_pooling_time",
["value"] = "( ( cooldown.pillar_of_frost.remains_expected + 1 ) / gcd.max ) / ( ( rune + 1 ) * ( ( runic_power + 5 ) ) ) * 100",
["value_else"] = "3",
["criteria"] = "runic_power < 35 & rune < 2 & cooldown.pillar_of_frost.remains_expected < 10",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "breath_pooling_time",
["value"] = "( ( variable.true_breath_cooldown + 1 ) / gcd.max ) / ( ( rune + 1 ) * ( runic_power + 20 ) ) * 100",
["value_else"] = "2",
["criteria"] = "runic_power.deficit > 10 & variable.true_breath_cooldown < 10",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "rune < variable.oblit_rune_pooling & talent.obliteration.enabled & ( ! talent.breath_of_sindragosa.enabled || variable.true_breath_cooldown > 0 ) & cooldown.pillar_of_frost.remains_expected < variable.oblit_pooling_time",
["var_name"] = "pooling_runes",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.breath_of_sindragosa.enabled & ( variable.true_breath_cooldown < variable.breath_pooling_time || fight_remains < 30 & ! cooldown.breath_of_sindragosa.remains ) || talent.obliteration.enabled & ( ! talent.breath_of_sindragosa.enabled || cooldown.breath_of_sindragosa.remains > 30 ) & runic_power < 35 & cooldown.pillar_of_frost.remains < variable.oblit_pooling_time",
["var_name"] = "pooling_runic_power",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! talent.shattered_frost.enabled & talent.shattering_blade.enabled & active_enemies >= 4 ) || ( ! talent.shattered_frost.enabled & ! talent.shattering_blade.enabled & active_enemies >= 2 )",
["var_name"] = "ga_priority",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "runic_power < variable.breath_rp_cost * 2 * gcd.max & rune.time_to_2 > runic_power / variable.breath_rp_cost",
["var_name"] = "breath_dying",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( buff.pillar_of_frost.remains < gcd.max || ( buff.unholy_strength.up & buff.unholy_strength.remains < gcd.max ) || ( talent.bonegrinder.rank = 2 & buff.bonegrinder_frost.up & buff.bonegrinder_frost.remains < gcd.max ) ) & ( active_enemies > 1 || debuff.razorice.stack = 5 || ! death_knight.runeforge.razorice & ( ! talent.glacial_advance.enabled || ! talent.avalanche.enabled || ! talent.arctic_assault.enabled ) || talent.shattering_blade.enabled )",
["var_name"] = "fwf_buffs",
},
{
["enabled"] = true,
["criteria"] = "runic_power.deficit > 40 & death_knight.first_ams_cast < time & ( ! talent.breath_of_sindragosa.enabled || talent.breath_of_sindragosa.enabled & variable.true_breath_cooldown > cooldown.antimagic_shell.duration )",
["action"] = "antimagic_shell",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["use_off_gcd"] = 1,
["description"] = "Trinkets",
["criteria"] = "cooldown.pillar_of_frost.remains < 6 & variable.sending_cds & ( variable.trinket_1_buffs & variable.trinket_2_buffs || ! talent.breath_of_sindragosa.enabled || cooldown.breath_of_sindragosa.remains < 6 ) || boss & fight_remains < 30",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "Trinkets The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.",
["criteria"] = "! trinket.t1.cast_time > 0 & variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ( ! variable.trinket_2_buffs & buff.breath_of_sindragosa.up || ! talent.breath_of_sindragosa.enabled || variable.trinket_2_buffs ) & buff.pillar_of_frost.remains > variable.trinket_1_duration / 2 ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 )",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t2.cast_time > 0 & variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ( ! variable.trinket_1_buffs & buff.breath_of_sindragosa.up || ! talent.breath_of_sindragosa.enabled || variable.trinket_2_buffs ) & buff.pillar_of_frost.remains > variable.trinket_2_duration / 2 ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["description"] = "Channeled buff trinkets will be used before cooldowns",
["criteria"] = "trinket.t1.cast_time > 0 & variable.trinket_1_buffs & ! variable.trinket_1_manual & ! buff.pillar_of_frost.up & ( ! talent.breath_of_sindragosa.enabled || ! buff.breath_of_sindragosa.up & runic_power > variable.breath_rp_threshold & ( ( buff.pillar_of_frost.remains > 6 || cooldown.pillar_of_frost.ready ) & variable.sending_cds ) ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || variable.trinket_1_duration >= fight_remains & boss",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "trinket.t2.cast_time > 0 & variable.trinket_2_buffs & ! variable.trinket_2_manual & ! buff.pillar_of_frost.up & ( ! talent.breath_of_sindragosa.enabled || ! buff.breath_of_sindragosa.up & runic_power > variable.breath_rp_threshold & ( ( buff.pillar_of_frost.remains > 6 || cooldown.pillar_of_frost.ready ) & variable.sending_cds ) ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || variable.trinket_2_duration >= fight_remains & boss",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( variable.damage_trinket_priority = 1 || ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains ) ) & ( ( trinket.t1.cast_time > 0 & ( ! talent.breath_of_sindragosa.enabled || ! buff.breath_of_sindragosa.up || ! variable.breath_dying ) & ! buff.pillar_of_frost.up || ! trinket.t1.cast_time > 0 ) & ( ! variable.trinket_2_buffs || cooldown.pillar_of_frost.remains > 20 ) || ! talent.pillar_of_frost.enabled ) || boss & fight_remains < 15",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( variable.damage_trinket_priority = 2 || ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains ) ) & ( ( trinket.t2.cast_time > 0 & ( ! talent.breath_of_sindragosa.enabled || ! buff.breath_of_sindragosa.up || ! variable.breath_dying ) & ! buff.pillar_of_frost.up || ! trinket.t2.cast_time > 0 ) & ( ! variable.trinket_1_buffs || cooldown.pillar_of_frost.remains > 20 ) || ! talent.pillar_of_frost.enabled ) || boss & fight_remains < 15",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["description"] = "Maintain Frost Fever, Icy Talons and Unleashed Frenzy",
["criteria"] = "! dot.frost_fever.ticking & active_enemies >= 2 & ( ! talent.breath_of_sindragosa.enabled || ! buff.breath_of_sindragosa.up ) & ( ! talent.obliteration.enabled || talent.wither_away.enabled || talent.obliteration.enabled & ( ! cooldown.pillar_of_frost.ready || buff.pillar_of_frost.up & ! buff.killing_machine.up ) )",
["action"] = "howling_blast",
},
{
["enabled"] = true,
["description"] = "Cooldowns",
["criteria"] = "( 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 || active_enemies >= 2 & buff.pillar_of_frost.up ) || boss & fight_remains < 25",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & variable.sending_cds & ( ! hero_tree.deathbringer || cooldown.reapers_mark.remains < 5 ) || boss & fight_remains < 15",
["action"] = "abomination_limb",
},
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & variable.sending_cds",
["action"] = "abomination_limb",
},
{
["enabled"] = true,
["criteria"] = "variable.rw_buffs & variable.sending_cds & ( ! talent.arctic_assault.enabled || ! buff.pillar_of_frost.up ) & ( cooldown.pillar_of_frost.remains > 20 || cooldown.pillar_of_frost.remains < 4 || ( buff.gathering_storm.stack = 10 & buff.remorseless_winter.remains < gcd.max ) ) & fight_remains > 10",
["action"] = "remorseless_winter",
},
{
["enabled"] = true,
["criteria"] = "variable.sending_cds & ( ! talent.arctic_assault.enabled || ! buff.pillar_of_frost.up )",
["action"] = "chill_streak",
},
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! talent.breath_of_sindragosa.enabled & buff.pillar_of_frost.up || boss & fight_remains < 20",
["action"] = "empower_rune_weapon",
},
{
["enabled"] = true,
["criteria"] = "buff.breath_of_sindragosa.up & ( runic_power < 40 || runic_power < variable.erw_breath_rp_trigger & rune < variable.erw_breath_rune_trigger )",
["action"] = "empower_rune_weapon",
},
{
["enabled"] = true,
["criteria"] = "! talent.breath_of_sindragosa.enabled & ! talent.obliteration.enabled & ! buff.empower_rune_weapon.up & rune < 5 & ( cooldown.pillar_of_frost.remains < 7 || buff.pillar_of_frost.up || ! talent.pillar_of_frost.enabled )",
["action"] = "empower_rune_weapon",
},
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! talent.breath_of_sindragosa.enabled & variable.sending_cds || boss & fight_remains < 20",
["action"] = "pillar_of_frost",
},
{
["enabled"] = true,
["criteria"] = "talent.breath_of_sindragosa.enabled & variable.sending_cds & cooldown.breath_of_sindragosa.remains & buff.unleashed_frenzy.up & ( ! hero_tree.deathbringer || rune > 1 )",
["action"] = "pillar_of_frost",
},
{
["enabled"] = true,
["criteria"] = "! talent.obliteration.enabled & ! talent.breath_of_sindragosa.enabled & variable.sending_cds",
["action"] = "pillar_of_frost",
},
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "! buff.breath_of_sindragosa.up & runic_power > variable.breath_rp_threshold & ( rune < 2 || runic_power > 80 ) & ( ( buff.pillar_of_frost.up || cooldown.pillar_of_frost.remains > 30 || cooldown.pillar_of_frost.ready ) & variable.sending_cds || fight_remains < 30 ) || ( time < 10 & rune < 1 )",
["action"] = "breath_of_sindragosa",
},
{
["enabled"] = true,
["criteria"] = "( boss || target.time_to_die > 13 ) & debuff.reapers_mark_debuff.down & ( buff.pillar_of_frost.up || cooldown.pillar_of_frost.remains > 5 )",
["action"] = "reapers_mark",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "hero_tree.rider_of_the_apocalypse & talent.apocalypse_now.enabled & variable.sending_cds & ( ! talent.breath_of_sindragosa.enabled & buff.pillar_of_frost.up || buff.breath_of_sindragosa.up ) || boss & fight_remains < 20",
["action"] = "frostwyrms_fury",
},
{
["enabled"] = true,
["criteria"] = "! talent.apocalypse_now.enabled & active_enemies = 1 & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.up & ! talent.obliteration.enabled || ! talent.pillar_of_frost.enabled ) & ( ! raid_event.adds.exists || raid_event.adds.in > cooldown.frostwyrms_fury.duration + raid_event.adds.duration ) & variable.fwf_buffs || fight_remains < 3",
["action"] = "frostwyrms_fury",
},
{
["enabled"] = true,
["criteria"] = "! talent.apocalypse_now.enabled & 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 - raid_event.adds.in - raid_event.adds.duration ) & variable.fwf_buffs",
["action"] = "frostwyrms_fury",
},
{
["enabled"] = true,
["criteria"] = "! talent.apocalypse_now.enabled & talent.obliteration.enabled & ( talent.pillar_of_frost.enabled & buff.pillar_of_frost.up & ! main_hand.two_hand || ! buff.pillar_of_frost.up & main_hand.2h & cooldown.pillar_of_frost.remains || ! talent.pillar_of_frost.enabled ) & variable.fwf_buffs & ( ! raid_event.adds.exists || raid_event.adds.in > cooldown.frostwyrms_fury.duration + raid_event.adds.duration )",
["action"] = "frostwyrms_fury",
},
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "buff.pillar_of_frost.up",
["action"] = "raise_dead",
},
{
["enabled"] = true,
["criteria"] = "! buff.killing_machine.up & ! buff.pillar_of_frost.up",
["action"] = "frostscythe",
},
{
["enabled"] = true,
["criteria"] = "hero_tree.deathbringer & ! buff.death_and_decay.up & variable.st_planning & cooldown.reapers_mark.remains < gcd.max * 2",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["criteria"] = "! buff.death_and_decay.up & variable.adds_remain & ( buff.pillar_of_frost.up & buff.killing_machine.up & ( talent.enduring_strength.enabled || buff.pillar_of_frost.remains > 5 ) || ! buff.pillar_of_frost.up & ( cooldown.death_and_decay.charges = 2 || cooldown.pillar_of_frost.remains > cooldown.death_and_decay.duration || ! talent.the_long_winter.enabled & cooldown.pillar_of_frost.remains < gcd.max * 2 ) || fight_remains < 15 ) & ( active_enemies > 5 || talent.cleaving_strikes.enabled & active_enemies >= 2 )",
["action"] = "any_dnd",
},
{
["enabled"] = true,
["description"] = "Racial Abilities",
["criteria"] = "variable.cooldown_check",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "arcane_pulse",
},
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "variable.cooldown_check",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "talent.obliteration.enabled & ! buff.pillar_of_frost.up & buff.unholy_strength.up",
["action"] = "bag_of_tricks",
},
{
["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",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["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 & ! talent.arctic_assault.enabled ) || boss & fight_remains <= gcd.max )",
["list_name"] = "cold_heart",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "buff.breath_of_sindragosa.up || breath_ticks_left > 0",
["list_name"] = "breath",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "talent.obliteration.enabled & buff.pillar_of_frost.up & ! buff.breath_of_sindragosa.up",
["list_name"] = "obliteration",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 2",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 1",
["list_name"] = "single_target",
},
},
},
["version"] = 20241206,
["warnings"] = "The import for 'single_target' required some automated changes.\nLine 1: Converted 'talent.a_feast_of_souls' to 'talent.a_feast_of_souls.enabled' (1x).\nLine 1: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 3: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 3: Converted 'talent.icebreaker' to 'talent.icebreaker.enabled' (1x).\nLine 4: Converted 'talent.icebreaker' to 'talent.icebreaker.enabled' (1x).\nLine 7: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 8: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 8: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 9: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 14: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 15: 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 'default' required some automated changes.\nLine 5: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 5: Converted 'talent.arctic_assault' to 'talent.arctic_assault.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 6: Converted 'talent.smothering_offense' to 'talent.smothering_offense.enabled' (1x).\nLine 6: Converted 'talent.dark_talons' to 'talent.dark_talons.enabled' (1x).\nLine 7: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.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 9: Converted operations in '((cooldown.pillar_of_frost.remains_expected+1)%gcd.max)%((rune+1)*((runic_power+5)))*100' to '((cooldown.pillar_of_frost.remains_expected+1)/gcd.max)/((rune+1)*((runic_power+5)))*100'.\nLine 10: Converted operations in '((variable.true_breath_cooldown+1)%gcd.max)%((rune+1)*(runic_power+20))*100' to '((variable.true_breath_cooldown+1)/gcd.max)/((rune+1)*(runic_power+20))*100'.\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 12: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 12: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 12: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 13: Converted 'talent.shattered_frost' to 'talent.shattered_frost.enabled' (1x).\nLine 13: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 13: Converted 'talent.shattered_frost' to 'talent.shattered_frost.enabled' (1x).\nLine 13: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 14: Converted operations in 'runic_power<variable.breath_rp_cost*2*gcd.max&rune.time_to_2>runic_power%variable.breath_rp_cost' to 'runic_power<variable.breath_rp_cost*2*gcd.max&rune.time_to_2>runic_power/variable.breath_rp_cost'.\nLine 15: Converted 'talent.glacia
["profile"] = "# 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_cooldown&(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)||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_cooldown&(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)||trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_1_duration,op=setif,value=15,value_else=trinket.1.proc.any_dps.duration,condition=trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_duration,op=setif,value=15,value_else=trinket.2.proc.any_dps.duration,condition=trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.2.has_cooldown||!trinket.1.has_cooldown)||variable.trinket_2_buffs&((trinket.2.cooldown.duration%variable.trinket_2_duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync)*(1+((trinket.2.ilvl-trinket.1.ilvl)%100)))>((trinket.1.cooldown.duration%variable.trinket_1_duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync)*(1+((trinket.1.ilvl-trinket.2.ilvl)%100)))\nactions.precombat+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box||trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=rw_buffs,value=talent.gathering_storm||talent.biting_cold\nactions.precombat+=/variable,name=breath_rp_cost,value=17\nactions.precombat+=/variable,name=static_rime_buffs,value=talent.rage_of_the_frozen_champion||talent.icebreaker||talent.bind_in_darkness\n# APL Variable Option: How much Runic Power to pool before casting Breath of Sindragosa\nactions.precombat+=/variable,name=breath_rp_threshold,default=settings.bos_rp,op=reset\n# APL Variable Option: Used with erw_breath_rune_trigger to determine when resources are low enough to use Empower Rune Weapon\nactions.precombat+=/variable,name=erw_breath_rp_trigger,default=70,op=reset\n# APL Variable Option: Used with erw_breath_rp_trigger to determine when resources are low enough to use Empower Rune Weapon\nactions.precombat+=/variable,name=erw_breath_rune_trigger,default=3,op=reset\n# APL Variable Option: How many Runes the APL will try to pool for Pillar of Frost with Obliteration. It is not a guarantee, just a goal.\nactions.precombat+=/variable,name=oblit_rune_pooling,default=4,op=reset\n# APL Variable Option: Amount of Runic Power pooled during Breath of Sindragosa to be able to use Rime\nactions.precombat+=/variable,name=breath_rime_rp_threshold,default=60,op=reset\n\n# Interrupt\nactions+=/mind_freeze\n\n# Variables\nactions+=/variable,name=st_plan
["spec"] = 251,
},
["Arcane"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241125,
["spec"] = 62,
["desc"] = "2024-11-03, 11-25: SimC update\n\n2024-10-27: SimC update\n\n2024-10-22: 11.0.5, fixes\n\n2024-09-22, 09-28: SimC update\n\n2024-09-10: Tweak opener\n\n2024-09-01, 09-03, 09-08: SimC update\n\n2024-08-29: SimC update\n\n2024-07-28: The War Within",
["lists"] = {
["sunfury_aoe"] = {
{
["enabled"] = true,
["criteria"] = "( buff.arcane_soul.up & ( ( buff.clearcasting.stack < 3 ) || buff.arcane_soul.remains < gcd.max ) )",
["action"] = "arcane_barrage",
["description"] = "This list is only used with a variable for extra information, it is not a default list called and is generally worse in every way",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["interrupt_if"] = "tick_time>gcd.remains&buff.aether_attunement.down",
["interrupt_immediate"] = "1",
["criteria"] = "buff.arcane_soul.up",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "( buff.arcane_surge.down & buff.siphon_storm.down & debuff.touch_of_the_magi.down & cooldown.evocation.remains > 15 & cooldown.touch_of_the_magi.remains > 15 ) & ( cooldown.arcane_orb.remains & action.arcane_orb.charges = 0 ) & fight_remains > 10",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 2 & ( ! talent.high_voltage.enabled || ! buff.clearcasting.up )",
["action"] = "arcane_orb",
},
{
["enabled"] = true,
["criteria"] = "( ( debuff.magis_spark_arcane_blast.up || buff.burden_of_power.up || buff.leydrinker.up ) & ! prev_gcd.1.arcane_blast )",
["action"] = "arcane_blast",
},
{
["enabled"] = true,
["criteria"] = "( buff.arcane_charge.stack = 4 || buff.glorious_incandescence.up || buff.aethervision.stack = 2 || buff.intuition.up ) & ( buff.nether_precision.up || buff.clearcasting.down )",
["action"] = "arcane_barrage",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["interrupt_if"] = "tick_time>gcd.remains&buff.aether_attunement.down",
["interrupt_immediate"] = "1",
["criteria"] = "buff.clearcasting.up & ( buff.aether_attunement.up || talent.arcane_harmony.enabled )",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 3 || buff.arcane_charge.stack = 2",
["action"] = "presence_of_mind",
},
{
["enabled"] = true,
["criteria"] = "talent.reverberate.enabled || buff.arcane_charge.stack < 1",
["action"] = "arcane_explosion",
},
{
["action"] = "arcane_blast",
["enabled"] = true,
},
{
["action"] = "arcane_barrage",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
},
{
["action"] = "spellsteal",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! equipped.spymasters_web & ( buff.siphon_storm.up || ( ! talent.evocation.enabled & cooldown.arcane_surge.ready ) ) || equipped.spymasters_web & ( buff.spymasters_web.up || ( fight_remains > 330 & buff.siphon_storm.up ) )",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "( buff.arcane_surge.down & debuff.touch_of_the_magi.down & active_enemies >= 2 )",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.arcane_surge & variable.opener ) || ( ( prev_gcd.1.arcane_surge & ( fight_remains < 80 || target.health.pct < 35 || ! talent.arcane_bombardment.enabled || buff.spymasters_web.up ) ) || ( prev_gcd.1.arcane_surge & ! equipped.spymasters_web ) )",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.arcane_surge & variable.opener ) || ( ( prev_gcd.1.arcane_surge & ( fight_remains < 80 || target.health.pct < 35 || ! talent.arcane_bombardment.enabled || buff.spymasters_web.up ) ) || ( prev_gcd.1.arcane_surge & ! equipped.spymasters_web ) )",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.arcane_surge & variable.opener ) || ( ( prev_gcd.1.arcane_surge & ( fight_remains < 80 || target.health.pct < 35 || ! talent.arcane_bombardment.enabled || buff.spymasters_web.up ) ) || ( prev_gcd.1.arcane_surge & ! equipped.spymasters_web ) )",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "( prev_gcd.1.arcane_surge & variable.opener ) || ( ( prev_gcd.1.arcane_surge & ( fight_remains < 80 || target.health.pct < 35 || ! talent.arcane_bombardment.enabled || buff.spymasters_web.up ) ) || ( prev_gcd.1.arcane_surge & ! equipped.spymasters_web ) )",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_surge || prev_gcd.1.evocation || fight_remains < 20 || ! variable.steroid_trinket_equipped",
["action"] = "use_items",
["description"] = "Trinket specific use cases vary, default is just with cooldowns",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
["criteria"] = "buff.spymasters_report.stack < 40",
},
{
["enabled"] = true,
["name"] = "spymasters_web",
["action"] = "spymasters_web",
["criteria"] = "( ( prev_gcd.1.arcane_surge || prev_gcd.1.evocation ) & ( fight_remains < 80 || target.health.pct < 35 || ! talent.arcane_bombardment.enabled || ( buff.spymasters_report.stack = 40 & fight_remains > 240 ) ) || fight_remains < 20 )",
},
{
["enabled"] = true,
["name"] = "high_speakers_accretion",
["action"] = "high_speakers_accretion",
["criteria"] = "( prev_gcd.1.arcane_surge || prev_gcd.1.evocation || ( buff.siphon_storm.up & variable.opener ) || cooldown.evocation.remains < 4 || boss & fight_remains < 20 ) & ( buff.spymasters_report.stack < 35 )",
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
["criteria"] = "cooldown.evocation.ready || cooldown.arcane_surge.ready || fight_remains < 20",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
["criteria"] = "( cooldown.evocation.remains < 7 & cooldown.evocation.remains ) || buff.siphon_storm.remains > 15 || fight_remains < 20",
},
{
["enabled"] = true,
["name"] = "aberrant_spellforge",
["action"] = "aberrant_spellforge",
["criteria"] = "! variable.steroid_trinket_equipped || buff.siphon_storm.down || ( equipped.spymasters_web & target.health.pct > 35 )",
},
{
["enabled"] = true,
["name"] = "mad_queens_mandate",
["action"] = "mad_queens_mandate",
["criteria"] = "! variable.steroid_trinket_equipped || buff.siphon_storm.down",
},
{
["enabled"] = true,
["name"] = "fearbreakers_echo",
["action"] = "fearbreakers_echo",
["criteria"] = "! variable.steroid_trinket_equipped || buff.siphon_storm.down",
},
{
["enabled"] = true,
["name"] = "mereldars_toll",
["action"] = "mereldars_toll",
["criteria"] = "! variable.steroid_trinket_equipped || buff.siphon_storm.down",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["criteria"] = "debuff.touch_of_the_magi.up & variable.opener",
["var_name"] = "opener",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 2",
["action"] = "arcane_barrage",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Enter cooldowns, then action list depending on your hero talent choices",
["criteria"] = "variable.opener",
["list_name"] = "cd_opener",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.spellfire_spheres.enabled",
["list_name"] = "sunfury",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.spellfire_spheres.enabled",
["list_name"] = "spellslinger",
},
{
["action"] = "arcane_barrage",
["enabled"] = true,
},
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "aoe_target_count",
["default"] = "2",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "9",
["criteria"] = "! talent.arcing_cleave.enabled",
["var_name"] = "aoe_target_count",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( cooldown.touch_of_the_magi.remains <= action.evocation.execution_time ) & ( cooldown.arcane_surge.remains <= action.evocation.execution_time || action.arcane_surge.time_since < 5 || cooldown.arcane_surge.remains > 15 ) & ( cooldown.evocation.up || action.evocation.time_since < 5 || cooldown.evocation.remains > 15 )",
["var_name"] = "opener",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.opener & ( buff.arcane_surge.up || cooldown.arcane_surge.remains > 30 ) || ( prev_gcd.1.arcane_surge & buff.arcane_charge.stack < 4 )",
["var_name"] = "touch_ready",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.gladiators_badge || equipped.signet_of_the_priory || equipped.high_speakers_accretion || equipped.spymasters_web || equipped.treacherous_transmitter || equipped.imperfect_ascendancy_serum || equipped.quickwick_candlestick",
["var_name"] = "steroid_trinket_equipped",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( equipped.gladiators_badge || equipped.signet_of_the_priory || equipped.high_speakers_accretion || equipped.spymasters_web || equipped.imperfect_ascendancy_serum || equipped.quickwick_candlestick ) & equipped.treacherous_transmitter",
["var_name"] = "transmitter_double_on_use",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "11",
["var_name"] = "treacherous_transmitter_precombat_cast",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["action"] = "mirror_image",
["enabled"] = true,
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
},
{
["enabled"] = true,
["criteria"] = "! talent.evocation.enabled",
["action"] = "arcane_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.evocation.enabled",
["action"] = "evocation",
},
},
["cd_opener"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.arcane_barrage & ( action.arcane_barrage.in_flight_remains <= 0.5 || gcd.remains <= 0.5 ) & ( buff.arcane_surge.up || cooldown.arcane_surge.remains > 30 ) || ( prev_gcd.1.arcane_surge & buff.arcane_charge.stack < 4 )",
["use_off_gcd"] = 1,
["action"] = "touch_of_the_magi",
["description"] = "Touch of the Magi used when Arcane Barrage is mid-flight or if you just used Arcane Surge and you don't have 4 Arcane Charges, the wait simulates the time it takes to queue another spell after Touch when you Surge into Touch",
},
{
["enabled"] = true,
["criteria"] = "buff.presence_of_mind.up",
["action"] = "arcane_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.high_voltage.enabled",
["action"] = "arcane_orb",
["description"] = "Use Orb for Charges on the opener if you have High Voltage as the Missiles will generate the remaining Charge you need",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_tempo.up & cooldown.evocation.ready & buff.arcane_tempo.remains < gcd.max * 5",
["action"] = "arcane_barrage",
["description"] = "Barrage before Evocation if Tempo will expire",
},
{
["enabled"] = true,
["criteria"] = "cooldown.arcane_surge.remains < ( gcd.max * 3 ) & cooldown.touch_of_the_magi.remains < ( gcd.max * 5 )",
["action"] = "evocation",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["line_cd"] = "30",
["interrupt_if"] = "tick_time>gcd.remains&buff.aether_attunement.down",
["interrupt_immediate"] = "1",
["criteria"] = "( ( prev_gcd.1.evocation || prev_gcd.1.arcane_surge ) || variable.opener ) & buff.nether_precision.down & buff.aether_attunement.down",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "cooldown.touch_of_the_magi.remains < ( action.arcane_surge.execute_time + ( gcd.max * ( buff.arcane_charge.stack = 4 ) ) )",
["action"] = "arcane_surge",
},
},
["sunfury"] = {
{
["enabled"] = true,
["criteria"] = "( ( buff.arcane_surge.down & buff.siphon_storm.down & debuff.touch_of_the_magi.down & cooldown.evocation.remains > 15 & cooldown.touch_of_the_magi.remains > 10 ) & fight_remains > 10 ) & buff.arcane_soul.down",
["action"] = "shifting_power",
["description"] = "For Sunfury, Shifting Power only when you're not under the effect of any cooldowns",
},
{
["enabled"] = true,
["action"] = "cancel_buff",
["use_off_gcd"] = 1,
["criteria"] = "( prev_gcd.1.arcane_blast & buff.presence_of_mind.stack = 1 ) || active_enemies < 4",
["buff_name"] = "presence_of_mind",
},
{
["enabled"] = true,
["criteria"] = "debuff.touch_of_the_magi.remains <= gcd.max & buff.nether_precision.up & active_enemies < 4",
["action"] = "presence_of_mind",
},
{
["enabled"] = true,
["criteria"] = "( buff.arcane_charge.stack = 4 & buff.burden_of_power.down & buff.nether_precision.up & active_enemies > 2 & ( ( talent.arcane_bombardment.enabled & target.health.pct < 35 ) || active_enemies > 4 ) & talent.arcing_cleave.enabled & ( ( talent.high_voltage.enabled & buff.clearcasting.up ) || ( cooldown.arcane_orb.remains < gcd.max || action.arcane_orb.charges > 0 ) ) ) || ( buff.aether_attunement.up & talent.high_voltage.enabled & buff.clearcasting.up & buff.arcane_charge.stack > 1 & active_enemies > 2 & ( target.health.pct < 35 || ! talent.arcane_bombardment.enabled || active_enemies > 4 ) ) || ( active_enemies > 2 & ( buff.aethervision.stack = 2 || buff.glorious_incandescence.up || buff.intuition.up ) & ( buff.nether_precision.up || ( target.health.pct < 35 & talent.arcane_bombardment.enabled & buff.clearcasting.down ) ) )",
["action"] = "arcane_barrage",
["description"] = "AOE Barrage is optimized for funnel, tries to make sure you have Clearcasting if you have High Voltage or an Orb charge ready, second condition covers Aether Attunement optimizations with High Voltage, last condition is to Barrage anytime you have a refunder and are in execute in AOE.",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 2 & buff.arcane_soul.down & ( ! talent.high_voltage.enabled || buff.clearcasting.down )",
["action"] = "arcane_orb",
["description"] = "Orb if you don't have High Voltage and a Clearcasting in AOE",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["description"] = "Soul changes missile priority a bit and allows for clipping Aether Attunement",
["criteria"] = "buff.nether_precision.down & buff.clearcasting.up & ( buff.arcane_soul.up & buff.arcane_soul.remains > gcd.max * ( 4 - buff.clearcasting.stack ) )",
["interrupt_if"] = "tick_time>gcd.remains",
["interrupt_immediate"] = "1",
["chain"] = "1",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "( buff.intuition.up || buff.aethervision.stack = 2 || buff.glorious_incandescence.up ) & ( ( ( target.health.pct < 35 & talent.arcane_bombardment.enabled ) || ( mana.pct < 70 & talent.enlightened.enabled & buff.arcane_surge.down & active_enemies < 3 ) ) || buff.glorious_incandescence.up ) & ( buff.nether_precision.up || buff.clearcasting.down ) & ( cooldown.touch_of_the_magi.remains > 6 || ! variable.touch_ready ) || ( buff.arcane_soul.up & ( ( buff.clearcasting.stack < 3 ) || buff.arcane_soul.remains < gcd.max ) ) || ( buff.arcane_charge.stack = 4 & variable.touch_ready )",
["action"] = "arcane_barrage",
["description"] = "Barrage when you can restore charges, overlap buffs as much as possible, if you have no way to generate Nether Precision you can also send if under Enlightened threshold or during execute",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["description"] = "Missiles when it won't impact various Barrage conditions, interrupt the channel immediately after the GCD if you do not have Aether Attunement",
["criteria"] = "buff.clearcasting.up & ( ( buff.nether_precision.down || buff.clearcasting.stack = 3 || ( talent.high_voltage.enabled & buff.arcane_charge.stack < 3 ) ) )",
["interrupt_if"] = "tick_time>gcd.remains&buff.aether_attunement.down",
["interrupt_immediate"] = "1",
["chain"] = "1",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "( buff.arcane_charge.stack = 3 || buff.arcane_charge.stack = 2 ) & active_enemies >= 3",
["action"] = "presence_of_mind",
},
{
["enabled"] = true,
["criteria"] = "( talent.reverberate.enabled || buff.arcane_charge.stack < 1 ) & active_enemies >= 4",
["action"] = "arcane_explosion",
["description"] = "Explosion to build the first charge if you have none",
},
{
["action"] = "arcane_blast",
["enabled"] = true,
},
{
["action"] = "arcane_barrage",
["enabled"] = true,
},
},
["spellslinger_aoe"] = {
{
["enabled"] = true,
["criteria"] = "buff.unerring_proficiency.stack = 30",
["action"] = "supernova",
["description"] = "This section is only called with a variable to aggressively AOE instead of focus funnel into one target, the overall dps is slightly higher but the priority dps is much longer",
},
{
["enabled"] = true,
["criteria"] = "( ( buff.arcane_surge.down & buff.siphon_storm.down & debuff.touch_of_the_magi.down & cooldown.evocation.remains > 15 & cooldown.touch_of_the_magi.remains > 10 ) & ( cooldown.arcane_orb.remains & action.arcane_orb.charges = 0 ) & fight_remains > 10 ) || ( prev_gcd.1.arcane_barrage & ( buff.arcane_surge.up || debuff.touch_of_the_magi.up || cooldown.evocation.remains < 20 ) & talent.shifting_shards.enabled )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < 3",
["action"] = "arcane_orb",
},
{
["enabled"] = true,
["criteria"] = "( ( debuff.magis_spark_arcane_blast.up || buff.leydrinker.up ) & ! prev_gcd.1.arcane_blast )",
["action"] = "arcane_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.aether_attunement.up & talent.high_voltage.enabled & buff.clearcasting.up & buff.arcane_charge.stack > 1",
["action"] = "arcane_barrage",
["description"] = "Clearcasting is exclusively spent on Arcane Missiles in AOE and always interrupted after the global cooldown ends except for Aether Attunement",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["chain"] = "1",
["interrupt_if"] = "tick_time>gcd.remains&buff.aether_attunement.down",
["interrupt_immediate"] = "1",
["criteria"] = "buff.clearcasting.up & ( ( talent.high_voltage.enabled & buff.arcane_charge.stack < 4 ) || buff.nether_precision.down )",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 3 || buff.arcane_charge.stack = 2",
["action"] = "presence_of_mind",
["description"] = "Only use Presence of Mind at low charges, use these to get to 4 Charges quicker",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack = 4",
["action"] = "arcane_barrage",
},
{
["enabled"] = true,
["criteria"] = "( talent.reverberate.enabled || buff.arcane_charge.stack < 1 )",
["action"] = "arcane_explosion",
},
{
["action"] = "arcane_blast",
["enabled"] = true,
},
{
["action"] = "arcane_barrage",
["enabled"] = true,
},
},
["spellslinger"] = {
{
["enabled"] = true,
["criteria"] = "( ( ( ( ( action.arcane_orb.charges = talent.charged_orb.enabled ) & cooldown.arcane_orb.remains ) || cooldown.touch_of_the_magi.remains < 23 ) & buff.arcane_surge.down & buff.siphon_storm.down & debuff.touch_of_the_magi.down & cooldown.touch_of_the_magi.remains > ( 12 + 6 * gcd.max ) ) || ( prev_gcd.1.arcane_barrage & talent.shifting_shards.enabled & ( buff.arcane_surge.up || debuff.touch_of_the_magi.up || cooldown.evocation.remains < 20 ) ) ) & fight_remains > 10 & ( buff.arcane_tempo.remains > gcd.max * 2.5 || buff.arcane_tempo.down )",
["action"] = "shifting_power",
["description"] = "With Shifting Shards we can use Shifting Power whenever basically favoring cooldowns slightly, without it though we want to use it outside of cooldowns",
},
{
["enabled"] = true,
["action"] = "cancel_buff",
["use_off_gcd"] = 1,
["criteria"] = "prev_gcd.1.arcane_blast & buff.presence_of_mind.stack = 1",
["description"] = "In single target, use Presence of Mind at the very end of Touch of the Magi, then cancelaura the buff to start the cooldown, wait is to simulate the delay of hitting Presence of Mind after another spell cast",
["buff_name"] = "presence_of_mind",
},
{
["enabled"] = true,
["criteria"] = "debuff.touch_of_the_magi.remains <= gcd.max & buff.nether_precision.up & active_enemies < variable.aoe_target_count & ! talent.unerring_proficiency.enabled",
["action"] = "presence_of_mind",
},
{
["enabled"] = true,
["criteria"] = "debuff.touch_of_the_magi.remains <= gcd.max & buff.unerring_proficiency.stack = 30",
["action"] = "supernova",
},
{
["enabled"] = true,
["criteria"] = "( ( debuff.magis_spark_arcane_blast.up || ( buff.leydrinker.up & buff.arcane_charge.stack = 4 ) ) & ! prev_gcd.1.arcane_blast & buff.nether_precision.up )",
["action"] = "arcane_blast",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.touch_of_the_magi.ready ) || ( buff.arcane_tempo.up & buff.arcane_tempo.remains < gcd.max ) || ( ( buff.aethervision.stack = 2 || buff.intuition.react ) & ( buff.nether_precision.up || buff.clearcasting.down ) ) || ( ( cooldown.arcane_orb.remains < gcd.max ) & buff.arcane_charge.stack = 4 & buff.clearcasting.stack = 0 & buff.nether_precision.down & talent.orb_barrage.enabled & cooldown.touch_of_the_magi.remains > gcd.max * 6 )",
["action"] = "arcane_barrage",
["description"] = "Barrage if you have Touch ready, Tempo is about to expire or you have a Charge refunder with Nether Precision or execute, lastly, if you have an orb charge and don't have Nether Precision or Clearcasting",
},
{
["enabled"] = true,
["criteria"] = "( ( buff.arcane_charge.stack = 4 & buff.nether_precision.up & active_enemies > 1 & ( cooldown.arcane_orb.remains < gcd.max || action.arcane_orb.charges > 0 ) & cooldown.touch_of_the_magi.remains > gcd.max * 6 ) || ( buff.arcane_charge.stack = 4 & talent.reverberate.enabled & active_enemies > 2 ) || ( buff.aether_attunement.up & talent.high_voltage.enabled & buff.clearcasting.react & buff.arcane_charge.stack > 1 & ( ( target.health.pct < 35 & active_enemies = 2 ) || active_enemies > 2 ) ) ) & talent.arcing_cleave.enabled",
["action"] = "arcane_barrage",
["description"] = "AOE conditions for Barrage allow for Orb to enable Barrage when Nether Precision is up, Aether Attunement with High Voltage",
},
{
["enabled"] = true,
["action"] = "arcane_missiles",
["description"] = "Missiles if you dont have Nether Precision and always clip off GCD unless you have Aether Attunement, save missiles before cooldowns unless you have more than 1 stack of Clearcasting",
["criteria"] = "buff.clearcasting.react & buff.nether_precision.down & ( ( cooldown.touch_of_the_magi.remains > gcd.max * 7 & cooldown.arcane_surge.remains > gcd.max * 7 ) || buff.clearcasting.react > 1 || ( cooldown.touch_of_the_magi.remains < gcd.max * 4 & buff.aether_attunement.down ) ) || fight_remains < 5",
["interrupt_if"] = "tick_time>gcd.remains&buff.aether_attunement.down",
["interrupt_immediate"] = "1",
["chain"] = "1",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "buff.arcane_charge.stack < ( ( 5 - active_enemies ) <? 1 )",
["action"] = "arcane_orb",
},
{
["enabled"] = true,
["criteria"] = "( talent.reverberate.enabled || buff.arcane_charge.stack < 1 ) & active_enemies >= 4",
["action"] = "arcane_explosion",
},
{
["action"] = "arcane_blast",
["enabled"] = true,
},
{
["action"] = "arcane_barrage",
["enabled"] = true,
},
},
},
["version"] = 20241125,
["warnings"] = "The import for 'cd_opener' required some automated changes.\nLine 3: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 5: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 6: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 7: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 8: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 11: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 22: Converted 'talent.spellfire_spheres' to 'talent.spellfire_spheres.enabled' (1x).\nLine 23: Converted 'talent.spellfire_spheres' to 'talent.spellfire_spheres.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.arcing_cleave' to 'talent.arcing_cleave.enabled' (1x).\nLine 12: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\nLine 13: Converted 'talent.evocation' to 'talent.evocation.enabled' (1x).\n\nThe import for 'sunfury_aoe' required some automated changes.\nLine 4: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 7: Converted 'talent.arcane_harmony' to 'talent.arcane_harmony.enabled' (1x).\nLine 9: Converted 'talent.reverberate' to 'talent.reverberate.enabled' (1x).\n\nThe import for 'sunfury' required some automated changes.\nLine 4: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 4: Converted 'talent.arcing_cleave' to 'talent.arcing_cleave.enabled' (1x).\nLine 4: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 4: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 4: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 4: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 5: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 7: Converted 'talent.arcane_bombardment' to 'talent.arcane_bombardment.enabled' (1x).\nLine 7: Converted 'talent.enlightened' to 'talent.enlightened.enabled' (1x).\nLine 8: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 10: Converted 'talent.reverberate' to 'talent.reverberate.enabled' (1x).\n\nThe import for 'spellslinger_aoe' required some automated changes.\nLine 2: Converted 'talent.shifting_shards' to 'talent.shifting_shards.enabled' (1x).\nLine 5: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 6: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 9: Converted 'talent.reverberate' to 'talent.reverberate.enabled' (1x).\n\nThe import for 'spellslinger' required some automated changes.\nLine 1: Converted 'talent.charged_orb' to 'talent.charged_orb.enabled' (1x).\nLine 1: Converted 'talent.shifting_shards' to 'talent.shifting_shards.enabled' (1x).\nLine 3: Converted 'talent.unerring_proficiency' to 'talent.unerring_proficiency.enabled' (1x).\nLine 6: Converted 'talent.orb_barrage' to 'talent.orb_barrage.enabled' (1x).\nLine 7: Converted 'talent.reverberate' to 'talent.reverberate.enabled' (1x).\nLine 7: Converted 'talent.high_voltage' to 'talent.high_voltage.enabled' (1x).\nLine 7: Converted 'talent.arcing_cleave' to 'talent.arcing_cleave.enabled' (1x).\nLine 10: Converted 'talent.reverberate' to 'talent.reverberate.enabled' (1x).\n\nImported 7 action lists.\n",
["author"] = "SimulationCraft",
["profile"] = "actions.precombat+=/arcane_intellect\nactions.precombat+=/variable,name=aoe_target_count,op=reset,default=2\nactions.precombat+=/variable,name=aoe_target_count,op=set,value=9,if=!talent.arcing_cleave\n#Hacky way to keep the CD opener rotation intact\nactions.precombat+=/variable,name=opener,op=set,value=(cooldown.touch_of_the_magi.remains<=action.evocation.execution_time)&(cooldown.arcane_surge.remains<=action.evocation.execution_time||action.arcane_surge.time_since<5||cooldown.arcane_surge.remains>15)&(cooldown.evocation.up||action.evocation.time_since<5||cooldown.evocation.remains>15)\nactions.precombat+=/variable,name=touch_ready,op=set,value=variable.opener&(buff.arcane_surge.up||cooldown.arcane_surge.remains>30)||(prev_gcd.1.arcane_surge&buff.arcane_charge.stack<4)\n## actions.precombat+=/variable,name=sunfury_aoe_list,default=0,op=reset\nactions.precombat+=/variable,name=steroid_trinket_equipped,op=set,value=equipped.gladiators_badge||equipped.signet_of_the_priory||equipped.high_speakers_accretion||equipped.spymasters_web||equipped.treacherous_transmitter||equipped.imperfect_ascendancy_serum||equipped.quickwick_candlestick\nactions.precombat+=/variable,name=transmitter_double_on_use,op=set,value=(equipped.gladiators_badge||equipped.signet_of_the_priory||equipped.high_speakers_accretion||equipped.spymasters_web||equipped.imperfect_ascendancy_serum||equipped.quickwick_candlestick)&equipped.treacherous_transmitter\nactions.precombat+=/variable,name=treacherous_transmitter_precombat_cast,value=11\nactions.precombat+=/use_item,name=treacherous_transmitter\nactions.precombat+=/mirror_image\nactions.precombat+=/use_item,name=imperfect_ascendancy_serum\nactions.precombat+=/arcane_blast,if=!talent.evocation\nactions.precombat+=/evocation,if=talent.evocation\n\nactions+=/counterspell\nactions+=/spellsteal\nactions+=/potion,if=!equipped.spymasters_web&(buff.siphon_storm.up||(!talent.evocation&cooldown.arcane_surge.ready))||equipped.spymasters_web&(buff.spymasters_web.up||(fight_remains>330&buff.siphon_storm.up))\nactions+=/lights_judgment,if=(buff.arcane_surge.down&debuff.touch_of_the_magi.down&active_enemies>=2)\nactions+=/berserking,if=(prev_gcd.1.arcane_surge&variable.opener)||((prev_gcd.1.arcane_surge&(fight_remains<80||target.health.pct<35||!talent.arcane_bombardment||buff.spymasters_web.up))||(prev_gcd.1.arcane_surge&!equipped.spymasters_web))\nactions+=/blood_fury,if=(prev_gcd.1.arcane_surge&variable.opener)||((prev_gcd.1.arcane_surge&(fight_remains<80||target.health.pct<35||!talent.arcane_bombardment||buff.spymasters_web.up))||(prev_gcd.1.arcane_surge&!equipped.spymasters_web))\nactions+=/fireblood,if=(prev_gcd.1.arcane_surge&variable.opener)||((prev_gcd.1.arcane_surge&(fight_remains<80||target.health.pct<35||!talent.arcane_bombardment||buff.spymasters_web.up))||(prev_gcd.1.arcane_surge&!equipped.spymasters_web))\nactions+=/ancestral_call,if=(prev_gcd.1.arcane_surge&variable.opener)||((prev_gcd.1.arcane_surge&(fight_remains<80||target.health.pct<35||!talent.arcane_bombardment||buff.spymasters_web.up))||(prev_gcd.1.arcane_surge&!equipped.spymasters_web))\n### Invoke Externals with cooldowns except Autumn which should come just after cooldowns\n##actions+=/invoke_external_buff,name=power_infusion,if=(!equipped.spymasters_web&prev_gcd.1.arcane_surge)||(equipped.spymasters_web&prev_gcd.1.evocation)\n##actions+=/invoke_external_buff,name=blessing_of_summer,if=prev_gcd.1.arcane_surge\n##actions+=/invoke_external_buff,name=blessing_of_autumn,if=cooldown.touch_of_the_magi.remains>5\n# Trinket specific use cases vary, default is just with cooldowns\nactions+=/use_items,if=prev_gcd.1.arcane_surge||prev_gcd.1.evocation||fight_remains<20||!variable.steroid_trinket_equipped\nactions+=/use_item,name=treacherous_transmitter,if=buff.spymasters_report.stack<40\nactions+=/use_item,name=spymasters_web,if=((prev_gcd.1.arcane_surge||prev_gcd.1.evocation)&(fight_remains<80||target.health.pct<35||!talent.arcane_bombardment||(buff.spymasters_report.stack=40&fight_remains>240))||fight_remains<20)\nactions+=/use_item,name=high_
},
["Arms"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241105,
["author"] = "SimulationCraft",
["desc"] = "2024-11-05: SimC update (Execute/Juggernaut)\n\n2024-10-21, 10-30: 11.0.5 / SimC update\n\n2024-09-03, 09-05, 09-08: SimC update\n\n2024-08-25: Updates based on Icy-Veins\n\n2024-08-15: Sim update\n\n2024-07-23: The War Within",
["lists"] = {
["slayer_st"] = {
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max",
["action"] = "rend",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains <= 5 || debuff.colossus_smash.up",
["action"] = "avatar",
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "debuff.marked_for_execution.stack = 3 || buff.juggernaut.remains <= gcd.max * 3 & talent.juggernaut.enabled || buff.sudden_death.stack = 2 || buff.sudden_death.remains <= gcd.max * 3",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.colossus_smash.remains >= gcd.max * 4 || cooldown.warbreaker.remains >= gcd.max * 4 ) || debuff.colossus_smash.remains >= gcd.max * 4",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "buff.opportunist.up || charges = 2 & talent.fierce_followthrough.enabled",
["action"] = "overpower",
},
{
["action"] = "mortal_strike",
["enabled"] = true,
},
{
["action"] = "skullsplitter",
["enabled"] = true,
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max * 5",
["action"] = "rend",
},
{
["action"] = "cleave",
["enabled"] = true,
},
{
["action"] = "slam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["colossus_st"] = {
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max",
["action"] = "rend",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains <= gcd.max",
["action"] = "ravager",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1",
["action"] = "avatar",
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["action"] = "mortal_strike",
["enabled"] = true,
},
{
["action"] = "demolish",
["enabled"] = true,
},
{
["action"] = "skullsplitter",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "charges = 2",
["action"] = "overpower",
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max * 5",
["action"] = "rend",
},
{
["action"] = "slam",
["enabled"] = true,
},
},
["colossus_aoe"] = {
{
["enabled"] = true,
["criteria"] = "! dot.deep_wounds.remains",
["action"] = "cleave",
},
{
["enabled"] = true,
["criteria"] = "! dot.rend.remains",
["action"] = "thunder_clap",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "avatar",
["enabled"] = true,
},
{
["action"] = "sweeping_strikes",
["enabled"] = true,
},
{
["action"] = "ravager",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "cleave",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.unhinged.enabled || talent.merciless_bonegrinder.enabled",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "buff.colossal_might.stack >= 6 & talent.dreadnaught.enabled || buff.colossal_might.stack = 10 & talent.strength_of_arms.enabled",
["action"] = "demolish",
},
{
["enabled"] = true,
["criteria"] = "talent.dreadnaught.enabled",
["action"] = "overpower",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "skullsplitter",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "overpower",
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
{
["action"] = "mortal_strike",
["enabled"] = true,
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["action"] = "skullsplitter",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "bladestorm",
["enabled"] = true,
},
{
["action"] = "whirlwind",
["enabled"] = true,
},
},
["slayer_aoe"] = {
{
["enabled"] = true,
["criteria"] = "! dot.rend.remains",
["action"] = "thunder_clap",
},
{
["action"] = "sweeping_strikes",
["enabled"] = true,
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "avatar",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "cleave",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.sudden_death.up & buff.imminent_demise.stack < 3",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.dreadnaught.enabled & buff.sweeping_strikes.up",
["action"] = "overpower",
},
{
["action"] = "bladestorm",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "skullsplitter",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up & debuff.executioners_precision.stack < 2",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.strength_of_arms.enabled & buff.sweeping_strikes.up",
["action"] = "overpower",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up & debuff.executioners_precision.stack = 2",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "debuff.marked_for_execution.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "skullsplitter",
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "debuff.executioners_precision.stack = 2",
["action"] = "mortal_strike",
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "whirlwind",
["enabled"] = true,
},
{
["action"] = "skullsplitter",
["enabled"] = true,
},
{
["action"] = "slam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["colossus_execute"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies = 2",
["action"] = "sweeping_strikes",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max & ! talent.bloodletting.enabled",
["action"] = "rend",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains <= gcd.max",
["action"] = "ravager",
},
{
["action"] = "avatar",
["enabled"] = true,
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "rage < 85",
["action"] = "skullsplitter",
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "demolish",
},
{
["enabled"] = true,
["criteria"] = "debuff.executioners_precision.stack = 2 & ! dot.ravager.remains & ( buff.lethal_blows.stack = 2 || ! set_bonus.tww1_4pc & ! talent.battlelord.enabled ) || ! talent.executioners_precision.enabled",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "talent.battlelord.enabled & debuff.executioners_precision.stack = 2",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "talent.battlelord.enabled & charges = 2 & rage < 90",
["action"] = "overpower",
},
{
["enabled"] = true,
["criteria"] = "rage >= 40 & talent.executioners_precision.enabled",
["action"] = "execute",
},
{
["action"] = "skullsplitter",
["enabled"] = true,
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["action"] = "bladestorm",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "mortal_strike",
["enabled"] = true,
},
},
["slayer_execute"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies = 2",
["action"] = "sweeping_strikes",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max & ! talent.bloodletting.enabled",
["action"] = "rend",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.remains <= 5 || debuff.colossus_smash.up",
["action"] = "avatar",
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.juggernaut.remains <= gcd.max & talent.juggernaut.enabled",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "debuff.executioners_precision.stack = 2 & debuff.colossus_smash.remains > 4 || debuff.executioners_precision.stack = 2 & cooldown.colossus_smash.remains > 15 || ! talent.executioners_precision.enabled",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "rage < 85",
["action"] = "skullsplitter",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains < 2 || ( debuff.executioners_precision.stack = 2 & buff.lethal_blows.stack = 2 )",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.opportunist.up & rage < 80 & buff.martial_prowess.stack < 2 || rage < 40 & buff.martial_prowess.stack < 2 & talent.fierce_followthrough.enabled",
["action"] = "overpower",
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.executioners_precision.enabled",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "time <= 0.5 || movement.distance > 8",
["action"] = "charge",
},
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 & debuff.colossus_smash.remains > 8 || boss & fight_remains < 25",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "target.debuff.casting.react",
["action"] = "pummel",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "variables",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["criteria"] = "cooldown.mortal_strike.remains > 1.5 & rage < 50",
["action"] = "arcane_torrent",
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.down & cooldown.mortal_strike.remains",
["action"] = "bag_of_tricks",
},
{
["enabled"] = true,
["criteria"] = "fight_remains > 180 & buff.avatar.up || boss & target.time_to_die < 180 & variable.execute_phase & buff.avatar.up || boss & fight_remains < 20",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.demolish.enabled & active_enemies > 2",
["list_name"] = "colossus_aoe",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["cycle_targets"] = 1,
["strict"] = 1,
["criteria"] = "talent.demolish.enabled & variable.execute_phase",
["list_name"] = "colossus_execute",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.demolish.enabled & active_enemies = 2 & ! variable.execute_phase",
["list_name"] = "colossus_sweep",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.demolish.enabled",
["list_name"] = "colossus_st",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.demolish.enabled & active_enemies > 2",
["list_name"] = "slayer_aoe",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["cycle_targets"] = 1,
["strict"] = 1,
["criteria"] = "! talent.demolish.enabled & variable.execute_phase",
["list_name"] = "slayer_execute",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.demolish.enabled & active_enemies = 2 & ! variable.execute_phase",
["list_name"] = "slayer_sweep",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.demolish.enabled",
["list_name"] = "slayer_st",
},
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
},
{
["toggle"] = "on",
["action"] = "battle_stance",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.treacherous_transmitter",
["var_name"] = "trinket_1_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.treacherous_transmitter",
["var_name"] = "trinket_2_exclude",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Evaluates a trinkets cooldown, divided by avatar. If it's value has no remainder return 1, else return 0.5.",
["var_name"] = "trinket_1_sync",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0.5",
["criteria"] = "trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration % cooldown.avatar.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration % cooldown.avatar.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_stat.any_dps & ! variable.trinket_1_exclude )",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_stat.any_dps & ! variable.trinket_2_exclude )",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.algethar_puzzle_box",
["var_name"] = "trinket_1_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.algethar_puzzle_box",
["var_name"] = "trinket_2_manual",
},
},
["variables"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1",
["var_name"] = "st_planning",
["description"] = "Variables",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies > 1",
["var_name"] = "adds_remain",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.massacre.enabled & target.health.pct < 35 ) || target.health.pct < 20",
["var_name"] = "execute_phase",
},
},
["slayer_sweep"] = {
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "sweeping_strikes",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max",
["action"] = "rend",
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["action"] = "avatar",
["enabled"] = true,
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "skullsplitter",
},
{
["enabled"] = true,
["criteria"] = "debuff.marked_for_execution.stack = 3",
["action"] = "execute",
},
{
["action"] = "bladestorm",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.dreadnaught.enabled || buff.opportunist.up",
["action"] = "overpower",
},
{
["action"] = "mortal_strike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled",
["action"] = "cleave",
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 8 & buff.sweeping_strikes.down",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 5",
["action"] = "rend",
},
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled",
["action"] = "whirlwind",
},
{
["action"] = "slam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["trinkets"] = {
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
["criteria"] = "( variable.adds_remain || variable.st_planning ) & cooldown.avatar.remains < 3",
["description"] = "Trinkets",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.",
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! buff.avatar.up & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & buff.avatar.up & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains & boss",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! buff.avatar.up & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & buff.avatar.up & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains & boss",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.",
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t1.cast_time > 0 & ! buff.avatar.up || ! trinket.t1.cast_time > 0 ) & ! variable.trinket_1_manual & ( ! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) || ( trinket.t1.cast_time > 0 & ! buff.avatar.up || ! trinket.t1.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t2.cast_time > 0 & ! buff.avatar.up || ! trinket.t2.cast_time > 0 ) & ! variable.trinket_2_manual & ( ! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs ) || ( trinket.t2.cast_time > 0 & ! buff.avatar.up || ! trinket.t2.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "! equipped.fyralath_the_dreamrender & ( ! variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( ! variable.trinket_2_buffs || trinket.t2.cooldown.remains )",
["action"] = "main_hand",
["slot"] = "main_hand",
},
},
["colossus_sweep"] = {
{
["action"] = "sweeping_strikes",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= gcd.max & buff.sweeping_strikes.up",
["action"] = "rend",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.colossus_smash.ready",
["action"] = "ravager",
},
{
["action"] = "avatar",
["enabled"] = true,
},
{
["action"] = "colossus_smash",
["enabled"] = true,
},
{
["action"] = "warbreaker",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "mortal_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "skullsplitter",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "overpower",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up & debuff.colossus_smash.up",
["action"] = "demolish",
},
{
["enabled"] = true,
["criteria"] = "buff.sweeping_strikes.up",
["action"] = "execute",
},
{
["action"] = "overpower",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "mortal_strike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "debuff.colossus_smash.up",
["action"] = "demolish",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 8 & buff.sweeping_strikes.down",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled",
["action"] = "cleave",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 5",
["action"] = "rend",
},
{
["enabled"] = true,
["criteria"] = "talent.fervor_of_battle.enabled",
["action"] = "whirlwind",
},
{
["action"] = "slam",
["enabled"] = true,
},
},
},
["version"] = 20241105,
["warnings"] = "The import for 'slayer_st' required some automated changes.\nLine 7: Converted 'talent.juggernaut' to 'talent.juggernaut.enabled' (1x).\nLine 9: Converted 'talent.fierce_followthrough' to 'talent.fierce_followthrough.enabled' (1x).\n\nThe import for 'colossus_aoe' required some automated changes.\nLine 11: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 11: Converted 'talent.merciless_bonegrinder' to 'talent.merciless_bonegrinder.enabled' (1x).\nLine 12: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 12: Converted 'talent.strength_of_arms' to 'talent.strength_of_arms.enabled' (1x).\nLine 13: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\n\nThe import for 'slayer_aoe' required some automated changes.\nLine 10: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 14: Converted 'talent.strength_of_arms' to 'talent.strength_of_arms.enabled' (1x).\n\nThe import for 'colossus_execute' required some automated changes.\nLine 2: Converted 'talent.bloodletting' to 'talent.bloodletting.enabled' (1x).\nLine 11: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 11: Converted 'talent.executioners_precision' to 'talent.executioners_precision.enabled' (1x).\nLine 12: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 13: Converted 'talent.battlelord' to 'talent.battlelord.enabled' (1x).\nLine 14: Converted 'talent.executioners_precision' to 'talent.executioners_precision.enabled' (1x).\n\nThe import for 'slayer_execute' required some automated changes.\nLine 2: Converted 'talent.bloodletting' to 'talent.bloodletting.enabled' (1x).\nLine 8: Converted 'talent.juggernaut' to 'talent.juggernaut.enabled' (1x).\nLine 9: Converted 'talent.executioners_precision' to 'talent.executioners_precision.enabled' (1x).\nLine 12: Converted 'talent.fierce_followthrough' to 'talent.fierce_followthrough.enabled' (1x).\nLine 15: Converted 'talent.executioners_precision' to 'talent.executioners_precision.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 13: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 14: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 15: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 16: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 17: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 18: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 19: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\nLine 20: Converted 'talent.demolish' to 'talent.demolish.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 4: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted operations in 'trinket.t1.has_use_buff&(trinket.t1.cooldown.duration%%cooldown.avatar.duration=0)' to 'trinket.t1.has_use_buff&(trinket.t1.cooldown.duration%cooldown.avatar.duration=0)'.\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 6: Converted operations in 'trinket.t2.has_use_buff&(trinket.t2.cooldown.duration%%cooldown.avatar.duration=0)' to 'trinket.t2.has_use_buff&(trinket.t2.cooldown.duration%cooldown.avatar.duration=0)'.\nLine 7: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 8: Converted 't
["spec"] = 71,
["profile"] = "actions.precombat+=/battle_shout\nactions.precombat+=/battle_stance,toggle=on\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.treacherous_transmitter\n# Evaluates a trinkets cooldown, divided by avatar. If it's value has no remainder return 1, else return 0.5.\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(trinket.1.cooldown.duration%%cooldown.avatar.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(trinket.2.cooldown.duration%%cooldown.avatar.duration=0)\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_stat.any_dps&!variable.trinket_1_exclude)\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_stat.any_dps&!variable.trinket_2_exclude)\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box\n\nactions+=/charge,if=time<=0.5||movement.distance>8\nactions+=/potion,if=gcd.remains=0&debuff.colossus_smash.remains>8||boss&fight_remains<25\nactions+=/pummel,if=target.debuff.casting.react\nactions+=/call_action_list,name=variables\nactions+=/call_action_list,name=trinkets\nactions+=/arcane_torrent,if=cooldown.mortal_strike.remains>1.5&rage<50\nactions+=/lights_judgment,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains\nactions+=/bag_of_tricks,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains\nactions+=/berserking,if=fight_remains>180&buff.avatar.up||boss&target.time_to_die<180&variable.execute_phase&buff.avatar.up||boss&fight_remains<20\nactions+=/blood_fury,if=debuff.colossus_smash.up\nactions+=/fireblood,if=debuff.colossus_smash.up\nactions+=/ancestral_call,if=debuff.colossus_smash.up\n## actions+=/invoke_external_buff,name=power_infusion,if=debuff.colossus_smash.up&fight_remains>=135||variable.execute_phase&buff.avatar.up||fight_remains<=25\nactions+=/run_action_list,name=colossus_aoe,strict=1,if=talent.demolish&active_enemies>2\nactions+=/run_action_list,name=colossus_execute,cycle_targets=1,strict=1,if=talent.demolish&variable.execute_phase\nactions+=/run_action_list,name=colossus_sweep,strict=1,if=talent.demolish&active_enemies=2&!variable.execute_phase\nactions+=/run_action_list,name=colossus_st,strict=1,if=talent.demolish\nactions+=/run_action_list,name=slayer_aoe,strict=1,if=!talent.demolish&active_enemies>2\nactions+=/run_action_list,name=slayer_execute,cycle_targets=1,strict=1,if=!talent.demolish&variable.execute_phase\nactions+=/run_action_list,name=slayer_sweep,strict=1,if=!talent.demolish&active_enemies=2&!variable.execute_phase\nactions+=/run_action_list,name=slayer_st,strict=1,if=!talent.demolish\n\nactions.colossus_st+=/rend,if=dot.rend.remains<=gcd\nactions.colossus_st+=/thunderous_roar\nactions.colossus_st+=/champions_spear\nactions.colossus_st+=/ravager,if=cooldown.colossus_smash.remains<=gcd\nactions.colossus_st+=/avatar,if=active_enemies=1\nactions.colossus_st+=/colossus_smash\nactions.colossus_st+=/warbreaker\nactions.colossus_st+=/mortal_strike\nactions.colossus_st+=/demolish\nactions.colossus_st+=/skullsplitter\nactions.colossus_st+=/overpower,if=charges=2\nactions.colossus_st+=/execute\nactions.colossus_st+=/overpower\nactions.colossus_st+=/rend,if=dot.rend.remains<=gcd*5\nactions.colossus_st+=/slam\n\nactions.colossus_execute+=/sweeping_strikes,if=active_enemies=2\nactions.colossus
},
["Protection Warrior"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20240926,
["spec"] = 73,
["desc"] = "2024-09-26: Spell Block added\n\n2024-09-24: Mitigations and Impeding Victory Fixed\n\n2024-08-15, 09-09: SimC priority updates\n\n2024-07-24: The War Within",
["profile"] = "actions.precombat+=/battle_stance,toggle=on\nactions.precombat+=/battle_shout\n\nactions+=/pummel\nactions+=/charge,if=time=0||movement.distance>8\nactions+=/use_items\nactions+=/avatar,if=buff.thunder_blast.down||buff.thunder_blast.stack<=2\nactions+=/spell_block,use_off_gcd=1,if=tanking&incoming_magic_damage_5s>spell_block_damage_taken&health.pct<=spell_block_health_pct&!(buff.spell_reflection_defense.up)\nactions+=/shield_wall,use_off_gcd=1,if=tanking&incoming_damage_5s>shield_wall_damage_taken&health.pct<=shield_wall_health_pct&!(buff.shield_wall.up||buff.last_stand.up||buff.rallying_cry.up||buff.potion.up)\nactions+=/blood_fury\nactions+=/berserking\nactions+=/arcane_torrent\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/potion,if=buff.avatar.up||buff.avatar.up&target.health.pct<=20\nactions+=/ignore_pain,if=target.health.pct>=20&(rage.deficit<=15&cooldown.shield_slam.ready||rage.deficit<=40&cooldown.shield_charge.ready&talent.champions_bulwark.enabled||rage.deficit<=20&cooldown.shield_charge.ready||rage.deficit<=30&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled||rage.deficit<=20&cooldown.avatar.ready||rage.deficit<=45&cooldown.demoralizing_shout.ready&talent.booming_voice.enabled&buff.last_stand.up&talent.unnerving_focus.enabled||rage.deficit<=30&cooldown.avatar.ready&buff.last_stand.up&talent.unnerving_focus.enabled||rage.deficit<=20||rage.deficit<=40&cooldown.shield_slam.ready&buff.violent_outburst.up&talent.heavy_repercussions.enabled&talent.impenetrable_wall.enabled||rage.deficit<=55&cooldown.shield_slam.ready&buff.violent_outburst.up&buff.last_stand.up&talent.unnerving_focus.enabled&talent.heavy_repercussions.enabled&talent.impenetrable_wall.enabled||rage.deficit<=17&cooldown.shield_slam.ready&talent.heavy_repercussions.enabled||rage.deficit<=18&cooldown.shield_slam.ready&talent.impenetrable_wall.enabled)||(rage>=70||buff.seeing_red.stack=7&rage>=35)&cooldown.shield_slam.remains<=1&buff.shield_block.remains>=4&set_bonus.tier31_2pc,use_off_gcd=1\nactions+=/last_stand,use_off_gcd=1,if=tanking&incoming_damage_5s>last_stand_damage_taken&health.pct<=last_stand_health_pct&!(buff.shield_wall.up||buff.last_stand.up||buff.rallying_cry.up||buff.potion.up)\nactions+=/rallying_cry,if=tanking&incoming_damage_5s>rallying_cry_damage_taken&health.pct<=rallying_cry_health_pct&!(buff.shield_wall.up||buff.last_stand.up||buff.rallying_cry.up||buff.potion.up)\nactions+=/victory_rush,if=health.pct<victory_rush_health_pct&talent.impending_victory.disabled\nactions+=/impending_victory,if=health.pct<victory_rush_health_pct&talent.impending_victory.enabled\nactions+=/ravager\nactions+=/demoralizing_shout,if=talent.booming_voice.enabled\nactions+=/champions_spear\nactions+=/thunder_blast,if=spell_targets.thunder_blast>=2&buff.thunder_blast.stack=2\nactions+=/demolish,if=buff.colossal_might.stack>=3\nactions+=/thunderous_roar\nactions+=/shield_charge\nactions+=/shield_block,if=buff.shield_block.remains<=10\nactions+=/run_action_list,name=aoe,strict=1,if=spell_targets.thunder_clap>=3\nactions+=/call_action_list,name=generic\n\nactions.aoe+=/thunder_blast,if=dot.rend.remains<=1\nactions.aoe+=/thunder_clap,if=dot.rend.remains<=1\nactions.aoe+=/thunder_blast,if=buff.violent_outburst.up&spell_targets.thunderclap>=2&buff.avatar.up&talent.unstoppable_force.enabled\nactions.aoe+=/thunder_clap,if=buff.violent_outburst.up&spell_targets.thunderclap>=4&buff.avatar.up&talent.unstoppable_force.enabled&talent.crashing_thunder.enabled||buff.violent_outburst.up&spell_targets.thunderclap>6&buff.avatar.up&talent.unstoppable_force.enabled\nactions.aoe+=/revenge,if=rage>=70&talent.seismic_reverberation.enabled&spell_targets.revenge>=3\nactions.aoe+=/shield_slam,if=rage<=60||buff.violent_outburst.up&spell_targets.thunderclap<=4&talent.crashing_thunder.enabled\nactions.aoe+=/thunder_blast\nactions.aoe+=/thunder_clap\nactions.aoe+=/revenge,if=rage>=30||rage>=40&talent.barbaric_training.enabled\n\nactions.generic+=/thunder_blast,if=(buff.thunder_blast.stack=2&buff.burs
["version"] = 20240926,
["warnings"] = "Imported 4 action lists.\n",
["author"] = "SimulationCraft",
["basedOn"] = "Protection Warrior",
["lists"] = {
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 1",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 1",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "buff.violent_outburst.up & spell_targets.thunderclap >= 2 & buff.avatar.up & talent.unstoppable_force.enabled",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.violent_outburst.up & spell_targets.thunderclap >= 4 & buff.avatar.up & talent.unstoppable_force.enabled & talent.crashing_thunder.enabled || buff.violent_outburst.up & spell_targets.thunderclap > 6 & buff.avatar.up & talent.unstoppable_force.enabled",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "rage >= 70 & talent.seismic_reverberation.enabled & spell_targets.revenge >= 3",
["action"] = "revenge",
},
{
["enabled"] = true,
["criteria"] = "rage <= 60 || buff.violent_outburst.up & spell_targets.thunderclap <= 4 & talent.crashing_thunder.enabled",
["action"] = "shield_slam",
},
{
["action"] = "thunder_blast",
["enabled"] = true,
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "rage >= 30 || rage >= 40 & talent.barbaric_training.enabled",
["action"] = "revenge",
},
},
["generic"] = {
{
["enabled"] = true,
["criteria"] = "( buff.thunder_blast.stack = 2 & buff.burst_of_power.stack <= 1 & buff.avatar.up & talent.unstoppable_force.enabled )",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( buff.burst_of_power.stack = 2 & buff.thunder_blast.stack <= 1 || buff.violent_outburst.up ) || rage <= 70 & talent.demolish.enabled",
["action"] = "shield_slam",
},
{
["enabled"] = true,
["criteria"] = "rage >= 70 || ( rage >= 40 & cooldown.shield_slam.remains & talent.demolish.enabled || rage >= 50 & cooldown.shield_slam.remains ) || buff.sudden_death.up & talent.sudden_death.enabled",
["action"] = "execute",
},
{
["action"] = "shield_slam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 2 & buff.violent_outburst.down",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "dot.rend.remains <= 2 & buff.violent_outburst.down",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap > 1 || cooldown.shield_slam.remains & ! buff.violent_outburst.up )",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap > 1 || cooldown.shield_slam.remains & ! buff.violent_outburst.up )",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "( rage >= 80 & target.health.pct > 20 || buff.revenge.up & target.health.pct <= 20 & rage <= 18 & cooldown.shield_slam.remains || buff.revenge.up & target.health.pct > 20 ) || ( rage >= 80 & target.health.pct > 35 || buff.revenge.up & target.health.pct <= 35 & rage <= 18 & cooldown.shield_slam.remains || buff.revenge.up & target.health.pct > 35 ) & talent.massacre.enabled",
["action"] = "revenge",
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "revenge",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap >= 1 || cooldown.shield_slam.remains & buff.violent_outburst.up )",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.thunder_clap >= 1 || cooldown.shield_slam.remains & buff.violent_outburst.up )",
["action"] = "thunder_clap",
},
{
["action"] = "devastate",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "pummel",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "time = 0 || movement.distance > 8",
["action"] = "charge",
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.thunder_blast.down || buff.thunder_blast.stack <= 2",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_magic_damage_5s > spell_block_damage_taken & health.pct <= spell_block_health_pct & ! ( buff.spell_reflection_defense.up )",
["action"] = "spell_block",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > shield_wall_damage_taken & health.pct <= shield_wall_health_pct & ! ( buff.shield_wall.up || buff.last_stand.up || buff.rallying_cry.up || buff.potion.up )",
["action"] = "shield_wall",
["use_off_gcd"] = 1,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "berserking",
["enabled"] = true,
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.avatar.up || buff.avatar.up & target.health.pct <= 20",
["action"] = "potion",
},
{
["enabled"] = true,
["action"] = "ignore_pain",
["criteria"] = "target.health.pct >= 20 & ( rage.deficit <= 15 & cooldown.shield_slam.ready || rage.deficit <= 40 & cooldown.shield_charge.ready & talent.champions_bulwark.enabled || rage.deficit <= 20 & cooldown.shield_charge.ready || rage.deficit <= 30 & cooldown.demoralizing_shout.ready & talent.booming_voice.enabled || rage.deficit <= 20 & cooldown.avatar.ready || rage.deficit <= 45 & cooldown.demoralizing_shout.ready & talent.booming_voice.enabled & buff.last_stand.up & talent.unnerving_focus.enabled || rage.deficit <= 30 & cooldown.avatar.ready & buff.last_stand.up & talent.unnerving_focus.enabled || rage.deficit <= 20 || rage.deficit <= 40 & cooldown.shield_slam.ready & buff.violent_outburst.up & talent.heavy_repercussions.enabled & talent.impenetrable_wall.enabled || rage.deficit <= 55 & cooldown.shield_slam.ready & buff.violent_outburst.up & buff.last_stand.up & talent.unnerving_focus.enabled & talent.heavy_repercussions.enabled & talent.impenetrable_wall.enabled || rage.deficit <= 17 & cooldown.shield_slam.ready & talent.heavy_repercussions.enabled || rage.deficit <= 18 & cooldown.shield_slam.ready & talent.impenetrable_wall.enabled ) || ( rage >= 70 || buff.seeing_red.stack = 7 & rage >= 35 ) & cooldown.shield_slam.remains <= 1 & buff.shield_block.remains >= 4 & set_bonus.tier31_2pc",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > last_stand_damage_taken & health.pct <= last_stand_health_pct & ! ( buff.shield_wall.up || buff.last_stand.up || buff.rallying_cry.up || buff.potion.up )",
["action"] = "last_stand",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > rallying_cry_damage_taken & health.pct <= rallying_cry_health_pct & ! ( buff.shield_wall.up || buff.last_stand.up || buff.rallying_cry.up || buff.potion.up )",
["action"] = "rallying_cry",
},
{
["enabled"] = true,
["criteria"] = "health.pct < victory_rush_health_pct & talent.impending_victory.disabled",
["action"] = "victory_rush",
},
{
["enabled"] = true,
["criteria"] = "health.pct < victory_rush_health_pct & talent.impending_victory.enabled",
["action"] = "impending_victory",
},
{
["action"] = "ravager",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.booming_voice.enabled",
["action"] = "demoralizing_shout",
},
{
["action"] = "champions_spear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "spell_targets.thunder_blast >= 2 & buff.thunder_blast.stack = 2",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.colossal_might.stack >= 3",
["action"] = "demolish",
},
{
["action"] = "thunderous_roar",
["enabled"] = true,
},
{
["action"] = "shield_charge",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.shield_block.remains <= 10",
["action"] = "shield_block",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.thunder_clap >= 3",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "generic",
},
},
["precombat"] = {
{
["toggle"] = "on",
["action"] = "battle_stance",
["enabled"] = true,
},
{
["action"] = "battle_shout",
["enabled"] = true,
},
},
},
},
["Retribution"] = {
["builtIn"] = true,
["date"] = 20241029.1,
["spec"] = 70,
["desc"] = "2024-10-29: Efficiency of Finishers (fixed)\n\n2024-09-28: SimC update; HoL fix?\n\n2024-09-10, 09-22: SimC update\n\n2024-08-28: Fix HoL and update from SimC\n\n2024-08-24: Fix Hammer of Light\n\n2024-07-23: The War Within",
["profile"] = "actions.precombat+=/shield_of_vengeance\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_buff.strength||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_buff.strength||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.1.cooldown.duration=0||trinket.1.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.2.cooldown.duration=0||trinket.2.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.2.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\n\nactions+=/rebuke\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=generators\n\nactions.cooldowns+=/potion,if=buff.avenging_wrath.up||buff.crusade.up||debuff.execution_sentence.up||boss&fight_remains<30\n## actions.cooldowns+=/invoke_external_buff,name=power_infusion,if=buff.avenging_wrath.up||buff.crusade.up||debuff.execution_sentence.up\nactions.cooldowns+=/lights_judgment,if=spell_targets.lights_judgment>=2||!raid_event.adds.exists||raid_event.adds.in>75||raid_event.adds.up\nactions.cooldowns+=/fireblood,if=buff.avenging_wrath.up||buff.crusade.up&buff.crusade.stack=10||debuff.execution_sentence.up\nactions.cooldowns+=/use_item,slot=trinket1,if=((buff.avenging_wrath.up&cooldown.avenging_wrath.remains>40||buff.crusade.up&buff.crusade.stack=10)&!talent.radiant_glory||talent.radiant_glory&(!talent.execution_sentence&cooldown.wake_of_ashes.remains=0||debuff.execution_sentence.up))&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.proc.any_dps.duration>=fight_remains&boss\nactions.cooldowns+=/use_item,slot=trinket2,if=((buff.avenging_wrath.up&cooldown.avenging_wrath.remains>40||buff.crusade.up&buff.crusade.stack=10)&!talent.radiant_glory||talent.radiant_glory&(!talent.execution_sentence&cooldown.wake_of_ashes.remains=0||debuff.execution_sentence.up))&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.proc.any_dps.duration>=fight_remains&boss\nactions.cooldowns+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs||!buff.crusade.up&cooldown.crusade.remains>20||!buff.avenging_wrath.up&cooldown.avenging_wrath.remains>20)\nactions.cooldowns+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs||!buff.crusade.up&cooldown.crusade.remains>20||!buff.avenging_wrath.up&cooldown.avenging_wrath.remains>20)\nactions.cooldowns+=/shield_of_vengeance,if=fight_remains>15&(!talent.execution_sentence||!debuff.execution_sentence.up)\nactions.cooldowns+=/execution_sentence,if=(!buff.crusade.up&cooldown.crusade.remains>15||buff.crusade.stack=10||cooldown.avenging_wrath.remains<0.75||cooldown.avenging_wrath.remains>15||talent.radiant_glory)&(holy_power>=4&time<5||holy_power>=3&time>5||holy_power>=2&(talent.divine_auxiliary||talent.radiant_glory))&(target.time_to_die>8&!talent.executioners_will||target.time_to_die>12)&cooldown.wake_of_ashes.remains<gcd\nactions.c
["version"] = 20241029.1,
["warnings"] = "The import for 'precombat' required some automated changes.\nLine 2: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 2: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 2: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 2: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 2: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 2: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 3: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 3: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 3: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 3: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 3: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted operations in 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.t1.cooldown.duration=0||trinket.t1.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.t1.cooldown.duration=0)' to 'variable.trinket_1_buffs&(trinket.t1.cooldown.duration%cooldown.crusade.duration=0||cooldown.crusade.duration%trinket.t1.cooldown.duration=0||trinket.t1.cooldown.duration%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%trinket.t1.cooldown.duration=0)'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted operations in 'variable.trinket_2_buffs&(trinket.t2.cooldown.duration%%cooldown.crusade.duration=0||cooldown.crusade.duration%%trinket.t2.cooldown.duration=0||trinket.t2.cooldown.duration%%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%%trinket.t2.cooldown.duration=0)' to 'variable.trinket_2_buffs&(trink
["author"] = "SimC",
["lists"] = {
["default"] = {
{
["action"] = "rebuke",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "generators",
},
},
["precombat"] = {
{
["action"] = "shield_of_vengeance",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.crusade.duration = 0 || cooldown.crusade.duration % trinket.t1.cooldown.duration = 0 || trinket.t1.cooldown.duration % cooldown.avenging_wrath.duration = 0 || cooldown.avenging_wrath.duration % trinket.t1.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.crusade.duration = 0 || cooldown.crusade.duration % trinket.t2.cooldown.duration = 0 || trinket.t2.cooldown.duration % cooldown.avenging_wrath.duration = 0 || cooldown.avenging_wrath.duration % trinket.t2.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
},
},
["generators"] = {
{
["enabled"] = true,
["criteria"] = "buff.hammer_of_light_free.up",
["action"] = "hammer_of_light",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "false",
["var_name"] = "finished",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "holy_power = 5 || holy_power = 4 & buff.divine_resonance.up",
["list_name"] = "finishers",
},
{
["enabled"] = true,
["criteria"] = "buff.templar_strikes.remains < gcd.max * 2",
["action"] = "templar_slash",
},
{
["enabled"] = true,
["criteria"] = "! dot.expurgation.ticking & talent.holy_flames.enabled",
["action"] = "blade_of_justice",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.lights_guidance.enabled || holy_power >= 2 & talent.lights_guidance.enabled ) & ( cooldown.avenging_wrath.remains > 6 || cooldown.crusade.remains > 6 || talent.radiant_glory.enabled ) & ( ! talent.execution_sentence.enabled || cooldown.execution_sentence.remains > 4 || target.time_to_die < 8 ) & ( ! raid_event.adds.exists || raid_event.adds.in > 10 || raid_event.adds.up )",
["action"] = "wake_of_ashes",
},
{
["enabled"] = true,
["criteria"] = "holy_power <= 2 & ( ! raid_event.adds.exists || raid_event.adds.in > 10 || raid_event.adds.up ) & ( cooldown.avenging_wrath.remains > 15 || cooldown.crusade.remains > 15 || talent.radiant_glory.enabled || fight_remains < 8 )",
["action"] = "divine_toll",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "holy_power >= 3 & buff.crusade.up & buff.crusade.stack < 10 & ! variable.finished",
["list_name"] = "finishers",
},
{
["enabled"] = true,
["criteria"] = "buff.templar_strikes.remains < gcd.max & spell_targets.divine_storm >= 2",
["action"] = "templar_slash",
},
{
["enabled"] = true,
["criteria"] = "( holy_power <= 3 || ! talent.holy_blade.enabled ) & ( spell_targets.divine_storm >= 2 & talent.blade_of_vengeance.enabled )",
["action"] = "blade_of_justice",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.divine_storm < 2 || ! talent.blessed_champion.enabled ) & ( holy_power <= 3 || target.health.pct > 20 || ! talent.vanguards_momentum.enabled ) & ( target.health.pct < 35 & talent.vengeful_wrath.enabled || buff.blessing_of_anshe.up )",
["action"] = "hammer_of_wrath",
},
{
["action"] = "templar_strike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 || ! talent.boundless_judgment.enabled",
["action"] = "judgment",
},
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 || ! talent.holy_blade.enabled",
["action"] = "blade_of_justice",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.divine_storm < 2 || ! talent.blessed_champion.enabled ) & ( holy_power <= 3 || target.health.pct > 20 || ! talent.vanguards_momentum.enabled )",
["action"] = "hammer_of_wrath",
},
{
["action"] = "templar_slash",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( target.health.pct <= 20 || buff.avenging_wrath.up || buff.crusade.up || buff.empyrean_power.up ) & ! variable.finished",
["list_name"] = "finishers",
},
{
["enabled"] = true,
["criteria"] = "cooldown.crusader_strike.charges_fractional >= 1.75 & ( holy_power <= 2 || holy_power <= 3 & cooldown.blade_of_justice.remains > gcd.max * 2 || holy_power = 4 & cooldown.blade_of_justice.remains > gcd.max * 2 & cooldown.judgment.remains > gcd.max * 2 )",
["action"] = "crusader_strike",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! variable.finished",
["list_name"] = "finishers",
},
{
["enabled"] = true,
["criteria"] = "holy_power <= 3 || target.health.pct > 20 || ! talent.vanguards_momentum.enabled",
["action"] = "hammer_of_wrath",
},
{
["action"] = "crusader_strike",
["enabled"] = true,
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
},
["finishers"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( spell_targets.divine_storm >= 2 || buff.empyrean_power.up || ! talent.final_verdict.enabled & talent.tempest_of_the_lightbringer.enabled ) & ! buff.empyrean_legacy.up & ! ( buff.divine_arbiter.up & buff.divine_arbiter.stack > 24 )",
["var_name"] = "ds_castable",
},
{
["action"] = "hammer_of_light",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "holy_power = 5",
["action"] = "divine_hammer",
},
{
["enabled"] = true,
["criteria"] = "variable.ds_castable & ! buff.hammer_of_light_ready.up & ( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 || buff.crusade.up & buff.crusade.stack < 10 || talent.radiant_glory.enabled ) & ( ! buff.divine_hammer.up || cooldown.divine_hammer.remains > 110 & holy_power >= 4 )",
["action"] = "divine_storm",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 || buff.crusade.up & buff.crusade.stack < 10 || talent.radiant_glory.enabled ) & ! buff.hammer_of_light_ready.up & ( ! buff.divine_hammer.up || cooldown.divine_hammer.remains > 110 & holy_power >= 4 )",
["action"] = "justicars_vengeance",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.crusade.enabled || cooldown.crusade.remains > gcd.max * 3 || buff.crusade.up & buff.crusade.stack < 10 || talent.radiant_glory.enabled ) & ! buff.hammer_of_light_ready.up & ( ! buff.divine_hammer.up || cooldown.divine_hammer.remains > 110 & holy_power >= 4 )",
["action"] = "templars_verdict",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "true",
["var_name"] = "finished",
},
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up || debuff.execution_sentence.up || boss & fight_remains < 30",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.lights_judgment >= 2 || ! raid_event.adds.exists || raid_event.adds.in > 75 || raid_event.adds.up",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || buff.crusade.up & buff.crusade.stack = 10 || debuff.execution_sentence.up",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "( ( buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 40 || buff.crusade.up & buff.crusade.stack = 10 ) & ! talent.radiant_glory.enabled || talent.radiant_glory.enabled & ( ! talent.execution_sentence.enabled & cooldown.wake_of_ashes.remains = 0 || debuff.execution_sentence.up ) ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains & boss",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "( ( buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 40 || buff.crusade.up & buff.crusade.stack = 10 ) & ! talent.radiant_glory.enabled || talent.radiant_glory.enabled & ( ! talent.execution_sentence.enabled & cooldown.wake_of_ashes.remains = 0 || debuff.execution_sentence.up ) ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains & boss",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs || ! buff.crusade.up & cooldown.crusade.remains > 20 || ! buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 20 )",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs || ! buff.crusade.up & cooldown.crusade.remains > 20 || ! buff.avenging_wrath.up & cooldown.avenging_wrath.remains > 20 )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "fight_remains > 15 & ( ! talent.execution_sentence.enabled || ! debuff.execution_sentence.up )",
["action"] = "shield_of_vengeance",
},
{
["enabled"] = true,
["criteria"] = "( ! buff.crusade.up & cooldown.crusade.remains > 15 || buff.crusade.stack = 10 || cooldown.avenging_wrath.remains < 0.75 || cooldown.avenging_wrath.remains > 15 || talent.radiant_glory.enabled ) & ( holy_power >= 4 & time < 5 || holy_power >= 3 & time > 5 || holy_power >= 2 & ( talent.divine_auxiliary.enabled || talent.radiant_glory.enabled ) ) & ( target.time_to_die > 8 & ! talent.executioners_will.enabled || target.time_to_die > 12 ) & cooldown.wake_of_ashes.remains < gcd.max",
["action"] = "execution_sentence",
},
{
["enabled"] = true,
["criteria"] = "( holy_power >= 4 & time < 5 || holy_power >= 3 & time > 5 || holy_power >= 2 & talent.divine_auxiliary.enabled & ( cooldown.execution_sentence.remains = 0 || cooldown.final_reckoning.remains = 0 ) ) & ( ! raid_event.adds.up || target.time_to_die > 10 )",
["action"] = "avenging_wrath",
},
{
["enabled"] = true,
["criteria"] = "holy_power >= 5 & time < 5 || holy_power >= 3 & time > 5",
["action"] = "crusade",
},
{
["enabled"] = true,
["criteria"] = "( holy_power >= 4 & time < 8 || holy_power >= 3 & time >= 8 || holy_power >= 2 & ( talent.divine_auxiliary.enabled || talent.radiant_glory.enabled ) ) & ( cooldown.avenging_wrath.remains > 10 || cooldown.crusade.remains & ( ! buff.crusade.up || buff.crusade.stack >= 10 ) || talent.radiant_glory.enabled & ( buff.avenging_wrath.up || talent.crusade.enabled & cooldown.wake_of_ashes.remains < gcd.max ) ) & ( ! raid_event.adds.exists || raid_event.adds.up || raid_event.adds.in > 40 )",
["action"] = "final_reckoning",
},
},
},
},
["Discipline"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20240811,
["author"] = "SimC",
["desc"] = "Healer priorities are DPS-focused only\n\n2024-07-30: The War Within",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! buff.twilight_equilibrium_holy_amp.up & ! buff.twilight_equilibrium_shadow_amp.up",
["var_name"] = "te_none",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.twilight_equilibrium_shadow_amp.up || variable.te_none",
["var_name"] = "te_shadow",
["description"] = "Twilight Equilibrium is buffing shadow damage",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.twilight_equilibrium_holy_amp.up || variable.te_none",
["var_name"] = "te_holy",
["description"] = "Twilight Equilibrium is buffing holy damage",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.shadow_covenant.enabled",
["var_name"] = "long_scov",
["description"] = "Long Shadow covenant is enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.shadowfiend.up || buff.shadow_covenant.up",
["var_name"] = "can_enter_scov",
["description"] = "Ready to start shadow covenant phase",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "shadow_spells_duration_max",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "2",
["var_name"] = "shadow_spells_duration_max",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.mind_blast.execute_time",
["var_name"] = "shadow_spells_duration_max",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration_max",
["value"] = "action.mind_blast.execute_time",
["description"] = "penance",
["criteria"] = "talent.dark_indulgence.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.shadow_word_death.execute_time",
["var_name"] = "shadow_spells_duration_max",
["criteria"] = "talent.shadow_word_death.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.shadow_word_death.execute_time",
["var_name"] = "shadow_spells_duration_max",
["criteria"] = "talent.shadow_word_death.enabled & talent.death_and_madness.enabled & target.health.pct < 20",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.mindgames.execute_time",
["var_name"] = "shadow_spells_duration_max",
["criteria"] = "talent.mindgames.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.divine_star.execute_time",
["var_name"] = "shadow_spells_duration_max",
["criteria"] = "talent.divine_star.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.halo.execute_time",
["var_name"] = "shadow_spells_duration_max",
["criteria"] = "talent.halo.enabled",
},
{
["enabled"] = true,
["op"] = "floor",
["action"] = "variable",
["value"] = "( buff.shadow_covenant.duration - variable.shadow_spells_duration_max ) / gcd.max",
["var_name"] = "max_te_holy",
["description"] = "(scov duration - shadow spells duration) / GCD time = estimate of holy spells we should need to use during the next scov window Long scov example: (15 - 12) / 1.5 = 2 GCDs to spend on holy spells Short scov example: (7 - 12) / 1.5 = -3.3 GCDs to spend on holy spells (none)",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "remaining_te_holy",
["description"] = "Counting variable, the number of non-fractional remaining holy casts available",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "variable.max_te_holy",
["var_name"] = "remaining_te_holy",
},
{
["enabled"] = true,
["op"] = "setif",
["criteria"] = "talent.train_of_thought.enabled",
["value"] = "2",
["var_name"] = "expected_penance_reduction",
["action"] = "variable",
["value_else"] = "0",
["description"] = "TODO: duration_expected is buggy on penance/dark reprimand, using a static reduction as a stand-in for now",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "shadow_spells_duration",
["description"] = "Calculate how much cast time worth of shadow spells we have currently available. We use shadow_spells_duration to determine if we have time to weave in any holy spells to proc twilight equilibrium.",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "2",
["description"] = "Penance",
["criteria"] = "cooldown.penance.up || ( ( cooldown.penance.remains - variable.expected_penance_reduction ) < buff.shadow_covenant.remains )",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.mindgames.execute_time",
["description"] = "Mindgames",
["criteria"] = "cooldown.mindgames.up || ( cooldown.mindgames.remains_expected < buff.shadow_covenant.remains )",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "We always get the first SW:D",
["criteria"] = "cooldown.shadow_word_death.up || ( cooldown.shadow_word_death.remains < buff.shadow_covenant.remains )",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "Second SW:D only when talented and target health in execute range",
["criteria"] = "( cooldown.shadow_word_death.up || ( cooldown.shadow_word_death.remains < buff.shadow_covenant.remains ) ) & ( target.health.pct < 20 || target.time_to_pct_20 < cooldown.shadow_word_death.remains ) & talent.death_and_madness.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.mind_blast.charges * action.mind_blast.execute_time",
["description"] = "Add any whole charges of mind blast",
["criteria"] = "action.mind_blast.charges >= 1",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.mind_blast.execute_time",
["description"] = "Add any fractional charges of mindblast that will recharge in time",
["criteria"] = "( ( action.mind_blast.charges_fractional >= 1 & action.mind_blast.charges_fractional < 2 ) & ( ( ( 1 - ( action.mind_blast.charges_fractional - 1 ) ) * action.mind_blast.recharge_time ) < buff.shadow_covenant.remains ) ) || ( ( action.mind_blast.charges_fractional < 1 ) & ( ( ( 1 - action.mind_blast.charges_fractional ) * action.mind_blast.recharge_time ) < buff.shadow_covenant.remains ) )",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.divine_star.execute_time",
["description"] = "Divine Star",
["criteria"] = "cooldown.divine_star.up || ( cooldown.divine_star.remains < buff.shadow_covenant.remains )",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "shadow_spells_duration",
["value"] = "action.halo.execute_time",
["description"] = "Halo",
["criteria"] = "cooldown.halo.up || ( cooldown.halo.remains < buff.shadow_covenant.remains )",
},
{
["enabled"] = true,
["op"] = "setif",
["criteria"] = "talent.twilight_equilibrium.enabled",
["value"] = "( buff.shadow_covenant.remains - variable.shadow_spells_duration ) > action.smite.execute_time",
["var_name"] = "should_te",
["action"] = "variable",
["value_else"] = "0",
["description"] = "Determine if we have enough scov time remaining to weave in a twilight equilibrium activation. If we don't have TE talented, always false. Using smite's execution time to represent a worst-case scenario.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.shadowfiend.remains + action.shadowfiend.execute_time",
["var_name"] = "next_penance_time",
["description"] = "First casts should always be HD prep->covenant->schism->HD dark reprimand",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_penance_time",
["value"] = "gcd.max",
["description"] = "If we have enough scov duration, add a holy cast to proc twilight equilibrium",
["criteria"] = "variable.remaining_te_holy > 0",
},
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["var_name"] = "remaining_te_holy",
["description"] = "Reduce our counting variable",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( cooldown.penance.duration - variable.expected_penance_reduction ) < variable.next_penance_time",
["var_name"] = "can_penance",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.next_penance_time + 2",
["var_name"] = "next_swd_time",
["description"] = "Shadow Word: Death SW:D is better than other spells if we are in execute phase.",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_swd_time",
["value"] = "gcd.max",
["description"] = "If we have enough scov duration, add a holy cast to proc twilight equilibrium",
["criteria"] = "variable.remaining_te_holy > 0",
},
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["var_name"] = "remaining_te_holy",
["description"] = "Reduce our counting variable",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_swd_time",
["value"] = "action.mindgames.execute_time",
["description"] = "indgame ette ha W: ren' xecut has n av hattere erception on' av xpiatio",
["criteria"] = "( ( talent.mindgames.enabled & talent.shattered_perceptions.enabled ) || ( talent.mindgames.enabled & ! talent.expiation.enabled ) ) & target.health.pct >= 20",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_swd_time",
["value"] = "action.mind_blast.execute_time",
["description"] = "Mind blast is better than SW:D if we aren't in execute",
["criteria"] = "target.health.pct >= 20",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_swd_time",
["value"] = "action.mind_blast.execute_time",
["description"] = "Second mindblast when talented",
["criteria"] = "target.health.pct >= 20 & talent.dark_indulgence.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_swd_time",
["value"] = "action.divine_star.execute_time",
["description"] = "Divine Star and halo are better than SW:D if we aren't in execute and don't have expiation",
["criteria"] = "talent.divine_star.enabled & target.health.pct >= 20 & ! talent.expiation.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.halo.execute_time",
["var_name"] = "next_swd_time",
["criteria"] = "talent.halo.enabled & target.health.pct >= 20 & ! talent.expiation.enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.shadow_word_death.duration_expected < variable.next_swd_time",
["var_name"] = "can_swd",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.next_penance_time + 2",
["var_name"] = "next_mind_blast_time",
["description"] = "Mindblast Mindblast is better than other spells if we aren't in execute phase",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mind_blast_time",
["value"] = "gcd.max",
["description"] = "If we have enough scov duration, add a holy cast to proc twilight equilibrium",
["criteria"] = "variable.remaining_te_holy > 0",
},
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["var_name"] = "remaining_te_holy",
["description"] = "Reduce our counting variable",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mind_blast_time",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "Add SW:D if we're in execute phase",
["criteria"] = "target.health.pct < 20",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mind_blast_time",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "Add a second SW:D if we have death and madness",
["criteria"] = "talent.death_and_madness.enabled & target.health.pct < 20",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mind_blast_time",
["value"] = "action.mindgames.execute_time",
["description"] = "Add mindgames if we have it talented and don't have expiation",
["criteria"] = "talent.mindgames.enabled & ! talent.expiation.enabled",
},
{
["enabled"] = true,
["op"] = "setif",
["criteria"] = "action.mind_blast.charges_fractional >= 1",
["value"] = "( ( action.mind_blast.max_charges - ( action.mind_blast.charges_fractional - 1 ) ) * action.mind_blast.recharge_time ) < variable.next_mind_blast_time",
["var_name"] = "can_mind_blast",
["action"] = "variable",
["value_else"] = "0",
["description"] = "TODO: This is a little bit simplistic, requiring both charges of mindblast to be available at the moment the first charge needs to be used. Slight optimization should be possible.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.next_penance_time + 2",
["var_name"] = "next_mindgames_time",
["description"] = "Mindgames Mindgames is a better option than other spells if we aren't in execute and don't have expiation",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mindgames_time",
["value"] = "gcd.max",
["description"] = "If we have enough scov duration, add a holy cast to proc twilight equilibrium",
["criteria"] = "variable.remaining_te_holy > 0",
},
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["var_name"] = "remaining_te_holy",
["description"] = "Reduce our counting variable",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mindgames_time",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "SW:D is better than mindgames in execute phase, or outside of execute phase if we don't have shattered perceptions but do have expiation",
["criteria"] = "target.health.pct < 20 || ( talent.expiation.enabled & ! talent.shattered_perceptions.enabled )",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mindgames_time",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "Add a second SW:D if we have death and madness",
["criteria"] = "target.health.pct < 20 & talent.death_and_madness.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mindgames_time",
["value"] = "action.mind_blast.execute_time",
["description"] = "Mind blast is better than mindgames if we have expiation",
["criteria"] = "talent.expiation.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_mindgames_time",
["value"] = "action.mind_blast.execute_time",
["description"] = "Second mindblast when talented",
["criteria"] = "talent.expiation.enabled & talent.dark_indulgence.enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.mindgames.duration_expected < variable.next_mindgames_time",
["var_name"] = "can_mindgames",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.next_penance_time + 2",
["var_name"] = "next_divine_star_time",
["description"] = "Divine Star",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_divine_star_time",
["value"] = "gcd.max",
["description"] = "If we have enough scov duration, add a holy cast to proc twilight equilibrium",
["criteria"] = "variable.remaining_te_holy > 0",
},
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "1",
["var_name"] = "remaining_te_holy",
["description"] = "Reduce our counting variable",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_divine_star_time",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "SW:D is better unless outside of execute phase when expiation is untalented",
["criteria"] = "target.health.pct < 20 || talent.expiation.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_divine_star_time",
["value"] = "action.shadow_word_death.execute_time",
["description"] = "Add a second SW:D if we have death and madness",
["criteria"] = "target.health.pct < 20 & talent.death_and_madness.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_divine_star_time",
["value"] = "action.mind_blast.execute_time",
["description"] = "Mind blast is always better",
["criteria"] = "talent.expiation.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_divine_star_time",
["value"] = "action.mind_blast.execute_time",
["description"] = "Second mindblast when talented",
["criteria"] = "talent.dark_indulgence.enabled",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "next_divine_star_time",
["value"] = "action.mindgames.execute_time",
["description"] = "Mindgames is always better",
["criteria"] = "talent.mindgames.enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.divine_star.duration < variable.next_divine_star_time",
["var_name"] = "can_divine_star",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "talent.shadow_covenant.enabled & cooldown.mindbender.up",
["list_name"] = "scov_prep",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "variable.long_scov & variable.can_enter_scov",
["list_name"] = "long_scov",
},
{
["enabled"] = true,
["criteria"] = "talent.purge_the_wicked.enabled & ( target.time_to_die > ( 0.3 * dot.purge_the_wicked.duration ) ) & ( ! ticking || ( refreshable & ( ! talent.painful_punishment.enabled || ( talent.painful_punishment.enabled & ( dot.purge_the_wicked.remains < ( cooldown.penance.remains - variable.expected_penance_reduction ) ) ) ) ) )",
["action"] = "purge_the_wicked",
},
{
["enabled"] = true,
["criteria"] = "! talent.purge_the_wicked.enabled & ( target.time_to_die > ( 0.3 * dot.shadow_word_pain.duration ) ) & ( ! ticking || ( refreshable & ( ! talent.painful_punishment.enabled || ( talent.painful_punishment.enabled & ( dot.shadow_word_pain.remains < ( cooldown.penance.remains - variable.expected_penance_reduction ) ) ) ) ) )",
["action"] = "shadow_word_pain",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_swd ) & target.health.pct < 20",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "talent.dark_indulgence.enabled & buff.power_of_the_dark_side.down & cooldown.penance.remains < gcd.max",
["action"] = "mind_blast",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_penance )",
["action"] = "penance",
},
{
["enabled"] = true,
["criteria"] = "! talent.shadow_covenant.enabled || variable.can_mind_blast",
["action"] = "mind_blast",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_mindgames ) & talent.shattered_perceptions.enabled",
["action"] = "mindgames",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_swd ) & talent.expiation.enabled & ( target.time_to_pct_20 > ( 0.5 * cooldown.shadow_word_death.duration ) )",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_mindgames ) & ! talent.shattered_perceptions.enabled",
["action"] = "mindgames",
},
{
["enabled"] = true,
["criteria"] = "! talent.shadow_covenant.enabled",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_divine_star )",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.shadow_covenant.enabled || variable.can_swd ) & ( target.time_to_pct_20 > ( 0.5 * cooldown.shadow_word_death.duration ) )",
["action"] = "shadow_word_death",
},
{
["action"] = "smite",
["enabled"] = true,
},
},
["precombat"] = {
{
["action"] = "power_word_fortitude",
["enabled"] = true,
},
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "! talent.mindbender.enabled & ! buff.shadow_covenant.up",
["action"] = "mindbender",
["description"] = "Don't use pets during shadow covenant windows, wasting GCDs",
},
{
["enabled"] = true,
["criteria"] = "talent.mindbender.enabled & ! buff.shadow_covenant.up",
["action"] = "mindbender",
},
{
["enabled"] = true,
["criteria"] = "! talent.shadow_covenant.enabled || ( talent.shadow_covenant.enabled & ( cooldown.shadowfiend.up || buff.shadow_covenant.up ) )",
["action"] = "power_infusion",
["description"] = "hold PI to use with shadow covenant if we have it",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up",
["action"] = "potion",
["description"] = "sync potion with PI",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up || cooldown.power_infusion.remains >= action_cooldown",
["action"] = "use_items",
["description"] = "sync trinkets with PI",
},
},
["scov_prep"] = {
{
["enabled"] = true,
["criteria"] = "! ticking & ( target.time_to_die > ( 0.3 * dot.purge_the_wicked.duration ) )",
["action"] = "purge_the_wicked",
["description"] = "Prepare to enter shadow covenant",
},
{
["enabled"] = true,
["criteria"] = "cooldown.shadowfiend.remains < cast_time",
["action"] = "power_word_radiance",
},
{
["enabled"] = true,
["criteria"] = "( target.time_to_die > ( 0.3 * dot.purge_the_wicked.duration ) )",
["action"] = "purge_the_wicked",
},
},
["long_scov"] = {
{
["enabled"] = true,
["description"] = "Long Shadow Covenant",
["action"] = "mindbender",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) ) & spell_targets.halo >= 3",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) ) & spell_targets.divine_star >= 3",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_holy ) ) & ( ! ticking || refreshable ) & ( target.time_to_die > ( 0.3 * dot.purge_the_wicked.duration ) )",
["action"] = "purge_the_wicked",
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20 & talent.expiation.enabled & ( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "penance",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) ) & spell_targets.halo >= 2",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) ) & spell_targets.divine_star >= 2",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20 & ( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "talent.expiation.enabled & ( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "mind_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.shattered_perceptions.enabled & ( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "mindgames",
},
{
["enabled"] = true,
["criteria"] = "talent.expiation.enabled & ( ! variable.should_te || ( variable.should_te & variable.te_shadow ) ) & ( target.time_to_pct_20 > buff.shadow_covenant.remains )",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "mindgames",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "mind_blast",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) )",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_shadow ) ) & ( target.time_to_pct_20 > buff.shadow_covenant.remains )",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "( ! variable.should_te || ( variable.should_te & variable.te_holy ) )",
["action"] = "smite",
},
{
["enabled"] = true,
["description"] = "just in case we run out of shadow spells with the above conditions",
["action"] = "penance",
},
{
["action"] = "mindgames",
["enabled"] = true,
},
{
["action"] = "mind_blast",
["enabled"] = true,
},
{
["action"] = "shadow_word_death",
["enabled"] = true,
},
{
["action"] = "divine_star",
["enabled"] = true,
},
{
["action"] = "halo",
["enabled"] = true,
},
{
["action"] = "smite",
["enabled"] = true,
},
},
},
["version"] = 20240811,
["warnings"] = "The import for 'default' required some automated changes.\nLine 5: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 10: Converted 'talent.dark_indulgence' to 'talent.dark_indulgence.enabled' (1x).\nLine 11: Converted 'talent.shadow_word_death' to 'talent.shadow_word_death.enabled' (1x).\nLine 12: Converted 'talent.shadow_word_death' to 'talent.shadow_word_death.enabled' (1x).\nLine 12: Converted 'talent.death_and_madness' to 'talent.death_and_madness.enabled' (1x).\nLine 13: Converted 'talent.mindgames' to 'talent.mindgames.enabled' (1x).\nLine 14: Converted 'talent.divine_star' to 'talent.divine_star.enabled' (1x).\nLine 15: Converted 'talent.halo' to 'talent.halo.enabled' (1x).\nLine 16: Converted operations in '(buff.shadow_covenant.duration-variable.shadow_spells_duration_max)%gcd.max' to '(buff.shadow_covenant.duration-variable.shadow_spells_duration_max)/gcd.max'.\nLine 19: Converted 'talent.train_of_thought' to 'talent.train_of_thought.enabled' (1x).\nLine 24: Converted 'talent.death_and_madness' to 'talent.death_and_madness.enabled' (1x).\nLine 29: Converted 'talent.twilight_equilibrium' to 'talent.twilight_equilibrium.enabled' (1x).\nLine 37: Converted 'talent.mindgames' to 'talent.mindgames.enabled' (1x).\nLine 37: Converted 'talent.shattered_perceptions' to 'talent.shattered_perceptions.enabled' (1x).\nLine 37: Converted 'talent.mindgames' to 'talent.mindgames.enabled' (1x).\nLine 37: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 39: Converted 'talent.dark_indulgence' to 'talent.dark_indulgence.enabled' (1x).\nLine 40: Converted 'talent.divine_star' to 'talent.divine_star.enabled' (1x).\nLine 40: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 41: Converted 'talent.halo' to 'talent.halo.enabled' (1x).\nLine 41: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 47: Converted 'talent.death_and_madness' to 'talent.death_and_madness.enabled' (1x).\nLine 48: Converted 'talent.mindgames' to 'talent.mindgames.enabled' (1x).\nLine 48: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 53: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 53: Converted 'talent.shattered_perceptions' to 'talent.shattered_perceptions.enabled' (1x).\nLine 54: Converted 'talent.death_and_madness' to 'talent.death_and_madness.enabled' (1x).\nLine 55: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 56: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 56: Converted 'talent.dark_indulgence' to 'talent.dark_indulgence.enabled' (1x).\nLine 61: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 62: Converted 'talent.death_and_madness' to 'talent.death_and_madness.enabled' (1x).\nLine 63: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 64: Converted 'talent.dark_indulgence' to 'talent.dark_indulgence.enabled' (1x).\nLine 65: Converted 'talent.mindgames' to 'talent.mindgames.enabled' (1x).\nLine 67: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 69: Converted 'talent.purge_the_wicked' to 'talent.purge_the_wicked.enabled' (1x).\nLine 69: Converted 'talent.painful_punishment' to 'talent.painful_punishment.enabled' (1x).\nLine 69: Converted 'talent.painful_punishment' to 'talent.painful_punishment.enabled' (1x).\nLine 70: Converted 'talent.purge_the_wicked' to 'talent.purge_the_wicked.enabled' (1x).\nLine 70: Converted 'talent.painful_punishment' to 'talent.painful_punishment.enabled' (1x).\nLine 70: Converted 'talent.painful_punishment' to 'talent.painful_punishment.enabled' (1x).\nLine 71: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 72: Converted 'talent.dark_indulgence' to 'talent.dark_indulgence.enabled' (1x).\nLine 73: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 74: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 75: Converted 'talent.shadow_covenant' to '
["profile"] = "actions.precombat+=/power_word_fortitude\n\nactions+=/call_action_list,name=cooldowns\nactions+=/variable,name=te_none,op=set,value=!buff.twilight_equilibrium_holy_amp.up&!buff.twilight_equilibrium_shadow_amp.up\n# Twilight Equilibrium is buffing shadow damage\nactions+=/variable,name=te_shadow,op=set,value=buff.twilight_equilibrium_shadow_amp.up||variable.te_none\n# Twilight Equilibrium is buffing holy damage\nactions+=/variable,name=te_holy,op=set,value=buff.twilight_equilibrium_holy_amp.up||variable.te_none\n# Long Shadow covenant is enabled\nactions+=/variable,name=long_scov,op=set,value=talent.shadow_covenant\n# Ready to start shadow covenant phase\nactions+=/variable,name=can_enter_scov,op=set,value=cooldown.shadowfiend.up||buff.shadow_covenant.up\nactions+=/variable,name=shadow_spells_duration_max,op=set,value=0\n## actions+=/variable,name=shadow_spells_duration_max,op=add,value=action.schism.execute_time,if=talent.schism\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=2\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.mind_blast.execute_time\n# penance\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.mind_blast.execute_time,if=talent.dark_indulgence\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.shadow_word_death.execute_time,if=talent.shadow_word_death\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.shadow_word_death.execute_time,if=talent.shadow_word_death&talent.death_and_madness&target.health.pct<20\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.mindgames.execute_time,if=talent.mindgames\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.divine_star.execute_time,if=talent.divine_star\nactions+=/variable,name=shadow_spells_duration_max,op=add,value=action.halo.execute_time,if=talent.halo\n# (scov duration - shadow spells duration) / GCD time = estimate of holy spells we should need to use during the next scov window Long scov example: (15 - 12) / 1.5 = 2 GCDs to spend on holy spells Short scov example: (7 - 12) / 1.5 = -3.3 GCDs to spend on holy spells (none)\nactions+=/variable,name=max_te_holy,op=floor,value=(buff.shadow_covenant.duration-variable.shadow_spells_duration_max)%gcd.max\n# Counting variable, the number of non-fractional remaining holy casts available\nactions+=/variable,name=remaining_te_holy,op=set,value=0\nactions+=/variable,name=remaining_te_holy,op=add,value=variable.max_te_holy\n# TODO: duration_expected is buggy on penance/dark reprimand, using a static reduction as a stand-in for now\nactions+=/variable,name=expected_penance_reduction,op=setif,condition=talent.train_of_thought,value=2,value_else=0\n# Calculate how much cast time worth of shadow spells we have currently available. We use shadow_spells_duration to determine if we have time to weave in any holy spells to proc twilight equilibrium.\nactions+=/variable,name=shadow_spells_duration,op=set,value=0\n# Schism\n## actions+=/variable,name=shadow_spells_duration,op=add,value=action.schism.execute_time,if=cooldown.schism.up||(cooldown.schism.remains<buff.shadow_covenant.remains)\n# Penance\nactions+=/variable,name=shadow_spells_duration,op=add,value=2,if=cooldown.penance.up||((cooldown.penance.remains-variable.expected_penance_reduction)<buff.shadow_covenant.remains)\n# Mindgames\nactions+=/variable,name=shadow_spells_duration,op=add,value=action.mindgames.execute_time,if=cooldown.mindgames.up||(cooldown.mindgames.remains_expected<buff.shadow_covenant.remains)\n# We always get the first SW:D\nactions+=/variable,name=shadow_spells_duration,op=add,value=action.shadow_word_death.execute_time,if=cooldown.shadow_word_death.up||(cooldown.shadow_word_death.remains<buff.shadow_covenant.remains)\n# Second SW:D only when talented and target health in execute range\nactions+=/variable,name=shadow_spells_duration,op=add,value=action.shadow_word_death.execute_time,if=(cooldown.shadow_word_death.up||(cooldown.shadow_word_death.remains<buff.shadow_covenant.remains))&(target.hea
["spec"] = 256,
},
["Elemental"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241030,
["spec"] = 262,
["desc"] = "2024-10-30: Sim update\n\n2024-10-23: 11.0.5\n\n2024-08-15, 09-15: Sim update\n\n2024-07-23: The War Within",
["profile"] = "# Ensure weapon enchant is applied if you've selected Improved Flametongue Weapon.\nactions.precombat+=/flametongue_weapon,if=talent.improved_flametongue_weapon.enabled\nactions.precombat+=/skyfury\nactions.precombat+=/lightning_shield\nactions.precombat+=/thunderstrike_ward\nactions.precombat+=/earth_shield,if=!buff.earth_shield.up&talent.elemental_orbit\nactions.precombat+=/stormkeeper\nactions.precombat+=/variable,name=mael_cap,value=100+50*talent.swelling_maelstrom.rank+25*talent.primordial_capacity.rank,op=set\nactions.precombat+=/variable,name=spymaster_in_1st,value=trinket.1.is.spymasters_web\nactions.precombat+=/variable,name=spymaster_in_2nd,value=trinket.2.is.spymasters_web\n\n# Interrupt of casts.\nactions+=/wind_shear\n# Enable more movement.\nactions+=/spiritwalkers_grace,moving=1\nactions+=/blood_fury,if=!talent.ascendance.enabled||buff.ascendance.up||cooldown.ascendance.remains>50\nactions+=/berserking,if=!talent.ascendance.enabled||buff.ascendance.up\nactions+=/fireblood,if=!talent.ascendance.enabled||buff.ascendance.up||cooldown.ascendance.remains>50\nactions+=/ancestral_call,if=!talent.ascendance.enabled||buff.ascendance.up||cooldown.ascendance.remains>50\nactions+=/use_item,slot=trinket1,if=!variable.spymaster_in_1st||(fight_remains<65||time<fight_remains&buff.spymasters_report.stack>35)&prev_gcd.1.stormkeeper||buff.ascendance.remains>12&buff.spymasters_report.stack>25||fight_remains<22&boss\nactions+=/use_item,slot=trinket2,if=!variable.spymaster_in_2nd||(fight_remains<65||time<fight_remains&buff.spymasters_report.stack>35)&prev_gcd.1.stormkeeper||buff.ascendance.remains>12&buff.spymasters_report.stack>25||fight_remains<22&boss\nactions+=/use_item,slot=main_hand\nactions+=/lightning_shield,if=buff.lightning_shield.down\nactions+=/natures_swiftness\n### Use Power Infusion on Cooldown.\n## actions+=/invoke_external_buff,name=power_infusion\nactions+=/potion,if=buff.bloodlust.up||buff.spymasters_web.up||buff.ascendance.remains>12||fight_remains<31&boss\nactions+=/run_action_list,name=aoe,strict=1,if=spell_targets.chain_lightning>1\nactions+=/run_action_list,name=single_target\n\nactions.aoe+=/fire_elemental\nactions.aoe+=/storm_elemental\nactions.aoe+=/stormkeeper\n# {Fire} Reset LMT CD as early as possible [Hekili] based on true cooldown remaining\nactions.aoe+=/totemic_recall,if=cooldown.liquid_magma_totem.true_remains>15&(active_dot.flame_shock<(spell_targets.chain_lightning>?6)-2||talent.fire_elemental.enabled)\nactions.aoe+=/liquid_magma_totem,if=totem.liquid_magma_totem.down\n# Spread Flame Shock via Primordial Wave using Surge of Power if possible.\nactions.aoe+=/primordial_wave,cycle_targets=1,if=buff.surge_of_power.up||!talent.surge_of_power.enabled||maelstrom<60-5*talent.eye_of_the_storm.enabled\nactions.aoe+=/ancestral_swiftness\n# Spread Flame Shock using Surge of Power if LMT is not picked.\nactions.aoe+=/flame_shock,cycle_targets=1,if=refreshable&buff.surge_of_power.up&dot.flame_shock.remains<target.time_to_die-16&active_dot.flame_shock<(spell_targets.chain_lightning>?6)&!talent.liquid_magma_totem.enabled\n# Spread and refresh Flame Shock using Surge of Power (if talented) up to 6.\nactions.aoe+=/flame_shock,cycle_targets=1,if=refreshable&talent.fire_elemental.enabled&(buff.surge_of_power.up||!talent.surge_of_power.enabled)&dot.flame_shock.remains<target.time_to_die-5&(active_dot.flame_shock<6||dot.flame_shock.remains>0)\n# JUST DO IT! https://i.kym-cdn.com/entries/icons/mobile/000/018/147/Shia_LaBeouf__Just_Do_It__Motivational_Speech_(Original_Video_by_LaBeouf__R%C3%B6nkk%C3%B6___Turner)_0-4_screenshot.jpg\nactions.aoe+=/ascendance\n# buff tempest with sop\nactions.aoe+=/tempest,cycle_targets=1,if=!buff.arc_discharge.up&(buff.surge_of_power.up||!talent.surge_of_power.enabled)\n# 2t\nactions.aoe+=/lightning_bolt,if=buff.stormkeeper.up&buff.surge_of_power.up&spell_targets.chain_lightning=2\n# Consume Primordial Wave buff immediately if you have Stormkeeper buff, fighting 6+ enemies and need maelstrom to spend.\nactions.aoe+=/lava_burst,cycle_targets=1,if=dot.flame_shock.remai
["version"] = 20241030,
["warnings"] = "The import for 'precombat' required some automated changes.\nLine 5: Converted 'talent.elemental_orbit' to 'talent.elemental_orbit.enabled' (1x).\nLine 8: Converted 'trinket.1.is.spymasters_web' to 'trinket.t1.is.spymasters_web' (1x).\nLine 9: Converted 'trinket.2.is.spymasters_web' to 'trinket.t2.is.spymasters_web' (1x).\n\nImported 4 action lists.\n",
["lists"] = {
["single_target"] = {
{
["action"] = "fire_elemental",
["enabled"] = true,
},
{
["action"] = "storm_elemental",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "Just use Stormkeeper.",
["action"] = "stormkeeper",
},
{
["enabled"] = true,
["description"] = "Use Primordial Wave as much as possible.",
["criteria"] = "! buff.surge_of_power.up",
["action"] = "primordial_wave",
},
{
["action"] = "ancestral_swiftness",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "fight_remains > action_cooldown || buff.spymasters_web.up || ! ( variable.spymaster_in_1st || variable.spymaster_in_2nd )",
["action"] = "ascendance",
},
{
["enabled"] = true,
["description"] = "Surge of Power is strong and should be used. ??",
["criteria"] = "buff.surge_of_power.up",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "buff.surge_of_power.up",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["description"] = "Dont waste Storm Frenzy (minimal gain).",
["criteria"] = "buff.storm_frenzy.stack = 2 & ! talent.surge_of_power.enabled",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "buff.storm_frenzy.stack = 2 & ! talent.surge_of_power.enabled",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["description"] = "Use LMT to apply Flame Shock.",
["criteria"] = "dot.flame_shock.refreshable & ! buff.master_of_the_elements.up",
["action"] = "liquid_magma_totem",
},
{
["enabled"] = true,
["description"] = "Manually refresh Flame shock if better options are not talented.",
["criteria"] = "dot.flame_shock.refreshable & ! buff.surge_of_power.up & ! buff.master_of_the_elements.up & ! talent.primordial_wave.enabled & ! talent.liquid_magma_totem.enabled",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["description"] = "Spend if close to overcaping. Respect Echoes of Great Sundering.",
["criteria"] = "( buff.echoes_of_great_sundering_es.up || buff.echoes_of_great_sundering_eb.up ) & ( maelstrom > variable.mael_cap - 15 || fight_remains < 5 )",
["action"] = "earthquake",
},
{
["enabled"] = true,
["criteria"] = "maelstrom > variable.mael_cap - 15 || fight_remains < 5",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "maelstrom > variable.mael_cap - 15 || fight_remains < 5",
["action"] = "earth_shock",
},
{
["enabled"] = true,
["description"] = "Just spend if not talented into Surge of Power.",
["criteria"] = "( buff.echoes_of_great_sundering_es.up || buff.echoes_of_great_sundering_eb.up ) & ! talent.surge_of_power.enabled",
["action"] = "earthquake",
},
{
["enabled"] = true,
["criteria"] = "! talent.surge_of_power.enabled",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "! talent.surge_of_power.enabled",
["action"] = "earth_shock",
},
{
["enabled"] = true,
["description"] = "Use Icefury to proc Fusion of Elements.",
["criteria"] = "! ( buff.fusion_of_elements_nature.up || buff.fusion_of_elements_fire.up )",
["action"] = "icefury",
},
{
["enabled"] = true,
["action"] = "lava_burst",
["cycle_targets"] = 1,
["description"] = "Use Lava Burst to proc Master of the Elements.",
["criteria"] = "dot.flame_shock.remains > 2 & ! buff.master_of_the_elements.up",
},
{
["enabled"] = true,
["criteria"] = "! buff.master_of_the_elements.up & buff.lava_surge.up",
["action"] = "lava_burst",
},
{
["enabled"] = true,
["description"] = "Spend to activate Surge of Power buff for Tempest or Stormkeeper.",
["criteria"] = "( buff.echoes_of_great_sundering_es.up || buff.echoes_of_great_sundering_eb.up ) & ( buff.tempest.up || buff.stormkeeper.up ) & talent.surge_of_power.enabled",
["action"] = "earthquake",
},
{
["enabled"] = true,
["criteria"] = "( buff.tempest.up || buff.stormkeeper.up ) & talent.surge_of_power.enabled",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "( buff.tempest.up || buff.stormkeeper.up ) & talent.surge_of_power.enabled",
["action"] = "earth_shock",
},
{
["action"] = "tempest",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "Filler spell. Always available. Always the bottom line.",
["action"] = "lightning_bolt",
},
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "flame_shock",
["enabled"] = true,
},
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "flame_shock",
["enabled"] = true,
},
{
["enabled"] = true,
["enable_moving"] = true,
["action"] = "frost_shock",
["moving"] = 1,
["description"] = "Frost Shock is our movement filler.",
},
},
["aoe"] = {
{
["action"] = "fire_elemental",
["enabled"] = true,
},
{
["action"] = "storm_elemental",
["enabled"] = true,
},
{
["action"] = "stormkeeper",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "{Fire} Reset LMT CD as early as possible [Hekili] based on true cooldown remaining",
["criteria"] = "cooldown.liquid_magma_totem.true_remains > 15 & ( active_dot.flame_shock < ( spell_targets.chain_lightning >? 6 ) - 2 || talent.fire_elemental.enabled )",
["action"] = "totemic_recall",
},
{
["enabled"] = true,
["criteria"] = "totem.liquid_magma_totem.down",
["action"] = "liquid_magma_totem",
},
{
["enabled"] = true,
["action"] = "primordial_wave",
["cycle_targets"] = 1,
["description"] = "Spread Flame Shock via Primordial Wave using Surge of Power if possible.",
["criteria"] = "buff.surge_of_power.up || ! talent.surge_of_power.enabled || maelstrom < 60 - 5 * talent.eye_of_the_storm.enabled",
},
{
["action"] = "ancestral_swiftness",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "flame_shock",
["cycle_targets"] = 1,
["description"] = "Spread Flame Shock using Surge of Power if LMT is not picked.",
["criteria"] = "refreshable & buff.surge_of_power.up & dot.flame_shock.remains < target.time_to_die - 16 & active_dot.flame_shock < ( spell_targets.chain_lightning >? 6 ) & ! talent.liquid_magma_totem.enabled",
},
{
["enabled"] = true,
["action"] = "flame_shock",
["cycle_targets"] = 1,
["description"] = "Spread and refresh Flame Shock using Surge of Power (if talented) up to 6.",
["criteria"] = "refreshable & talent.fire_elemental.enabled & ( buff.surge_of_power.up || ! talent.surge_of_power.enabled ) & dot.flame_shock.remains < target.time_to_die - 5 & ( active_dot.flame_shock < 6 || dot.flame_shock.remains > 0 )",
},
{
["enabled"] = true,
["description"] = "JUST DO IT! https://i.kym-cdn.com/entries/icons/mobile/000/018/147/Shia_LaBeouf__Just_Do_It__Motivational_Speech_(Original_Video_by_LaBeouf__R%C3%B6nkk%C3%B6___Turner)_0-4_screenshot.jpg",
["action"] = "ascendance",
},
{
["enabled"] = true,
["action"] = "tempest",
["cycle_targets"] = 1,
["description"] = "buff tempest with sop",
["criteria"] = "! buff.arc_discharge.up & ( buff.surge_of_power.up || ! talent.surge_of_power.enabled )",
},
{
["enabled"] = true,
["description"] = "2t",
["criteria"] = "buff.stormkeeper.up & buff.surge_of_power.up & spell_targets.chain_lightning = 2",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["action"] = "lava_burst",
["cycle_targets"] = 1,
["description"] = "Consume Primordial Wave buff immediately if you have Stormkeeper buff, fighting 6+ enemies and need maelstrom to spend.",
["criteria"] = "dot.flame_shock.remains > 2 & buff.primordial_wave.up & ( buff.stormkeeper.up & spell_targets.chain_lightning >= 6 || buff.tempest.up ) & maelstrom < 60 - 5 * talent.eye_of_the_storm.enabled & talent.surge_of_power.enabled",
},
{
["enabled"] = true,
["action"] = "lava_burst",
["cycle_targets"] = 1,
["description"] = "Cast Lava burst to consume Primordial Wave proc. Wait for Lava Surge proc if possible.",
["criteria"] = "dot.flame_shock.remains > 2 & buff.primordial_wave.up",
},
{
["enabled"] = true,
["action"] = "lava_burst",
["cycle_targets"] = 1,
["description"] = "*{Fire} Use Lava Surge proc to buff <anything> with Master of the Elements.",
["criteria"] = "dot.flame_shock.remains & cooldown_react & buff.lava_surge.up & ! buff.master_of_the_elements.up & talent.master_of_the_elements.enabled & talent.fire_elemental.enabled",
},
{
["enabled"] = true,
["action"] = "elemental_blast",
["cycle_targets"] = 1,
["description"] = "2t",
["criteria"] = "spell_targets.chain_lightning = 2 & ( maelstrom > variable.mael_cap - 30 || cooldown.primordial_wave.remains < gcd.max & talent.surge_of_power.enabled || ( buff.stormkeeper.up & spell_targets.chain_lightning >= 6 || buff.tempest.up ) & talent.surge_of_power.enabled )",
},
{
["enabled"] = true,
["description"] = "Activate Surge of Power if next global is Primordial wave. Respect Echoes of Great Sundering.",
["criteria"] = "cooldown.primordial_wave.remains < gcd.max & talent.surge_of_power.enabled & ( buff.echoes_of_great_sundering_es.up || buff.echoes_of_great_sundering_eb.up || ! talent.echoes_of_great_sundering.enabled )",
["action"] = "earthquake",
},
{
["enabled"] = true,
["description"] = "Spend if all Lightning Rods ran out or you are close to overcaping. Respect Echoes of Great Sundering.",
["criteria"] = "( lightning_rod = 0 & talent.lightning_rod.enabled || maelstrom > variable.mael_cap - 30 ) & ( buff.echoes_of_great_sundering_es.up || buff.echoes_of_great_sundering_eb.up || ! talent.echoes_of_great_sundering.enabled )",
["action"] = "earthquake",
},
{
["enabled"] = true,
["description"] = "Spend to buff your follow-up Stormkeeper with Surge of Power on 6+ targets. Respect Echoes of Great Sundering.",
["criteria"] = "( buff.stormkeeper.up & spell_targets.chain_lightning >= 6 || buff.tempest.up ) & talent.surge_of_power.enabled & ( buff.echoes_of_great_sundering_es.up || buff.echoes_of_great_sundering_eb.up || ! talent.echoes_of_great_sundering.enabled )",
["action"] = "earthquake",
},
{
["enabled"] = true,
["action"] = "elemental_blast",
["cycle_targets"] = 1,
["description"] = "Use the talents you selected. Spread Lightning Rod to as many targets as possible.",
["criteria"] = "talent.echoes_of_great_sundering.enabled & ! buff.echoes_of_great_sundering_eb.up & ( lightning_rod = 0 || maelstrom > variable.mael_cap - 30 || ( buff.stormkeeper.up & spell_targets.chain_lightning >= 6 || buff.tempest.up ) & talent.surge_of_power.enabled )",
},
{
["enabled"] = true,
["action"] = "earth_shock",
["cycle_targets"] = 1,
["description"] = "Use the talents you selected. Spread Lightning Rod to as many targets as possible.",
["criteria"] = "talent.echoes_of_great_sundering.enabled & ! buff.echoes_of_great_sundering_es.up & ( lightning_rod = 0 || maelstrom > variable.mael_cap - 30 || ( buff.stormkeeper.up & spell_targets.chain_lightning >= 6 || buff.tempest.up ) & talent.surge_of_power.enabled )",
},
{
["enabled"] = true,
["description"] = "Use Icefury for Fusion of Elements proc.",
["criteria"] = "talent.fusion_of_elements.enabled & ! ( buff.fusion_of_elements_nature.up || buff.fusion_of_elements_fire.up )",
["action"] = "icefury",
},
{
["enabled"] = true,
["action"] = "lava_burst",
["cycle_targets"] = 1,
["description"] = "*{Fire} Proc Master of the Elements outside Ascendance.",
["criteria"] = "dot.flame_shock.remains > 2 & talent.master_of_the_elements.enabled & ! buff.master_of_the_elements.up & ! buff.ascendance.up & talent.fire_elemental.enabled",
},
{
["action"] = "chain_lightning",
["enabled"] = true,
},
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "flame_shock",
["cycle_targets"] = 1,
["enabled"] = true,
["criteria"] = "refreshable",
},
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "frost_shock",
["enabled"] = true,
},
},
["default"] = {
{
["enabled"] = true,
["description"] = "Interrupt of casts.",
["action"] = "wind_shear",
},
{
["enabled"] = true,
["enable_moving"] = true,
["action"] = "spiritwalkers_grace",
["moving"] = 1,
["description"] = "Enable more movement.",
},
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up || cooldown.ascendance.remains > 50",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up || cooldown.ascendance.remains > 50",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "! talent.ascendance.enabled || buff.ascendance.up || cooldown.ascendance.remains > 50",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "! variable.spymaster_in_1st || ( fight_remains < 65 || time < fight_remains & buff.spymasters_report.stack > 35 ) & prev_gcd.1.stormkeeper || buff.ascendance.remains > 12 & buff.spymasters_report.stack > 25 || fight_remains < 22 & boss",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "! variable.spymaster_in_2nd || ( fight_remains < 65 || time < fight_remains & buff.spymasters_report.stack > 35 ) & prev_gcd.1.stormkeeper || buff.ascendance.remains > 12 & buff.spymasters_report.stack > 25 || fight_remains < 22 & boss",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "main_hand",
["slot"] = "main_hand",
},
{
["enabled"] = true,
["criteria"] = "buff.lightning_shield.down",
["action"] = "lightning_shield",
},
{
["action"] = "natures_swiftness",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.up || buff.spymasters_web.up || buff.ascendance.remains > 12 || fight_remains < 31 & boss",
["action"] = "potion",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets.chain_lightning > 1",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "single_target",
},
},
["precombat"] = {
{
["enabled"] = true,
["description"] = "Ensure weapon enchant is applied if you've selected Improved Flametongue Weapon.",
["criteria"] = "talent.improved_flametongue_weapon.enabled",
["action"] = "flametongue_weapon",
},
{
["action"] = "skyfury",
["enabled"] = true,
},
{
["action"] = "lightning_shield",
["enabled"] = true,
},
{
["action"] = "thunderstrike_ward",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.earth_shield.up & talent.elemental_orbit.enabled",
["action"] = "earth_shield",
},
{
["action"] = "stormkeeper",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "100 + 50 * talent.swelling_maelstrom.rank + 25 * talent.primordial_capacity.rank",
["var_name"] = "mael_cap",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.spymasters_web",
["var_name"] = "spymaster_in_1st",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.spymasters_web",
["var_name"] = "spymaster_in_2nd",
},
},
},
["author"] = "SimulationCraft",
},
["Marksmanship"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241029,
["author"] = "SimC",
["desc"] = "2024-10-29: SimC update\n\n2024-10-23: 11.0.5\n\n2024-09-10, 09-15: SimC update\n\n2024-08-15, 22: SimC update\n\n2024-08-11: Steady Focus only if talented\n\n2024-08-09: Updates from SimC\n\n2024-08-01: Use Hunter's Mark setting\n\n2024-07-27: Minor sim update; use Hunter's Mark\n\n2024-07-23: The War Within",
["lists"] = {
["trickshots"] = {
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.remains > execute_time & buff.razor_fragments.up",
["action"] = "black_arrow",
},
{
["enabled"] = true,
["criteria"] = "talent.steady_focus.enabled & buff.steady_focus.remains < execute_time & buff.trueshot.down",
["action"] = "steady_shot",
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["action"] = "volley",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.razor_fragments.enabled & buff.trick_shots.remains > execute_time",
["action"] = "black_arrow",
},
{
["enabled"] = true,
["criteria"] = "buff.razor_fragments.up",
["action"] = "kill_shot",
},
{
["enabled"] = true,
["criteria"] = "variable.trueshot_ready",
["action"] = "trueshot",
},
{
["enabled"] = true,
["criteria"] = "talent.rapid_fire_barrage.enabled & buff.trick_shots.remains > execute_time",
["action"] = "barrage",
},
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.remains > execute_time & ( ! talent.lunar_storm.enabled || ( ! cooldown.lunar_storm.remains || cooldown.lunar_storm.remains > 5 || ( action.wailing_arrow.ready & talent.readiness.enabled ) || buff.trueshot.up ) )",
["action"] = "rapid_fire",
["description"] = "Hold Rapid Fire for up to 5s to proc Lunar Storm. Ignore Lunar Storm if Rapid Fire's cooldown can be reset with Wailing Arrow. Ignore all of this in Trueshot or as a Dark Ranger.",
},
{
["enabled"] = true,
["description"] = "With Wailing Arrow and Aimed Shot, target enemies without Serpent Sting or the enemy with the lowest remaining Serpent Sting.",
["action"] = "wailing_arrow",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.trick_shots.remains > execute_time & buff.precise_shots.down",
["action"] = "aimed_shot",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.precise_shots.up || buff.trick_shots.down",
["action"] = "multishot",
},
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "bag_of_tricks",
},
{
["action"] = "steady_shot",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
},
{
["action"] = "tranquilizing_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.trueshot.ready & ( ! raid_event.adds.exists & ( ! talent.bullseye.enabled || fight_remains > cooldown.trueshot.duration_guess + buff.trueshot.duration / 2 || buff.bullseye.stack = buff.bullseye.max_stack ) & ( ! trinket.t1.has_use_buff || trinket.t1.cooldown.remains > 30 || trinket.t1.cooldown.ready ) & ( ! trinket.t2.has_use_buff || trinket.t2.cooldown.remains > 30 || trinket.t2.cooldown.ready ) || raid_event.adds.exists & ( ! raid_event.adds.up & ( raid_event.adds.duration + raid_event.adds.in < 25 || raid_event.adds.in > 60 ) || raid_event.adds.up & raid_event.adds.remains > 10 ) || boss & fight_remains < 25 )",
["var_name"] = "trueshot_ready",
["description"] = "Determine if it is a good time to use Trueshot. Raid event optimization takes priority so usage is saved for multiple targets as long as it won't delay over half its duration. Otherwise allow for small delays to line up buff effect trinkets, and when using Bullseye, delay the last usage of the fight for max stacks.",
},
{
["enabled"] = true,
["criteria"] = "pet.health_pct < pet_healing",
["action"] = "mend_pet",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["criteria"] = "( settings.mark_any || target.is_boss ) & active_dot.hunters_mark = 0 & target.time_to_pct_80 > 20",
["action"] = "hunters_mark",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3 || ! talent.trick_shots.enabled",
["list_name"] = "st",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2",
["list_name"] = "trickshots",
},
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "! talent.lone_wolf.enabled",
["action"] = "summon_pet",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! trinket.t2.has_cooldown || trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff || ! trinket.t1.is.mirror_of_fractured_tomorrows & ( trinket.t2.is.mirror_of_fractured_tomorrows || trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) ) || ! trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) )",
["var_name"] = "trinket_1_stronger",
["description"] = "Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times. Special case to consider Mirror of Fractured Tomorrows weaker than other buff effects since its power is split between the dmg effect and the buff effect.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! variable.trinket_1_stronger",
["var_name"] = "trinket_2_stronger",
},
{
["enabled"] = true,
["criteria"] = "( settings.mark_any || target.is_boss ) & active_dot.hunters_mark = 0 & target.time_to_pct_80 > 20",
["action"] = "hunters_mark",
},
{
["enabled"] = true,
["precast_time"] = "10",
["action"] = "salvo",
},
{
["enabled"] = true,
["criteria"] = "active_enemies < 3 & ( ! talent.volley.enabled || active_enemies < 2 )",
["action"] = "aimed_shot",
["description"] = "Precast Aimed Shot on one or two targets unless we could cleave it with Volley on two targets.",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || talent.volley.enabled & active_enemies = 2",
["action"] = "steady_shot",
["description"] = "Otherwise precast Steady Shot on two targets if we are saving Aimed Shot to cleave with Volley, otherwise on three or more targets.",
},
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.trueshot_ready",
["var_name"] = "sync_ready",
["description"] = "True if effects that are desirable to sync a trinket buff with are ready.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.trueshot.up",
["var_name"] = "sync_active",
["description"] = "True if effecs that are desirable to sync a trinket buff with are active.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.trueshot.remains_guess",
["var_name"] = "sync_remains",
["description"] = "Time until the effects that are desirable to sync a trinket buff with will be ready.",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["description"] = "Uses buff effect trinkets with cooldowns and is willing to delay usage up to half the trinket cooldown if it won't lose a usage in the fight. Fills in downtime with weaker buff effects if they won't also be saved for later cooldowns (happens if it won't delay over half the trinket cooldown and a stronger trinket won't be up in time) or damage effects if they won't inferfere with any buff effect usage. Intended to be slot-agnostic so that any order of the same trinket pair should result in the same usage.",
["criteria"] = "trinket.t1.has_use_buff & ( variable.sync_ready & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || ! variable.sync_ready & ( variable.trinket_1_stronger & ( variable.sync_remains > trinket.t1.cooldown.duration / 3 & fight_remains > trinket.t1.cooldown.duration + 20 || trinket.t2.has_use_buff & trinket.t2.cooldown.remains > variable.sync_remains - 15 & trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 45 > fight_remains ) || variable.trinket_2_stronger & ( trinket.t2.cooldown.remains & ( trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t2.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t1.cooldown.duration / 3 || trinket.t1.cooldown.duration < fight_remains & ( variable.sync_remains + trinket.t1.cooldown.duration > fight_remains ) ) ) || trinket.t2.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t2.cooldown.duration / 3 ) ) ) || ! trinket.t1.has_use_buff & ( trinket.t1.cast_time = 0 || ! variable.sync_active ) & ( ! trinket.t2.has_use_buff & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || trinket.t2.has_use_buff & ( variable.sync_remains > 20 || trinket.t2.cooldown.remains > 20 ) ) || boss & fight_remains < 25 & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains )",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "trinket.t2.has_use_buff & ( variable.sync_ready & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || ! variable.sync_ready & ( variable.trinket_2_stronger & ( variable.sync_remains > trinket.t2.cooldown.duration / 3 & fight_remains > trinket.t2.cooldown.duration + 20 || trinket.t1.has_use_buff & trinket.t1.cooldown.remains > variable.sync_remains - 15 & trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 45 > fight_remains ) || variable.trinket_1_stronger & ( trinket.t1.cooldown.remains & ( trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t1.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t2.cooldown.duration / 3 || trinket.t2.cooldown.duration < fight_remains & ( variable.sync_remains + trinket.t2.cooldown.duration > fight_remains ) ) ) || trinket.t1.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t1.cooldown.duration / 3 ) ) ) || ! trinket.t2.has_use_buff & ( trinket.t2.cast_time = 0 || ! variable.sync_active ) & ( ! trinket.t1.has_use_buff & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || trinket.t1.has_use_buff & ( variable.sync_remains > 20 || trinket.t1.cooldown.remains > 20 ) ) || boss & fight_remains < 25 & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains )",
},
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "black_arrow",
},
{
["enabled"] = true,
["criteria"] = "buff.razor_fragments.up",
["action"] = "kill_shot",
},
{
["enabled"] = true,
["criteria"] = "talent.steady_focus.enabled & buff.steady_focus.remains < execute_time & buff.trueshot.down",
["action"] = "steady_shot",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 || buff.salvo.up",
["action"] = "volley",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & buff.trick_shots.down",
["action"] = "explosive_shot",
},
{
["enabled"] = true,
["criteria"] = "variable.trueshot_ready & talent.multishot.enabled",
["action"] = "trueshot",
["description"] = "TODO: figure out why this is such a big gain for aoe builds in ST",
},
{
["enabled"] = true,
["criteria"] = "buff.salvo.up & ! talent.volley.enabled",
["action"] = "multishot",
["description"] = "Trigger Salvo if Volley isn't being used to trigger it.",
},
{
["enabled"] = true,
["action"] = "aimed_shot",
["cycle_targets"] = 1,
["description"] = "As a Dark Ranger with Readiness, Aimed Shot over Rapid Fire in Trueshot to get more Deathblows.",
["criteria"] = "talent.black_arrow.enabled & talent.readiness.enabled & buff.trueshot.up",
},
{
["enabled"] = true,
["criteria"] = "! talent.lunar_storm.enabled || ( ! cooldown.lunar_storm.remains || cooldown.lunar_storm.remains > 8 || ( action.wailing_arrow.ready & talent.readiness.enabled ) || buff.trueshot.up )",
["action"] = "rapid_fire",
["description"] = "Hold Rapid Fire for up to 8s to proc Lunar Storm. Ignore Lunar Storm if Rapid Fire's cooldown can be reset with Wailing Arrow. Ignore all of this in Trueshot or as a Dark Ranger.",
},
{
["enabled"] = true,
["description"] = "With Wailing Arrow and Aimed Shot, target enemies without Serpent Sting or the enemy with the lowest remaining Serpent Sting.",
["action"] = "wailing_arrow",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "aimed_shot",
["cycle_targets"] = 1,
},
{
["action"] = "black_arrow",
["enabled"] = true,
},
{
["action"] = "kill_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.precise_shot.up & active_enemies > 1 & ( talent.symphonic_arsenal.enabled || talent.small_game_hunter.enabled )",
["action"] = "multishot",
},
{
["enabled"] = true,
["criteria"] = "buff.precise_shot.up",
["action"] = "arcane_shot",
},
{
["enabled"] = true,
["criteria"] = "variable.trueshot_ready",
["action"] = "trueshot",
},
{
["action"] = "volley",
["enabled"] = true,
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["action"] = "steady_shot",
["enabled"] = true,
},
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || boss & fight_remains < 13",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 16",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 16",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up || cooldown.trueshot.remains > 30 || boss & fight_remains < 9",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "buff.trueshot.down",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "buff.trueshot.up & ( buff.bloodlust.up || target.health.pct < 20 ) || boss & fight_remains < 31",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || cooldown.volley.remains < 10",
["action"] = "salvo",
},
},
},
["version"] = 20241029,
["warnings"] = "The import for 'trickshots' required some automated changes.\nLine 2: Converted 'talent.steady_focus' to 'talent.steady_focus.enabled' (1x).\nLine 5: Converted 'talent.razor_fragments' to 'talent.razor_fragments.enabled' (1x).\nLine 8: Converted 'talent.rapid_fire_barrage' to 'talent.rapid_fire_barrage.enabled' (1x).\nLine 9: Converted 'talent.lunar_storm' to 'talent.lunar_storm.enabled' (1x).\nLine 9: Converted 'talent.readiness' to 'talent.readiness.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.bullseye' to 'talent.bullseye.enabled' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 3: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 3: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 3: Converted operations in 'cooldown.trueshot.ready&(!raid_event.adds.exists&(!talent.bullseye.enabled||fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration%2||buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.t1.has_use_buff||trinket.t1.cooldown.remains>30||trinket.t1.cooldown.ready)&(!trinket.t2.has_use_buff||trinket.t2.cooldown.remains>30||trinket.t2.cooldown.ready)||raid_event.adds.exists&(!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<25||raid_event.adds.in>60)||raid_event.adds.up&raid_event.adds.remains>10)||boss&fight_remains<25)' to 'cooldown.trueshot.ready&(!raid_event.adds.exists&(!talent.bullseye.enabled||fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration/2||buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.t1.has_use_buff||trinket.t1.cooldown.remains>30||trinket.t1.cooldown.ready)&(!trinket.t2.has_use_buff||trinket.t2.cooldown.remains>30||trinket.t2.cooldown.ready)||raid_event.adds.exists&(!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<25||raid_event.adds.in>60)||raid_event.adds.up&raid_event.adds.remains>10)||boss&fight_remains<25)'.\nLine 8: Converted 'talent.trick_shots' to 'talent.trick_shots.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'talent.lone_wolf' to 'talent.lone_wolf.enabled' (1x).\nLine 2: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 2: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.is.mirror_of_fractured_tomorrows' to 'trinket.t1.is.mirror_of_fractured_tomorrows' (1x).\nLine 2: Converted 'trinket.2.is.mirror_of_fractured_tomorrows' to 'trinket.t2.is.mirror_of_fractured_tomorrows' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine
["spec"] = 254,
["profile"] = "actions.precombat+=/summon_pet,if=!talent.lone_wolf\n# Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times. Special case to consider Mirror of Fractured Tomorrows weaker than other buff effects since its power is split between the dmg effect and the buff effect.\nactions.precombat+=/variable,name=trinket_1_stronger,value=!trinket.2.has_cooldown||trinket.1.has_use_buff&(!trinket.2.has_use_buff||!trinket.1.is.mirror_of_fractured_tomorrows&(trinket.2.is.mirror_of_fractured_tomorrows||trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration))||!trinket.1.has_use_buff&(!trinket.2.has_use_buff&(trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration))\nactions.precombat+=/variable,name=trinket_2_stronger,value=!variable.trinket_1_stronger\nactions.precombat+=/hunters_mark,if=(settings.mark_any||target.is_boss)&active_dot.hunters_mark=0&target.time_to_pct_80>20\nactions.precombat+=/salvo,precast_time=10\n# Precast Aimed Shot on one or two targets unless we could cleave it with Volley on two targets.\nactions.precombat+=/aimed_shot,if=active_enemies<3&(!talent.volley||active_enemies<2)\n# Otherwise precast Steady Shot on two targets if we are saving Aimed Shot to cleave with Volley, otherwise on three or more targets.\nactions.precombat+=/steady_shot,if=active_enemies>2||talent.volley&active_enemies=2\n\nactions+=/counter_shot\nactions+=/tranquilizing_shot\n# Determine if it is a good time to use Trueshot. Raid event optimization takes priority so usage is saved for multiple targets as long as it won't delay over half its duration. Otherwise allow for small delays to line up buff effect trinkets, and when using Bullseye, delay the last usage of the fight for max stacks.\nactions+=/variable,name=trueshot_ready,value=cooldown.trueshot.ready&(!raid_event.adds.exists&(!talent.bullseye||fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration%2||buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.1.has_use_buff||trinket.1.cooldown.remains>30||trinket.1.cooldown.ready)&(!trinket.2.has_use_buff||trinket.2.cooldown.remains>30||trinket.2.cooldown.ready)||raid_event.adds.exists&(!raid_event.adds.up&(raid_event.adds.duration+raid_event.adds.in<25||raid_event.adds.in>60)||raid_event.adds.up&raid_event.adds.remains>10)||boss&fight_remains<25)\nactions+=/mend_pet,if=pet.health_pct<pet_healing\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=trinkets\nactions+=/hunters_mark,if=(settings.mark_any||target.is_boss)&active_dot.hunters_mark=0&target.time_to_pct_80>20\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<3||!talent.trick_shots\nactions+=/call_action_list,name=trickshots,strict=1,if=active_enemies>2\n\n## Call for Power Infusion when Trueshot is up.\n## actions.cds+=/invoke_external_buff,name=power_infusion,if=buff.trueshot.remains>12||fight_remains<13\nactions.cds+=/berserking,if=buff.trueshot.up||boss&fight_remains<13\nactions.cds+=/blood_fury,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<16\nactions.cds+=/ancestral_call,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<16\nactions.cds+=/fireblood,if=buff.trueshot.up||cooldown.trueshot.remains>30||boss&fight_remains<9\nactions.cds+=/lights_judgment,if=buff.trueshot.down\nactions.cds+=/potion,if=buff.trueshot.up&(buff.bloodlust.up||target.health.pct<20)||boss&fight_remains<31\nactions.cds+=/salvo,if=active_enemies>2||cooldown.volley.remains<10\n\nactions.st+=/black_arrow,if=buff.trueshot.down\nactions.st+=/kill_shot,if=buff.razor_fragments.up\nactions.st+=/steady_shot,if=talent.steady_focus&buff.steady_focus.remains<execute_time&buff.trueshot.down\nactions.st+=/volley,if=active_enemies>1||buff.sal
},
["Restoration Druid"] = {
["builtIn"] = true,
["date"] = 20241110,
["spec"] = 105,
["desc"] = "2024-11-10: Syrif's healing mode support\n\n2024-09-01, 09-08: When in Cat Form, do cat things\n\n2024-07-30: The War Within",
["lists"] = {
["default"] = {
{
["action"] = "skull_bash",
["enabled"] = true,
},
{
["action"] = "berserking",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "natures_vigil",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "settings.healing_mode",
["list_name"] = "healing",
},
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "heart_of_the_wild",
},
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "use_items",
},
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up & ! buff.shadowmeld.up",
["action"] = "potion",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.rake.enabled || buff.cat_form.up",
["list_name"] = "cat",
},
{
["enabled"] = true,
["criteria"] = "talent.rake.enabled",
["action"] = "cat_form",
},
{
["enabled"] = true,
["criteria"] = "( buff.heart_of_the_wild.up || cooldown.heart_of_the_wild.remains > 60 - 30 * talent.cenarius_guidance.enabled || ! talent.heart_of_the_wild.enabled )",
["action"] = "convoke_the_spirits",
},
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5 & talent.improved_sunfire.enabled",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & time_to_die > 12",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies < 8",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 7 & active_enemies < 7",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "spell_targets.starfire > 1 || buff.heart_of_the_wild.up",
["action"] = "starfire",
},
{
["action"] = "wrath",
["enabled"] = true,
},
},
["healing"] = {
{
["enabled"] = true,
["action"] = "rejuvenation",
["caption"] = "Tank",
["description"] = "On the tank",
["criteria"] = "active_dot.rejuvenation < 1",
},
{
["enabled"] = true,
["action"] = "lifebloom",
["caption"] = "Ally",
["description"] = "On an ally",
["criteria"] = "( active_dot.lifebloom < 1 ) || ( active_dot.lifebloom < 2 & buff.lifebloom.up & talent.undergrowth.enabled )",
},
{
["enabled"] = true,
["action"] = "lifebloom",
["caption"] = "Self",
["description"] = "On yourself",
["criteria"] = "( active_dot.lifebloom < 2 & buff.lifebloom.down & talent.undergrowth.enabled )",
},
{
["enabled"] = true,
["action"] = "efflorescence",
["description"] = "Maintain Efflo",
["criteria"] = "buff.efflorescence.down",
},
{
["enabled"] = true,
["action"] = "swiftmend",
["caption"] = "TREE",
["description"] = "transform into tree",
["criteria"] = "( active_dot.regrowth + active_dot.wild_growth + active_dot.rejuvenation ) > 1 & talent.reforestation.enabled & buff.reforestation.stack = 3",
},
{
["enabled"] = true,
["action"] = "wild_growth",
["description"] = "Always wild growth after swiftmend",
["criteria"] = "prev.1.swiftmend",
},
},
["cat"] = {
{
["enabled"] = true,
["criteria"] = "buff.shadowmeld.up || buff.prowl.up || buff.sudden_ambush.up",
["action"] = "rake",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.convoke_the_spirits.remains < 40 || ! talent.convoke_the_spirits.enabled ) || fight_remains < 46",
["action"] = "heart_of_the_wild",
},
{
["enabled"] = true,
["criteria"] = "( ( refreshable || energy > 90 & remains <= 10 ) & ( combo_points = 5 & time_to_die > remains + 24 || ( remains + combo_points * 4 < time_to_die & remains + 4 + combo_points * 4 > time_to_die ) ) || ! ticking & combo_points > 2 + spell_targets.swipe_cat * 2 )",
["action"] = "rip",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 7 & spell_targets.thrash_cat > 2",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( refreshable & target.time_to_die > 5 ) & ! prev_gcd.1.cat_form & ( active_enemies = 1 || talent.improved_sunfire.enabled )",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & time_to_die > 10 & spell_targets.swipe_cat < 10",
["action"] = "rake",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up & energy > 50 & ( dot.rake.refreshable & spell_targets.thrash_cat > 3 & spell_targets.thrash_cat < 7 & talent.thrash.enabled )",
["action"] = "cat_form",
},
{
["enabled"] = true,
["criteria"] = "( refreshable & time_to_die > 12 & ! ticking || ( prev_gcd.1.sunfire & remains < duration * 0.8 & spell_targets.sunfire = 1 ) ) & ! prev_gcd.1.cat_form & spell_targets.swipe_cat < 6",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.moonfire & remains < duration * 0.8",
["action"] = "sunfire",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 || ( active_enemies < 8 & ! buff.cat_form.up )",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up & energy > 50",
["action"] = "cat_form",
},
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["criteria"] = "combo_points > 3 & target.time_to_die < 3 || combo_points = 5 & energy >= 50",
["action"] = "ferocious_bite",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 6 & ( spell_targets.thrash_cat > 1 || talent.liveliness.enabled )",
["action"] = "thrash_cat",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 3 & combo_points < 5 & talent.improved_swipe.enabled",
["action"] = "swipe_cat",
},
{
["enabled"] = true,
["criteria"] = "refreshable & target.time_to_die > 5 & active_enemies < 7 & ! talent.improved_sunfire.enabled",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["criteria"] = "energy > 60 & combo_points < 5",
["action"] = "shred",
},
},
["precombat"] = {
{
["enabled"] = true,
["description"] = "Snapshot raid buffed stats before combat begins and pre-potting is done.",
["action"] = "mark_of_the_wild",
},
{
["action"] = "heart_of_the_wild",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.rake.enabled",
["action"] = "cat_form",
},
{
["enabled"] = true,
["criteria"] = "talent.rake.enabled",
["action"] = "prowl",
},
},
},
["version"] = 20241110,
["warnings"] = "Imported 4 action lists.\n",
["author"] = "Makahiki",
["profile"] = "# Snapshot raid buffed stats before combat begins and pre-potting is done.\nactions.precombat+=/mark_of_the_wild\nactions.precombat+=/heart_of_the_wild\nactions.precombat+=/cat_form,if=talent.rake.enabled\nactions.precombat+=/prowl,if=talent.rake.enabled\n\nactions+=/skull_bash\nactions+=/berserking\nactions+=/natures_vigil,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/call_action_list,name=healing,if=settings.healing_mode\nactions+=/heart_of_the_wild,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/use_items,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/potion,if=!buff.prowl.up&!buff.shadowmeld.up\nactions+=/run_action_list,name=cat,strict=1,if=talent.rake.enabled||buff.cat_form.up\nactions+=/cat_form,if=talent.rake.enabled\nactions+=/convoke_the_spirits,if=(buff.heart_of_the_wild.up||cooldown.heart_of_the_wild.remains>60-30*talent.cenarius_guidance.enabled||!talent.heart_of_the_wild.enabled)\nactions+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>5&talent.improved_sunfire.enabled\nactions+=/moonfire,cycle_targets=1,if=refreshable&time_to_die>12\nactions+=/starsurge,if=active_enemies<8\nactions+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>7&active_enemies<7\nactions+=/starfire,if=spell_targets.starfire>1||buff.heart_of_the_wild.up\nactions+=/wrath\n\nactions.cat+=/rake,if=buff.shadowmeld.up||buff.prowl.up||buff.sudden_ambush.up\nactions.cat+=/heart_of_the_wild,if=(cooldown.convoke_the_spirits.remains<40||!talent.convoke_the_spirits.enabled)||fight_remains<46\nactions.cat+=/rip,cycle_targets=1,if=((refreshable||energy>90&remains<=10)&(combo_points=5&time_to_die>remains+24||(remains+combo_points*4<time_to_die&remains+4+combo_points*4>time_to_die))||!ticking&combo_points>2+spell_targets.swipe_cat*2)\nactions.cat+=/pool_resource,for_next=1\nactions.cat+=/thrash_cat,cycle_targets=1,if=refreshable&target.time_to_die>7&spell_targets.thrash_cat>2\nactions.cat+=/sunfire,cycle_targets=1,if=(refreshable&target.time_to_die>5)&!prev_gcd.1.cat_form&(active_enemies=1||talent.improved_sunfire.enabled)\nactions.cat+=/rake,cycle_targets=1,if=refreshable&time_to_die>10&spell_targets.swipe_cat<10\nactions.cat+=/cat_form,if=!buff.cat_form.up&energy>50&(dot.rake.refreshable&spell_targets.thrash_cat>3&spell_targets.thrash_cat<7&talent.thrash.enabled)\nactions.cat+=/moonfire,cycle_targets=1,if=(refreshable&time_to_die>12&!ticking||(prev_gcd.1.sunfire&remains<duration*0.8&spell_targets.sunfire=1))&!prev_gcd.1.cat_form&spell_targets.swipe_cat<6\nactions.cat+=/sunfire,if=prev_gcd.1.moonfire&remains<duration*0.8\nactions.cat+=/starsurge,if=active_enemies=1||(active_enemies<8&!buff.cat_form.up)\nactions.cat+=/cat_form,if=!buff.cat_form.up&energy>50\nactions.cat+=/pool_resource,for_next=1\nactions.cat+=/ferocious_bite,cycle_targets=1,if=combo_points>3&target.time_to_die<3||combo_points=5&energy>=50\nactions.cat+=/thrash_cat,cycle_targets=1,if=refreshable&target.time_to_die>6&(spell_targets.thrash_cat>1||talent.liveliness.enabled)\nactions.cat+=/swipe_cat,if=active_enemies>3&combo_points<5&talent.improved_swipe.enabled\nactions.cat+=/sunfire,cycle_targets=1,if=refreshable&target.time_to_die>5&active_enemies<7&!talent.improved_sunfire.enabled\nactions.cat+=/pool_resource,for_next=1\nactions.cat+=/shred,if=energy>60&combo_points<5\n\n# On the tank\nactions.healing+=/rejuvenation,if=active_dot.rejuvenation<1\n# On an ally\nactions.healing+=/lifebloom,if=(active_dot.lifebloom<1)||(active_dot.lifebloom<2&buff.lifebloom.up&talent.undergrowth.enabled)\n# On yourself\nactions.healing+=/lifebloom,if=(active_dot.lifebloom<2&buff.lifebloom.down&talent.undergrowth.enabled)\n# Maintain Efflo\nactions.healing+=/efflorescence,if=buff.efflorescence.down\n# transform into tree\nactions.healing+=/swiftmend,if=(active_dot.regrowth+active_dot.wild_growth+active_dot.rejuvenation)>1&talent.reforestation.enabled&buff.reforestation.stack=3\n# Always wild growth after swiftmend\nactions.healing+=/wild_growth,if=prev.1.swiftmend",
},
["Enhancement"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/dragonflight/engine/class_modules/sc_shaman.cpp",
["builtIn"] = true,
["date"] = 20241109.1,
["spec"] = 263,
["desc"] = "2024-11-09: Spread Flame Shock before Ascendance (SB); use Tempest to swap Thorim's Invocation\n\n2024-11-03: SimC update; Thorim's Invocation\n\n2024-11-02: 11.0.5 Revamp; fix Funnel; 2nd SimC update\n\n2024-10-29: Totemic WiP and EB fixes\n\n2024-10-27: Voltaic Blaze\n\n2024-10-23: Add missed single target changes; Totemic\n - Funnel / cycling adjustments\n\n2024-10-22: 11.0.5\n\n2024-10-16, 10-21: SimC updates; Thorim's Invocation adjustment\n\n2024-09-30: Test Lava Lash in AOE\n\n2024-09-09: SimC update\n\n2024-09-08: Fix filler_shock\n\n2024-08-22, 08-24, 08-25: SimC priority update\n\n2024-07-23: The War Within",
["lists"] = {
["single"] = {
{
["enabled"] = true,
["criteria"] = "talent.elemental_spirits.enabled",
["action"] = "feral_spirit",
},
{
["enabled"] = true,
["criteria"] = "talent.thorims_invocation.enabled & buff.maelstrom_weapon.stack > 0 & ti_lightning_bolt & ! talent.elemental_spirits.enabled",
["action"] = "windstrike",
},
{
["enabled"] = true,
["criteria"] = "! dot.flame_shock.ticking & talent.molten_assault.enabled",
["action"] = "primordial_wave",
},
{
["enabled"] = true,
["criteria"] = "talent.lashing_flames.enabled & debuff.lashing_flames.down",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack < 2 & cooldown.ascendance.remains = 0",
["action"] = "stormstrike",
},
{
["action"] = "feral_spirit",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "[Hekili] Avoid delaying Ascendance due to Thorim's Invocation",
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_lightning_bolt",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_lightning_bolt",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "dot.flame_shock.ticking & ti_lightning_bolt & active_enemies = 1 & buff.maelstrom_weapon.stack >= 2",
["action"] = "ascendance",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack || ( buff.tempest.stack = buff.tempest.max_stack & ( tempest_mael_count > 30 || buff.awakening_storms.stack = 2 ) & buff.maelstrom_weapon.stack >= 5 )",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & talent.elemental_spirits.enabled & feral_spirit.active >= 6 & ( charges_fractional >= 1.8 || buff.ascendance.up )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.thorims_invocation.enabled & buff.maelstrom_weapon.stack > 0 & ti_lightning_bolt & charges = max_charges",
["action"] = "windstrike",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_spirits.enabled & talent.ascendance.enabled & buff.maelstrom_weapon.stack >= 2",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "talent.thorims_invocation.enabled & buff.maelstrom_weapon.up & ti_lightning_bolt",
["action"] = "windstrike",
},
{
["enabled"] = true,
["criteria"] = "! ticking & talent.ashen_catalyst.enabled",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & buff.primordial_wave.up",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.overflowing_maelstrom.enabled & buff.maelstrom_weapon.stack >= 5 ) || ( buff.maelstrom_weapon.stack >= 10 - 2 * talent.elemental_spirits.enabled )",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "! talent.deeply_rooted_elements.enabled",
["action"] = "primordial_wave",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 8 & feral_spirit.active >= 4 & ( ! buff.ascendance.up || charges_fractional >= 1.8 )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 8 + 2 * talent.legacy_of_the_frost_witch.enabled",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & ! talent.legacy_of_the_frost_witch.enabled & ( talent.deeply_rooted_elements.enabled || ! talent.overflowing_maelstrom.enabled || ! talent.witch_doctors_ancestry.enabled )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up & talent.elemental_spirits.enabled & ! talent.witch_doctors_ancestry.enabled",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "buff.arc_discharge.up & talent.deeply_rooted_elements.enabled",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.hot_hand.up || ( buff.ashen_catalyst.stack = buff.ashen_catalyst.max_stack )",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "buff.doom_winds.up || ( talent.stormblast.enabled & buff.stormsurge.up & charges = max_charges )",
["action"] = "stormstrike",
},
{
["enabled"] = true,
["criteria"] = "talent.lashing_flames.enabled & ! buff.doom_winds.up",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up & talent.elemental_spirits.enabled & ! buff.doom_winds.up",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.unrelenting_storms.enabled & talent.elemental_spirits.enabled & ! talent.deeply_rooted_elements.enabled",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_assault.enabled & talent.swirling_maelstrom.enabled & talent.witch_doctors_ancestry.enabled",
["action"] = "ice_strike",
},
{
["action"] = "stormstrike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & talent.ascendance.enabled & ! talent.legacy_of_the_frost_witch.enabled",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "talent.unrelenting_storms.enabled",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "! talent.elemental_spirits.enabled",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "buff.hailstorm.up & buff.ice_strike.up & talent.swirling_maelstrom.enabled & talent.ascendance.enabled",
["action"] = "frost_shock",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & feral_spirit.active >= 4 & talent.deeply_rooted_elements.enabled & ( charges_fractional >= 1.8 || ( buff.molten_weapon.stack + buff.icy_edge.stack >= 4 ) ) & ! talent.flowing_spirits.enabled",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.alpha_wolf.enabled & feral_spirit.active & alpha_wolf_min_remains = 0",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "! ticking & ! talent.tempest.enabled",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_spirits.enabled",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_assault.enabled & talent.tempest.enabled & talent.molten_assault.enabled & talent.deeply_rooted_elements.enabled & dot.flame_shock.ticking",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_assault.enabled & talent.swirling_maelstrom.enabled",
["action"] = "ice_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.arc_discharge.up",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "talent.unrelenting_storms.enabled",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_assault.enabled & talent.tempest.enabled & talent.molten_assault.enabled & dot.flame_shock.ticking",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "buff.hailstorm.up & buff.ice_strike.up & talent.swirling_maelstrom.enabled & talent.tempest.enabled",
["action"] = "frost_shock",
},
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.lashing_flames.enabled",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "! buff.ice_strike.up",
["action"] = "ice_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.hailstorm.up",
["action"] = "frost_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.converging_storms.enabled",
["action"] = "crash_lightning",
},
{
["action"] = "lava_lash",
["enabled"] = true,
},
{
["action"] = "ice_strike",
["enabled"] = true,
},
{
["action"] = "windstrike",
["enabled"] = true,
},
{
["action"] = "stormstrike",
["enabled"] = true,
},
{
["action"] = "sundering",
["enabled"] = true,
},
{
["action"] = "frost_shock",
["enabled"] = true,
},
{
["action"] = "crash_lightning",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock",
["action"] = "fire_nova",
},
{
["action"] = "earth_elemental",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "settings.filler_shock",
["action"] = "flame_shock",
},
},
["funnel"] = {
{
["enabled"] = true,
["criteria"] = "talent.elemental_spirits.enabled",
["action"] = "feral_spirit",
},
{
["action"] = "surging_totem",
["enabled"] = true,
},
{
["action"] = "ascendance",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( talent.thorims_invocation.enabled & buff.maelstrom_weapon.stack > 0 ) || buff.converging_storms.stack = buff.converging_storms.max_stack",
["action"] = "windstrike",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack || ( buff.maelstrom_weapon.stack >= 5 & ( tempest_mael_count > 30 || buff.awakening_storms.stack = 2 ) )",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "( active_dot.flame_shock >= active_enemies || active_dot.flame_shock = 6 ) & buff.primordial_wave.up & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( ! buff.splintered_elements.up || fight_remains <= 12 || raid_event.adds.remains <= gcd.max )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & talent.elemental_spirits.enabled & feral_spirit.active >= 4",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.supercharge.enabled & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( variable.expected_lb_funnel > variable.expected_cl_funnel )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "( talent.supercharge.enabled & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack ) || buff.arc_discharge.up & buff.maelstrom_weapon.stack >= 5",
["action"] = "chain_lightning",
},
{
["enabled"] = true,
["criteria"] = "( talent.molten_assault.enabled & dot.flame_shock.ticking & ( active_dot.flame_shock < active_enemies ) & active_dot.flame_shock < 6 ) || ( talent.ashen_catalyst.enabled & buff.ashen_catalyst.stack = buff.ashen_catalyst.max_stack )",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["action"] = "primordial_wave",
["criteria"] = "! buff.primordial_wave.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( ! talent.elemental_spirits.enabled || ( talent.elemental_spirits.enabled & ( charges = max_charges || buff.feral_spirit.up ) ) ) & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack",
["action"] = "elemental_blast",
},
{
["action"] = "feral_spirit",
["enabled"] = true,
},
{
["action"] = "doom_winds",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.converging_storms.stack = buff.converging_storms.max_stack",
["action"] = "stormstrike",
},
{
["enabled"] = true,
["criteria"] = "( buff.molten_weapon.stack > buff.crackling_surge.stack ) & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack",
["action"] = "lava_burst",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( variable.expected_lb_funnel > variable.expected_cl_funnel )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack",
["action"] = "chain_lightning",
},
{
["enabled"] = true,
["criteria"] = "buff.doom_winds.up || ! buff.crash_lightning.up || ( talent.alpha_wolf.enabled & feral_spirit.active & alpha_wolf_min_remains = 0 ) || ( talent.converging_storms.enabled & buff.converging_storms.stack < buff.converging_storms.max_stack )",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "buff.doom_winds.up || talent.earthsurge.enabled",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock = 6 || ( active_dot.flame_shock >= 4 & active_dot.flame_shock >= active_enemies )",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & ! buff.ice_strike.up",
["action"] = "ice_strike",
},
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & buff.hailstorm.up",
["action"] = "frost_shock",
},
{
["action"] = "sundering",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & ! ticking",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["action"] = "flame_shock",
["criteria"] = "refreshable & ( talent.fire_nova.enabled || talent.primordial_wave.enabled ) & ( active_dot.flame_shock < active_enemies ) & active_dot.flame_shock < 6",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock >= 3",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "buff.crash_lightning.up & talent.deeply_rooted_elements.enabled",
["action"] = "stormstrike",
},
{
["enabled"] = true,
["criteria"] = "talent.crashing_storms.enabled & buff.cl_crash_lightning.up & active_enemies >= 4",
["action"] = "crash_lightning",
},
{
["action"] = "windstrike",
["enabled"] = true,
},
{
["action"] = "stormstrike",
["enabled"] = true,
},
{
["action"] = "ice_strike",
["enabled"] = true,
},
{
["action"] = "lava_lash",
["enabled"] = true,
},
{
["action"] = "crash_lightning",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock >= 2",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.elemental_spirits.enabled || ( talent.elemental_spirits.enabled & ( charges = max_charges || buff.feral_spirit.up ) ) ) & buff.maelstrom_weapon.stack >= 5",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "( buff.molten_weapon.stack > buff.crackling_surge.stack ) & buff.maelstrom_weapon.stack >= 5",
["action"] = "lava_burst",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & ( variable.expected_lb_funnel > variable.expected_cl_funnel )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5",
["action"] = "chain_lightning",
},
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "! talent.hailstorm.enabled",
["action"] = "frost_shock",
},
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || boss & ( fight_remains % 300 <= 30 ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["action"] = "potion",
},
{
["enabled"] = true,
["description"] = "Interrupt of casts.",
["action"] = "wind_shear",
},
{
["enabled"] = true,
["action"] = "purge",
["criteria"] = "buff.dispellable_magic.up",
["line_cd"] = "settings.purge_icd",
},
{
["enabled"] = true,
["criteria"] = "buff.dispellable_magic.up",
["action"] = "greater_purge",
},
{
["enabled"] = true,
["name"] = "elementium_pocket_anvil",
["action"] = "elementium_pocket_anvil",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["use_off_gcd"] = 1,
["name"] = "algethar_puzzle_box",
["criteria"] = "( ! buff.ascendance.up & ! buff.feral_spirit.up & ! buff.doom_winds.up ) || ( talent.ascendance.enabled & ( cooldown.ascendance.remains < 2 * action.stormstrike.gcd ) ) || ( fight_remains % 180 <= 30 )",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket1_is_weird & trinket.t1.has_use_buff & ( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || boss & ( fight_remains % trinket.t1.cooldown.duration <= trinket.t1.buff_duration ) || ( variable.min_talented_cd_remains >= trinket.t1.cooldown.duration ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket2_is_weird & trinket.t2.has_use_buff & ( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || boss & ( fight_remains % trinket.t2.cooldown.duration <= trinket.t2.buff_duration ) || ( variable.min_talented_cd_remains >= trinket.t2.cooldown.duration ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "beacon_to_the_beyond",
["use_off_gcd"] = 1,
["name"] = "beacon_to_the_beyond",
["criteria"] = "( ! buff.ascendance.up & ! buff.feral_spirit.up & ! buff.doom_winds.up ) || boss & ( fight_remains % 150 <= 5 )",
},
{
["enabled"] = true,
["action"] = "manic_grieftorch",
["use_off_gcd"] = 1,
["name"] = "manic_grieftorch",
["criteria"] = "( ! buff.ascendance.up & ! buff.feral_spirit.up & ! buff.doom_winds.up ) || boss & ( fight_remains % 120 <= 5 )",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket1_is_weird & ! trinket.t1.has_use_buff",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket2_is_weird & ! trinket.t2.has_use_buff",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || boss & ( fight_remains % action.blood_fury.cooldown <= action.blood_fury.duration ) || ( variable.min_talented_cd_remains >= action.blood_fury.cooldown ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || boss & ( fight_remains % action.berserking.cooldown <= action.berserking.duration ) || ( variable.min_talented_cd_remains >= action.berserking.cooldown ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || ( boss & fight_remains % action.fireblood.cooldown <= action.fireblood.duration ) || ( variable.min_talented_cd_remains >= action.fireblood.cooldown ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "( buff.ascendance.up || buff.feral_spirit.up || buff.doom_winds.up || boss & ( fight_remains % action.ancestral_call.cooldown <= action.ancestral_call.duration ) || ( variable.min_talented_cd_remains >= action.ancestral_call.cooldown ) || ( ! talent.ascendance.enabled & ! talent.feral_spirit.enabled & ! talent.doom_winds.enabled ) )",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 1 & ! talent.surging_totem.enabled",
["list_name"] = "single",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies = 1 & talent.surging_totem.enabled",
["list_name"] = "single_totemic",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 1 & ! toggle.funnel & ! talent.surging_totem.enabled",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 1 & ! toggle.funnel & talent.surging_totem.enabled",
["list_name"] = "aoe_totemic",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 1 & toggle.funnel",
["list_name"] = "funnel",
},
},
["precombat"] = {
{
["action"] = "windfury_weapon",
["enabled"] = true,
},
{
["action"] = "flametongue_weapon",
["enabled"] = true,
},
{
["action"] = "lightning_shield",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.algethar_puzzle_box || trinket.t1.is.manic_grieftorch || trinket.t1.is.elementium_pocket_anvil || trinket.t1.is.beacon_to_the_beyond",
["var_name"] = "trinket1_is_weird",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.algethar_puzzle_box || trinket.t2.is.manic_grieftorch || trinket.t2.is.elementium_pocket_anvil || trinket.t2.is.beacon_to_the_beyond",
["var_name"] = "trinket2_is_weird",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ( cooldown.feral_spirit.remains / ( 4 * talent.witch_doctors_ancestry.enabled ) ) + 1000 * ! talent.feral_spirit.enabled ) >? ( cooldown.doom_winds.remains + 1000 * ! talent.doom_winds.enabled ) >? ( cooldown.ascendance.remains + 1000 * ! talent.ascendance.enabled )",
["var_name"] = "min_talented_cd_remains",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 1 + debuff.chaos_brand.up * debuff.chaos_brand.value ) * ( 1 + ( debuff.hunters_mark.up * target.health.pct >= 80 ) * debuff.hunters_mark.value )",
["var_name"] = "target_nature_mod",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "action.lightning_bolt.damage * ( 1 + debuff.lightning_rod.up * variable.target_nature_mod * ( 1 + buff.primordial_wave.up * active_dot.flame_shock * buff.primordial_wave.value ) * debuff.lightning_rod.value )",
["var_name"] = "expected_lb_funnel",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "action.chain_lightning.damage * ( 1 + debuff.lightning_rod.up * variable.target_nature_mod * ( active_enemies >? ( 3 + 2 * talent.crashing_storms.enabled ) ) * debuff.lightning_rod.value )",
["var_name"] = "expected_cl_funnel",
},
},
["single_totemic"] = {
{
["action"] = "surging_totem",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "[Hekili] Avoid delaying Ascendance due to Thorim's Invocation",
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_lightning_bolt",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_lightning_bolt",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "ti_lightning_bolt & pet.surging_totem.remains > 4 & ( buff.totemic_rebound.stack >= 3 || buff.maelstrom_weapon.up )",
["action"] = "ascendance",
},
{
["enabled"] = true,
["criteria"] = "! talent.elemental_spirits.enabled & buff.legacy_of_the_frost_witch.up",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "buff.ascendance.up & pet.surging_totem.active & talent.earthsurge.enabled & buff.legacy_of_the_frost_witch.up & buff.totemic_rebound.stack >= 5 & buff.earthen_weapon.stack >= 2",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "talent.unrelenting_storms.enabled & talent.alpha_wolf.enabled & alpha_wolf_min_remains = 0 & buff.earthen_weapon.stack >= 8",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "talent.thorims_invocation.enabled & buff.maelstrom_weapon.stack > 0 & ti_lightning_bolt & ! talent.elemental_spirits.enabled",
["action"] = "windstrike",
},
{
["enabled"] = true,
["criteria"] = "buff.legacy_of_the_frost_witch.up & cooldown.ascendance.remains >= 10 & pet.surging_totem.active & buff.totemic_rebound.stack >= 3 & ! buff.ascendance.up",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "! dot.flame_shock.ticking & talent.molten_assault.enabled",
["action"] = "primordial_wave",
},
{
["action"] = "feral_spirit",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & talent.elemental_spirits.enabled & feral_spirit.active >= 6 & ( charges_fractional >= 1.8 || buff.ascendance.up )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up & buff.whirling_earth.up",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.unrelenting_storms.enabled & talent.alpha_wolf.enabled & alpha_wolf_min_remains = 0",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "! ticking & talent.lashing_flames.enabled",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "buff.hot_hand.up & ! talent.legacy_of_the_frost_witch.enabled",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & charges = max_charges",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 8 & buff.primordial_wave.up & ( ! buff.splintered_elements.up || fight_remains <= 12 )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 8 & ( feral_spirit.active >= 2 || ! talent.elemental_spirits.enabled )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "! talent.thorims_invocation.enabled & buff.maelstrom_weapon.stack >= 5",
["action"] = "lava_burst",
},
{
["action"] = "primordial_wave",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & ( charges_fractional >= 1.8 || ( buff.molten_weapon.stack + buff.icy_edge.stack >= 4 ) ) & talent.ascendance.enabled & ( feral_spirit.active >= 4 || ! talent.elemental_spirits.enabled )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.ascendance.enabled & ( buff.maelstrom_weapon.stack >= 10 || ( buff.maelstrom_weapon.stack >= 5 & buff.whirling_air.up & ! buff.legacy_of_the_frost_witch.up ) )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.ascendance.enabled & ( buff.maelstrom_weapon.stack >= 10 || ( buff.maelstrom_weapon.stack >= 5 & buff.whirling_air.up & ! buff.legacy_of_the_frost_witch.up ) )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.hot_hand.up & talent.molten_assault.enabled & pet.searing_totem.active",
["action"] = "lava_lash",
},
{
["action"] = "windstrike",
["enabled"] = true,
},
{
["action"] = "stormstrike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "talent.unrelenting_storms.enabled",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & talent.ascendance.enabled",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "! buff.ice_strike.up",
["action"] = "ice_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.hailstorm.up & pet.searing_totem.active",
["action"] = "frost_shock",
},
{
["action"] = "lava_lash",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 5 & feral_spirit.active >= 4 & talent.deeply_rooted_elements.enabled & ( charges_fractional >= 1.8 || ( buff.icy_edge.stack + buff.molten_weapon.stack >= 4 ) )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "talent.elemental_spirits.enabled",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "! ticking & ! talent.voltaic_blaze.enabled",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "buff.hailstorm.up",
["action"] = "frost_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.converging_storms.enabled",
["action"] = "crash_lightning",
},
{
["action"] = "frost_shock",
["enabled"] = true,
},
{
["action"] = "crash_lightning",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock",
["action"] = "fire_nova",
},
{
["action"] = "earth_elemental",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.voltaic_blaze.enabled",
["action"] = "flame_shock",
},
},
["aoe_totemic"] = {
{
["action"] = "surging_totem",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "[Hekili] Avoid delaying Ascendance due to Thorim's Invocation",
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_chain_lightning",
["action"] = "chain_lightning",
},
{
["enabled"] = true,
["criteria"] = "ti_chain_lightning",
["action"] = "ascendance",
},
{
["enabled"] = true,
["criteria"] = "buff.ascendance.up & pet.surging_totem.active & talent.earthsurge.enabled & ( buff.legacy_of_the_frost_witch.up || ! talent.legacy_of_the_frost_witch.enabled )",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "talent.crashing_storms.enabled & ( active_enemies >= 15 - 5 * talent.unruly_winds.enabled )",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "( ( active_dot.flame_shock >= active_enemies || active_dot.flame_shock = 6 ) & buff.primordial_wave.up & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( ! buff.splintered_elements.up || fight_remains <= 12 || raid_event.adds.remains <= gcd.max ) )",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "! talent.elemental_spirits.enabled & ( buff.legacy_of_the_frost_witch.up || ! talent.legacy_of_the_frost_witch.enabled )",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & ( talent.primordial_wave.enabled || talent.fire_nova.enabled ) & dot.flame_shock.ticking & active_dot.flame_shock < active_enemies & active_dot.flame_shock < 6",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["action"] = "primordial_wave",
["criteria"] = "! buff.primordial_wave.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( ! talent.elemental_spirits.enabled || ( talent.elemental_spirits.enabled & ( charges = max_charges || feral_spirit.active >= 2 ) ) ) & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( ! talent.crashing_storms.enabled || active_enemies <= 3 )",
["action"] = "elemental_blast",
},
{
["enabled"] = true,
["criteria"] = "buff.maelstrom_weapon.stack >= 10",
["action"] = "chain_lightning",
},
{
["action"] = "feral_spirit",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.legacy_of_the_frost_witch.up || ! talent.legacy_of_the_frost_witch.enabled",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "buff.doom_winds.up || ! buff.crash_lightning.up || ( talent.alpha_wolf.enabled & feral_spirit.active & alpha_wolf_min_remains = 0 )",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "buff.doom_winds.up || talent.earthsurge.enabled & ( buff.legacy_of_the_frost_witch.up || ! talent.legacy_of_the_frost_witch.enabled ) & pet.surging_totem.active",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock = 6 || ( active_dot.flame_shock >= 4 & active_dot.flame_shock >= cycle_enemies )",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["action"] = "lava_lash",
["criteria"] = "talent.lashing_flames.enabled",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & dot.flame_shock.ticking",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & ! buff.ice_strike.up",
["action"] = "ice_strike",
},
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & buff.hailstorm.up",
["action"] = "frost_shock",
},
{
["enabled"] = true,
["criteria"] = "( buff.legacy_of_the_frost_witch.up || ! talent.legacy_of_the_frost_witch.enabled ) & pet.surging_totem.active",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & ! ticking",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["action"] = "flame_shock",
["criteria"] = "refreshable & ( talent.fire_nova.enabled || talent.primordial_wave.enabled ) & ( active_dot.flame_shock < active_enemies ) & active_dot.flame_shock < 6",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock >= 3",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "buff.crash_lightning.up & ( talent.deeply_rooted_elements.enabled || buff.converging_storms.stack = buff.converging_storms.max_stack )",
["action"] = "stormstrike",
},
{
["enabled"] = true,
["criteria"] = "talent.crashing_storms.enabled & buff.cl_crash_lightning.up & active_enemies >= 4",
["action"] = "crash_lightning",
},
{
["action"] = "windstrike",
["enabled"] = true,
},
{
["action"] = "stormstrike",
["enabled"] = true,
},
{
["action"] = "ice_strike",
["enabled"] = true,
},
{
["action"] = "lava_lash",
["enabled"] = true,
},
{
["action"] = "crash_lightning",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock >= 2",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["action"] = "elemental_blast",
["criteria"] = "( ! talent.elemental_spirits.enabled || ( talent.elemental_spirits.enabled & ( charges = max_charges || feral_spirit.active >= 2 ) ) ) & buff.maelstrom_weapon.stack >= 5 & ( ! talent.crashing_storms.enabled || active_enemies <= 3 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "chain_lightning",
["criteria"] = "buff.maelstrom_weapon.stack >= 5",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "flame_shock",
},
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "talent.elemental_spirits.enabled || talent.alpha_wolf.enabled",
["action"] = "feral_spirit",
},
{
["enabled"] = true,
["description"] = "[Hekili] Avoid delaying Ascendance due to Thorim's Invocation",
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_chain_lightning",
["action"] = "tempest",
},
{
["enabled"] = true,
["criteria"] = "cast_time = 0 & talent.ascendance.enabled & cooldown.ascendance.remains < 2 * gcd.max & talent.thorims_invocation.enabled & ! ti_chain_lightning",
["action"] = "chain_lightning",
},
{
["enabled"] = true,
["criteria"] = "dot.flame_shock.ticking & ( cooldown.lava_lash.remains || active_dot.flame_shock >= active_enemies || active_dot.flame_shock = 6 ) & ti_chain_lightning",
["action"] = "ascendance",
},
{
["enabled"] = true,
["action"] = "tempest",
["criteria"] = "! buff.arc_discharge.up & ( ( buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ! talent.raging_maelstrom.enabled ) || ( buff.maelstrom_weapon.stack >= 8 ) ) || ( buff.maelstrom_weapon.stack >= 5 & ( tempest_mael_count > 30 || buff.awakening_storms.stack = 2 ) )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "windstrike",
["criteria"] = "talent.thorims_invocation.enabled & buff.maelstrom_weapon.stack > 0 & ti_chain_lightning",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.crashing_storms.enabled & ( ( talent.unruly_winds.enabled & active_enemies >= 10 ) || active_enemies >= 15 )",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["action"] = "lightning_bolt",
["criteria"] = "( ! talent.tempest.enabled || ( tempest_mael_count <= 10 & buff.awakening_storms.stack <= 1 ) ) & ( ( active_dot.flame_shock >= active_enemies || active_dot.flame_shock = 6 ) & buff.primordial_wave.up & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( ! buff.splintered_elements.up || fight_remains <= 12 || raid_event.adds.remains <= gcd.max ) )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up & buff.maelstrom_weapon.stack <= 8",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & ( talent.primordial_wave.enabled || talent.fire_nova.enabled ) & dot.flame_shock.ticking & ( active_dot.flame_shock < active_enemies ) & active_dot.flame_shock < 6",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["action"] = "primordial_wave",
["criteria"] = "! buff.primordial_wave.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "chain_lightning",
["criteria"] = "buff.arc_discharge.up & buff.maelstrom_weapon.stack >= 5",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "elemental_blast",
["criteria"] = "( ! talent.elemental_spirits.enabled || ( talent.elemental_spirits.enabled & ( charges = max_charges || feral_spirit.active >= 2 ) ) ) & buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ( ! talent.crashing_storms.enabled || active_enemies <= 3 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "chain_lightning",
["criteria"] = "( buff.maelstrom_weapon.stack = buff.maelstrom_weapon.max_stack & ! talent.raging_maelstrom.enabled ) || ( buff.maelstrom_weapon.stack >= 7 )",
["cycle_targets"] = 1,
},
{
["action"] = "feral_spirit",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "ti_chain_lightning & ( buff.legacy_of_the_frost_witch.up || ! talent.legacy_of_the_frost_witch.enabled )",
["action"] = "doom_winds",
},
{
["enabled"] = true,
["criteria"] = "( buff.doom_winds.up & active_enemies >= 4 ) || ! buff.crash_lightning.up || ( talent.alpha_wolf.enabled & feral_spirit.active & alpha_wolf_min_remains = 0 )",
["action"] = "crash_lightning",
},
{
["enabled"] = true,
["criteria"] = "buff.doom_winds.up || talent.earthsurge.enabled",
["action"] = "sundering",
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock = 6 || ( active_dot.flame_shock >= 4 & active_dot.flame_shock >= cycle_enemies )",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "talent.stormblast.enabled & talent.stormflurry.enabled",
["action"] = "stormstrike",
},
{
["enabled"] = true,
["criteria"] = "buff.voltaic_blaze.up",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["action"] = "lava_lash",
["criteria"] = "talent.lashing_flames.enabled",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & dot.flame_shock.ticking",
["action"] = "lava_lash",
},
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & ! buff.ice_strike.up",
["action"] = "ice_strike",
},
{
["enabled"] = true,
["criteria"] = "talent.hailstorm.enabled & buff.hailstorm.up",
["action"] = "frost_shock",
},
{
["action"] = "sundering",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.molten_assault.enabled & ! ticking",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["action"] = "flame_shock",
["criteria"] = "refreshable & ( talent.fire_nova.enabled || talent.primordial_wave.enabled ) & ( active_dot.flame_shock < active_enemies ) & active_dot.flame_shock < 6",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock >= 3",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["criteria"] = "buff.crash_lightning.up & ( talent.deeply_rooted_elements.enabled || buff.converging_storms.stack = buff.converging_storms.max_stack )",
["action"] = "stormstrike",
},
{
["enabled"] = true,
["criteria"] = "talent.crashing_storms.enabled & buff.cl_crash_lightning.up & active_enemies >= 4",
["action"] = "crash_lightning",
},
{
["action"] = "windstrike",
["enabled"] = true,
},
{
["action"] = "stormstrike",
["enabled"] = true,
},
{
["action"] = "ice_strike",
["enabled"] = true,
},
{
["action"] = "lava_lash",
["enabled"] = true,
},
{
["action"] = "crash_lightning",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_dot.flame_shock >= 2",
["action"] = "fire_nova",
},
{
["enabled"] = true,
["action"] = "elemental_blast",
["criteria"] = "( ! talent.elemental_spirits.enabled || ( talent.elemental_spirits.enabled & ( charges = max_charges || feral_spirit.active >= 2 ) ) ) & buff.maelstrom_weapon.stack >= 5 & ( ! talent.crashing_storms.enabled || active_enemies <= 3 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "chain_lightning",
["criteria"] = "buff.maelstrom_weapon.stack >= 5",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! ticking",
["action"] = "flame_shock",
},
{
["enabled"] = true,
["criteria"] = "! talent.hailstorm.enabled",
["action"] = "frost_shock",
},
},
},
["version"] = 20241109.1,
["warnings"] = "The import for 'single' required some automated changes.\nLine 7: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 7: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\nLine 8: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 8: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 1: Converted operations in '(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%300<=30)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))' to '(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%300<=30)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))'.\nLine 6: Converted operations in '(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||(talent.ascendance.enabled&(cooldown.ascendance.remains<2*action.stormstrike.gcd))||(fight_remains%%180<=30)' to '(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||(talent.ascendance.enabled&(cooldown.ascendance.remains<2*action.stormstrike.gcd))||(fight_remains%180<=30)'.\nLine 7: Converted 'trinket.1.has_use_buff' to 'trinket.t1.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.buff.any.duration' to 'trinket.t1.buff.any.duration' (1x).\nLine 7: Converted 'trinket.1.buff.any.duration' to 'trinket.t1.buff_duration' (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 operations in '!variable.trinket1_is_weird&trinket.t1.has_use_buff&(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%trinket.t1.cooldown.duration<=trinket.t1.buff_duration)||(variable.min_talented_cd_remains>=trinket.t1.cooldown.duration)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))' to '!variable.trinket1_is_weird&trinket.t1.has_use_buff&(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%trinket.t1.cooldown.duration<=trinket.t1.buff_duration)||(variable.min_talented_cd_remains>=trinket.t1.cooldown.duration)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))'.\nLine 8: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted 'trinket.2.buff.any.duration' to 'trinket.t2.buff.any.duration' (1x).\nLine 8: Converted 'trinket.2.buff.any.duration' to 'trinket.t2.buff_duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 8: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 8: Converted operations in '!variable.trinket2_is_weird&trinket.t2.has_use_buff&(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%trinket.t2.cooldown.duration<=trinket.t2.buff_duration)||(variable.min_talented_cd_remains>=trinket.t2.cooldown.duration)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))' to '!variable.trinket2_is_weird&trinket.t2.has_use_buff&(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%trinket.t2.cooldown.duration<=trinket.t2.buff_duration)||(variable.min_talented_cd_remains>=trinket.t2.cooldown.duration)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))'.\nLine 9: Converted operations in '(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||boss&(fight_remains%%150<=5)' to '(!buff.ascendance.up&!buff.feral_spirit.up&!bu
["author"] = "SimC",
["profile"] = "actions.precombat+=/windfury_weapon\nactions.precombat+=/flametongue_weapon\nactions.precombat+=/lightning_shield\nactions.precombat+=/variable,name=trinket1_is_weird,value=trinket.1.is.algethar_puzzle_box||trinket.1.is.manic_grieftorch||trinket.1.is.elementium_pocket_anvil||trinket.1.is.beacon_to_the_beyond\nactions.precombat+=/variable,name=trinket2_is_weird,value=trinket.2.is.algethar_puzzle_box||trinket.2.is.manic_grieftorch||trinket.2.is.elementium_pocket_anvil||trinket.2.is.beacon_to_the_beyond\nactions.precombat+=/variable,name=min_talented_cd_remains,value=((cooldown.feral_spirit.remains%(4*talent.witch_doctors_ancestry.enabled))+1000*!talent.feral_spirit.enabled)>?(cooldown.doom_winds.remains+1000*!talent.doom_winds.enabled)>?(cooldown.ascendance.remains+1000*!talent.ascendance.enabled)\nactions.precombat+=/variable,name=target_nature_mod,value=(1+debuff.chaos_brand.up*debuff.chaos_brand.value)*(1+(debuff.hunters_mark.up*target.health.pct>=80)*debuff.hunters_mark.value)\nactions.precombat+=/variable,name=expected_lb_funnel,value=action.lightning_bolt.damage*(1+debuff.lightning_rod.up*variable.target_nature_mod*(1+buff.primordial_wave.up*active_dot.flame_shock*buff.primordial_wave.value)*debuff.lightning_rod.value)\nactions.precombat+=/variable,name=expected_cl_funnel,value=action.chain_lightning.damage*(1+debuff.lightning_rod.up*variable.target_nature_mod*(active_enemies>?(3+2*talent.crashing_storms.enabled))*debuff.lightning_rod.value)\n\n## actions+=/bloodlust,line_cd=600\nactions+=/potion,if=(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%300<=30)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))\n# Interrupt of casts.\nactions+=/wind_shear\nactions+=/purge,line_cd=settings.purge_icd,if=buff.dispellable_magic.up\nactions+=/greater_purge,if=buff.dispellable_magic.up\nactions+=/use_item,name=elementium_pocket_anvil,use_off_gcd=1\nactions+=/use_item,name=algethar_puzzle_box,use_off_gcd=1,if=(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||(talent.ascendance.enabled&(cooldown.ascendance.remains<2*action.stormstrike.gcd))||(fight_remains%%180<=30)\nactions+=/use_item,slot=trinket1,if=!variable.trinket1_is_weird&trinket.1.has_use_buff&(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%trinket.1.cooldown.duration<=trinket.1.buff.any.duration)||(variable.min_talented_cd_remains>=trinket.1.cooldown.duration)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))\nactions+=/use_item,slot=trinket2,if=!variable.trinket2_is_weird&trinket.2.has_use_buff&(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%trinket.2.cooldown.duration<=trinket.2.buff.any.duration)||(variable.min_talented_cd_remains>=trinket.2.cooldown.duration)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))\nactions+=/use_item,name=beacon_to_the_beyond,use_off_gcd=1,if=(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||boss&(fight_remains%%150<=5)\nactions+=/use_item,name=manic_grieftorch,use_off_gcd=1,if=(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||boss&(fight_remains%%120<=5)\nactions+=/use_item,slot=trinket1,if=!variable.trinket1_is_weird&!trinket.1.has_use_buff\nactions+=/use_item,slot=trinket2,if=!variable.trinket2_is_weird&!trinket.2.has_use_buff\nactions+=/blood_fury,if=(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%action.blood_fury.cooldown<=action.blood_fury.duration)||(variable.min_talented_cd_remains>=action.blood_fury.cooldown)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))\nactions+=/berserking,if=(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||boss&(fight_remains%%action.berserking.cooldown<=action.berserking.duration)||(variable.min_talented_cd_remains>=action.berserking.cooldown)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))\nactions+=/fireb
},
["Guardian"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241011,
["author"] = "SimC",
["desc"] = "2024-10-11: Fix Ironfur tanking check\n\n2024-09-21: Revert/fix\n\n2024-09-15: Bear Form only if no form is active\n\n2024-08-24, 08-25: SimC update\n\n2024-07-23: The War Within",
["lists"] = {
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "tanking & ! variable.if_build & incoming_damage_5s > ironfur_damage_threshold & buff.ironfur.remains < 3 * haste & buff.ironfur.stack < 5",
["action"] = "ironfur",
},
{
["enabled"] = true,
["criteria"] = "health.pct < 65",
["action"] = "regrowth",
},
{
["enabled"] = true,
["criteria"] = "health.pct < 65",
["action"] = "renewal",
},
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 65",
["action"] = "frenzied_regeneration",
},
{
["enabled"] = true,
["criteria"] = "tanking & health.pct < 75 & incoming_damage_5s > 0.1 * health.max",
["action"] = "barkskin",
},
{
["enabled"] = true,
["criteria"] = "buff.survival_instincts.down & buff.barkskin.down & health.pct < 60 & incoming_damage_5s > 0.25 * health.max",
["action"] = "survival_instincts",
},
},
["precombat"] = {
{
["action"] = "mark_of_the_wild",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "if_build",
["value"] = "1",
["value_else"] = "0",
["criteria"] = "talent.thorns_of_iron.enabled & talent.reinforced_fur.enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "ripweaving",
["value"] = "1",
["value_else"] = "0",
["criteria"] = "talent.primal_fury.enabled & talent.fluid_form.enabled & talent.wildpower_surge.enabled",
},
{
["enabled"] = true,
["criteria"] = "talent.heart_of_the_wild.enabled & ! talent.rip.enabled",
["action"] = "heart_of_the_wild",
},
{
["enabled"] = true,
["criteria"] = "time = 0 || ! talent.fluid_form.enabled",
["action"] = "bear_form",
},
},
["default"] = {
{
["action"] = "skull_bash",
["enabled"] = true,
},
{
["action"] = "soothe",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "( buff.berserk_bear.up || buff.incarnation_guardian_of_ursoc.up )",
["action"] = "potion",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "bear",
},
},
["bear"] = {
{
["enabled"] = true,
["criteria"] = "buff.ravage.up & active_enemies > 1",
["action"] = "maul",
},
{
["enabled"] = true,
["criteria"] = "( talent.heart_of_the_wild.enabled & ! talent.rip.enabled ) || talent.heart_of_the_wild.enabled & buff.feline_potential_counter.stack = 6 & active_enemies < 3",
["action"] = "heart_of_the_wild",
},
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up & ( ( ( ! ticking & target.time_to_die > 12 ) || ( refreshable & target.time_to_die > 12 ) ) & active_enemies < 7 & talent.fury_of_nature.enabled ) || ( ( ( ! ticking & target.time_to_die > 12 ) || ( refreshable & target.time_to_die > 12 ) ) & active_enemies < 4 & ! talent.fury_of_nature.enabled )",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable || ( dot.thrash_bear.stack < 5 & talent.flashing_claws.rank = 2 || dot.thrash_bear.stack < 4 & talent.flashing_claws.rank = 1 || dot.thrash_bear.stack < 3 & ! talent.flashing_claws.enabled )",
["action"] = "thrash_bear",
},
{
["enabled"] = true,
["criteria"] = "tanking & cooldown.rage_of_the_sleeper.remains > 8",
["action"] = "bristling_fur",
},
{
["enabled"] = true,
["criteria"] = "buff.bear_form.up",
["action"] = "barkskin",
},
{
["action"] = "lunar_beam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( talent.wildpower_surge.enabled & buff.cat_form.up & buff.feline_potential.up ) || ! talent.wildpower_surge.enabled",
["action"] = "convoke_the_spirits",
},
{
["action"] = "berserk",
["enabled"] = true,
},
{
["action"] = "incarnation",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ( ( buff.incarnation_guardian_of_ursoc.down & cooldown.incarnation_guardian_of_ursoc.remains > 60 ) || buff.berserk_bear.down ) & rage > 40 & ( ! talent.convoke_the_spirits.enabled ) || ( buff.incarnation_guardian_of_ursoc.up || buff.berserk_bear.up ) & rage > 40 & ( ! talent.convoke_the_spirits.enabled ) || ( talent.convoke_the_spirits.enabled ) & rage > 40 )",
["action"] = "rage_of_the_sleeper",
},
{
["enabled"] = true,
["criteria"] = "( buff.berserk_bear.up || buff.incarnation_guardian_of_ursoc.up )",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "buff.ravage.up & active_enemies < 2",
["action"] = "maul",
},
{
["enabled"] = true,
["criteria"] = "( buff.tooth_and_claw.stack > 1 || buff.tooth_and_claw.remains < 1 + gcd.max ) & variable.if_build = 1 & active_enemies > 1",
["action"] = "raze",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 5 & talent.lunar_calling.enabled",
["action"] = "thrash_bear",
},
{
["enabled"] = true,
["criteria"] = "! debuff.tooth_and_claw.up & ! buff.ironfur.up & rage > 50 & tanking & variable.if_build = 0 & ! buff.rage_of_the_sleeper.up || rage > 90 & variable.if_build = 0 || ! debuff.tooth_and_claw.up & ! buff.ironfur.up & rage > 50 & tanking & variable.if_build = 0 & ! buff.rage_of_the_sleeper.up",
["action"] = "ironfur",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.ravage.up & ( ( rage > 40 & variable.if_build = 1 & cooldown.rage_of_the_sleeper.remains > 3 & talent.rage_of_the_sleeper.enabled || ( buff.incarnation.up || buff.berserk_bear.up ) & rage > 20 & variable.if_build = 1 & cooldown.rage_of_the_sleeper.remains > 3 & talent.rage_of_the_sleeper.enabled || rage > 90 & variable.if_build = 1 & ! talent.fount_of_strength.enabled || rage > 110 & variable.if_build = 1 & talent.fount_of_strength.enabled || ( buff.incarnation.up || buff.berserk_bear.up ) & rage > 20 & variable.if_build = 1 & buff.rage_of_the_sleeper.up & talent.rage_of_the_sleeper.enabled ) )",
["action"] = "ironfur",
},
{
["enabled"] = true,
["criteria"] = "! buff.ravage.up & ( ( rage > 40 & variable.if_build = 1 & ! talent.rage_of_the_sleeper.enabled || ( buff.incarnation.up || buff.berserk_bear.up ) & rage > 20 & variable.if_build = 1 & ! talent.rage_of_the_sleeper.enabled || ( buff.incarnation.up || buff.berserk_bear.up ) & rage > 20 & variable.if_build = 1 & ! talent.rage_of_the_sleeper.enabled ) )",
["action"] = "ironfur",
},
{
["enabled"] = true,
["criteria"] = "( buff.cat_form.up & buff.feline_potential.up & active_enemies < 3 & ( buff.incarnation.up || buff.berserk_bear.up ) & ! dot.rip.refreshable )",
["action"] = "ferocious_bite",
},
{
["enabled"] = true,
["criteria"] = "( buff.cat_form.up & buff.feline_potential.up & active_enemies < 3 & ( ! buff.incarnation.up || ! buff.berserk_bear.up ) ) || ( buff.cat_form.up & buff.feline_potential.up & active_enemies < 3 & ( buff.incarnation.up || buff.berserk_bear.up ) & refreshable )",
["action"] = "rip",
},
{
["enabled"] = true,
["criteria"] = "variable.if_build = 1 & buff.vicious_cycle_maul.stack = 3 & active_enemies > 1 & ! talent.ravage.enabled",
["action"] = "raze",
},
{
["enabled"] = true,
["criteria"] = "buff.gore.up & active_enemies < 11 || buff.incarnation_guardian_of_ursoc.up & buff.feline_potential_counter.stack < 6 & talent.wildpower_surge.enabled",
["action"] = "mangle",
},
{
["enabled"] = true,
["criteria"] = "variable.if_build = 0 & ( active_enemies > 1 || ( buff.tooth_and_claw.up ) & active_enemies > 1 || buff.vicious_cycle_maul.stack = 3 & active_enemies > 1 )",
["action"] = "raze",
},
{
["enabled"] = true,
["criteria"] = "cooldown.rage_of_the_sleeper.remains <= 52 & buff.feline_potential_counter.stack = 6 & ! buff.cat_form.up & ! dot.rake.refreshable & active_enemies < 3 & talent.fluid_form.enabled",
["action"] = "shred",
},
{
["enabled"] = true,
["criteria"] = "cooldown.rage_of_the_sleeper.remains <= 52 & buff.feline_potential_counter.stack = 6 & ! buff.cat_form.up & active_enemies < 3 & talent.fluid_form.enabled",
["action"] = "rake",
},
{
["enabled"] = true,
["criteria"] = "buff.cat_form.up & talent.fluid_form.enabled",
["action"] = "mangle",
},
{
["enabled"] = true,
["criteria"] = "variable.if_build = 1 & ( ( ( buff.tooth_and_claw.stack > 1 || buff.tooth_and_claw.remains < 1 + gcd.max ) & active_enemies <= 5 & ! talent.raze.enabled ) || ( ( buff.tooth_and_claw.stack > 1 || buff.tooth_and_claw.remains < 1 + gcd.max ) & active_enemies = 1 & talent.raze.enabled ) || ( ( buff.tooth_and_claw.stack > 1 || buff.tooth_and_claw.remains < 1 + gcd.max ) & active_enemies <= 5 & ! talent.raze.enabled ) )",
["action"] = "maul",
},
{
["enabled"] = true,
["criteria"] = "variable.if_build = 0 & ( ( buff.tooth_and_claw.up & active_enemies <= 5 & ! talent.raze.enabled ) || ( buff.tooth_and_claw.up & active_enemies = 1 & talent.raze.enabled ) )",
["action"] = "maul",
},
{
["enabled"] = true,
["criteria"] = "( active_enemies <= 5 & ! talent.raze.enabled & variable.if_build = 0 ) || ( active_enemies = 1 & talent.raze.enabled & variable.if_build = 0 ) || buff.vicious_cycle_maul.stack = 3 & active_enemies <= 5 & ! talent.raze.enabled",
["action"] = "maul",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 5",
["action"] = "thrash_bear",
},
{
["enabled"] = true,
["criteria"] = "( buff.incarnation.up & active_enemies <= 4 ) || ( buff.incarnation.up & talent.soul_of_the_forest.enabled & active_enemies <= 5 ) || ( ( rage < 88 ) & active_enemies < 11 ) || ( ( rage < 83 ) & active_enemies < 11 & talent.soul_of_the_forest.enabled )",
["action"] = "mangle",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "thrash_bear",
},
{
["enabled"] = true,
["action"] = "pulverize",
["cycle_targets"] = 1,
},
{
["action"] = "thrash_bear",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.galactic_guardian.up & buff.bear_form.up & talent.boundless_moonlight.enabled",
["action"] = "moonfire",
},
{
["enabled"] = true,
["criteria"] = "cooldown.rage_of_the_sleeper.remains <= 52 & rage < 40 & active_enemies < 3 & ! talent.lunar_insight.enabled & talent.fluid_form.enabled & energy > 70 & refreshable & variable.ripweaving = 1",
["action"] = "rake",
},
{
["enabled"] = true,
["criteria"] = "cooldown.rage_of_the_sleeper.remains <= 52 & rage < 40 & active_enemies < 3 & ! talent.lunar_insight.enabled & talent.fluid_form.enabled & energy > 70 & ! buff.rage_of_the_sleeper.up & variable.ripweaving = 1",
["action"] = "shred",
},
{
["enabled"] = true,
["criteria"] = "buff.cat_form.up & ! dot.rip.ticking & active_enemies < 3 & variable.ripweaving = 1",
["action"] = "rip",
},
{
["enabled"] = true,
["criteria"] = "dot.rip.ticking & combo_points > 4 & active_enemies < 3 & variable.ripweaving = 1",
["action"] = "ferocious_bite",
},
{
["enabled"] = true,
["criteria"] = "talent.starsurge.enabled & rage < 20",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "( talent.lunar_insight.enabled & active_enemies > 4 ) || ! talent.lunar_insight.enabled || talent.lunar_insight.enabled & active_enemies < 2",
["action"] = "swipe_bear",
},
{
["enabled"] = true,
["criteria"] = "( talent.lunar_insight.enabled & active_enemies > 1 ) & buff.bear_form.up",
["action"] = "moonfire",
},
},
},
["version"] = 20241011,
["warnings"] = "Imported 4 action lists.\n",
["spec"] = 104,
["basedOn"] = "Guardian",
["profile"] = "actions.precombat+=/mark_of_the_wild\nactions.precombat+=/variable,name=if_build,value=1,value_else=0,if=talent.thorns_of_iron.enabled&talent.reinforced_fur.enabled\nactions.precombat+=/variable,name=ripweaving,value=1,value_else=0,if=talent.primal_fury.enabled&talent.fluid_form.enabled&talent.wildpower_surge.enabled\nactions.precombat+=/heart_of_the_wild,if=talent.heart_of_the_wild.enabled&!talent.rip.enabled\nactions.precombat+=/bear_form,if=time=0||!talent.fluid_form.enabled\n\nactions+=/skull_bash\nactions+=/soothe\nactions+=/use_item,slot=trinket1\nactions+=/use_item,slot=trinket2\nactions+=/potion,if=(buff.berserk_bear.up||buff.incarnation_guardian_of_ursoc.up)\nactions+=/call_action_list,name=mitigation\nactions+=/run_action_list,name=bear\n\nactions.bear+=/maul,if=buff.ravage.up&active_enemies>1\nactions.bear+=/heart_of_the_wild,if=(talent.heart_of_the_wild.enabled&!talent.rip.enabled)||talent.heart_of_the_wild.enabled&buff.feline_potential_counter.stack=6&active_enemies<3\nactions.bear+=/moonfire,cycle_targets=1,if=buff.bear_form.up&(((!ticking&target.time_to_die>12)||(refreshable&target.time_to_die>12))&active_enemies<7&talent.fury_of_nature.enabled)||(((!ticking&target.time_to_die>12)||(refreshable&target.time_to_die>12))&active_enemies<4&!talent.fury_of_nature.enabled)\nactions.bear+=/thrash_bear,if=refreshable||(dot.thrash_bear.stack<5&talent.flashing_claws.rank=2||dot.thrash_bear.stack<4&talent.flashing_claws.rank=1||dot.thrash_bear.stack<3&!talent.flashing_claws.enabled)\nactions.bear+=/bristling_fur,if=tanking&cooldown.rage_of_the_sleeper.remains>8\nactions.bear+=/barkskin,if=buff.bear_form.up\nactions.bear+=/lunar_beam\nactions.bear+=/convoke_the_spirits,if=(talent.wildpower_surge.enabled&buff.cat_form.up&buff.feline_potential.up)||!talent.wildpower_surge.enabled\nactions.bear+=/berserk_bear\nactions.bear+=/incarnation\nactions.bear+=/rage_of_the_sleeper,if=(((buff.incarnation_guardian_of_ursoc.down&cooldown.incarnation_guardian_of_ursoc.remains>60)||buff.berserk_bear.down)&rage>40&(!talent.convoke_the_spirits.enabled)||(buff.incarnation_guardian_of_ursoc.up||buff.berserk_bear.up)&rage>40&(!talent.convoke_the_spirits.enabled)||(talent.convoke_the_spirits.enabled)&rage>40)\nactions.bear+=/berserking,if=(buff.berserk_bear.up||buff.incarnation_guardian_of_ursoc.up)\nactions.bear+=/maul,if=buff.ravage.up&active_enemies<2\nactions.bear+=/raze,if=(buff.tooth_and_claw.stack>1||buff.tooth_and_claw.remains<1+gcd)&variable.if_build=1&active_enemies>1\nactions.bear+=/thrash_bear,if=active_enemies>=5&talent.lunar_calling.enabled\nactions.bear+=/ironfur,cycle_targets=1,if=!debuff.tooth_and_claw.up&!buff.ironfur.up&rage>50&tanking&variable.if_build=0&!buff.rage_of_the_sleeper.up||rage>90&variable.if_build=0||!debuff.tooth_and_claw.up&!buff.ironfur.up&rage>50&tanking&variable.if_build=0&!buff.rage_of_the_sleeper.up\nactions.bear+=/ironfur,if=!buff.ravage.up&((rage>40&variable.if_build=1&cooldown.rage_of_the_sleeper.remains>3&talent.rage_of_the_sleeper.enabled||(buff.incarnation.up||buff.berserk_bear.up)&rage>20&variable.if_build=1&cooldown.rage_of_the_sleeper.remains>3&talent.rage_of_the_sleeper.enabled||rage>90&variable.if_build=1&!talent.fount_of_strength.enabled||rage>110&variable.if_build=1&talent.fount_of_strength.enabled||(buff.incarnation.up||buff.berserk_bear.up)&rage>20&variable.if_build=1&buff.rage_of_the_sleeper.up&talent.rage_of_the_sleeper.enabled))\nactions.bear+=/ironfur,if=!buff.ravage.up&((rage>40&variable.if_build=1&!talent.rage_of_the_sleeper.enabled||(buff.incarnation.up||buff.berserk_bear.up)&rage>20&variable.if_build=1&!talent.rage_of_the_sleeper.enabled||(buff.incarnation.up||buff.berserk_bear.up)&rage>20&variable.if_build=1&!talent.rage_of_the_sleeper.enabled))\nactions.bear+=/ferocious_bite,if=(buff.cat_form.up&buff.feline_potential.up&active_enemies<3&(buff.incarnation.up||buff.berserk_bear.up)&!dot.rip.refreshable)\nactions.bear+=/rip,if=(buff.cat_form.up&buff.feline_potential.up&active_enemies<3&(!buff.incarnation.up||!buff.berserk_bear.up))||(buff.cat_form.up&buff.feline_pot
},
["Frost Mage"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241206,
["author"] = "SimC",
["desc"] = "2024-11-03, 11-17, 11-22, 12-06: SimC update\n\n2024-10-06, 10-21, 10-29: SimC update\n\n2024-09-24: Comet Storm\n\n2024-09-01, 09-08, 09-22: SimC update\n\n2024-08-22: SimC priority update\n\n2024-07-29: The War Within",
["lists"] = {
["cleave_ff"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.flurry",
["action"] = "comet_storm",
},
{
["enabled"] = true,
["criteria"] = "talent.deaths_chill.enabled & buff.icy_veins.remains > 9 & ( buff.deaths_chill.stack < 6 || buff.deaths_chill.stack = 6 & ! action.frostfire_bolt.in_flight )",
["action"] = "frostfire_bolt",
},
{
["enabled"] = true,
["criteria"] = "freezable & prev_gcd.1.glacial_spike",
["action"] = "freeze",
},
{
["enabled"] = true,
["criteria"] = "freezable & prev_gcd.1.glacial_spike & remaining_winters_chill = 0 & debuff.winters_chill.down & ! prev_off_gcd.freeze",
["action"] = "ice_nova",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0 & debuff.winters_chill.down & ( prev_gcd.1.glacial_spike || buff.icicles.stack >= 3 ) & ! prev_off_gcd.freeze",
["action"] = "flurry",
},
{
["enabled"] = true,
["action"] = "flurry",
["criteria"] = "prev_gcd.1.glacial_spike & ! prev_off_gcd.freeze",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.icicles.stacks = 5",
["action"] = "glacial_spike",
},
{
["enabled"] = true,
["action"] = "ray_of_frost",
["criteria"] = "remaining_winters_chill",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.frostfire_empowerment.up & ! buff.excess_frost.up & ! buff.excess_fire.up",
["action"] = "frostfire_bolt",
},
{
["enabled"] = true,
["criteria"] = "! buff.fingers_of_frost.up",
["action"] = "frozen_orb",
},
{
["enabled"] = true,
["criteria"] = "cooldown.icy_veins.remains > 10 & cooldown.frozen_orb.remains > 10 & ( ! talent.comet_storm.enabled || cooldown.comet_storm.remains > 10 ) & ( ! talent.ray_of_frost.enabled || cooldown.ray_of_frost.remains > 10 ) & ( fight_remains + 10 > cooldown.icy_veins.remains )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["action"] = "ice_lance",
["criteria"] = "buff.fingers_of_frost.up & ! prev_gcd.1.glacial_spike || remaining_winters_chill & ! variable.boltspam",
["cycle_targets"] = 1,
},
{
["action"] = "frostfire_bolt",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
},
},
["aoe_ss"] = {
{
["enabled"] = true,
["criteria"] = "talent.coldest_snap.enabled & ! cooldown.frozen_orb.ready & ( prev_gcd.1.comet_storm || prev_gcd.1.frozen_orb & cooldown.comet_storm.remains > 5 ) & ( ! talent.deaths_chill.enabled || buff.icy_veins.remains < 9 || buff.deaths_chill.stack >= 12 )",
["action"] = "cone_of_cold",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0 & prev_gcd.1.glacial_spike",
["action"] = "freeze",
},
{
["enabled"] = true,
["criteria"] = "active_enemies < 5 & freezable & prev_gcd.1.glacial_spike & remaining_winters_chill = 0 & debuff.winters_chill.down || active_enemies >= 5 & action.cone_of_cold.time_since < 6 & time - action.cone_of_cold.last_used > 6 - gcd.max",
["action"] = "ice_nova",
},
{
["action"] = "frozen_orb",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.deaths_chill.enabled & buff.icy_veins.remains > 9 & ( buff.deaths_chill.stack < 9 || buff.deaths_chill.stack = 9 & ! action.frostbolt.in_flight )",
["action"] = "frostbolt",
},
{
["action"] = "comet_storm",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.splintering_ray.enabled & prev_gcd.1.flurry",
["action"] = "ray_of_frost",
},
{
["enabled"] = true,
["criteria"] = "talent.ice_caller.enabled || talent.freezing_rain.enabled || active_enemies >= 5",
["action"] = "blizzard",
},
{
["enabled"] = true,
["criteria"] = "cooldown.icy_veins.remains > 10 & ( fight_remains + 10 > cooldown.icy_veins.remains )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "buff.icicles.stack = 5 & ( cooldown.flurry.up || remaining_winters_chill || active_enemies < 5 & freezable & cooldown.ice_nova.ready & ! buff.fingers_of_frost.up )",
["action"] = "glacial_spike",
},
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.up & ! prev_gcd.1.glacial_spike || remaining_winters_chill",
["action"] = "ice_lance",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0",
["action"] = "flurry",
},
{
["action"] = "frostbolt",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
},
},
["st_ff"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.flurry",
["action"] = "comet_storm",
},
{
["enabled"] = true,
["criteria"] = "variable.boltspam & buff.icicles.stack < 5 & remaining_winters_chill = 0",
["action"] = "flurry",
},
{
["enabled"] = true,
["criteria"] = "! variable.boltspam & buff.icicles.stack < 5 & remaining_winters_chill = 0 & debuff.winters_chill.down & ( prev_gcd.1.frostfire_bolt || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
},
{
["enabled"] = true,
["criteria"] = "variable.boltspam & buff.excess_fire.up & ! buff.brain_freeze.up",
["action"] = "ice_lance",
},
{
["enabled"] = true,
["criteria"] = "buff.icicles.stack = 5",
["action"] = "glacial_spike",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill & ( ! variable.boltspam || buff.icy_veins.remains < 15 )",
["action"] = "ray_of_frost",
},
{
["enabled"] = true,
["criteria"] = "variable.boltspam & buff.icy_veins.down || ! variable.boltspam & ! buff.fingers_of_frost.up",
["action"] = "frozen_orb",
},
{
["enabled"] = true,
["criteria"] = "( buff.icy_veins.down || ! variable.boltspam ) & cooldown.icy_veins.remains > 10 & cooldown.frozen_orb.remains > 10 & ( ! talent.comet_storm.enabled || cooldown.comet_storm.remains > 10 ) & ( ! talent.ray_of_frost.enabled || cooldown.ray_of_frost.remains > 10 ) & ( fight_remains + 10 > cooldown.icy_veins.remains )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "! variable.boltspam & ( buff.fingers_of_frost.up & ! prev_gcd.1.glacial_spike || remaining_winters_chill )",
["action"] = "ice_lance",
},
{
["action"] = "frostfire_bolt",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
},
},
["aoe_ff"] = {
{
["enabled"] = true,
["criteria"] = "talent.coldest_snap.enabled & prev_gcd.1.comet_storm",
["action"] = "cone_of_cold",
},
{
["enabled"] = true,
["criteria"] = "talent.deaths_chill.enabled & buff.icy_veins.remains > 9 & ( buff.deaths_chill.stack < 9 || buff.deaths_chill.stack = 9 & ! action.frostfire_bolt.in_flight )",
["action"] = "frostfire_bolt",
},
{
["enabled"] = true,
["criteria"] = "freezable & ( prev_gcd.1.glacial_spike || prev_gcd.1.comet_storm & cooldown.cone_of_cold.remains & ! prev_gcd.2.cone_of_cold )",
["action"] = "freeze",
},
{
["enabled"] = true,
["criteria"] = "freezable & ( prev_gcd.1.glacial_spike & remaining_winters_chill = 0 & debuff.winters_chill.down || prev_gcd.1.comet_storm & cooldown.cone_of_cold.remains & ! prev_gcd.2.cone_of_cold ) & ! prev_off_gcd.freeze",
["action"] = "ice_nova",
},
{
["enabled"] = true,
["criteria"] = "! prev_gcd.1.cone_of_cold",
["action"] = "frozen_orb",
},
{
["enabled"] = true,
["criteria"] = "cooldown.cone_of_cold.remains > 6 || cooldown.cone_of_cold.ready",
["action"] = "comet_storm",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0 & ( buff.excess_frost.up & cooldown.comet_storm.remains > 5 || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
},
{
["enabled"] = true,
["criteria"] = "talent.ice_caller.enabled",
["action"] = "blizzard",
},
{
["enabled"] = true,
["criteria"] = "talent.splintering_ray.enabled & remaining_winters_chill = 2",
["action"] = "ray_of_frost",
},
{
["enabled"] = true,
["criteria"] = "cooldown.icy_veins.remains > 10 & ( fight_remains + 10 > cooldown.icy_veins.remains )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "buff.frostfire_empowerment.up & ! buff.excess_frost.up & ! buff.excess_fire.up",
["action"] = "frostfire_bolt",
},
{
["enabled"] = true,
["criteria"] = "( active_enemies <= 6 || ! talent.ice_caller.enabled ) & buff.icicles.stack = 5",
["action"] = "glacial_spike",
},
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.up || remaining_winters_chill",
["action"] = "ice_lance",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0",
["action"] = "flurry",
},
{
["action"] = "frostfire_bolt",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
},
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.frostfire_bolt.enabled & active_enemies >= 3",
["list_name"] = "aoe_ff",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.frostfire_bolt.enabled & active_enemies >= 3",
["list_name"] = "aoe_ss",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.frostfire_bolt.enabled & active_enemies = 2",
["list_name"] = "cleave_ff",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.frostfire_bolt.enabled & active_enemies = 2",
["list_name"] = "cleave_ss",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.frostfire_bolt.enabled",
["list_name"] = "st_ff",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.frostfire_bolt.enabled",
["list_name"] = "st_ss",
},
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
},
{
["action"] = "mirror_image",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.splinterstorm.enabled & talent.cold_front.enabled & talent.slick_ice.enabled & talent.deaths_chill.enabled & talent.frozen_touch.enabled || talent.frostfire_bolt.enabled & talent.deep_shatter.enabled & talent.slick_ice.enabled & talent.deaths_chill.enabled",
["var_name"] = "boltspam",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "12 * ! variable.boltspam",
["var_name"] = "treacherous_transmitter_precombat_cast",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "blizzard",
},
{
["enabled"] = true,
["criteria"] = "active_enemies <= 2",
["action"] = "frostbolt",
},
},
["movement"] = {
{
["enabled"] = true,
["criteria"] = "movement.distance > 10",
["action"] = "any_blink",
},
{
["enabled"] = true,
["criteria"] = "buff.ice_floes.down",
["action"] = "ice_floes",
},
{
["action"] = "ice_nova",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.coldest_snap.enabled & active_enemies >= 2",
["action"] = "cone_of_cold",
},
{
["enabled"] = true,
["criteria"] = "mana.pct > 30 & active_enemies >= 2",
["action"] = "arcane_explosion",
},
{
["action"] = "fire_blast",
["enabled"] = true,
},
{
["action"] = "ice_lance",
["enabled"] = true,
},
},
["st_ss"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.flurry & buff.icy_veins.down",
["action"] = "comet_storm",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0 & debuff.winters_chill.down & ( prev_gcd.1.frostbolt || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.icy_veins.remains > 22 || buff.icy_veins.up )",
["action"] = "frozen_orb",
},
{
["enabled"] = true,
["criteria"] = "buff.icicles.stack = 5 & ( cooldown.flurry.ready || remaining_winters_chill || cooldown.flurry.remains < action.glacial_spike.execute_time & cooldown.flurry.remains > 0 )",
["action"] = "glacial_spike",
},
{
["enabled"] = true,
["criteria"] = "variable.boltspam & remaining_winters_chill & buff.icy_veins.down",
["action"] = "ray_of_frost",
},
{
["enabled"] = true,
["criteria"] = "! variable.boltspam & remaining_winters_chill = 1",
["action"] = "ray_of_frost",
},
{
["enabled"] = true,
["criteria"] = "cooldown.icy_veins.remains > 10 & ! cooldown.flurry.ready & ( variable.boltspam || buff.icy_veins.down || buff.icy_veins.remains > 10 ) & ( fight_remains + 10 > cooldown.icy_veins.remains )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "variable.boltspam & buff.icy_veins.remains > 9 & buff.deaths_chill.stack < 8",
["action"] = "frostbolt",
},
{
["enabled"] = true,
["criteria"] = "variable.boltspam & ( remaining_winters_chill = 2 || remaining_winters_chill & cooldown.flurry.ready )",
["action"] = "ice_lance",
},
{
["enabled"] = true,
["criteria"] = "! variable.boltspam & ( buff.fingers_of_frost.up & ! prev_gcd.1.glacial_spike || remaining_winters_chill )",
["action"] = "ice_lance",
},
{
["action"] = "frostbolt",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
},
},
["cds"] = {
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
["criteria"] = "boss & fight_remains < 32 + 20 * equipped.spymasters_web || prev_off_gcd.icy_veins || ( ! variable.boltspam || equipped.spymasters_web ) & ( cooldown.icy_veins.remains < 12 || cooldown.icy_veins.remains < 22 & cooldown.shifting_power.remains < 10 )",
},
{
["enabled"] = true,
["name"] = "spymasters_web",
["action"] = "spymasters_web",
["criteria"] = "boss & fight_remains < 20 || buff.icy_veins.remains < 19 & ( fight_remains < 105 || buff.spymasters_report.stack >= 32 ) & ( buff.icy_veins.remains > 15 || cooldown.treacherous_transmitter.remains > 50 )",
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
["criteria"] = "buff.icy_veins.remains > 15 || boss & fight_remains < 20",
},
{
["enabled"] = true,
["name"] = "burst_of_knowledge",
["action"] = "burst_of_knowledge",
["criteria"] = "buff.icy_veins.remains > 15 || boss & fight_remains < 20",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 35 || buff.icy_veins.remains > 9 & ( fight_remains > 315 || cooldown.icy_veins.remains + 12 > fight_remains )",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "buff.icy_veins.remains < gcd.max * 2",
["action"] = "icy_veins",
},
{
["enabled"] = true,
["criteria"] = "time < 0.2 & active_enemies <= 2",
["action"] = "flurry",
["description"] = "Manual change from time=0, which the sims use but the addon cannot",
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.icy_veins.remains > 9 & buff.icy_veins.remains < 15 || boss & fight_remains < 15",
["action"] = "berserking",
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
},
["cleave_ss"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.flurry & ( buff.icy_veins.down )",
["action"] = "comet_storm",
},
{
["enabled"] = true,
["criteria"] = "freezable & prev_gcd.1.glacial_spike",
["action"] = "freeze",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill = 0 & debuff.winters_chill.down & ( prev_gcd.1.frostbolt || prev_gcd.1.glacial_spike )",
["action"] = "flurry",
},
{
["enabled"] = true,
["action"] = "flurry",
["criteria"] = "prev_gcd.1.glacial_spike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "freezable & ! prev_off_gcd.freeze & prev_gcd.1.glacial_spike & remaining_winters_chill = 0 & debuff.winters_chill.down",
["action"] = "ice_nova",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.icy_veins.remains > 22 || buff.icy_veins.up )",
["action"] = "frozen_orb",
},
{
["enabled"] = true,
["criteria"] = "cooldown.icy_veins.remains > 10 & ! cooldown.flurry.ready & ( buff.icy_veins.down || buff.icy_veins.remains > 10 ) & ( fight_remains + 10 > cooldown.icy_veins.remains )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["criteria"] = "buff.icicles.stack = 5 & ( cooldown.flurry.ready || remaining_winters_chill || freezable & cooldown.ice_nova.ready & ! buff.fingers_of_frost.up )",
["action"] = "glacial_spike",
},
{
["enabled"] = true,
["criteria"] = "remaining_winters_chill & buff.icy_veins.down",
["action"] = "ray_of_frost",
},
{
["enabled"] = true,
["criteria"] = "talent.deaths_chill.enabled & buff.icy_veins.remains > 9 & ( buff.deaths_chill.stack < ( 8 + 4 * talent.slick_ice.enabled ) || buff.deaths_chill.stack = ( 8 + 4 * talent.slick_ice.enabled ) & ! action.frostbolt.in_flight )",
["action"] = "frostbolt",
},
{
["enabled"] = true,
["criteria"] = "buff.fingers_of_frost.up & ! prev_gcd.1.glacial_spike || ! variable.boltspam & remaining_winters_chill",
["action"] = "ice_lance",
},
{
["action"] = "frostbolt",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "movement",
},
},
},
["version"] = 20241206,
["warnings"] = "The import for 'cleave_ff' required some automated changes.\nLine 2: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\nLine 11: Converted 'talent.comet_storm' to 'talent.comet_storm.enabled' (1x).\nLine 11: Converted 'talent.ray_of_frost' to 'talent.ray_of_frost.enabled' (1x).\n\nThe import for 'aoe_ss' required some automated changes.\nLine 1: Converted 'talent.coldest_snap' to 'talent.coldest_snap.enabled' (1x).\nLine 1: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\nLine 5: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\nLine 7: Converted 'talent.splintering_ray' to 'talent.splintering_ray.enabled' (1x).\nLine 8: Converted 'talent.ice_caller' to 'talent.ice_caller.enabled' (1x).\nLine 8: Converted 'talent.freezing_rain' to 'talent.freezing_rain.enabled' (1x).\n\nThe import for 'st_ff' required some automated changes.\nLine 8: Converted 'talent.comet_storm' to 'talent.comet_storm.enabled' (1x).\nLine 8: Converted 'talent.ray_of_frost' to 'talent.ray_of_frost.enabled' (1x).\n\nThe import for 'aoe_ff' required some automated changes.\nLine 1: Converted 'talent.coldest_snap' to 'talent.coldest_snap.enabled' (1x).\nLine 2: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\nLine 8: Converted 'talent.ice_caller' to 'talent.ice_caller.enabled' (1x).\nLine 9: Converted 'talent.splintering_ray' to 'talent.splintering_ray.enabled' (1x).\nLine 12: Converted 'talent.ice_caller' to 'talent.ice_caller.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\nLine 4: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\nLine 5: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\nLine 6: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\nLine 7: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\nLine 8: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.splinterstorm' to 'talent.splinterstorm.enabled' (1x).\nLine 3: Converted 'talent.cold_front' to 'talent.cold_front.enabled' (1x).\nLine 3: Converted 'talent.slick_ice' to 'talent.slick_ice.enabled' (1x).\nLine 3: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\nLine 3: Converted 'talent.frozen_touch' to 'talent.frozen_touch.enabled' (1x).\nLine 3: Converted 'talent.frostfire_bolt' to 'talent.frostfire_bolt.enabled' (1x).\nLine 3: Converted 'talent.deep_shatter' to 'talent.deep_shatter.enabled' (1x).\nLine 3: Converted 'talent.slick_ice' to 'talent.slick_ice.enabled' (1x).\nLine 3: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 2: Converted 'trinket.treacherous_transmitter.cooldown.remains' to 'cooldown.treacherous_transmitter.remains'.\n\nThe import for 'movement' required some automated changes.\nLine 4: Converted 'talent.coldest_snap' to 'talent.coldest_snap.enabled' (1x).\n\nThe import for 'cleave_ss' required some automated changes.\nLine 10: Converted 'talent.deaths_chill' to 'talent.deaths_chill.enabled' (1x).\nLine 10: Converted 'talent.slick_ice' to 'talent.slick_ice.enabled' (1x).\nLine 10: Converted 'talent.slick_ice' to 'talent.slick_ice.enabled' (1x).\n\nImported 10 action lists.\n",
["profile"] = "actions.precombat+=/arcane_intellect\nactions.precombat+=/mirror_image\nactions.precombat+=/variable,name=boltspam,value=talent.splinterstorm&talent.cold_front&talent.slick_ice&talent.deaths_chill&talent.frozen_touch||talent.frostfire_bolt&talent.deep_shatter&talent.slick_ice&talent.deaths_chill\nactions.precombat+=/variable,name=treacherous_transmitter_precombat_cast,value=12*!variable.boltspam\nactions.precombat+=/use_item,name=treacherous_transmitter\nactions.precombat+=/blizzard,if=active_enemies>=3\nactions.precombat+=/frostbolt,if=active_enemies<=2\n\nactions+=/counterspell\nactions+=/call_action_list,name=cds\nactions+=/run_action_list,name=aoe_ff,strict=1,if=talent.frostfire_bolt&active_enemies>=3\nactions+=/run_action_list,name=aoe_ss,strict=1,if=!talent.frostfire_bolt&active_enemies>=3\nactions+=/run_action_list,name=cleave_ff,strict=1,if=talent.frostfire_bolt&active_enemies=2\nactions+=/run_action_list,name=cleave_ss,strict=1,if=!talent.frostfire_bolt&active_enemies=2\nactions+=/run_action_list,name=st_ff,strict=1,if=talent.frostfire_bolt\nactions+=/run_action_list,name=st_ss,strict=1,if=!talent.frostfire_bolt\n\nactions.aoe_ff+=/cone_of_cold,if=talent.coldest_snap&prev_gcd.1.comet_storm\nactions.aoe_ff+=/frostfire_bolt,if=talent.deaths_chill&buff.icy_veins.remains>9&(buff.deaths_chill.stack<9||buff.deaths_chill.stack=9&!action.frostfire_bolt.in_flight)\nactions.aoe_ff+=/freeze,if=freezable&(prev_gcd.1.glacial_spike||prev_gcd.1.comet_storm&cooldown.cone_of_cold.remains&!prev_gcd.2.cone_of_cold)\nactions.aoe_ff+=/ice_nova,if=freezable&(prev_gcd.1.glacial_spike&remaining_winters_chill=0&debuff.winters_chill.down||prev_gcd.1.comet_storm&cooldown.cone_of_cold.remains&!prev_gcd.2.cone_of_cold)&!prev_off_gcd.freeze\nactions.aoe_ff+=/frozen_orb,if=!prev_gcd.1.cone_of_cold\nactions.aoe_ff+=/comet_storm,if=cooldown.cone_of_cold.remains>6||cooldown.cone_of_cold.ready\nactions.aoe_ff+=/flurry,if=remaining_winters_chill=0&(buff.excess_frost.up&cooldown.comet_storm.remains>5||prev_gcd.1.glacial_spike)\nactions.aoe_ff+=/blizzard,if=talent.ice_caller\nactions.aoe_ff+=/ray_of_frost,if=talent.splintering_ray&remaining_winters_chill=2\nactions.aoe_ff+=/shifting_power,if=cooldown.icy_veins.remains>10&(fight_remains+10>cooldown.icy_veins.remains)\nactions.aoe_ff+=/frostfire_bolt,if=buff.frostfire_empowerment.up&!buff.excess_frost.up&!buff.excess_fire.up\nactions.aoe_ff+=/glacial_spike,if=(active_enemies<=6||!talent.ice_caller)&buff.icicles.stack=5\nactions.aoe_ff+=/ice_lance,if=buff.fingers_of_frost.up||remaining_winters_chill\nactions.aoe_ff+=/flurry,if=remaining_winters_chill=0\nactions.aoe_ff+=/frostfire_bolt\nactions.aoe_ff+=/call_action_list,name=movement\n\nactions.aoe_ss+=/cone_of_cold,if=talent.coldest_snap&!cooldown.frozen_orb.ready&(prev_gcd.1.comet_storm||prev_gcd.1.frozen_orb&cooldown.comet_storm.remains>5)&(!talent.deaths_chill||buff.icy_veins.remains<9||buff.deaths_chill.stack>=12)\nactions.aoe_ss+=/freeze,if=freezable&prev_gcd.1.glacial_spikeactions.aoe_ss+=/flurry,if=remaining_winters_chill=0&prev_gcd.1.glacial_spike\nactions.aoe_ss+=/ice_nova,if=active_enemies<5&freezable&prev_gcd.1.glacial_spike&remaining_winters_chill=0&debuff.winters_chill.down||active_enemies>=5&action.cone_of_cold.time_since<6&time-action.cone_of_cold.last_used>6-gcd.max\nactions.aoe_ss+=/frozen_orb\nactions.aoe_ss+=/frostbolt,if=talent.deaths_chill&buff.icy_veins.remains>9&(buff.deaths_chill.stack<9||buff.deaths_chill.stack=9&!action.frostbolt.in_flight)\nactions.aoe_ss+=/comet_storm\nactions.aoe_ss+=/ray_of_frost,if=talent.splintering_ray&prev_gcd.1.flurry\nactions.aoe_ss+=/blizzard,if=talent.ice_caller||talent.freezing_rain||active_enemies>=5\nactions.aoe_ss+=/shifting_power,if=cooldown.icy_veins.remains>10&(fight_remains+10>cooldown.icy_veins.remains)\nactions.aoe_ss+=/glacial_spike,if=buff.icicles.stack=5&(cooldown.flurry.up||remaining_winters_chill||active_enemies<5&freezable&cooldown.ice_nova.ready&!buff.fingers_of_frost.up)\nactions.aoe_ss+=/ice_lance,if=buff.fingers_of_frost.up&!prev_gcd.1.glacial_spike||remaining_wi
["spec"] = 64,
},
["Fire"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241206,
["author"] = "SimC",
["desc"] = "2024-11-25, 12-06: SimC update\n\n2024-08-15, 09-09, 09-10, 09-15, 09-22, 09-28: SimC update\n\n2024-07-29: The War Within",
["lists"] = {
["combustion_timing"] = {
{
["enabled"] = true,
["op"] = "set",
["description"] = "Helper variable that contains the actual estimated time that the next Combustion will be ready.",
["action"] = "variable",
["value"] = "cooldown.combustion.remains_expected",
["use_off_gcd"] = 1,
["var_name"] = "combustion_ready_time",
["use_while_casting"] = 1,
},
{
["enabled"] = true,
["op"] = "set",
["description"] = "The cast time of the spell that will be precast into Combustion.",
["action"] = "variable",
["value"] = "action.fireball.cast_time * ( active_enemies < variable.combustion_flamestrike ) + action.flamestrike.cast_time * ( active_enemies >= variable.combustion_flamestrike ) - variable.combustion_cast_remains",
["use_off_gcd"] = 1,
["var_name"] = "combustion_precast_time",
["use_while_casting"] = 1,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["use_off_gcd"] = 1,
["value"] = "variable.combustion_ready_time",
["var_name"] = "time_to_combustion",
["use_while_casting"] = 1,
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "variable",
["op"] = "max",
["criteria"] = "talent.firestarter.enabled & ! variable.firestarter_combustion",
["use_off_gcd"] = 1,
["value"] = "firestarter.remains",
["description"] = "Delay Combustion for after Firestarter unless variable.firestarter_combustion is set.",
["var_name"] = "time_to_combustion",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "variable",
["op"] = "max",
["criteria"] = "talent.sun_kings_blessing.enabled & firestarter.active & buff.fury_of_the_sun_king.down",
["use_off_gcd"] = 1,
["value"] = "( buff.sun_kings_blessing.max_stack - buff.sun_kings_blessing.stack ) * ( 3 * gcd.max )",
["description"] = "Delay Combustion until SKB is ready during Firestarter",
["var_name"] = "time_to_combustion",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "variable",
["op"] = "max",
["criteria"] = "equipped.gladiators_badge & cooldown.gladiators_badge.remains - 20 < variable.time_to_combustion",
["use_off_gcd"] = 1,
["value"] = "cooldown.gladiators_badge.remains",
["description"] = "Delay Combustion for Gladiators Badge, unless it would be delayed longer than 20 seconds.",
["var_name"] = "time_to_combustion",
},
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "buff.combustion.remains",
["use_off_gcd"] = 1,
["description"] = "Delay Combustion until Combustion expires if it's up.",
["use_while_casting"] = 1,
["var_name"] = "time_to_combustion",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["action"] = "variable",
["op"] = "max",
["criteria"] = "raid_event.adds.exists & raid_event.adds.count >= 3 & raid_event.adds.duration > 15",
["use_off_gcd"] = 1,
["value"] = "raid_event.adds.in",
["description"] = "Raid Events: Delay Combustion for add spawns of 3 or more adds that will last longer than 15 seconds. These values aren't necessarily optimal in all cases.",
["var_name"] = "time_to_combustion",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["description"] = "Raid Events: Always use Combustion with vulnerability raid events, override any delays listed above to make sure it gets used here.",
["op"] = "set",
["criteria"] = "raid_event.vulnerable.exists & variable.combustion_ready_time < raid_event.vulnerable.in",
["value"] = "raid_event.vulnerable.in * ! raid_event.vulnerable.up",
["use_off_gcd"] = 1,
["action"] = "variable",
["var_name"] = "time_to_combustion",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["description"] = "Use the next Combustion on cooldown if it would not be expected to delay the scheduled one or the scheduled one would happen less than 20 seconds before the fight ends.",
["op"] = "set",
["criteria"] = "variable.combustion_ready_time + cooldown.combustion.duration * ( 1 - ( 0.4 + 0.2 * talent.firestarter.enabled ) * talent.kindling.enabled ) <= variable.time_to_combustion || variable.time_to_combustion > fight_remains - 20",
["value"] = "variable.combustion_ready_time",
["use_off_gcd"] = 1,
["action"] = "variable",
["var_name"] = "time_to_combustion",
},
},
["combustion_cooldowns"] = {
{
["action"] = "potion",
["enabled"] = true,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.up",
["action"] = "berserking",
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["enabled"] = true,
["name"] = "gladiators_badge",
["action"] = "gladiators_badge",
},
},
["default"] = {
{
["action"] = "counterspell",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "time < 0.5",
["action"] = "phoenix_flames",
},
{
["enabled"] = true,
["description"] = "The combustion_timing action list schedules the approximate time when Combustion should be used and stores the number of seconds until then in variable.time_to_combustion.",
["action"] = "call_action_list",
["list_name"] = "combustion_timing",
},
{
["enabled"] = true,
["criteria"] = "buff.potion.duration > variable.time_to_combustion + buff.combustion.duration",
["action"] = "potion",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.time_to_combustion > cooldown.shifting_power.remains",
["description"] = "Variable that estimates whether Shifting Power will be used before the next Combustion.",
["var_name"] = "shifting_power_before_combustion",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.time_to_combustion < variable.on_use_cutoff || buff.combustion.remains > variable.skb_duration & ! cooldown.item_cd_1141.remains ) & ( ( trinket.t1.has_cooldown & trinket.t1.cooldown.remains < variable.on_use_cutoff ) + ( trinket.t2.has_cooldown & trinket.t2.cooldown.remains < variable.on_use_cutoff ) > 1 )",
["var_name"] = "item_cutoff_active",
},
{
["enabled"] = true,
["action"] = "spymasters_web",
["criteria"] = "( trinket.t1.has_use & trinket.t2.has_use & buff.combustion.remains > 10 & fight_remains < 80 ) || ( ( buff.combustion.remains > 10 & buff.spymasters_report.stack > 35 & fight_remains < 60 ) || boss & fight_remains < 25 )",
["effect_name"] = "spymasters_web",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["description"] = "The War Within S1 On-Use items with special use timings",
["criteria"] = "variable.time_to_combustion < 10 || boss & fight_remains < 25",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
["criteria"] = "variable.time_to_combustion < 3",
},
{
["enabled"] = true,
["name"] = "gladiators_badge",
["action"] = "gladiators_badge",
["criteria"] = "variable.time_to_combustion > action_cooldown - 5",
},
{
["enabled"] = true,
["criteria"] = "! variable.item_cutoff_active",
["action"] = "use_items",
},
{
["enabled"] = true,
["op"] = "set",
["description"] = "Pool as many Fire Blasts as possible for Combustion.",
["action"] = "variable",
["value"] = "buff.combustion.down & action.fire_blast.charges_fractional + ( variable.time_to_combustion + action.shifting_power.full_reduction * variable.shifting_power_before_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,
},
{
["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",
},
{
["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 & talent.sun_kings_blessing.enabled",
["value"] = "scorch_execute.active & action.fire_blast.full_recharge_time > 3 * gcd.max",
["use_off_gcd"] = 1,
["action"] = "variable",
["var_name"] = "fire_blast_pooling",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & ( ! improved_scorch.active || debuff.improved_scorch.remains > cast_time + action.scorch.cast_time & ! buff.fury_of_the_sun_king.up ) & ! buff.hot_streak.up & buff.hyperthermia.down & ( cooldown.phoenix_flames.charges <= 1 || cooldown.combustion.remains < 20 )",
["action"] = "shifting_power",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "phoenix_pooling",
["criteria"] = "! talent.sun_kings_blessing.enabled",
["description"] = "Variable that controls Phoenix Flames usage to ensure its charges are pooled for Combustion when needed. Only use Phoenix Flames outside of Combustion when full charges can be obtained during the next Combustion.",
["value"] = "( variable.time_to_combustion + buff.combustion.duration - 5 < action.phoenix_flames.full_recharge_time + cooldown.phoenix_flames.duration - action.shifting_power.full_reduction * variable.shifting_power_before_combustion & variable.time_to_combustion < fight_remains || talent.sun_kings_blessing.enabled ) & ! talent.alexstraszas_fury.enabled",
},
{
["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.up & ( buff.heating_up.up & 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.",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & firestarter.active & variable.time_to_combustion > 0",
["action"] = "call_action_list",
["list_name"] = "firestarter_fire_blasts",
},
{
["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 || talent.sun_kings_blessing.enabled & buff.heating_up.up )",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.time_to_combustion > 0 & buff.combustion.down",
["list_name"] = "standard_rotation",
},
{
["enabled"] = true,
["criteria"] = "! scorch_execute.active",
["action"] = "ice_nova",
["description"] = "Ice Nova can be used during movement when Searing Touch is not active.",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down",
["action"] = "scorch",
},
},
["precombat"] = {
{
["action"] = "arcane_intellect",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["criteria"] = "variable.firestarter_combustion < 0",
["default"] = "-1",
["value"] = "talent.sun_kings_blessing.enabled",
["description"] = "APL Variable Option: This variable specifies whether Combustion should be used during Firestarter.",
["action"] = "variable",
["var_name"] = "firestarter_combustion",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "hot_streak_flamestrike",
["criteria"] = "variable.hot_streak_flamestrike = 0",
["description"] = "APL Variable Option: This variable specifies the number of targets at which Hot Streak Flamestrikes outside of Combustion should be used.",
["value"] = "4 * ( talent.quickflame.enabled || talent.flame_patch.enabled ) + 999 * ( ! talent.flame_patch.enabled & ! talent.quickflame.enabled )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "hard_cast_flamestrike",
["criteria"] = "variable.hard_cast_flamestrike = 0",
["description"] = "APL Variable Option: This variable specifies the number of targets at which Hard Cast Flamestrikes outside of Combustion should be used as filler.",
["value"] = "999",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "combustion_flamestrike",
["criteria"] = "variable.combustion_flamestrike = 0",
["description"] = "APL Variable Option: This variable specifies the number of targets at which Hot Streak Flamestrikes are used during Combustion.",
["value"] = "4 * ( talent.quickflame.enabled || talent.flame_patch.enabled ) + 999 * ( ! talent.flame_patch.enabled & ! talent.quickflame.enabled )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "skb_flamestrike",
["criteria"] = "variable.skb_flamestrike = 0",
["description"] = "APL Variable Option: This variable specifies the number of targets at which Flamestrikes should be used to consume Fury of the Sun King.",
["value"] = "3 * ( talent.quickflame.enabled || talent.flame_patch.enabled ) + 999 * ( ! talent.flame_patch.enabled & ! talent.quickflame.enabled )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "arcane_explosion",
["criteria"] = "variable.arcane_explosion = 0",
["description"] = "APL Variable Option: This variable specifies the number of targets at which Arcane Explosion outside of Combustion should be used.",
["value"] = "999",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "arcane_explosion_mana",
["default"] = "40",
["description"] = "APL Variable Option: This variable specifies the percentage of mana below which Arcane Explosion will not be used.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "combustion_shifting_power",
["criteria"] = "variable.combustion_shifting_power = 0",
["description"] = "APL Variable Option: The number of targets at which Shifting Power can used during Combustion.",
["value"] = "999",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "combustion_cast_remains",
["default"] = "0.3",
["description"] = "APL Variable Option: The time remaining on a cast when Combustion can be used in seconds.",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "overpool_fire_blasts",
["default"] = "0",
["description"] = "APL Variable Option: This variable specifies the number of seconds of Fire Blast that should be pooled past the default amount.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "6",
["description"] = "The duration of a Sun King's Blessing Combustion.",
["var_name"] = "skb_duration",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "12",
["var_name"] = "treacherous_transmitter_precombat_cast",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.gladiators_badge || equipped.treacherous_transmitter || equipped.moonlit_prism || equipped.irideus_fragment || equipped.spoils_of_neltharus || equipped.timebreaching_talon || equipped.horn_of_valor",
["description"] = "Whether a usable item used to buff Combustion is equipped.",
["var_name"] = "combustion_on_use",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "on_use_cutoff",
["criteria"] = "variable.combustion_on_use",
["description"] = "How long before Combustion should trinkets that trigger a shared category cooldown on other trinkets not be used?",
["value"] = "20",
},
{
["action"] = "mirror_image",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hot_streak_flamestrike",
["action"] = "flamestrike",
},
{
["action"] = "pyroblast",
["enabled"] = true,
},
},
["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.up & ( action.fireball.execute_remains > gcd.remains || action.pyroblast.executing ) & buff.heating_up.up + hot_streak_spells_in_flight = 1 & ( cooldown.shifting_power.ready || charges > 1 || buff.feel_the_burn.remains < 2 * gcd.max )",
},
{
["enabled"] = true,
["criteria"] = "! variable.fire_blast_pooling & buff.heating_up.stack + hot_streak_spells_in_flight = 1 & ( talent.feel_the_burn.enabled & buff.feel_the_burn.remains < gcd.remains || cooldown.shifting_power.ready ) & time > 0",
["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.",
},
},
["active_talents"] = {
{
["enabled"] = true,
["criteria"] = "( buff.combustion.up & buff.combustion.remains < cast_time ) || ( variable.time_to_combustion <= 0 || buff.combustion.remains > travel_time )",
["action"] = "meteor",
["description"] = "Meteor when it will impact inside of combust",
},
{
["enabled"] = true,
["criteria"] = "talent.alexstraszas_fury.enabled & ( buff.combustion.down & ! buff.hot_streak.up ) & ( buff.feel_the_burn.up || time > 15 ) & ( ! improved_scorch.active )",
["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.",
},
},
["standard_rotation"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hot_streak_flamestrike & ( buff.hot_streak.up || buff.hyperthermia.up )",
["action"] = "flamestrike",
},
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.up & ! buff.frostfire_empowerment.up & buff.hyperthermia.down & ! cooldown.shifting_power.ready & cooldown.phoenix_flames.charges < 1 & ! scorch_execute.active & ! prev_gcd.1.fireball",
["line_cd"] = "2*gcd.max",
["action"] = "fireball",
["description"] = "When resources are low, fish for Hot Streaks.",
},
{
["enabled"] = true,
["criteria"] = "( buff.hyperthermia.up || buff.hot_streak.up & ( buff.hot_streak.remains < action.fireball.execute_time ) || buff.hot_streak.up & ( hot_streak_spells_in_flight || firestarter.active || talent.call_of_the_sun_king.enabled & action.phoenix_flames.charges ) || buff.hot_streak.up & scorch_execute.active )",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.skb_flamestrike & buff.fury_of_the_sun_king.up & buff.fury_of_the_sun_king.expiration_delay_remains = 0",
["action"] = "flamestrike",
},
{
["enabled"] = true,
["criteria"] = "improved_scorch.active & ( ( talent.unleashed_inferno.enabled & debuff.improved_scorch.remains < action.pyroblast.cast_time + 5 * gcd.max ) || ( talent.sun_kings_blessing.enabled & debuff.improved_scorch.remains < 4 * gcd.max ) ) & buff.fury_of_the_sun_king.up & ! action.scorch.in_flight",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "buff.fury_of_the_sun_king.up & buff.fury_of_the_sun_king.expiration_delay_remains = 0",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! firestarter.active & ( ! variable.fire_blast_pooling || talent.spontaneous_combustion.enabled ) & buff.fury_of_the_sun_king.down & ( ( ( action.fireball.executing & ( action.fireball.execute_remains < 0.5 || ! talent.hyperthermia.enabled ) || action.pyroblast.executing & ( action.pyroblast.execute_remains < 0.5 ) ) & buff.heating_up.up ) || ( scorch_execute.active & ( ! improved_scorch.active || debuff.improved_scorch.stack = debuff.improved_scorch.max_stack || full_recharge_time < 3 ) & ( buff.heating_up.up & ! action.scorch.executing || ! buff.hot_streak.up & ! buff.heating_up.up & 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 Combustion. Use Fire Blast either during a Fireball/Pyroblast cast when Heating Up is active or during execute with Searing Touch.",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "! firestarter.active & ( ( ! variable.fire_blast_pooling & talent.unleashed_inferno.enabled ) || talent.spontaneous_combustion.enabled ) & buff.fury_of_the_sun_king.down & ( buff.heating_up.up & hot_streak_spells_in_flight < 1 & ( prev_gcd.1.phoenix_flames || prev_gcd.1.scorch ) ) || ( ( ( buff.bloodlust.up & charges_fractional > 1.5 ) || charges_fractional > 2.5 || buff.feel_the_burn.remains < 0.5 || full_recharge_time * 1 - ( 0.5 * cooldown.shifting_power.ready ) < buff.hyperthermia.duration ) & buff.heating_up.up )",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "We will munch Fireblasts during Hyperthermia, and use them after instant casts in filler.",
},
{
["enabled"] = true,
["criteria"] = "improved_scorch.active & debuff.improved_scorch.remains < 4 * gcd.max",
["action"] = "scorch",
["description"] = "actions.standard_rotation+=/pyroblast,if=prev_gcd.1.scorch&buff.heating_up.up&scorch_execute.active&active_enemies<variable.hot_streak_flamestrike",
},
{
["enabled"] = true,
["criteria"] = "buff.frostfire_empowerment.up & ! buff.hot_streak.up & ! buff.excess_frost.up",
["action"] = "fireball",
},
{
["enabled"] = true,
["criteria"] = "buff.heat_shimmer.up & ( talent.scald.enabled || talent.improved_scorch.enabled ) & active_enemies < variable.combustion_flamestrike",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "! buff.hot_streak.up & ( hot_streak_spells_in_flight < 1 & ( ! prev_gcd.1.fireball || ( buff.heating_up.down & buff.hot_streak.down ) ) ) || ( hot_streak_spells_in_flight < 2 & buff.flames_fury.up )",
["action"] = "phoenix_flames",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & talent.alexstraszas_fury.enabled",
["action"] = "dragons_breath",
},
{
["enabled"] = true,
["criteria"] = "( scorch_execute.active || buff.heat_shimmer.up )",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.arcane_explosion & mana.pct >= variable.arcane_explosion_mana",
["action"] = "arcane_explosion",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= variable.hard_cast_flamestrike",
["action"] = "flamestrike",
["description"] = "With enough targets, it is a gain to cast Flamestrike as filler instead of Fireball. This is currently never true up to 10t.",
},
{
["action"] = "fireball",
["enabled"] = true,
},
},
["combustion_phase"] = {
{
["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 || boss & fight_remains < 20",
["list_name"] = "combustion_cooldowns",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "active_talents",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.fury_of_the_sun_king.up & buff.fury_of_the_sun_king.remains > cast_time & buff.fury_of_the_sun_king.expiration_delay_remains = 0 & cooldown.combustion.remains < cast_time & active_enemies >= variable.skb_flamestrike",
["action"] = "flamestrike",
["description"] = "If Combustion is down, precast something before activating it.",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.fury_of_the_sun_king.up & buff.fury_of_the_sun_king.remains > cast_time & ( buff.fury_of_the_sun_king.expiration_delay_remains = 0 || buff.flame_accelerant.up )",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time & active_enemies < 2 & ! improved_scorch.active & ! ( talent.sun_kings_blessing.enabled & talent.flame_accelerant.enabled )",
["action"] = "fireball",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & cooldown.combustion.remains < cast_time",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.down & buff.frostfire_empowerment.up",
["action"] = "fireball",
["description"] = "If no precast was available, spend Frostfire Empowerment so that Fireball can be used as a precast.",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "hot_streak_spells_in_flight = 0 & buff.combustion.down & variable.time_to_combustion <= 0 & ( 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 || ! talent.isothermic_core.enabled & action.meteor.in_flight & action.meteor.in_flight_remains < variable.combustion_cast_remains || talent.isothermic_core.enabled & action.meteor.in_flight )",
["use_off_gcd"] = 1,
["action"] = "combustion",
["description"] = "Combustion should be used when the precast is almost finished or when Meteor is about to land.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.combustion.remains < 10 & buff.combustion.up",
["description"] = "Variable to determine which Fire Blast conditions are used.",
["var_name"] = "ta_combust",
},
{
["enabled"] = true,
["criteria"] = "talent.spellfire_spheres.enabled & talent.phoenix_reborn.enabled & buff.heating_up.up & ! buff.hot_streak.up & buff.flames_fury.up",
["action"] = "phoenix_flames",
["description"] = "Spend empowered Phoenix Flames at highest priority in combustion when talented into Sunfury.",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "( ! variable.ta_combust || talent.sun_kings_blessing.enabled ) & ! variable.fire_blast_pooling & ( ! improved_scorch.active || action.scorch.executing || debuff.improved_scorch.remains > 4 * gcd.max ) & ( buff.fury_of_the_sun_king.down || action.pyroblast.executing ) & buff.combustion.up & ! buff.hot_streak.up & hot_streak_spells_in_flight + buff.heating_up.stack * ( gcd.remains > 0 ) < 2",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "Fire Blast usage for a standard combustion",
},
{
["enabled"] = true,
["use_while_casting"] = 1,
["criteria"] = "variable.ta_combust & ! variable.fire_blast_pooling & charges_fractional > 2.5 & ( ! improved_scorch.active || action.scorch.executing || debuff.improved_scorch.remains > 4 * gcd.max ) & ( buff.fury_of_the_sun_king.down || action.pyroblast.executing ) & buff.combustion.up & ! buff.hot_streak.up & hot_streak_spells_in_flight + buff.heating_up.stack * ( gcd.remains > 0 ) < 2",
["use_off_gcd"] = 1,
["action"] = "fire_blast",
["description"] = "Fire Blast usage for a TA combustion, when a regular combustion is soon to follow.",
},
{
["buff_name"] = "hyperthermia",
["criteria"] = "buff.fury_of_the_sun_king.up",
["action"] = "cancel_buff",
["enabled"] = true,
["description"] = "Cancelaura HT if SKB is ready",
},
{
["enabled"] = true,
["criteria"] = "( buff.hot_streak.up & active_enemies >= variable.combustion_flamestrike ) || ( buff.hyperthermia.up & active_enemies >= variable.combustion_flamestrike - talent.hyperthermia.enabled )",
["action"] = "flamestrike",
["description"] = "Spend Hot Streaks during Combustion at high priority.",
},
{
["enabled"] = true,
["criteria"] = "buff.hyperthermia.up",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["criteria"] = "buff.hot_streak.up & buff.combustion.up",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.scorch & buff.heating_up.up & active_enemies < variable.combustion_flamestrike & buff.combustion.up",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["criteria"] = "talent.sun_kings_blessing.enabled & improved_scorch.active & debuff.improved_scorch.remains < 3 * gcd.max",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "buff.fury_of_the_sun_king.up & buff.fury_of_the_sun_king.remains > cast_time & active_enemies >= variable.skb_flamestrike & buff.fury_of_the_sun_king.expiration_delay_remains = 0 & ( buff.combustion.remains > cast_time + 3 || buff.combustion.remains < cast_time )",
["action"] = "flamestrike",
["description"] = "Spend Fury of the Sun King procs inside of combustion.",
},
{
["enabled"] = true,
["criteria"] = "buff.fury_of_the_sun_king.up & buff.fury_of_the_sun_king.remains > cast_time & buff.fury_of_the_sun_king.expiration_delay_remains = 0 & ( buff.combustion.remains > cast_time + 3 || buff.combustion.remains < cast_time )",
["action"] = "pyroblast",
},
{
["enabled"] = true,
["criteria"] = "buff.frostfire_empowerment.up & ! buff.hot_streak.up & ! buff.excess_frost.up",
["action"] = "fireball",
},
{
["enabled"] = true,
["criteria"] = "talent.phoenix_reborn.enabled & buff.heating_up.up + hot_streak_spells_in_flight < 2 & buff.flames_fury.up",
["action"] = "phoenix_flames",
},
{
["enabled"] = true,
["criteria"] = "improved_scorch.active & ( debuff.improved_scorch.remains < 4 * gcd.max ) & active_enemies < variable.combustion_flamestrike",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "buff.heat_shimmer.up & ( talent.scald.enabled || talent.improved_scorch.enabled ) & active_enemies < variable.combustion_flamestrike",
["action"] = "scorch",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.call_of_the_sun_king.enabled & travel_time < buff.combustion.remains || ( talent.call_of_the_sun_king.enabled & buff.combustion.remains < 4 || buff.sun_kings_blessing.stack < 8 ) ) & buff.heating_up.stack + hot_streak_spells_in_flight < 2",
["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.",
},
{
["enabled"] = true,
["criteria"] = "buff.frostfire_empowerment.up & ! buff.hot_streak.up",
["action"] = "fireball",
},
{
["enabled"] = true,
["criteria"] = "buff.combustion.remains > cast_time & cast_time >= gcd.max",
["action"] = "scorch",
},
{
["action"] = "fireball",
["enabled"] = true,
},
},
},
["version"] = 20241206,
["warnings"] = "The import for 'combustion_timing' required some automated changes.\nLine 4: Converted 'talent.firestarter' to 'talent.firestarter.enabled' (1x).\nLine 5: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 10: Converted 'talent.firestarter' to 'talent.firestarter.enabled' (1x).\nLine 10: Converted 'talent.kindling' to 'talent.kindling.enabled' (1x).\n\nThe import for 'firestarter_fire_blasts' required some automated changes.\nLine 2: Converted 'talent.feel_the_burn' to 'talent.feel_the_burn.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 6: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 7: Converted 'trinket.1.has_use' to 'trinket.t1.has_use' (1x).\nLine 7: Converted 'trinket.2.has_use' to 'trinket.t2.has_use' (1x).\nLine 12: Converted operations in 'buff.combustion.down&action.fire_blast.charges_fractional+(variable.time_to_combustion+action.shifting_power.full_reduction*variable.shifting_power_before_combustion)%cooldown.fire_blast.duration-1<cooldown.fire_blast.max_charges+variable.overpool_fire_blasts%cooldown.fire_blast.duration-(buff.combustion.duration%cooldown.fire_blast.duration)%%1&variable.time_to_combustion<fight_remains' to 'buff.combustion.down&action.fire_blast.charges_fractional+(variable.time_to_combustion+action.shifting_power.full_reduction*variable.shifting_power_before_combustion)/cooldown.fire_blast.duration-1<cooldown.fire_blast.max_charges+variable.overpool_fire_blasts/cooldown.fire_blast.duration-(buff.combustion.duration/cooldown.fire_blast.duration)%1&variable.time_to_combustion<fight_remains'.\nLine 14: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 16: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 16: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 16: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\nLine 19: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 2: Converted 'talent.sun_kings_blessing' to 'talent.sun_kings_blessing.enabled' (1x).\nLine 3: Converted 'talent.quickflame' to 'talent.quickflame.enabled' (1x).\nLine 3: Converted 'talent.flame_patch' to 'talent.flame_patch.enabled' (1x).\nLine 3: Converted 'talent.flame_patch' to 'talent.flame_patch.enabled' (1x).\nLine 3: Converted 'talent.quickflame' to 'talent.quickflame.enabled' (1x).\nLine 5: Converted 'talent.quickflame' to 'talent.quickflame.enabled' (1x).\nLine 5: Converted 'talent.flame_patch' to 'talent.flame_patch.enabled' (1x).\nLine 5: Converted 'talent.flame_patch' to 'talent.flame_patch.enabled' (1x).\nLine 5: Converted 'talent.quickflame' to 'talent.quickflame.enabled' (1x).\nLine 6: Converted 'talent.quickflame' to 'talent.quickflame.enabled' (1x).\nLine 6: Converted 'talent.flame_patch' to 'talent.flame_patch.enabled' (1x).\nLine 6: Converted 'talent.flame_patch' to 'talent.flame_patch.enabled' (1x).\nLine 6: Converted 'talent.quickflame' to 'talent.quickflame.enabled' (1x).\n\nThe import for 'active_talents' required some automated changes.\nLine 2: Converted 'talent.alexstraszas_fury' to 'talent.alexstraszas_fury.enabled' (1x).\n\nThe import for 'standard_rotation' required some automated changes.\nLine 3: Converted 'talent.call_of_the_sun_king' to 'talent.call_of_the_sun_king.enabled' (1x).\nLine 5: Converted 'talent.unleashed_inferno' to 'talent.unleashed_inferno.enabled' (1x).\nLine 5: Converted 'talent.sun_kings_blessing' to 'talent
["profile"] = "actions.precombat+=/arcane_intellect\n# APL Variable Option: This variable specifies whether Combustion should be used during Firestarter.\nactions.precombat+=/variable,name=firestarter_combustion,default=-1,value=talent.sun_kings_blessing,if=variable.firestarter_combustion<0\n# APL Variable Option: This variable specifies the number of targets at which Hot Streak Flamestrikes outside of Combustion should be used.\nactions.precombat+=/variable,name=hot_streak_flamestrike,if=variable.hot_streak_flamestrike=0,value=4*(talent.quickflame||talent.flame_patch)+999*(!talent.flame_patch&!talent.quickflame)\n# APL Variable Option: This variable specifies the number of targets at which Hard Cast Flamestrikes outside of Combustion should be used as filler.\nactions.precombat+=/variable,name=hard_cast_flamestrike,if=variable.hard_cast_flamestrike=0,value=999\n# APL Variable Option: This variable specifies the number of targets at which Hot Streak Flamestrikes are used during Combustion.\nactions.precombat+=/variable,name=combustion_flamestrike,if=variable.combustion_flamestrike=0,value=4*(talent.quickflame||talent.flame_patch)+999*(!talent.flame_patch&!talent.quickflame)\n# APL Variable Option: This variable specifies the number of targets at which Flamestrikes should be used to consume Fury of the Sun King.\nactions.precombat+=/variable,name=skb_flamestrike,if=variable.skb_flamestrike=0,value=3*(talent.quickflame||talent.flame_patch)+999*(!talent.flame_patch&!talent.quickflame)\n# APL Variable Option: This variable specifies the number of targets at which Arcane Explosion outside of Combustion should be used.\nactions.precombat+=/variable,name=arcane_explosion,if=variable.arcane_explosion=0,value=999\n# APL Variable Option: This variable specifies the percentage of mana below which Arcane Explosion will not be used.\nactions.precombat+=/variable,name=arcane_explosion_mana,default=40,op=reset\n# APL Variable Option: The number of targets at which Shifting Power can used during Combustion.\nactions.precombat+=/variable,name=combustion_shifting_power,if=variable.combustion_shifting_power=0,value=999\n# APL Variable Option: The time remaining on a cast when Combustion can be used in seconds.\nactions.precombat+=/variable,name=combustion_cast_remains,default=0.3,op=reset\n# APL Variable Option: This variable specifies the number of seconds of Fire Blast that should be pooled past the default amount.\nactions.precombat+=/variable,name=overpool_fire_blasts,default=0,op=reset\n# The duration of a Sun King's Blessing Combustion.\nactions.precombat+=/variable,name=skb_duration,value=6\nactions.precombat+=/variable,name=treacherous_transmitter_precombat_cast,value=12\nactions.precombat+=/use_item,name=treacherous_transmitter\n# Whether a usable item used to buff Combustion is equipped.\nactions.precombat+=/variable,name=combustion_on_use,value=equipped.gladiators_badge||equipped.treacherous_transmitter||equipped.moonlit_prism||equipped.irideus_fragment||equipped.spoils_of_neltharus||equipped.timebreaching_talon||equipped.horn_of_valor\n# How long before Combustion should trinkets that trigger a shared category cooldown on other trinkets not be used?\nactions.precombat+=/variable,name=on_use_cutoff,value=20,if=variable.combustion_on_use\nactions.precombat+=/mirror_image\nactions.precombat+=/flamestrike,if=active_enemies>=variable.hot_streak_flamestrike\nactions.precombat+=/pyroblast\n\nactions+=/counterspell\nactions+=/phoenix_flames,if=time<0.5\n# The combustion_timing action list schedules the approximate time when Combustion should be used and stores the number of seconds until then in variable.time_to_combustion.\nactions+=/call_action_list,name=combustion_timing\nactions+=/potion,if=buff.potion.duration>variable.time_to_combustion+buff.combustion.duration\n# Variable that estimates whether Shifting Power will be used before the next Combustion.\nactions+=/variable,name=shifting_power_before_combustion,value=variable.time_to_combustion>cooldown.shifting_power.remains\nactions+=/variable,name=item_cutoff_active,value=(variab
["spec"] = 63,
},
["Augmentation"] = {
["source"] = "https://www.icy-veins.com/wow/augmentation-evoker-pve-dps-rotation-cooldowns-abilities",
["builtIn"] = true,
["date"] = 20241206,
["spec"] = 1473,
["desc"] = "2024-12-06: SimC update\n\n2024-10-23: 11.0.5\n\n2024-10-21: SimC update\n\n2024-10-06: Prescience more (j/k, SimC update)\n\n2024-10-01: Prescience less\n\n2024-09-24, 09-28: More Empowered / Breath fixes\n\n2024-09-22: Use Fire Breath more\n\n2024-09-21: Revisions for solo vs. group; update from SimC\n\n2024-09-15: Quell; ensure Upheaval casts can always finish\n\n2024-07-27, 09-09: Update from SimC\n\n2024-07-23: The War Within",
["lists"] = {
["items"] = {
{
["enabled"] = true,
["action"] = "nymues_unraveling_spindle",
["criteria"] = "cooldown.breath_of_eons.remains <= 3 & ( trinket.t1.is.nymues_unraveling_spindle & variable.trinket_priority = 1 || trinket.t2.is.nymues_unraveling_spindle & variable.trinket_priority = 2 ) || ( cooldown.fire_breath.remains <= 4 || cooldown.upheaval.remains <= 4 ) & cooldown.breath_of_eons.remains > 10 & ! ( debuff.temporal_wound.up || prev_gcd.1.breath_of_eons ) & ( trinket.t1.is.nymues_unraveling_spindle & variable.trinket_priority = 2 || trinket.t2.is.nymues_unraveling_spindle & variable.trinket_priority = 1 )",
["name"] = "nymues_unraveling_spindle",
},
{
["enabled"] = true,
["name"] = "aberrant_spellforge",
["action"] = "aberrant_spellforge",
},
{
["enabled"] = true,
["action"] = "treacherous_transmitter",
["criteria"] = "cooldown.breath_of_eons.remains <= 10 & talent.wingleader.enabled || boss & fight_remains <= 15",
["name"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["action"] = "spymasters_web",
["criteria"] = "( debuff.temporal_wound.up || prev_gcd.1.breath_of_eons ) & ( fight_remains <= 130 - ( 30 + 12 * talent.interwoven_threads.enabled ) * talent.wingleader.enabled - 20 * talent.time_skip.enabled * ( cooldown.time_skip.remains <= 90 ) * ! talent.interwoven_threads.enabled ) || ( boss & fight_remains <= 20 || active_dot.breath_of_eons > 0 & fight_remains <= 60 ) & ( trinket.t1.is.spymasters_web & ( trinket.t2.cooldown.duration = 0 || trinket.t2.cooldown.remains >= 10 || variable.trinket_2_exclude ) || trinket.t2.is.spymasters_web & ( trinket.t1.cooldown.duration = 0 || trinket.t1.cooldown.remains >= 10 || variable.trinket_1_exclude ) ) & ! buff.spymasters_web.up",
["name"] = "spymasters_web",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ! variable.trinket_1_exclude & ( ( debuff.temporal_wound.up || prev_gcd.1.breath_of_eons ) || variable.trinket_2_buffs & ! trinket.t2.cooldown.up & ( prev_gcd.1.fire_breath || prev_gcd.1.upheaval ) & buff.ebon_might_self.up ) & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains & boss",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ! variable.trinket_2_exclude & ( ( debuff.temporal_wound.up || prev_gcd.1.breath_of_eons ) || variable.trinket_1_buffs & ! trinket.t1.cooldown.up & ( prev_gcd.1.fire_breath || prev_gcd.1.upheaval ) & buff.ebon_might_self.up ) & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains & boss",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ! variable.trinket_1_exclude & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || trinket.t2.is.spymasters_web & buff.spymasters_report.stack < 30 || variable.eons_remains >= 20 || trinket.t2.cooldown.duration = 0 || variable.trinket_2_exclude ) & ( gcd.remains > 0.1 & variable.trinket_1_ogcd_cast )",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ! variable.trinket_2_exclude & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || trinket.t1.is.spymasters_web & buff.spymasters_report.stack < 30 || variable.eons_remains >= 20 || trinket.t1.cooldown.duration = 0 || variable.trinket_1_exclude ) & ( gcd.remains > 0.1 & variable.trinket_2_ogcd_cast )",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ! variable.trinket_1_exclude & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || trinket.t2.is.spymasters_web & buff.spymasters_report.stack < 30 || variable.eons_remains >= 20 || trinket.t2.cooldown.duration = 0 || variable.trinket_2_exclude ) & ( ! variable.trinket_1_ogcd_cast )",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ! variable.trinket_2_exclude & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || trinket.t1.is.spymasters_web & buff.spymasters_report.stack < 30 || variable.eons_remains >= 20 || trinket.t1.cooldown.duration = 0 || variable.trinket_1_exclude ) & ( ! variable.trinket_2_ogcd_cast )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "main_hand",
["slot"] = "main_hand",
["use_off_gcd"] = 1,
["description"] = "Use on use weapons",
["criteria"] = "gcd.remains >= gcd.max * 0.6",
},
},
["opener_filler"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.opener_delay >? variable.minimum_opener_delay",
["var_name"] = "opener_delay",
["criteria"] = "! variable.opener_cds_detected & ( solo || active_dot.breath_of_eons > 0 )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.opener_delay - 1",
["var_name"] = "opener_delay",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.breath_of_eons.remains > 0 || action.breath_of_eons.time_since < time",
["var_name"] = "opener_cds_detected",
},
{
["enabled"] = true,
["criteria"] = "variable.opener_delay >= 3",
["action"] = "eruption",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 || talent.pupil_of_alexstrasza.enabled || buff.leaping_flames.up",
["action"] = "living_flame",
},
{
["action"] = "azure_strike",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "quell",
["enabled"] = true,
},
{
["action"] = "unravel",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "debuff.temporal_wound.remains",
["var_name"] = "temp_wound",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["value"] = "cooldown.breath_of_eons.remains",
["var_name"] = "eons_remains",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "pool_for_id",
["value"] = "( variable.eons_remains < 8 ) & essence.deficit >= 1 & ! buff.essence_burst.up",
["default"] = "0",
["criteria"] = "talent.imminent_destruction.enabled",
},
{
["enabled"] = true,
["criteria"] = "( solo & buff.prescience.remains < 1 || group & active_dot.prescience < 2 ) & ( ( full_recharge_time <= gcd.max * 3 || cooldown.ebon_might.remains <= gcd.max * 3 & ( buff.ebon_might_self.remains - gcd.max * 3 ) <= buff.ebon_might_self.duration * variable.ebon_might_pandemic_threshold || boss & fight_remains <= 30 ) || variable.eons_remains <= 8 || talent.anachronism.enabled & buff.imminent_destruction.up & essence < 1 & ! cooldown.fire_breath.up & ! cooldown.upheaval.up ) & debuff.prescience.remains < gcd.max * 2",
["action"] = "prescience",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["use_off_gcd"] = 1,
["action"] = "hover",
["criteria"] = "gcd.remains >= 0.5 & ( ! raid_event.movement.exists & ( trinket.t1.is.ovinaxs_mercurial_egg || trinket.t2.is.ovinaxs_mercurial_egg ) || raid_event.movement.in <= 6 )",
},
{
["enabled"] = true,
["criteria"] = "variable.eons_remains <= 0 || boss & fight_remains <= 30",
["action"] = "potion",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_dot.ebon_might = 0 || ( buff.ebon_might_self.remains - action.ebon_might.cast_time ) <= buff.ebon_might_self.duration * variable.ebon_might_pandemic_threshold",
["list_name"] = "ebon_logic",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "variable.opener_delay > 0 & boss",
["list_name"] = "opener_filler",
},
{
["action"] = "deep_breath",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.threads_of_fate.enabled & ( prev_gcd.1.breath_of_eons || boss & fight_remains <= 30 )",
["action"] = "tip_the_scales",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.time_skip.up & talent.time_skip.enabled & ! talent.interwoven_threads.enabled || empowering.fire_breath",
["var_name"] = "fb_condition",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "variable.fb_condition",
["list_name"] = "fb",
},
{
["enabled"] = true,
["action"] = "upheaval",
["cycle_targets"] = 1,
["criteria"] = "target.time_to_die > cast_time + 0.2 & buff.ebon_might_self.remains > duration & cooldown.time_skip.up & talent.time_skip.enabled & ! talent.interwoven_threads.enabled || empowering.upheaval",
["empower_to"] = "1",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "! variable.fb_condition & ( variable.eons_remains >= variable.hold_empower_for || ! talent.breath_of_eons.enabled || variable.eons_remains = 0 & talent.wingleader.enabled )",
["list_name"] = "fb",
},
{
["enabled"] = true,
["action"] = "upheaval",
["cycle_targets"] = 1,
["criteria"] = "target.time_to_die > cast_time + 0.2 & buff.ebon_might_self.remains > duration & ( ! talent.molten_embers.enabled || dot.fire_breath_damage.ticking || cooldown.fire_breath.remains >= 10 ) & ( cooldown.breath_of_eons.remains >= variable.hold_empower_for || ! talent.breath_of_eons.enabled || talent.wingleader.enabled )",
["empower_to"] = "1",
},
{
["enabled"] = true,
["criteria"] = "talent.wingleader.enabled & target.time_to_die >= 15 & ! variable.wingleader_force_timings || boss & fight_remains <= 30",
["action"] = "breath_of_eons",
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.ebon_might.remains <= 4 || buff.ebon_might_self.up ) & fight_remains > 15 & raid_event.adds.in > 15 || fight_remains < 30 ) & boss",
["action"] = "breath_of_eons",
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.ebon_might.remains <= 4 || buff.ebon_might_self.up ) & fight_remains > 15 || fight_remains < 30 ) & ! boss",
["action"] = "breath_of_eons",
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.fire_breath.remains >? ( 20 + 10 * talent.tomorrow_today.enabled ) ) + ( cooldown.upheaval.remains >? ( 20 + 10 * talent.tomorrow_today.enabled ) ) ) >= 30 & cooldown.breath_of_eons.remains >= 20",
["action"] = "time_skip",
},
{
["enabled"] = true,
["criteria"] = "talent.dream_of_spring.enabled & buff.essence_burst.up & ( variable.spam_heal = 2 || variable.spam_heal = 1 & ! buff.ancient_flame.up & talent.ancient_flame.enabled ) & ( buff.ebon_might_self.up || essence.deficit = 0 || buff.essence_burst.stack = buff.essence_burst.max_stack & cooldown.ebon_might.remains > 4 )",
["action"] = "emerald_blossom",
},
{
["enabled"] = true,
["criteria"] = "talent.mass_eruption.enabled & buff.mass_eruption_stacks.up & ! buff.imminent_destruction.up & buff.essence_burst.stack < buff.essence_burst.max_stack & essence.deficit > 1 & ( buff.ebon_might_self.remains >= 6 || cooldown.ebon_might.remains <= 6 ) & debuff.bombardments.remains < action.eruption.execute_time & ( talent.pupil_of_alexstrasza.enabled || active_enemies = 1 )",
["action"] = "living_flame",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.mass_eruption.enabled & buff.mass_eruption_stacks.up & ! buff.imminent_destruction.up & buff.essence_burst.stack < buff.essence_burst.max_stack & essence.deficit > 1 & ( buff.ebon_might_self.remains >= 6 || cooldown.ebon_might.remains <= 6 ) & debuff.bombardments.remains < action.eruption.execute_time & ( talent.echoing_strike.enabled & active_enemies > 1 )",
["action"] = "azure_strike",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( buff.ebon_might_self.remains > execute_time || essence.deficit = 0 || buff.essence_burst.stack = buff.essence_burst.max_stack & cooldown.ebon_might.remains > 4 ) & ! variable.pool_for_id",
["action"] = "eruption",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "active_dot.blistering_scales = 0 & buff.ebon_might_self.down",
["action"] = "blistering_scales",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "filler",
},
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "spam_heal",
["default"] = "1",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "minimum_opener_delay",
["default"] = "0",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.minimum_opener_delay",
["var_name"] = "opener_delay",
["criteria"] = "! talent.interwoven_threads.enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.minimum_opener_delay + variable.opener_delay",
["var_name"] = "opener_delay",
["criteria"] = "talent.interwoven_threads.enabled",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "opener_cds_detected",
["default"] = "0",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon || trinket.t1.is.ovinaxs_mercurial_egg || trinket.t1.is.aberrant_spellforge",
["var_name"] = "trinket_1_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon || trinket.t2.is.ovinaxs_mercurial_egg || trinket.t2.is.aberrant_spellforge",
["var_name"] = "trinket_2_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.nymues_unraveling_spindle || trinket.t1.is.spymasters_web || trinket.t1.is.treacherous_transmitter",
["var_name"] = "trinket_1_manual",
["description"] = "Nymues is complicated, Manual Handle",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.nymues_unraveling_spindle || trinket.t2.is.spymasters_web || trinket.t2.is.treacherous_transmitter",
["var_name"] = "trinket_2_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.beacon_to_the_beyond",
["var_name"] = "trinket_1_ogcd_cast",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.beacon_to_the_beyond",
["var_name"] = "trinket_2_ogcd_cast",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff || trinket.t1.has_use_buff ) & ! variable.trinket_1_exclude",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff ) & ! variable.trinket_2_exclude",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % 120 = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % 120 = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["value"] = "2",
["value_else"] = "1",
["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 ) * ( 0.5 + trinket.t2.has_use_buff * 3 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 0.5 + trinket.t1.has_use_buff * 3 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) * ( 1 + ( ( trinket.t1.ilvl - trinket.t2.ilvl ) / 100 ) ) )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "damage_trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_2_buffs & trinket.t2.ilvl >= trinket.t1.ilvl",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Double on use - Priotize Intellect on use trinkets over Nymues, force overwriting the normal logic to guarantee it is correct.",
["var_name"] = "trinket_priority",
["value"] = "2",
["action"] = "variable",
["value_else"] = "1",
["criteria"] = "( trinket.t1.is.nymues_unraveling_spindle || trinket.t2.is.nymues_unraveling_spindle ) & ( variable.trinket_1_buffs & variable.trinket_2_buffs )",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "hold_empower_for",
["default"] = "6",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "ebon_might_pandemic_threshold",
["default"] = "0.4",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "wingleader_force_timings",
["default"] = "0",
},
{
["enabled"] = true,
["name"] = "aberrant_spellforge",
["action"] = "aberrant_spellforge",
},
{
["enabled"] = true,
["criteria"] = "active_dot.blistering_scales = 0",
["action"] = "blistering_scales",
},
{
["action"] = "living_flame",
["enabled"] = true,
},
},
["ebon_logic"] = {
{
["action"] = "ebon_might",
["enabled"] = true,
},
},
["fb"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.fire_breath.ready & buff.ebon_might_self.up",
["action"] = "tip_the_scales",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "4",
["criteria"] = "fight_remains > 4 & talent.font_of_magic.enabled & ( buff.ebon_might_self.remains > cast_time & ( ! talent.molten_embers.enabled || cooldown.upheaval.remains <= ( 20 + 4 * talent.blast_furnace.enabled - 6 * 3 ) ) || buff.tip_the_scales.up )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "3",
["criteria"] = "fight_remains > 8 & ( buff.ebon_might_self.remains > cast_time & ( ! talent.molten_embers.enabled || cooldown.upheaval.remains <= ( 20 + 4 * talent.blast_furnace.enabled - 6 * 2 ) ) || buff.tip_the_scales.up || empowering.fire_breath )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "2",
["criteria"] = "fight_remains > 12 & ( buff.ebon_might_self.remains > cast_time & ( ! talent.molten_embers.enabled || cooldown.upheaval.remains <= ( 20 + 4 * talent.blast_furnace.enabled - 6 * 1 ) ) || empowering.fire_breath )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "1",
["criteria"] = "fight_remains > 16 & ( buff.ebon_might_self.remains > cast_time & ( ! talent.molten_embers.enabled || cooldown.upheaval.remains <= ( 20 + 4 * talent.blast_furnace.enabled - 6 * 0 ) ) || empowering.fire_breath )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "4",
["criteria"] = "fight_remains > 4 & talent.font_of_magic.enabled & ( buff.ebon_might_self.remains > cast_time ) || empowering.fire_breath",
["cycle_targets"] = 1,
},
},
["filler"] = {
{
["enabled"] = true,
["criteria"] = "( buff.ancient_flame.up || mana >= 200000 || ! talent.dream_of_spring.enabled || variable.spam_heal = 0 ) & ( active_enemies = 1 || talent.pupil_of_alexstrasza.enabled || buff.leaping_flames.up )",
["action"] = "living_flame",
},
{
["enabled"] = true,
["criteria"] = "! buff.ebon_might_self.up & talent.ancient_flame.enabled & talent.scarlet_adaptation.enabled & ! talent.dream_of_spring.enabled & ! buff.ancient_flame.up & active_enemies = 1",
["action"] = "emerald_blossom",
},
{
["enabled"] = true,
["criteria"] = "! buff.ebon_might_self.up & talent.ancient_flame.enabled & talent.scarlet_adaptation.enabled & ! buff.ancient_flame.up & ( ! talent.dream_of_spring.enabled || mana >= 200000 ) & active_enemies = 1",
["action"] = "verdant_embrace",
},
{
["action"] = "azure_strike",
["enabled"] = true,
},
},
},
["version"] = 20241206,
["warnings"] = "The import for 'filler' required some automated changes.\nLine 1: Converted 'talent.dream_of_spring' to 'talent.dream_of_spring.enabled' (1x).\nLine 1: Converted 'talent.pupil_of_alexstrasza' to 'talent.pupil_of_alexstrasza.enabled' (1x).\nLine 2: Converted 'talent.ancient_flame' to 'talent.ancient_flame.enabled' (1x).\nLine 2: Converted 'talent.scarlet_adaptation' to 'talent.scarlet_adaptation.enabled' (1x).\nLine 2: Converted 'talent.dream_of_spring' to 'talent.dream_of_spring.enabled' (1x).\nLine 3: Converted 'talent.ancient_flame' to 'talent.ancient_flame.enabled' (1x).\nLine 3: Converted 'talent.scarlet_adaptation' to 'talent.scarlet_adaptation.enabled' (1x).\nLine 3: Converted 'talent.dream_of_spring' to 'talent.dream_of_spring.enabled' (1x).\n\nThe import for 'opener_filler' required some automated changes.\nLine 5: Converted 'talent.pupil_of_alexstrasza' to 'talent.pupil_of_alexstrasza.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 5: Converted 'talent.imminent_destruction' to 'talent.imminent_destruction.enabled' (1x).\nLine 6: Converted 'talent.anachronism' to 'talent.anachronism.enabled' (1x).\nLine 7: Converted 'trinket.1.is.ovinaxs_mercurial_egg' to 'trinket.t1.is.ovinaxs_mercurial_egg' (1x).\nLine 7: Converted 'trinket.2.is.ovinaxs_mercurial_egg' to 'trinket.t2.is.ovinaxs_mercurial_egg' (1x).\nLine 13: Converted 'talent.threads_of_fate' to 'talent.threads_of_fate.enabled' (1x).\nLine 14: Converted 'talent.time_skip' to 'talent.time_skip.enabled' (1x).\nLine 14: Converted 'talent.interwoven_threads' to 'talent.interwoven_threads.enabled' (1x).\nLine 16: Converted 'talent.time_skip' to 'talent.time_skip.enabled' (1x).\nLine 16: Converted 'talent.interwoven_threads' to 'talent.interwoven_threads.enabled' (1x).\nLine 17: Converted 'talent.breath_of_eons' to 'talent.breath_of_eons.enabled' (1x).\nLine 17: Converted 'talent.wingleader' to 'talent.wingleader.enabled' (1x).\nLine 18: Converted 'talent.molten_embers' to 'talent.molten_embers.enabled' (1x).\nLine 18: Converted 'talent.breath_of_eons' to 'talent.breath_of_eons.enabled' (1x).\nLine 18: Converted 'talent.wingleader' to 'talent.wingleader.enabled' (1x).\nLine 19: Converted 'talent.wingleader' to 'talent.wingleader.enabled' (1x).\nLine 22: Converted 'talent.tomorrow_today' to 'talent.tomorrow_today.enabled' (1x).\nLine 22: Converted 'talent.tomorrow_today' to 'talent.tomorrow_today.enabled' (1x).\nLine 23: Converted 'talent.dream_of_spring' to 'talent.dream_of_spring.enabled' (1x).\nLine 23: Converted 'talent.ancient_flame' to 'talent.ancient_flame.enabled' (1x).\nLine 24: Converted 'talent.mass_eruption' to 'talent.mass_eruption.enabled' (1x).\nLine 24: Converted 'talent.pupil_of_alexstrasza' to 'talent.pupil_of_alexstrasza.enabled' (1x).\nLine 25: Converted 'talent.mass_eruption' to 'talent.mass_eruption.enabled' (1x).\nLine 25: Converted 'talent.echoing_strike' to 'talent.echoing_strike.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.interwoven_threads' to 'talent.interwoven_threads.enabled' (1x).\nLine 4: Converted 'talent.interwoven_threads' to 'talent.interwoven_threads.enabled' (1x).\nLine 6: Converted 'trinket.1.is.ruby_whelp_shell' to 'trinket.t1.is.ruby_whelp_shell' (1x).\nLine 6: Converted 'trinket.1.is.whispering_incarnate_icon' to 'trinket.t1.is.whispering_incarnate_icon' (1x).\nLine 6: Converted 'trinket.1.is.ovinaxs_mercurial_egg' to 'trinket.t1.is.ovinaxs_mercurial_egg' (1x).\nLine 6: Converted 'trinket.1.is.aberrant_spellforge' to 'trinket.t1.is.aberrant_spellforge' (1x).\nLine 7: Converted 'trinket.2.is.ruby_whelp_shell' to 'trinket.t2.is.ruby_whelp_shell' (1x).\nLine 7: Converted 'trinket.2.is.whispering_incarnate_icon' to 'trinket.t2.is.whispering_incarnate_icon' (1x).\nLine 7: Converted 'trinket.2.is.ovinaxs_mercurial_egg' to 'trinket.t2.is.ovinaxs_mercurial_egg' (1x).\nLine 7: Converted 'trinket.2.is.aberrant_spellforge' to 'trinket.t2.is.aberrant_spellforge' (1x).\nLine 8: Converted 'trinket.1.is.nymues_unraveling_spindle' to
["profile"] = "actions.precombat+=/variable,name=spam_heal,default=1,op=reset\nactions.precombat+=/variable,name=minimum_opener_delay,op=reset,default=0\nactions.precombat+=/variable,name=opener_delay,value=variable.minimum_opener_delay,if=!talent.interwoven_threads\nactions.precombat+=/variable,name=opener_delay,value=variable.minimum_opener_delay+variable.opener_delay,if=talent.interwoven_threads\nactions.precombat+=/variable,name=opener_cds_detected,op=reset,default=0\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon||trinket.1.is.ovinaxs_mercurial_egg||trinket.1.is.aberrant_spellforge\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon||trinket.2.is.ovinaxs_mercurial_egg||trinket.2.is.aberrant_spellforge\n# Nymues is complicated, Manual Handle\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.nymues_unraveling_spindle||trinket.1.is.spymasters_web||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.nymues_unraveling_spindle||trinket.2.is.spymasters_web||trinket.2.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_1_ogcd_cast,value=trinket.1.is.beacon_to_the_beyond\nactions.precombat+=/variable,name=trinket_2_ogcd_cast,value=trinket.2.is.beacon_to_the_beyond\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_buff.intellect||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit)&!variable.trinket_1_exclude\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_buff.intellect||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit)&!variable.trinket_2_exclude\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%120=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%120=0)\nactions.precombat+=/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)*(0.5+trinket.2.has_buff.intellect*3+trinket.2.has_buff.mastery)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(0.5+trinket.1.has_buff.intellect*3+trinket.1.has_buff.mastery)*(variable.trinket_1_sync)*(1+((trinket.1.ilvl-trinket.2.ilvl)%100)))\nactions.precombat+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl\n# Double on use - Priotize Intellect on use trinkets over Nymues, force overwriting the normal logic to guarantee it is correct.\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=trinket.1.is.nymues_unraveling_spindle&trinket.2.has_buff.intellect||trinket.2.is.nymues_unraveling_spindle&!trinket.1.has_buff.intellect,if=(trinket.1.is.nymues_unraveling_spindle||trinket.2.is.nymues_unraveling_spindle)&(variable.trinket_1_buffs&variable.trinket_2_buffs)\nactions.precombat+=/variable,name=hold_empower_for,op=reset,default=6\nactions.precombat+=/variable,name=ebon_might_pandemic_threshold,op=reset,default=0.4\nactions.precombat+=/variable,name=wingleader_force_timings,op=reset,default=0\nactions.precombat+=/use_item,name=aberrant_spellforge\nactions.precombat+=/blistering_scales,if=active_dot.blistering_scales=0\nactions.precombat+=/living_flame\n\nactions+=/quell\nactions+=/unravel\nactions+=/variable,name=temp_wound,value=debuff.temporal_wound.remains\nactions+=/variable,name=eons_remains,op=setif,value=cooldown.breath_o
["author"] = "Saeldur (Icy-Veins); SimC",
},
["Beast Mastery"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241103,
["author"] = "SimC",
["desc"] = "2024-11-03: SimC updates\n\n2024-10-26: SimC updates\n\n2024-10-23: 11.0.5\n\n2024-09-22: SimC update\n\n2024-08-22: SimC update\n\n2024-08-01: Respect Hunter's Mark setting\n\n2024-07-27: Add Call of the Wild talent checks; use Counter Shot; use Hunter's Mark\n\n2024-07-23: The War Within",
["lists"] = {
["default"] = {
{
["action"] = "counter_shot",
["enabled"] = true,
},
{
["action"] = "tranquilizing_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "pet.health_pct < pet_healing",
["action"] = "mend_pet",
},
{
["enabled"] = true,
["criteria"] = "( settings.mark_any || target.is_boss ) & active_dot.hunters_mark = 0 & target.time_to_pct_80 > 20",
["action"] = "hunters_mark",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["criteria"] = "active_enemies < 2 || ! talent.beast_cleave.enabled & active_enemies < 3",
["action"] = "call_action_list",
["list_name"] = "st",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 || talent.beast_cleave.enabled & active_enemies > 1",
["action"] = "call_action_list",
["list_name"] = "cleave",
},
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! trinket.t2.has_cooldown || trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff || ! trinket.t1.is.mirror_of_fractured_tomorrows & ( trinket.t2.is.mirror_of_fractured_tomorrows || trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) ) || ! trinket.t1.has_use_buff & ( ! trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration < trinket.t1.cooldown.duration || trinket.t2.cast_time < trinket.t1.cast_time || trinket.t2.cast_time = trinket.t1.cast_time & trinket.t2.cooldown.duration = trinket.t1.cooldown.duration ) )",
["description"] = "Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times. Special case to consider Mirror of Fractured Tomorrows weaker than other buff effects since its power is split between the dmg effect and the buff effect.",
["var_name"] = "trinket_1_stronger",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! variable.trinket_1_stronger",
["var_name"] = "trinket_2_stronger",
},
{
["enabled"] = true,
["criteria"] = "talent.vicious_hunt.enabled & talent.call_of_the_wild.enabled",
["action"] = "bestial_wrath",
},
},
["cds"] = {
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || talent.bloodshed.enabled & ( prev_gcd.1.bloodshed ) || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || boss & fight_remains < 13",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || talent.bloodshed.enabled & ( prev_gcd.1.bloodshed ) || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || boss & fight_remains < 16",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || talent.bloodshed.enabled & ( prev_gcd.1.bloodshed ) || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || boss & fight_remains < 16",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || talent.bloodshed.enabled & ( prev_gcd.1.bloodshed ) || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || boss & fight_remains < 9",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "buff.call_of_the_wild.up || talent.bloodshed.enabled & ( prev_gcd.1.bloodshed ) || ! talent.call_of_the_wild.enabled & buff.bestial_wrath.up || boss & fight_remains < 31",
["action"] = "potion",
},
},
["trinkets"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.call_of_the_wild.enabled & ( prev_gcd.1.call_of_the_wild ) || talent.bloodshed.enabled & ( prev_gcd.1.bloodshed ) || ( ! talent.call_of_the_wild.enabled & ! talent.bloodshed.enabled ) & ( buff.bestial_wrath.up || cooldown.bestial_wrath.remains_guess < 5 )",
["var_name"] = "sync_ready",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.call_of_the_wild.enabled & buff.call_of_the_wild.up || talent.bloodshed.enabled & prev_gcd.1.bloodshed || ( ! talent.call_of_the_wild.enabled & ! talent.bloodshed.enabled ) & buff.bestial_wrath.up",
["var_name"] = "sync_active",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "sync_remains",
["criteria"] = "! talent.call_of_the_wild.enabled & ! talent.bloodshed.enabled",
["value_else"] = "cooldown.call_of_the_wild.remains || cooldown.bloodshed.remains",
["value"] = "cooldown.bestial_wrath.remains_guess",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "trinket.t1.has_use_buff & ( variable.sync_ready & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || ! variable.sync_ready & ( variable.trinket_1_stronger & ( variable.sync_remains > trinket.t1.cooldown.duration / 3 & boss & fight_remains > trinket.t1.cooldown.duration + 20 || trinket.t2.has_use_buff & trinket.t2.cooldown.remains > variable.sync_remains - 15 & trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 45 > fight_remains & boss ) || variable.trinket_2_stronger & ( trinket.t2.cooldown.remains & ( trinket.t2.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t2.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t1.cooldown.duration / 3 || trinket.t1.cooldown.duration < fight_remains & boss & ( variable.sync_remains + trinket.t1.cooldown.duration > fight_remains ) ) ) || trinket.t2.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t2.cooldown.duration / 3 ) ) ) || ! trinket.t1.has_use_buff & ( trinket.t1.cast_time = 0 || ! variable.sync_active ) & ( ! trinket.t2.has_use_buff & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains ) || trinket.t2.has_use_buff & ( ! variable.sync_active & variable.sync_remains > 20 || trinket.t2.cooldown.remains > 20 ) ) || boss & fight_remains < 25 & ( variable.trinket_1_stronger || trinket.t2.cooldown.remains )",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "trinket.t2.has_use_buff & ( variable.sync_ready & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || ! variable.sync_ready & ( variable.trinket_2_stronger & ( variable.sync_remains > trinket.t2.cooldown.duration / 3 & boss & fight_remains > trinket.t2.cooldown.duration + 20 || trinket.t1.has_use_buff & trinket.t1.cooldown.remains > variable.sync_remains - 15 & trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains + 45 > fight_remains & boss ) || variable.trinket_1_stronger & ( trinket.t1.cooldown.remains & ( trinket.t1.cooldown.remains - 5 < variable.sync_remains & variable.sync_remains >= 20 || trinket.t1.cooldown.remains - 5 >= variable.sync_remains & ( variable.sync_remains > trinket.t2.cooldown.duration / 3 || trinket.t2.cooldown.duration < fight_remains & boss & ( variable.sync_remains + trinket.t2.cooldown.duration > fight_remains ) ) ) || trinket.t1.cooldown.ready & variable.sync_remains > 20 & variable.sync_remains < trinket.t1.cooldown.duration / 3 ) ) ) || ! trinket.t2.has_use_buff & ( trinket.t2.cast_time = 0 || ! variable.sync_active ) & ( ! trinket.t1.has_use_buff & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains ) || trinket.t1.has_use_buff & ( ! variable.sync_active & variable.sync_remains > 20 || trinket.t1.cooldown.remains > 20 ) ) || boss & fight_remains < 25 & ( variable.trinket_2_stronger || trinket.t1.cooldown.remains )",
},
},
["st"] = {
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + barbed_shot_grace_period || buff.frenzy.stack < 3 & ( cooldown.bestial_wrath.ready & ( ! buff.frenzy.up || talent.scent_of_blood.enabled ) || talent.call_of_the_wild.enabled & cooldown.call_of_the_wild.ready )",
["cycle_targets"] = 1,
},
{
["action"] = "dire_beast",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.call_of_the_wild.enabled & cooldown.call_of_the_wild.remains < gcd.max + 0.25",
["action"] = "kill_command",
},
{
["enabled"] = true,
["action"] = "black_arrow",
["criteria"] = "talent.venoms_bite.enabled & dot.serpent_sting.refreshable",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "kill_shot",
["criteria"] = "talent.venoms_bite.enabled & dot.serpent_sting.refreshable",
["cycle_targets"] = 1,
},
{
["action"] = "call_of_the_wild",
["enabled"] = true,
},
{
["action"] = "bloodshed",
["enabled"] = true,
},
{
["action"] = "bestial_wrath",
["enabled"] = true,
},
{
["action"] = "kill_command",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "talent.wild_call.enabled & charges_fractional > 1.4 || buff.call_of_the_wild.up || full_recharge_time < gcd.max & cooldown.bestial_wrath.remains || talent.scent_of_blood.enabled & ( cooldown.bestial_wrath.remains < 12 + gcd.max ) || talent.furious_assault.enabled || talent.black_arrow.enabled & ( talent.barbed_scales.enabled || talent.savagery.enabled ) || boss & fight_remains < 9",
["cycle_targets"] = 1,
},
{
["action"] = "black_arrow",
["enabled"] = true,
},
{
["action"] = "kill_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "lights_judgment",
},
{
["action"] = "cobra_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "bag_of_tricks",
},
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "arcane_pulse",
},
{
["enabled"] = true,
["criteria"] = "( focus + focus.regen + 15 ) < focus.max",
["action"] = "arcane_torrent",
},
},
["cleave"] = {
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "buff.frenzy.up & buff.frenzy.remains <= gcd.max + 0.25 || buff.frenzy.stack < 3 & ( cooldown.bestial_wrath.ready & ( ! buff.frenzy.up || talent.scent_of_blood.enabled ) || talent.call_of_the_wild.enabled & cooldown.call_of_the_wild.ready ) || talent.wild_call.enabled & charges_fractional > 1.8",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.beast_cleave.remains < 0.25 + gcd.max & ( ! talent.bloody_frenzy.enabled || cooldown.call_of_the_wild.remains )",
["action"] = "multishot",
},
{
["enabled"] = true,
["criteria"] = "buff.beast_cleave.up",
["action"] = "black_arrow",
},
{
["enabled"] = true,
["criteria"] = "talent.shadow_hounds.enabled",
["action"] = "dire_beast",
},
{
["action"] = "call_of_the_wild",
["enabled"] = true,
},
{
["action"] = "bestial_wrath",
["enabled"] = true,
},
{
["action"] = "bloodshed",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "kill_command",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "barbed_shot",
["criteria"] = "buff.call_of_the_wild.up || talent.furious_assault.enabled || talent.black_arrow.enabled & ( talent.barbed_scales.enabled || talent.savagery.enabled ) || fight_remains < 9",
["cycle_targets"] = 1,
},
{
["action"] = "kill_shot",
["enabled"] = true,
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["action"] = "dire_beast",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "focus.time_to_max < gcd.max * 2",
["action"] = "cobra_shot",
},
{
["enabled"] = true,
["criteria"] = "buff.bestial_wrath.down || target.time_to_die < 5",
["action"] = "bag_of_tricks",
},
{
["enabled"] = true,
["criteria"] = "( focus + focus.regen + 30 ) < focus.max",
["action"] = "arcane_torrent",
},
},
},
["version"] = 20241103,
["warnings"] = "The import for 'default' required some automated changes.\nLine 7: Converted 'talent.beast_cleave' to 'talent.beast_cleave.enabled' (1x).\nLine 8: Converted 'talent.beast_cleave' to 'talent.beast_cleave.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 2: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 2: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.is.mirror_of_fractured_tomorrows' to 'trinket.t1.is.mirror_of_fractured_tomorrows' (1x).\nLine 2: Converted 'trinket.2.is.mirror_of_fractured_tomorrows' to 'trinket.t2.is.mirror_of_fractured_tomorrows' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 2: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 2: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'talent.vicious_hunt' to 'talent.vicious_hunt.enabled' (1x).\nLine 4: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 1: Converted 'talent.bloodshed' to 'talent.bloodshed.enabled' (1x).\nLine 1: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 1: Converted 'talent.bloodshed' to 'talent.bloodshed.enabled' (1x).\nLine 2: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 2: Converted 'talent.bloodshed' to 'talent.bloodshed.enabled' (1x).\nLine 2: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 2: Converted 'talent.bloodshed' to 'talent.bloodshed.enabled' (1x).\nLine 3: Converted 'talent.call_of_the_wild' to 'talent.call_of_the_wild.enabled' (1x).\nLine 3: Converted 'talent.bloodshed' to 'talent.bloodshed.enabled' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remain
["spec"] = 253,
["profile"] = "actions.precombat+=/summon_pet\n# Determine the stronger trinket to sync with cooldowns. In descending priority: buff effects > damage effects, longer > shorter cooldowns, longer > shorter cast times. Special case to consider Mirror of Fractured Tomorrows weaker than other buff effects since its power is split between the dmg effect and the buff effect.\nactions.precombat+=/variable,name=trinket_1_stronger,value=!trinket.2.has_cooldown||trinket.1.has_use_buff&(!trinket.2.has_use_buff||!trinket.1.is.mirror_of_fractured_tomorrows&(trinket.2.is.mirror_of_fractured_tomorrows||trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration))||!trinket.1.has_use_buff&(!trinket.2.has_use_buff&(trinket.2.cooldown.duration<trinket.1.cooldown.duration||trinket.2.cast_time<trinket.1.cast_time||trinket.2.cast_time=trinket.1.cast_time&trinket.2.cooldown.duration=trinket.1.cooldown.duration))\nactions.precombat+=/variable,name=trinket_2_stronger,value=!variable.trinket_1_stronger\nactions.precombat+=/bestial_wrath,if=talent.vicious_hunt&talent.call_of_the_wild\n\nactions+=/counter_shot\nactions+=/tranquilizing_shot\nactions+=/mend_pet,if=pet.health_pct<pet_healing\nactions+=/hunters_mark,if=(settings.mark_any||target.is_boss)&active_dot.hunters_mark=0&target.time_to_pct_80>20\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=st,if=active_enemies<2||!talent.beast_cleave&active_enemies<3\nactions+=/call_action_list,name=cleave,if=active_enemies>2||talent.beast_cleave&active_enemies>1\n\n## actions.cds+=/invoke_external_buff,name=power_infusion,if=buff.call_of_the_wild.up||talent.bloodshed&(prev_gcd.1.bloodshed)||!talent.call_of_the_wild&(buff.bestial_wrath.up||cooldown.bestial_wrath.remains<30)||fight_remains<16\nactions.cds+=/berserking,if=buff.call_of_the_wild.up||talent.bloodshed&(prev_gcd.1.bloodshed)||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<13\nactions.cds+=/blood_fury,if=buff.call_of_the_wild.up||talent.bloodshed&(prev_gcd.1.bloodshed)||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<16\nactions.cds+=/ancestral_call,if=buff.call_of_the_wild.up||talent.bloodshed&(prev_gcd.1.bloodshed)||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<16\nactions.cds+=/fireblood,if=buff.call_of_the_wild.up||talent.bloodshed&(prev_gcd.1.bloodshed)||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<9\nactions.cds+=/potion,if=buff.call_of_the_wild.up||talent.bloodshed&(prev_gcd.1.bloodshed)||!talent.call_of_the_wild&buff.bestial_wrath.up||boss&fight_remains<31\n\nactions.cleave+=/barbed_shot,cycle_targets=1,if=pet.main.buff.frenzy.up&pet.main.buff.frenzy.remains<=gcd+0.25||pet.main.buff.frenzy.stack<3&(cooldown.bestial_wrath.ready&(!pet.main.buff.frenzy.up||talent.scent_of_blood)||talent.call_of_the_wild&cooldown.call_of_the_wild.ready)||talent.wild_call&charges_fractional>1.8\nactions.cleave+=/multishot,if=buff.beast_cleave.remains<0.25+gcd&(!talent.bloody_frenzy||cooldown.call_of_the_wild.remains)\nactions.cleave+=/black_arrow,if=buff.beast_cleave.up\nactions.cleave+=/dire_beast,if=talent.shadow_hounds\nactions.cleave+=/call_of_the_wild\nactions.cleave+=/bestial_wrath\nactions.cleave+=/bloodshed\nactions.cleave+=/kill_command,cycle_targets=1\nactions.cleave+=/barbed_shot,cycle_targets=1,if=buff.call_of_the_wild.up||talent.furious_assault||talent.black_arrow&(talent.barbed_scales||talent.savagery)||fight_remains<9\nactions.cleave+=/kill_shot\nactions.cleave+=/explosive_shot\nactions.cleave+=/dire_beast\nactions.cleave+=/lights_judgment,if=buff.bestial_wrath.down||target.time_to_die<5\nactions.cleave+=/cobra_shot,if=focus.time_to_max<gcd*2\nactions.cleave+=/bag_of_tricks,if=buff.bestial_wrath.down||target.time_to_die<5\nactions.cleave+=/arcane_torrent,if=(focus+focus.regen+30)<focus.max\n\nactions.st+=/barbed_shot,cycle_targets=1,if=pet.main.buff.frenzy.up&pet.main.buf
},
["Assassination"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241119,
["author"] = "SimC",
["desc"] = "2024-11-19: Revise Shiv for Lightweight Shiv\n\n2024-11-16: Envenom stack timing; Ambush\n\n2024-11-02: No more casting SnD; Tweak IC\n\n2024-10-31: Better support for users who do not enable target swapping - Syrif\n\n2024-10-27: Master Assassin correction\n\n2024-10-21, 10-25: SimC update\n\n2024-09-28: Force pooling for Envenom without Darkest Night if Envenom is down\n\n2024-09-24: Tweak pooling for Enveom\n\n2024-09-15: SimC update\n\n2024-09-11: Revise filler Envenom\n\n2024-09-05, 09-08, 09-09: SimC update\n\n2024-08-29: Allow filler Envenom\n\n2024-08-24: SimC update; relax energy regen requirements\n\n2024-08-22: Enable more AOE\n\n2024-08-14: Fix scent_saturation variable\n\n2024-08-09, 10: Updates from SimC\n\n2024-07-27: The War Within",
["lists"] = {
["stealthed"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.scent_of_blood.stack >= ( ( spell_targets.fan_of_knives * talent.scent_of_blood.rank * 2 ) >? 20 )",
["var_name"] = "scent_saturation",
["description"] = "Stealthed Actions We are Scent Saturated when our stack count is hitting the maximum",
},
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["action"] = "ambush",
["description"] = "Apply Deathstalkers Mark if it has fallen off",
["criteria"] = "talent.deathstalkers_mark.enabled & ! debuff.deathstalkers_mark.up & active_dot.deathstalkers_mark = 0 & ( time = 0 || buff.darkest_night.down )",
},
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Make sure to have Shiv up during Kingsbane as a final check [Hekili] with Lightweight Shiv only",
["criteria"] = "talent.lightweight_shiv.enabled & talent.kingsbane.enabled & ( dot.kingsbane.ticking || cooldown.kingsbane.up ) & ( ! debuff.shiv.up & debuff.shiv.remains < 1 ) & buff.envenom.up",
},
{
["enabled"] = true,
["action"] = "envenom",
["description"] = "Envenom to maintain the buff during Subterfuge",
["criteria"] = "effective_combo_points >= variable.effective_spend_cp & dot.kingsbane.ticking & buff.envenom.remains <= 3 & ( debuff.deathstalkers_mark.up || buff.cold_blood.up )",
},
{
["enabled"] = true,
["action"] = "envenom",
["description"] = "Envenom during Master Assassin in single target",
["criteria"] = "effective_combo_points >= variable.effective_spend_cp & buff.master_assassin_aura.up & active_enemies = 1 & ( debuff.deathstalkers_mark.up || buff.cold_blood.up )",
},
{
["enabled"] = true,
["action"] = "rupture",
["cycle_targets"] = 1,
["description"] = "Rupture during Indiscriminate Carnage",
["criteria"] = "effective_combo_points >= variable.effective_spend_cp & buff.indiscriminate_carnage_any.up & ( refreshable || ! settings.cycle ) & ( ( ! variable.regen_saturated & active_dot.rupture < active_enemies ) || ! variable.scent_saturation || ! dot.rupture.ticking ) & target.time_to_die > 15",
},
{
["enabled"] = true,
["action"] = "garrote",
["cycle_targets"] = 1,
["description"] = "Improved Garrote: Apply or Refresh with buffed Garrotes, accounting for Indiscriminate Carnage",
["criteria"] = "( remains < 12 || pmultiplier <= 1 || ( ( buff.indiscriminate_carnage_any.up & ( ( active_dot.garrote < cycle_enemies ) || ( active_dot.garrote < active_enemies & ! settings.cycle ) ) ) ) ) & active_enemies > 1 & target.time_to_die - remains > 2",
},
{
["enabled"] = true,
["criteria"] = "stealthed.improved_garrote & ( pmultiplier <= 1 || refreshable ) & combo_points.deficit >= 1 + 2 * talent.shrouded_suffocation.enabled",
["action"] = "garrote",
},
},
["vanish"] = {
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
["extra_amount"] = "45",
["description"] = "Stealth Cooldowns Vanish Sync for Improved Garrote with Deathmark",
},
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish to fish for Fateful Ending",
["criteria"] = "! buff.fatebound_lucky_coin.up & effective_combo_points >= variable.effective_spend_cp & ( buff.fatebound_coin_tails.stack >= 5 || buff.fatebound_coin_heads.stack >= 5 )",
},
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish to spread Garrote during Deathmark without Indiscriminate Carnage",
["criteria"] = "! talent.master_assassin.enabled & ! talent.indiscriminate_carnage.enabled & talent.improved_garrote.enabled & cooldown.garrote.up & ( dot.garrote.pmultiplier <= 1 || dot.garrote.refreshable ) & ( debuff.deathmark.up || cooldown.deathmark.remains < 4 ) & combo_points.deficit >= ( spell_targets.fan_of_knives >? 4 )",
},
{
["enabled"] = true,
["action"] = "pool_resource",
["extra_amount"] = "45",
["for_next"] = 1,
},
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish for cleaving Garrotes with Indiscriminate Carnage",
["criteria"] = "talent.indiscriminate_carnage.enabled & talent.improved_garrote.enabled & cooldown.garrote.up & ( dot.garrote.pmultiplier <= 1 || dot.garrote.refreshable ) & spell_targets.fan_of_knives > 2 & ( target.time_to_die - remains > 15 || raid_event.adds.in > 20 )",
},
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish fallback for Master Assassin",
["criteria"] = "talent.master_assassin.enabled & dot.garrote.remains > 3 & debuff.deathmark.up & dot.kingsbane.remains <= 6 + 3 * talent.subterfuge.rank & ( debuff.shiv.up || debuff.deathmark.remains < 4 )",
},
{
["enabled"] = true,
["action"] = "vanish",
["description"] = "Vanish fallback for Improved Garrote during Deathmark if no add waves are expected",
["criteria"] = "talent.improved_garrote.enabled & cooldown.garrote.up & ( dot.garrote.pmultiplier <= 1 || dot.garrote.refreshable ) & ( debuff.deathmark.up || cooldown.deathmark.remains < 4 ) & raid_event.adds.in > 30",
},
},
["core_dot"] = {
{
["enabled"] = true,
["action"] = "garrote",
["description"] = "Core damage over time abilities used everywhere Maintain Garrote",
["criteria"] = "combo_points.deficit >= 1 & ( pmultiplier <= 1 ) & refreshable & target.time_to_die - remains > 12",
},
{
["enabled"] = true,
["action"] = "rupture",
["description"] = "Maintain Rupture unless darkest night is up",
["criteria"] = "combo_points >= variable.effective_spend_cp & ( pmultiplier <= 1 ) & refreshable & target.time_to_die - remains > ( 4 + ( talent.dashing_scoundrel.enabled * 5 ) + ( variable.regen_saturated * 6 ) ) & ( ! buff.darkest_night.up || talent.caustic_spatter.enabled & ! debuff.caustic_spatter.up )",
},
},
["shiv"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! debuff.shiv.up & dot.garrote.ticking & dot.rupture.ticking",
["var_name"] = "shiv_condition",
["description"] = "Shiv conditions",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.kingsbane.enabled & buff.envenom.up & variable.shiv_condition",
["var_name"] = "shiv_kingsbane_condition",
},
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Shiv for aoe with Arterial Precision",
["criteria"] = "talent.arterial_precision.enabled & variable.shiv_condition & spell_targets.fan_of_knives >= 4 & dot.crimson_tempest.ticking",
},
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Shiv cases for Kingsbane",
["criteria"] = "! talent.lightweight_shiv.enabled & variable.shiv_kingsbane_condition & ( dot.kingsbane.ticking & dot.kingsbane.remains < 8 || ! dot.kingsbane.ticking & cooldown.kingsbane.remains >= 20 ) & ( ! talent.crimson_tempest.enabled || active_enemies = 1 || dot.crimson_tempest.ticking )",
},
{
["enabled"] = true,
["criteria"] = "talent.lightweight_shiv.enabled & variable.shiv_kingsbane_condition & ( dot.kingsbane.ticking || cooldown.kingsbane.remains <= 1 )",
["action"] = "shiv",
},
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Fallback shiv for arterial during deathmark",
["criteria"] = "talent.arterial_precision.enabled & variable.shiv_condition & debuff.deathmark.up",
},
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Fallback if no special cases apply",
["criteria"] = "! talent.kingsbane.enabled & ! talent.arterial_precision.enabled & variable.shiv_condition & ( ! talent.crimson_tempest.enabled || active_enemies = 1 || dot.crimson_tempest.ticking )",
},
{
["enabled"] = true,
["action"] = "shiv",
["description"] = "Dump Shiv on fight end",
["criteria"] = "boss & fight_remains <= cooldown.shiv.charges * 8",
},
},
["misc_cds"] = {
{
["enabled"] = true,
["action"] = "potion",
["description"] = "Miscellaneous Cooldowns Potion",
["criteria"] = "buff.bloodlust.react || boss & fight_remains < 30 || debuff.deathmark.up",
},
{
["enabled"] = true,
["action"] = "blood_fury",
["description"] = "Various special racials to be synced with cooldowns",
["criteria"] = "debuff.deathmark.up",
},
{
["enabled"] = true,
["criteria"] = "debuff.deathmark.up",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "debuff.deathmark.up",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.kingsbane.enabled & debuff.deathmark.up & debuff.shiv.up ) || ( talent.kingsbane.enabled & debuff.deathmark.up & dot.kingsbane.ticking & dot.kingsbane.remains < 8 )",
["action"] = "ancestral_call",
},
},
["aoe_dot"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.scent_of_blood.stack >= ( ( spell_targets.fan_of_knives * talent.scent_of_blood.rank * 2 ) >? 20 )",
["var_name"] = "scent_saturation",
["description"] = "We are Scent Saturated when our stack count is hitting the maximum",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points >= variable.effective_spend_cp & ( pmultiplier <= 1 )",
["var_name"] = "dot_finisher_condition",
["description"] = "Helper Variable to check basic finisher conditions",
},
{
["enabled"] = true,
["action"] = "crimson_tempest",
["description"] = "Crimson Tempest on 2+ Targets if we have enough energy regen",
["criteria"] = "spell_targets >= 2 & variable.dot_finisher_condition & refreshable & target.time_to_die - remains > 6",
},
{
["enabled"] = true,
["action"] = "garrote",
["cycle_targets"] = 1,
["description"] = "Garrote upkeep, also uses it in AoE to reach energy saturation",
["criteria"] = "combo_points.deficit >= 1 & ( pmultiplier <= 1 ) & refreshable & ! variable.regen_saturated & target.time_to_die - remains > 12",
},
{
["enabled"] = true,
["action"] = "rupture",
["cycle_targets"] = 1,
["description"] = "Rupture upkeep, also uses it in AoE to reach energy or scent of blood saturation",
["criteria"] = "variable.dot_finisher_condition & refreshable & ( ! dot.kingsbane.ticking || buff.cold_blood.up ) & ( ! variable.regen_saturated & ( talent.scent_of_blood.rank = 2 || talent.scent_of_blood.rank <= 1 & ( buff.indiscriminate_carnage.up || target.time_to_die - remains > 15 ) ) ) & target.time_to_die - remains > ( 7 + ( talent.dashing_scoundrel.enabled * 5 ) + ( variable.regen_saturated * 6 ) ) & ! buff.darkest_night.up",
},
{
["enabled"] = true,
["criteria"] = "variable.dot_finisher_condition & refreshable & ( ! dot.kingsbane.ticking || buff.cold_blood.up ) & variable.regen_saturated & ! variable.scent_saturation & target.time_to_die - remains > 19 & ! buff.darkest_night.up",
["action"] = "rupture",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "garrote",
["description"] = "Garrote as a special generator for the last CP before a finisher for edge case handling",
["criteria"] = "refreshable & combo_points.deficit >= 1 & ( pmultiplier <= 1 || remains <= tick_time & spell_targets.fan_of_knives >= 3 ) & ( remains <= tick_time * 2 & spell_targets.fan_of_knives >= 3 ) & ( target.time_to_die - remains ) > 4 & master_assassin_remains = 0",
},
},
["items"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "dot.rupture.ticking & cooldown.deathmark.remains < 2 || dot.deathmark.ticking || boss & fight_remains <= 22",
["var_name"] = "base_trinket_condition",
["description"] = "Special Case Trinkets",
},
{
["enabled"] = true,
["action"] = "ashes_of_the_embersoul",
["use_off_gcd"] = 1,
["criteria"] = "( dot.kingsbane.ticking & dot.kingsbane.remains <= 11 ) || boss & fight_remains <= 22",
["name"] = "ashes_of_the_embersoul",
},
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["use_off_gcd"] = 1,
["criteria"] = "variable.base_trinket_condition",
["name"] = "algethar_puzzle_box",
},
{
["enabled"] = true,
["action"] = "treacherous_transmitter",
["use_off_gcd"] = 1,
["criteria"] = "variable.base_trinket_condition",
["name"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["action"] = "mad_queens_mandate",
["criteria"] = "cooldown.deathmark.remains >= 30 & ! dot.deathmark.ticking || boss & fight_remains <= 3",
["name"] = "mad_queens_mandate",
},
{
["enabled"] = true,
["action"] = "imperfect_ascendancy_serum",
["use_off_gcd"] = 1,
["criteria"] = "variable.base_trinket_condition",
["name"] = "imperfect_ascendancy_serum",
},
{
["enabled"] = true,
["action"] = "algethar_puzzle_box",
["use_off_gcd"] = 1,
["criteria"] = "dot.rupture.ticking & cooldown.deathmark.remains < 2 || boss & fight_remains <= 22",
["name"] = "algethar_puzzle_box",
},
{
["enabled"] = true,
["criteria"] = "( variable.trinket_sync_slot = 1 & ( debuff.deathmark.up || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 2 & ( ! trinket.t2.cooldown.ready & dot.kingsbane.ticking || ! debuff.deathmark.up & cooldown.deathmark.remains > 20 & dot.kingsbane.ticking ) ) || ! variable.trinket_sync_slot )",
["action"] = "trinket1",
["slots"] = "trinket1",
["description"] = "Fallback case for using stat trinkets",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( variable.trinket_sync_slot = 2 & ( debuff.deathmark.up || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 1 & ( ! trinket.t1.cooldown.ready & dot.kingsbane.ticking || ! debuff.deathmark.up & cooldown.deathmark.remains > 20 & dot.kingsbane.ticking ) ) || ! variable.trinket_sync_slot )",
["slots"] = "trinket2",
},
},
["default"] = {
{
["enabled"] = true,
["description"] = "Restealth if possible (no vulnerable enemies in combat)",
["action"] = "stealth",
},
{
["enabled"] = true,
["description"] = "Interrupt on cooldown to allow simming interactions with that",
["action"] = "kick",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "energy.regen_combined > 30",
["var_name"] = "regen_saturated",
["description"] = "Combined Energy Regen needed to saturate",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "dot.deathmark.ticking || dot.kingsbane.ticking || debuff.shiv.up",
["var_name"] = "in_cooldowns",
["description"] = "Pooling Setup, check for cooldowns",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.envenom.up & buff.envenom.max_stack_remains <= 1",
["var_name"] = "clip_envenom",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "70 - 30 * talent.sanguine_blades.enabled - 10 * talent.vicious_venoms.rank",
["var_name"] = "upper_limit_energy",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "energy > 40 + 50 + 5 * talent.vicious_venoms.rank",
["var_name"] = "avoid_tea",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.kingsbane.remains < 3 & ! cooldown.kingsbane.ready",
["var_name"] = "cd_soon",
["description"] = "Checking for cooldowns soon",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.in_cooldowns || ! variable.cd_soon & variable.avoid_tea & buff.darkest_night.up || ! variable.cd_soon & variable.avoid_tea & variable.clip_envenom || variable.upper_limit_energy || boss & fight_remains <= 20",
["var_name"] = "not_pooling",
["description"] = "Pooling Condition all together",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call Stealthed Actions",
["strict"] = 1,
["criteria"] = "stealthed.rogue || stealthed.improved_garrote || master_assassin_remains > 0",
["list_name"] = "stealthed",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call Cooldowns",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call Core DoT effects",
["list_name"] = "core_dot",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call AoE DoTs when in AoE",
["strict"] = 1,
["criteria"] = "active_enemies > 1",
["list_name"] = "aoe_dot",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Call Direct Damage Abilities",
["list_name"] = "direct",
},
{
["enabled"] = true,
["criteria"] = "energy.deficit >= 15 + energy.regen_combined",
["action"] = "arcane_torrent",
},
{
["action"] = "arcane_pulse",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "toggle.funnel",
["var_name"] = "priority_rotation",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "trinket_sync_slot",
["value"] = "1",
["description"] = "Check which trinket slots have Stat Values",
["criteria"] = "trinket.t1.has_stat.any_dps & ( ! trinket.t2.has_stat.any_dps || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) & ! trinket.t2.is.treacherous_transmitter || trinket.t1.is.treacherous_transmitter",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t2.has_stat.any_dps & ( ! trinket.t1.has_stat.any_dps || trinket.t2.cooldown.duration > trinket.t1.cooldown.duration ) & ! trinket.t1.is.treacherous_transmitter || trinket.t2.is.treacherous_transmitter",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cp_max_spend - 2 <? 5 * talent.hand_of_fate.enabled",
["var_name"] = "effective_spend_cp",
["description"] = "Determine combo point finish condition",
},
{
["enabled"] = true,
["description"] = "Pre-cast Slice and Dice if possible",
["action"] = "stealth",
},
},
["direct"] = {
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
["extra_amount"] = "energy.max*(0.5+0.3*talent.hand_of_fate.rank-0.15*talent.vicious_venoms.rank)-action.envenom.cost",
["criteria"] = "active_dot.envenom = 0",
},
{
["enabled"] = true,
["action"] = "envenom",
["description"] = "Direct Damage Abilities Envenom at applicable cp if not pooling, capped on amplifying poison stacks, on an animacharged CP, or in aoe.",
["criteria"] = "! buff.darkest_night.up & combo_points >= variable.effective_spend_cp & ( variable.not_pooling || debuff.amplifying_poison.stack >= 20 || active_enemies > 1 ) & ! buff.vanish.up",
},
{
["enabled"] = true,
["action"] = "envenom",
["description"] = "Special Envenom handling for Darkest Night",
["criteria"] = "buff.darkest_night.up & effective_combo_points >= cp_max_spend",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points <= variable.effective_spend_cp & ! variable.cd_soon || variable.not_pooling || active_enemies > 1",
["var_name"] = "use_filler",
["description"] = "Check if we should be using a filler",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.caustic_spatter.enabled & dot.rupture.ticking & ( ! debuff.caustic_spatter.up || debuff.caustic_spatter.remains <= 2 ) & combo_points.deficit >= 1 & active_enemies > 1",
["var_name"] = "use_caustic_filler",
["description"] = "Maintain Caustic Spatter",
},
{
["enabled"] = true,
["criteria"] = "variable.use_caustic_filler",
["action"] = "mutilate",
},
{
["enabled"] = true,
["criteria"] = "variable.use_caustic_filler",
["action"] = "ambush",
},
{
["enabled"] = true,
["action"] = "fan_of_knives",
["description"] = "Fan of Knives at 3+ targets, accounting for various edge cases",
["criteria"] = "variable.use_filler & ! priority_rotation & ( spell_targets.fan_of_knives >= 3 - ( talent.momentum_of_despair.enabled & talent.thrown_precision.enabled ) || buff.clear_the_witnesses.up & ! talent.vicious_venoms.enabled )",
},
{
["enabled"] = true,
["action"] = "fan_of_knives",
["description"] = "Fan of Knives to apply poisons if inactive on any target (or any bleeding targets with priority rotation) at 3T",
["criteria"] = "! dot.deadly_poison_dot.ticking & ( ! priority_rotation || dot.garrote.ticking || dot.rupture.ticking ) || ( variable.use_filler & spell_targets.fan_of_knives >= 3 - ( talent.momentum_of_despair.enabled & talent.thrown_precision.enabled ) )",
},
{
["enabled"] = true,
["action"] = "ambush",
["description"] = "Ambush on Blindside/Subterfuge. Do not use Ambush from stealth during Kingsbane & Deathmark.",
["criteria"] = "variable.use_filler & ( buff.blindside.up || stealthed.rogue ) & ( ! dot.kingsbane.ticking || debuff.deathmark.down || buff.blindside.up )",
},
{
["enabled"] = true,
["action"] = "mutilate",
["cycle_targets"] = 1,
["description"] = "Tab-Mutilate to apply Deadly Poison at 2 targets",
["criteria"] = "variable.use_filler & spell_targets.fan_of_knives = 2",
},
{
["enabled"] = true,
["action"] = "mutilate",
["description"] = "Fallback Mutilate",
["criteria"] = "variable.use_filler",
},
},
["cds"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.master_assassin.enabled || dot.garrote.ticking",
["var_name"] = "deathmark_ma_condition",
["description"] = "Cooldowns Wait on Deathmark for Garrote with MA and check for Kingsbane",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.kingsbane.enabled || cooldown.kingsbane.remains <= 2",
["var_name"] = "deathmark_kingsbane_condition",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! stealthed.rogue & buff.slice_and_dice.remains > 5 & dot.rupture.ticking & buff.envenom.up & ! debuff.deathmark.up & variable.deathmark_ma_condition & variable.deathmark_kingsbane_condition",
["var_name"] = "deathmark_condition",
["description"] = "Deathmark to be used if not stealthed, Rupture is up, and all other talent conditions are satisfied",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Usages for various special-case Trinkets and other Cantrips if applicable",
["list_name"] = "items",
},
{
["enabled"] = true,
["action"] = "deathmark",
["description"] = "Cast Deathmark if the target will survive long enough",
["criteria"] = "( variable.deathmark_condition & target.time_to_die >= 10 ) || boss & fight_remains <= 20",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Check for Applicable Shiv usage",
["list_name"] = "shiv",
},
{
["enabled"] = true,
["criteria"] = "( debuff.shiv.up || cooldown.shiv.remains < 6 ) & buff.envenom.up & ( cooldown.deathmark.remains >= 50 || dot.deathmark.ticking ) || boss & fight_remains <= 15",
["action"] = "kingsbane",
},
{
["enabled"] = true,
["action"] = "thistle_tea",
["description"] = "Avoid overcapped energy, use with shiv, or dump charges at the end of a fight",
["criteria"] = "! buff.thistle_tea.up & ( dot.kingsbane.ticking || debuff.shiv.remains >= 4 ) || spell_targets.fan_of_knives >= 4 & debuff.shiv.remains >= 6 || fight_remains <= cooldown.thistle_tea.charges * 6",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Potion/Racials/Other misc cooldowns",
["list_name"] = "misc_cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "! stealthed.all & master_assassin_remains = 0",
["list_name"] = "vanish",
},
{
["enabled"] = true,
["criteria"] = "( buff.fatebound_coin_tails.stack > 0 & buff.fatebound_coin_heads.stack > 0 ) || debuff.shiv.up & ( cooldown.deathmark.remains > 50 || ! talent.inevitabile_end.enabled & effective_combo_points >= variable.effective_spend_cp )",
["use_off_gcd"] = 1,
["description"] = "Cold Blood for Edge Case or Envenoms during shiv",
["action"] = "cold_blood",
},
},
},
["version"] = 20241119,
["warnings"] = "The import for 'stealthed' required some automated changes.\nLine 3: Converted 'talent.deathstalkers_mark' to 'talent.deathstalkers_mark.enabled' (1x).\nLine 4: Converted 'talent.lightweight_shiv' to 'talent.lightweight_shiv.enabled' (1x).\nLine 4: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 9: Converted 'talent.shrouded_suffocation' to 'talent.shrouded_suffocation.enabled' (1x).\n\nThe import for 'vanish' required some automated changes.\nLine 3: Converted 'talent.master_assassin' to 'talent.master_assassin.enabled' (1x).\nLine 3: Converted 'talent.indiscriminate_carnage' to 'talent.indiscriminate_carnage.enabled' (1x).\nLine 3: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 5: Converted 'talent.indiscriminate_carnage' to 'talent.indiscriminate_carnage.enabled' (1x).\nLine 5: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\nLine 6: Converted 'talent.master_assassin' to 'talent.master_assassin.enabled' (1x).\nLine 7: Converted 'talent.improved_garrote' to 'talent.improved_garrote.enabled' (1x).\n\nThe import for 'core_dot' required some automated changes.\nLine 2: Converted 'talent.dashing_scoundrel' to 'talent.dashing_scoundrel.enabled' (1x).\nLine 2: Converted 'talent.caustic_spatter' to 'talent.caustic_spatter.enabled' (1x).\n\nThe import for 'shiv' required some automated changes.\nLine 2: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 3: Converted 'talent.arterial_precision' to 'talent.arterial_precision.enabled' (1x).\nLine 6: Converted 'talent.arterial_precision' to 'talent.arterial_precision.enabled' (1x).\nLine 7: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 7: Converted 'talent.arterial_precision' to 'talent.arterial_precision.enabled' (1x).\n\nThe import for 'misc_cds' required some automated changes.\nLine 5: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\nLine 5: Converted 'talent.kingsbane' to 'talent.kingsbane.enabled' (1x).\n\nThe import for 'aoe_dot' required some automated changes.\nLine 5: Converted 'talent.dashing_scoundrel' to 'talent.dashing_scoundrel.enabled' (1x).\n\nThe import for 'items' required some automated changes.\nLine 8: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 8: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 9: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 9: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\n\nThe import for 'default' required some automated changes.\nLine 6: Converted 'talent.sanguine_blades' to 'talent.sanguine_blades.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 3: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 3: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 3: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 4: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 4: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 4: Converted 'trinket.1.is.treacherous_tr
["spec"] = 259,
["profile"] = "actions.precombat+=/apply_poison\nactions.precombat+=/variable,name=priority_rotation,value=toggle.funnel\n# Check which trinket slots have Stat Values\nactions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)&!trinket.2.is.treacherous_transmitter||trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps||trinket.2.cooldown.duration>trinket.1.cooldown.duration)&!trinket.1.is.treacherous_transmitter||trinket.2.is.treacherous_transmitter\n# Determine combo point finish condition\nactions.precombat+=/variable,name=effective_spend_cp,value=cp_max_spend-2<?5*talent.hand_of_fate\n# Pre-cast Slice and Dice if possible\nactions.precombat+=/stealth\n## actions.precombat+=/slice_and_dice,precombat_seconds=1,if=refreshable&!buff.indiscriminate_carnage.up\n\n# Restealth if possible (no vulnerable enemies in combat)\nactions+=/stealth\n# Interrupt on cooldown to allow simming interactions with that\nactions+=/kick\n# Combined Energy Regen needed to saturate\nactions+=/variable,name=regen_saturated,value=energy.regen_combined>30\n# Pooling Setup, check for cooldowns\nactions+=/variable,name=in_cooldowns,value=dot.deathmark.ticking||dot.kingsbane.ticking||debuff.shiv.up\nactions+=/variable,name=clip_envenom,value=buff.envenom.up&buff.envenom.max_stack_remains<=1\nactions+=/variable,name=upper_limit_energy,value=70-30*talent.sanguine_blades-10*talent.vicious_venoms.rank\nactions+=/variable,name=avoid_tea,value=energy>40+50+5*talent.vicious_venoms.rank\n# Checking for cooldowns soon\nactions+=/variable,name=cd_soon,value=cooldown.kingsbane.remains<3&!cooldown.kingsbane.ready\n# Pooling Condition all together\nactions+=/variable,name=not_pooling,value=variable.in_cooldowns||!variable.cd_soon&variable.avoid_tea&buff.darkest_night.up||!variable.cd_soon&variable.avoid_tea&variable.clip_envenom||variable.upper_limit_energy||boss&fight_remains<=20\n# Call Stealthed Actions\nactions+=/call_action_list,name=stealthed,strict=1,if=stealthed.rogue||stealthed.improved_garrote||master_assassin_remains>0\n# Call Cooldowns\nactions+=/call_action_list,name=cds\n# Call Core DoT effects\nactions+=/call_action_list,name=core_dot\n# Call AoE DoTs when in AoE\nactions+=/call_action_list,name=aoe_dot,strict=1,if=active_enemies>1\n# Call Direct Damage Abilities\nactions+=/call_action_list,name=direct\nactions+=/arcane_torrent,if=energy.deficit>=15+energy.regen_combined\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n# We are Scent Saturated when our stack count is hitting the maximum\nactions.aoe_dot+=/variable,name=scent_saturation,value=buff.scent_of_blood.stack>=((spell_targets.fan_of_knives*talent.scent_of_blood.rank*2)>?20)\n# Helper Variable to check basic finisher conditions\nactions.aoe_dot+=/variable,name=dot_finisher_condition,value=combo_points>=variable.effective_spend_cp&(pmultiplier<=1)\n# Crimson Tempest on 2+ Targets if we have enough energy regen\nactions.aoe_dot+=/crimson_tempest,if=spell_targets>=2&variable.dot_finisher_condition&refreshable&target.time_to_die-remains>6\n# Garrote upkeep, also uses it in AoE to reach energy saturation\nactions.aoe_dot+=/garrote,cycle_targets=1,if=combo_points.deficit>=1&(pmultiplier<=1)&refreshable&!variable.regen_saturated&target.time_to_die-remains>12\n# Rupture upkeep, also uses it in AoE to reach energy or scent of blood saturation\nactions.aoe_dot+=/rupture,cycle_targets=1,if=variable.dot_finisher_condition&refreshable&(!dot.kingsbane.ticking||buff.cold_blood.up)&(!variable.regen_saturated&(talent.scent_of_blood.rank=2||talent.scent_of_blood.rank<=1&(buff.indiscriminate_carnage.up||target.time_to_die-remains>15)))&target.time_to_die-remains>(7+(talent.dashing_scoundrel*5)+(variable.regen_saturated*6))&!buff.darkest_night.up\nactions.aoe_dot+=/rupture,cycle_targets=1,if=variable.dot_finisher_condition&refreshable&(!dot.kingsbane.ticking||buf
},
["Balance"] = {
["source"] = "https://balance-simc.github.io/Balance-SimC/md.html?file=balance.txt",
["builtIn"] = true,
["date"] = 20241105,
["author"] = "SimC",
["desc"] = "2024-11-05: SimC update (Sunfire)\n\n2024-10-29: Fix AOE Eclipse\n\n2024-10-26: SimC update, adjustments for leveling\n\n2024-10-23: SimC update\n\n2024-10-22: 11.0.5\n\n2024-10-06, 10-11, 10-21: SimC update\n\n2024-09-28, 09-29: SimC update\n\n2024-09-01, 09-04, 09-08, 09-10, 09-15, 09-21: SimC update\n\n2024-08-11: Mark of the Wild\n\n2024-07-23: The War Within",
["lists"] = {
["default"] = {
{
["action"] = "solar_beam",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "6 / spell_haste + talent.natures_balance.enabled + talent.orbit_breaker.enabled * dot.moonfire.ticking * ( buff.orbit_breaker.stack > ( 27 - 2 * buff.solstice.up ) ) * 24",
["var_name"] = "passive_asp",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.ca_inc.remains <? cooldown.force_of_nature.remains",
["var_name"] = "ca_effective_cd",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "boss & fight_remains < cooldown.ca_inc.duration + variable.ca_effective_cd",
["var_name"] = "last_ca_inc",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( boss & fight_remains < ( 15 + 5 * talent.incarnation_chosen_of_elune.enabled ) * ( 1 - talent.whirling_stars.enabled * 0.2 ) || fight_remains > 10 & ( ! hero_tree.keeper_of_the_grove || ( ( ! talent.harmony_of_the_grove.enabled || buff.harmony_of_the_grove.up ) & cooldown.convoke_the_spirits.remains < 60 & ( ! talent.new_moon.enabled || cooldown.new_moon.charges_fractional >= 2 ) ) ) & ( ! talent.whirling_stars.enabled || ! talent.convoke_the_spirits.enabled || talent.whirling_stars.enabled & cooldown.convoke_the_spirits.remains < gcd.max * 2 || cooldown.convoke_the_spirits.remains > cooldown.ca_inc.full_recharge_time ) ) & cooldown.ca_inc.ready & ! buff.ca_inc.up",
["var_name"] = "cd_condition",
},
{
["enabled"] = true,
["name"] = "aberrant_spellforge",
["action"] = "aberrant_spellforge",
},
{
["enabled"] = true,
["name"] = "spymasters_web",
["action"] = "spymasters_web",
["criteria"] = "variable.cd_condition & ( buff.spymasters_report.stack > 29 || fight_remains < cooldown.ca_inc.duration ) || boss & fight_remains < 20",
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
["criteria"] = "dot.sunfire.remains > 4 & ( dot.moonfire.remains > 4 || talent.treants_of_the_moon.enabled & ( cooldown.force_of_nature.remains < 3 || buff.harmony_of_the_grove.up ) & variable.ca_effective_cd < 1 || boss & fight_remains < 20 || fight_remains < variable.ca_effective_cd & ( buff.harmony_of_the_grove.up || cooldown.convoke_the_spirits.ready ) ) & buff.spymasters_report.stack <= 29",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
["criteria"] = "( variable.ca_effective_cd < 3 || boss & fight_remains < 20 || fight_remains < variable.ca_effective_cd & ( buff.harmony_of_the_grove.up || cooldown.convoke_the_spirits.ready ) ) & buff.spymasters_report.stack <= 29",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.no_cd_talent || fight_remains < variable.ca_effective_cd & ( buff.harmony_of_the_grove.up || cooldown.convoke_the_spirits.ready ) || ( ( buff.spymasters_report.stack + variable.ca_effective_cd / 6 ) > 29 || boss & fight_remains < cooldown.ca_inc.duration + variable.ca_effective_cd ) & variable.ca_effective_cd > 20 || variable.on_use_trinket = 0",
["var_name"] = "generic_trinket_condition",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.is.spymasters_web & ! trinket.t1.is.imperfect_ascendancy_serum & ! trinket.t1.is.treacherous_transmitter & ( variable.on_use_trinket != 1 & trinket.t2.cooldown.remains > 20 || boss & fight_remains < ( 20 + 20 * ( trinket.t2.cooldown.remains < 25 ) ) || variable.generic_trinket_condition )",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t2.is.spymasters_web & ! trinket.t2.is.imperfect_ascendancy_serum & ! trinket.t2.is.treacherous_transmitter & ( variable.on_use_trinket != 2 & trinket.t1.cooldown.remains > 20 || boss & fight_remains < ( 20 + 20 * ( trinket.t1.cooldown.remains < 25 ) ) || variable.generic_trinket_condition )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains <= 30",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "variable.no_cd_talent || boss & fight_remains < 15",
["action"] = "berserking",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.eclipse_lunar.up || buff.eclipse_solar.up",
["var_name"] = "eclipse",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.eclipse_lunar.remains <? buff.eclipse_solar.remains",
["var_name"] = "eclipse_remains",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.lunar_calling.enabled || spell_targets.starfire > 2 - ( talent.umbral_intensity.rank + talent.soul_of_the_forest.enabled > 1 )",
["var_name"] = "enter_lunar",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.balance_of_all_things_arcane.stack + buff.balance_of_all_things_nature.stack",
["var_name"] = "boat_stacks",
},
{
["enabled"] = true,
["criteria"] = "talent.lunar_calling.enabled || ! talent.lunar_calling.enabled & variable.eclipse_remains >= 7 & cooldown.ca_inc.remains > 20",
["action"] = "warrior_of_elune",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "spell_targets > 1",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "st",
},
},
["precombat"] = {
{
["action"] = "mark_of_the_wild",
["enabled"] = true,
},
{
["action"] = "moonkin_form",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.celestial_alignment.enabled & ! talent.incarnation_chosen_of_elune.enabled || druid.no_cds",
["var_name"] = "no_cd_talent",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "on_use_trinket",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "( trinket.t1.has_proc & trinket.t1.cooldown.duration || trinket.t1.is.spymasters_web || trinket.t1.is.signet_of_the_priory ) & ! trinket.t1.is.arakara_sacbrood",
["var_name"] = "on_use_trinket",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "( ( trinket.t2.has_proc & trinket.t2.cooldown.duration || trinket.t2.is.spymasters_web || trinket.t2.is.signet_of_the_priory ) * 2 & ! trinket.t2.is.arakara_sacbrood )",
["var_name"] = "on_use_trinket",
},
{
["enabled"] = true,
["criteria"] = "hero_tree.keeper_of_the_grove & ! talent.stellar_flare.enabled & action.regrowth.time_since < 10 & active_dot.regrowth = 0",
["action"] = "regrowth",
},
{
["enabled"] = true,
["criteria"] = "! prev.1.wrath",
["action"] = "wrath",
},
{
["enabled"] = true,
["criteria"] = "prev.1.wrath & ! ( prev.2.wrath || prev.3.wrath || prev.4.wrath )",
["action"] = "wrath",
},
{
["enabled"] = true,
["criteria"] = "! talent.stellar_flare.enabled & hero_tree.elunes_chosen",
["action"] = "starfire",
},
{
["action"] = "stellar_flare",
["enabled"] = true,
},
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "variable.enter_lunar & variable.eclipse & variable.eclipse_remains < cast_time & ! variable.cd_condition",
["action"] = "wrath",
},
{
["enabled"] = true,
["criteria"] = "! variable.enter_lunar & variable.eclipse & variable.eclipse_remains < cast_time & ! variable.cd_condition",
["action"] = "starfire",
},
{
["enabled"] = true,
["criteria"] = "astral_power.deficit <= variable.passive_asp + 6",
["action"] = "starfall",
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains ) > 6 & ( ! talent.treants_of_the_moon.enabled || spell_targets - active_dot.moonfire_dmg > 6 || cooldown.force_of_nature.remains > 3 & ! buff.harmony_of_the_grove.up ) & ! boss",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains ) > 6 - ( spell_targets / 2 )",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains ) > 6 & ( ! talent.treants_of_the_moon.enabled || spell_targets - active_dot.moonfire_dmg > 6 || cooldown.force_of_nature.remains > 3 & ! buff.harmony_of_the_grove.up ) & boss",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.enter_lunar & ( ! variable.eclipse || variable.eclipse_remains < cast_time )",
["action"] = "wrath",
},
{
["enabled"] = true,
["criteria"] = "! variable.enter_lunar & ( ! variable.eclipse || variable.eclipse_remains < cast_time )",
["action"] = "starfire",
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains - target.unit > 7 + spell_targets ) & spell_targets < ( 11 - talent.umbral_intensity.rank - ( 2 * talent.astral_smolder.enabled ) - talent.lunar_calling.enabled )",
["action"] = "stellar_flare",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( talent.power_of_the_dream.enabled & talent.early_spring.enabled & talent.orbital_strike.enabled ) || variable.eclipse_remains >= 3",
["action"] = "force_of_nature",
},
{
["enabled"] = true,
["criteria"] = "cooldown.ca_inc.remains < gcd.max & ( ! talent.natures_grace.enabled || ! variable.eclipse || variable.eclipse_remains > 6 ) || variable.eclipse_remains >= 3 & cooldown.ca_inc.remains > 10 + 15 * talent.control_of_the_dream.enabled & ( fight_remains > action_cooldown + 5 || cooldown.ca_inc.remains > fight_remains )",
["action"] = "force_of_nature",
},
{
["enabled"] = true,
["criteria"] = "variable.eclipse",
["action"] = "fury_of_elune",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "pre_cd",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition",
["action"] = "celestial_alignment",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition",
["action"] = "incarnation",
},
{
["enabled"] = true,
["criteria"] = "! talent.lunar_calling.enabled & buff.eclipse_solar.remains < 7 || talent.lunar_calling.enabled",
["action"] = "warrior_of_elune",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.lunar_calling.enabled & spell_targets.starfire = 1 ) & ( buff.eclipse_solar.up & buff.eclipse_solar.remains < action.starfire.cast_time || eclipse.in_none )",
["action"] = "starfire",
},
{
["enabled"] = true,
["criteria"] = "buff.starweavers_warp.up || buff.touch_the_cosmos_starfall.up",
["action"] = "starfall",
},
{
["enabled"] = true,
["criteria"] = "buff.starweavers_weft.up",
["action"] = "starsurge",
},
{
["action"] = "starfall",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ! buff.dreamstate.up & ! buff.umbral_embrace.up & spell_targets.starfire < 7 || spell_targets.starfire = 1 ) & ( boss & fight_remains < 5 || ( buff.ca_inc.up || cooldown.ca_inc.remains > 40 ) & ( ! hero_tree.keeper_of_the_grove || buff.harmony_of_the_grove.up || cooldown.force_of_nature.remains > 15 ) )",
["action"] = "convoke_the_spirits",
},
{
["action"] = "new_moon",
["enabled"] = true,
},
{
["action"] = "half_moon",
["enabled"] = true,
},
{
["action"] = "full_moon",
["enabled"] = true,
},
{
["action"] = "wild_mushroom",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! hero_tree.keeper_of_the_grove",
["action"] = "force_of_nature",
},
{
["enabled"] = true,
["criteria"] = "talent.lunar_calling.enabled || buff.eclipse_lunar.up & spell_targets.starfire > 1",
["action"] = "starfire",
},
{
["action"] = "wrath",
["enabled"] = true,
},
},
["st"] = {
{
["enabled"] = true,
["criteria"] = "variable.enter_lunar & variable.eclipse & variable.eclipse_remains < cast_time & ! variable.cd_condition",
["action"] = "wrath",
},
{
["enabled"] = true,
["criteria"] = "! variable.enter_lunar & variable.eclipse & variable.eclipse_remains < cast_time & ! variable.cd_condition",
["action"] = "starfire",
},
{
["enabled"] = true,
["criteria"] = "remains < 3 || refreshable & ( hero_tree.keeper_of_the_grove & cooldown.force_of_nature.ready || ! hero_tree.keeper_of_the_grove & variable.cd_condition )",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & remains < 3 & ( ! talent.treants_of_the_moon.enabled || cooldown.force_of_nature.remains > 3 & ! buff.harmony_of_the_grove.up )",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "pre_cd",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition",
["action"] = "celestial_alignment",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition",
["action"] = "incarnation",
},
{
["enabled"] = true,
["criteria"] = "variable.enter_lunar & ( ! variable.eclipse || variable.eclipse_remains < cast_time )",
["action"] = "wrath",
},
{
["enabled"] = true,
["criteria"] = "! variable.enter_lunar & ( ! variable.eclipse || variable.eclipse_remains < cast_time )",
["action"] = "starfire",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition & astral_power.deficit > variable.passive_asp + action.force_of_nature.energize_amount",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "cooldown.ca_inc.remains < gcd.max & ( ! talent.convoke_the_spirits.enabled || cooldown.convoke_the_spirits.remains < gcd.max * 3 || cooldown.convoke_the_spirits.remains > cooldown.ca_inc.full_recharge_time || boss & fight_remains < cooldown.convoke_the_spirits.remains + 3 ) || cooldown.ca_inc.full_recharge_time + 5 + 15 * talent.control_of_the_dream.enabled > action_cooldown & ( ! talent.convoke_the_spirits.enabled || cooldown.convoke_the_spirits.remains + 10 + 15 * talent.control_of_the_dream.enabled > action_cooldown || boss & fight_remains < cooldown.convoke_the_spirits.remains + cooldown.convoke_the_spirits.duration + 5 ) & ( fight_remains > action_cooldown + 5 || boss & fight_remains < cooldown.ca_inc.remains + 7 ) || talent.whirling_stars.enabled & talent.convoke_the_spirits.enabled & cooldown.convoke_the_spirits.remains > cooldown.force_of_nature.duration - 10 & boss & fight_remains > cooldown.convoke_the_spirits.remains + 6",
["action"] = "force_of_nature",
},
{
["enabled"] = true,
["criteria"] = "5 + variable.passive_asp < astral_power.deficit",
["action"] = "fury_of_elune",
},
{
["enabled"] = true,
["criteria"] = "talent.starlord.enabled & buff.starlord.stack < 3",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "sunfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( ! talent.treants_of_the_moon.enabled || cooldown.force_of_nature.remains > 3 & ! buff.harmony_of_the_grove.up )",
["action"] = "moonfire",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( target.time_to_die - remains - target.unit > 7 + spell_targets )",
["action"] = "stellar_flare",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "boss & fight_remains < 5 || ( buff.ca_inc.up || cooldown.ca_inc.remains > 40 ) & ( ! hero_tree.keeper_of_the_grove || buff.harmony_of_the_grove.up || cooldown.force_of_nature.remains > 15 )",
["var_name"] = "convoke_condition",
},
{
["enabled"] = true,
["criteria"] = "cooldown.convoke_the_spirits.remains < gcd.max * 2 & variable.convoke_condition",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "variable.convoke_condition",
["action"] = "convoke_the_spirits",
},
{
["enabled"] = true,
["criteria"] = "buff.starlord.remains > 4 & variable.boat_stacks >= 3 || fight_remains < 4",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + energize_amount || fight_remains < 20 || cooldown.ca_inc.remains > 15",
["action"] = "new_moon",
},
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + energize_amount & ( buff.eclipse_lunar.remains > execute_time || buff.eclipse_solar.remains > execute_time ) || fight_remains < 20 || cooldown.ca_inc.remains > 15",
["action"] = "half_moon",
},
{
["enabled"] = true,
["criteria"] = "astral_power.deficit > variable.passive_asp + energize_amount & ( buff.eclipse_lunar.remains > execute_time || buff.eclipse_solar.remains > execute_time ) || fight_remains < 20 || cooldown.ca_inc.remains > 15",
["action"] = "full_moon",
},
{
["enabled"] = true,
["criteria"] = "buff.starweavers_weft.up || buff.touch_the_cosmos_starsurge.up",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "buff.starweavers_warp.up || buff.touch_the_cosmos_starfall.up",
["action"] = "starfall",
},
{
["enabled"] = true,
["criteria"] = "astral_power.deficit < variable.passive_asp + action.wrath.energize_amount + ( action.starfire.energize_amount + variable.passive_asp ) * ( buff.eclipse_solar.remains < ( gcd.max * 3 ) )",
["action"] = "starsurge",
},
{
["enabled"] = true,
["criteria"] = "! hero_tree.keeper_of_the_grove",
["action"] = "force_of_nature",
},
{
["enabled"] = true,
["criteria"] = "talent.lunar_calling.enabled",
["action"] = "starfire",
},
{
["action"] = "wrath",
["enabled"] = true,
},
},
["pre_cd"] = {
{
["enabled"] = true,
["name"] = "spymasters_web",
["action"] = "spymasters_web",
["criteria"] = "variable.cd_condition & ( buff.spymasters_report.stack > 29 || boss & fight_remains < cooldown.ca_inc.duration )",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_condition",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t1.is.spymasters_web & ! trinket.t1.is.imperfect_ascendancy_serum & ! trinket.t1.is.treacherous_transmitter & ( variable.on_use_trinket = 1 || variable.on_use_trinket = 3 ) & variable.cd_condition",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "! trinket.t2.is.spymasters_web & ! trinket.t2.is.imperfect_ascendancy_serum & ! trinket.t2.is.treacherous_transmitter & variable.on_use_trinket = 2 & variable.cd_condition",
["action"] = "trinket2",
["slot"] = "trinket2",
},
},
},
["version"] = 20241105,
["warnings"] = "The import for 'default' required some automated changes.\nLine 2: Converted 'talent.natures_balance' to 'talent.natures_balance.enabled' (1x).\nLine 2: Converted 'talent.orbit_breaker' to 'talent.orbit_breaker.enabled' (1x).\nLine 2: Converted operations in '6%spell_haste+talent.natures_balance.enabled+talent.orbit_breaker.enabled*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*24' to '6/spell_haste+talent.natures_balance.enabled+talent.orbit_breaker.enabled*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*24'.\nLine 5: Converted 'talent.incarnation_chosen_of_elune' to 'talent.incarnation_chosen_of_elune.enabled' (1x).\nLine 5: Converted 'talent.whirling_stars' to 'talent.whirling_stars.enabled' (1x).\nLine 5: Converted 'talent.harmony_of_the_grove' to 'talent.harmony_of_the_grove.enabled' (1x).\nLine 5: Converted 'talent.new_moon' to 'talent.new_moon.enabled' (1x).\nLine 5: Converted 'talent.whirling_stars' to 'talent.whirling_stars.enabled' (1x).\nLine 5: Converted 'talent.convoke_the_spirits' to 'talent.convoke_the_spirits.enabled' (1x).\nLine 5: Converted 'talent.whirling_stars' to 'talent.whirling_stars.enabled' (1x).\nLine 8: Converted 'talent.treants_of_the_moon' to 'talent.treants_of_the_moon.enabled' (1x).\nLine 10: Converted operations in 'variable.no_cd_talent||fight_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up||cooldown.convoke_the_spirits.ready)||((buff.spymasters_report.stack+variable.ca_effective_cd%6)>29||boss&fight_remains<cooldown.ca_inc.duration+variable.ca_effective_cd)&variable.ca_effective_cd>20||variable.on_use_trinket=0' to 'variable.no_cd_talent||fight_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up||cooldown.convoke_the_spirits.ready)||((buff.spymasters_report.stack+variable.ca_effective_cd/6)>29||boss&fight_remains<cooldown.ca_inc.duration+variable.ca_effective_cd)&variable.ca_effective_cd>20||variable.on_use_trinket=0'.\nLine 11: Converted 'trinket.1.is.spymasters_web' to 'trinket.t1.is.spymasters_web' (1x).\nLine 11: Converted 'trinket.1.is.imperfect_ascendancy_serum' to 'trinket.t1.is.imperfect_ascendancy_serum' (1x).\nLine 11: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 11: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 11: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 11: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 11: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 12: Converted 'trinket.2.is.spymasters_web' to 'trinket.t2.is.spymasters_web' (1x).\nLine 12: Converted 'trinket.2.is.imperfect_ascendancy_serum' to 'trinket.t2.is.imperfect_ascendancy_serum' (1x).\nLine 12: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 12: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 12: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 12: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 12: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 18: Converted 'talent.lunar_calling' to 'talent.lunar_calling.enabled' (1x).\nLine 18: Converted 'talent.soul_of_the_forest' to 'talent.soul_of_the_forest.enabled' (1x).\nLine 20: Converted 'talent.lunar_calling' to 'talent.lunar_calling.enabled' (1x).\nLine 20: Converted 'talent.lunar_calling' to 'talent.lunar_calling.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'talent.celestial_alignment' to 'talent.celestial_alignment.enabled' (1x).\nLine 3: Converted 'talent.incarnation_chosen_of_elune' to 'talent.incarnation_chosen_of_elune.enabled' (1x).\nLine 5: Converted 'trinket.1.has_proc' to 'trinket.t1.has_proc' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.du
["profile"] = "actions.precombat+=/mark_of_the_wild\nactions.precombat+=/moonkin_form\nactions.precombat+=/variable,name=no_cd_talent,value=!talent.celestial_alignment&!talent.incarnation_chosen_of_elune||druid.no_cds\nactions.precombat+=/variable,name=on_use_trinket,value=0\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=(trinket.1.has_proc&trinket.1.cooldown.duration||trinket.1.is.spymasters_web||trinket.1.is.signet_of_the_priory)&!trinket.1.is.arakara_sacbrood\nactions.precombat+=/variable,name=on_use_trinket,op=add,value=((trinket.2.has_proc&trinket.2.cooldown.duration||trinket.2.is.spymasters_web||trinket.2.is.signet_of_the_priory)*2&!trinket.2.is.arakara_sacbrood)\n## Regrowth to stack for Keeper of the Grove...\nactions.precombat+=/regrowth,if=hero_tree.keeper_of_the_grove&!talent.stellar_flare&action.regrowth.time_since<10&active_dot.regrowth=0\nactions.precombat+=/wrath,if=!prev.1.wrath\nactions.precombat+=/wrath,if=prev.1.wrath&!(prev.2.wrath||prev.3.wrath||prev.4.wrath)\nactions.precombat+=/starfire,if=!talent.stellar_flare&hero_tree.elunes_chosen\nactions.precombat+=/stellar_flare\n\nactions+=/solar_beam\nactions+=/variable,name=passive_asp,value=6%spell_haste+talent.natures_balance+talent.orbit_breaker*dot.moonfire.ticking*(buff.orbit_breaker.stack>(27-2*buff.solstice.up))*24\nactions+=/variable,name=ca_effective_cd,value=cooldown.ca_inc.remains<?cooldown.force_of_nature.remains\nactions+=/variable,name=last_ca_inc,value=boss&fight_remains<cooldown.ca_inc.duration+variable.ca_effective_cd\nactions+=/variable,name=cd_condition,value=(boss&fight_remains<(15+5*talent.incarnation_chosen_of_elune)*(1-talent.whirling_stars*0.2)||fight_remains>10&(!hero_tree.keeper_of_the_grove||((!talent.harmony_of_the_grove||buff.harmony_of_the_grove.up)&cooldown.convoke_the_spirits.remains<60&(!talent.new_moon||cooldown.new_moon.charges_fractional>=2)))&(!talent.whirling_stars||!talent.convoke_the_spirits||talent.whirling_stars&cooldown.convoke_the_spirits.remains<gcd.max*2||cooldown.convoke_the_spirits.remains>cooldown.ca_inc.full_recharge_time))&cooldown.ca_inc.ready&!buff.ca_inc.up\nactions+=/use_item,name=aberrant_spellforge\n## actions+=/do_treacherous_transmitter_task,if=cooldown.ca_inc.remains>10||buff.ca_inc.up\nactions+=/use_item,name=spymasters_web,if=variable.cd_condition&(buff.spymasters_report.stack>29||fight_remains<cooldown.ca_inc.duration)||boss&fight_remains<20\nactions+=/use_item,name=imperfect_ascendancy_serum,if=dot.sunfire.remains>4&(dot.moonfire.remains>4||talent.treants_of_the_moon&(cooldown.force_of_nature.remains<3||buff.harmony_of_the_grove.up)&variable.ca_effective_cd<1||boss&fight_remains<20||fight_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up||cooldown.convoke_the_spirits.ready))&buff.spymasters_report.stack<=29\nactions+=/use_item,name=treacherous_transmitter,if=(variable.ca_effective_cd<3||boss&fight_remains<20||fight_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up||cooldown.convoke_the_spirits.ready))&buff.spymasters_report.stack<=29\nactions+=/variable,name=generic_trinket_condition,value=variable.no_cd_talent||fight_remains<variable.ca_effective_cd&(buff.harmony_of_the_grove.up||cooldown.convoke_the_spirits.ready)||((buff.spymasters_report.stack+variable.ca_effective_cd%6)>29||boss&fight_remains<cooldown.ca_inc.duration+variable.ca_effective_cd)&variable.ca_effective_cd>20||variable.on_use_trinket=0\nactions+=/use_item,slot=trinket1,if=!trinket.1.is.spymasters_web&!trinket.1.is.imperfect_ascendancy_serum&!trinket.1.is.treacherous_transmitter&(variable.on_use_trinket!=1&trinket.2.cooldown.remains>20||boss&fight_remains<(20+20*(trinket.2.cooldown.remains<25))||variable.generic_trinket_condition)\nactions+=/use_item,slot=trinket2,if=!trinket.2.is.spymasters_web&!trinket.2.is.imperfect_ascendancy_serum&!trinket.2.is.treacherous_transmitter&(variable.on_use_trinket!=2&trinket.1.cooldown.remains>20||boss&fight_remains<(20+20*(trinket.1.cooldown.remains<25))||variable.generic_trinket_condition)\nactions+=/use_items\nactions+=/potion,if=boss&fight_remains<
["spec"] = 102,
},
["Survival"] = {
["source"] = "# https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241022,
["author"] = "SimC",
["desc"] = "2024-09-22, 10-21: SimC update\n\n2024-08-24, 09-08: SimC priority update\n\n2024-08-12: Fix Kill Command usage in AOE with maxed Focus\n\n2024-08-01: Respect Hunter's Mark setting\n\n2024-07-27: Minor sim update; use Hunter's Mark\n\n2024-07-23: The War Within",
["lists"] = {
["sentst"] = {
{
["enabled"] = true,
["action"] = "wildfire_bomb",
["description"] = "SENT Further investigate negative Haste Breakpoints on Lunar Storm. SENTINEL || DEFAULT SINGLE TARGET ACTIONLIST.",
["criteria"] = "! cooldown.lunar_storm.remains",
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "( buff.relentless_primal_ferocity.up & buff.tip_of_the_spear.stack < 1 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains",
["action"] = "spearhead",
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["criteria"] = "! dot.serpent_sting.ticking & target.time_to_die > 12 & ( ! talent.contagious_reagents.enabled || active_dot.serpent_sting = 0 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["criteria"] = "talent.contagious_reagents.enabled & active_dot.serpent_sting < active_enemies & dot.serpent_sting.remains",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack = 2 || buff.tip_of_the_spear.stack = 1",
["action"] = "flanking_strike",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.lunar_storm.remains > full_recharge_time - gcd.max ) & ( buff.tip_of_the_spear.stack > 0 & cooldown.wildfire_bomb.charges_fractional > 1.7 || cooldown.wildfire_bomb.charges_fractional > 1.9 ) || cooldown.coordinated_assault.remains < 2 * gcd.max",
["action"] = "wildfire_bomb",
},
{
["action"] = "butchery",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.bombardier.enabled || talent.bombardier.enabled & cooldown.wildfire_bomb.charges_fractional < 1",
["action"] = "coordinated_assault",
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0",
["action"] = "fury_of_the_eagle",
},
{
["action"] = "kill_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "buff.tip_of_the_spear.stack < 1 & cooldown.flanking_strike.remains < gcd.max",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max & ( ! buff.relentless_primal_ferocity.up || ( buff.relentless_primal_ferocity.up & buff.tip_of_the_spear.stack < 2 ) )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0 & cooldown.lunar_storm.remains > full_recharge_time & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.in > 15 )",
["action"] = "wildfire_bomb",
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["criteria"] = "! talent.contagious_reagents.enabled",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["cycle_targets"] = 1,
},
},
["default"] = {
{
["action"] = "muzzle",
["enabled"] = true,
},
{
["action"] = "tranquilizing_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( settings.mark_any || target.is_boss ) & active_dot.hunters_mark = 0 & target.time_to_pct_80 > 20",
["action"] = "hunters_mark",
},
{
["enabled"] = true,
["criteria"] = "pet.health_pct < pet_healing",
["action"] = "mend_pet",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3 & talent.vicious_hunt.enabled",
["list_name"] = "plst",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2 & talent.vicious_hunt.enabled",
["list_name"] = "plcleave",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3 & ! talent.vicious_hunt.enabled",
["list_name"] = "sentst",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies > 2 & ! talent.vicious_hunt.enabled",
["list_name"] = "sentcleave",
},
{
["enabled"] = true,
["action"] = "kill_command",
["description"] = "Use Kill Command if there's nothing else to press",
["cycle_targets"] = 1,
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
},
["precombat"] = {
{
["action"] = "summon_pet",
["enabled"] = true,
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
},
{
["enabled"] = true,
["criteria"] = "( settings.mark_any || target.is_boss ) & active_dot.hunters_mark = 0 & target.time_to_pct_80 > 20",
["action"] = "hunters_mark",
},
{
["enabled"] = true,
["name"] = "algethar_puzzle_box",
["action"] = "algethar_puzzle_box",
},
},
["plcleave"] = {
{
["enabled"] = true,
["action"] = "spearhead",
["description"] = "PACK LEADER AOE ACTIONLIST",
["criteria"] = "cooldown.coordinated_assault.remains",
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "buff.relentless_primal_ferocity.up & buff.tip_of_the_spear.stack < 1",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0 & cooldown.wildfire_bomb.charges_fractional > 1.7 || cooldown.wildfire_bomb.charges_fractional > 1.9 || cooldown.coordinated_assault.remains < 2 * gcd.max",
["action"] = "wildfire_bomb",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack = 2 || buff.tip_of_the_spear.stack = 1",
["action"] = "flanking_strike",
},
{
["action"] = "butchery",
["enabled"] = true,
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.bombardier.enabled || talent.bombardier.enabled & cooldown.wildfire_bomb.charges_fractional < 1",
["action"] = "coordinated_assault",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0",
["action"] = "fury_of_the_eagle",
},
{
["enabled"] = true,
["criteria"] = "buff.deathblow.remains",
["action"] = "kill_shot",
},
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max",
["action"] = "kill_command",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0",
["action"] = "wildfire_bomb",
},
{
["action"] = "kill_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "kill_command",
["cycle_targets"] = 1,
},
{
["action"] = "raptor_bite",
["enabled"] = true,
},
},
["cds"] = {
{
["enabled"] = true,
["action"] = "harpoon",
["description"] = "COOLDOWNS ACTIONLIST",
["criteria"] = "settings.use_harpoon",
},
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || ! talent.coordinated_assault.enabled & cooldown.spearhead.remains || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || ! talent.coordinated_assault.enabled & cooldown.spearhead.remains || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || ! talent.coordinated_assault.enabled & cooldown.spearhead.remains || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "buff.coordinated_assault.up || ! talent.coordinated_assault.enabled & cooldown.spearhead.remains || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled || time_to_die < 13",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 25 || buff.coordinated_assault.up || ! talent.coordinated_assault.enabled & cooldown.spearhead.remains || ! talent.spearhead.enabled & ! talent.coordinated_assault.enabled",
["action"] = "potion",
},
{
["enabled"] = true,
["action"] = "imperfect_ascendancy_serum",
["use_off_gcd"] = 1,
["name"] = "imperfect_ascendancy_serum",
["criteria"] = "gcd.remains > gcd.max - 0.1",
},
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains || cooldown.spearhead.remains",
["action"] = "use_items",
},
{
["enabled"] = true,
["criteria"] = "target.distance >= 6",
["action"] = "aspect_of_the_eagle",
},
},
["plst"] = {
{
["enabled"] = true,
["action"] = "raptor_bite",
["cycle_targets"] = 1,
["criteria"] = "buff.howl_of_the_pack.up & buff.pack_coordination.up & buff.howl_of_the_pack.remains < gcd.max",
["description"] = "PL ST is currently optimised for KCspam, if the playstyle ends up fixed it is likely better to entirely redo and take the sentactionlist as a baseline. PACK LEADER SINGLE TARGET ACTIONLIST.",
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "( buff.relentless_primal_ferocity.up & buff.tip_of_the_spear.stack < 1 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "cooldown.coordinated_assault.remains",
["action"] = "spearhead",
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["criteria"] = "! dot.serpent_sting.ticking & target.time_to_die > 12 & ( ! talent.contagious_reagents.enabled || active_dot.serpent_sting = 0 )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["criteria"] = "talent.contagious_reagents.enabled & active_dot.serpent_sting < active_enemies & dot.serpent_sting.remains",
["cycle_targets"] = 1,
},
{
["action"] = "butchery",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack = 2 || buff.tip_of_the_spear.stack = 1",
["action"] = "flanking_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0",
["action"] = "kill_shot",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0 & cooldown.wildfire_bomb.charges_fractional > 1.7 || cooldown.wildfire_bomb.charges_fractional > 1.9 || cooldown.coordinated_assault.remains < 2 * gcd.max",
["action"] = "wildfire_bomb",
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.bombardier.enabled || talent.bombardier.enabled & cooldown.wildfire_bomb.charges_fractional < 1",
["action"] = "coordinated_assault",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.in > 40 )",
["action"] = "fury_of_the_eagle",
},
{
["enabled"] = true,
["criteria"] = "buff.furious_assault.up",
["action"] = "raptor_bite",
},
{
["enabled"] = true,
["criteria"] = "focus + cast_regen < focus.max & ( ! buff.relentless_primal_ferocity.up || ( buff.relentless_primal_ferocity.up & buff.tip_of_the_spear.stack < 1 || focus < 30 ) )",
["action"] = "kill_command",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0 & ( ! raid_event.adds.exists || raid_event.adds.exists & raid_event.adds.in > 15 )",
["action"] = "wildfire_bomb",
},
{
["enabled"] = true,
["criteria"] = "! talent.contagious_reagents.enabled",
["action"] = "raptor_bite",
},
{
["action"] = "raptor_bite",
["enabled"] = true,
},
},
["sentcleave"] = {
{
["enabled"] = true,
["action"] = "wildfire_bomb",
["description"] = "SENTINEL || DEFAULT AOE ACTIONLIST",
["criteria"] = "! cooldown.lunar_storm.remains",
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "buff.relentless_primal_ferocity.up & buff.tip_of_the_spear.stack < 1",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0 & cooldown.wildfire_bomb.charges_fractional > 1.7 || cooldown.wildfire_bomb.charges_fractional > 1.9 || ( talent.bombardier.enabled & cooldown.coordinated_assault.remains < 2 * gcd.max ) || talent.butchery.enabled & cooldown.butchery.remains < gcd.max",
["action"] = "wildfire_bomb",
},
{
["action"] = "butchery",
["enabled"] = true,
},
{
["action"] = "explosive_shot",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.bombardier.enabled || talent.bombardier.enabled & cooldown.wildfire_bomb.charges_fractional < 1",
["action"] = "coordinated_assault",
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0",
["action"] = "fury_of_the_eagle",
},
{
["enabled"] = true,
["criteria"] = "( buff.tip_of_the_spear.stack = 2 || buff.tip_of_the_spear.stack = 1 )",
["action"] = "flanking_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.deathblow.remains & talent.sic_em.enabled",
["action"] = "kill_shot",
},
{
["enabled"] = true,
["action"] = "kill_command",
["criteria"] = "focus + cast_regen < focus.max",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.tip_of_the_spear.stack > 0",
["action"] = "wildfire_bomb",
},
{
["enabled"] = true,
["action"] = "kill_command",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["criteria"] = "! talent.contagious_reagents.enabled",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "raptor_bite",
["cycle_targets"] = 1,
},
},
},
["version"] = 20241022,
["warnings"] = "The import for 'sentcleave' required some automated changes.\nLine 3: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 3: Converted 'talent.butchery' to 'talent.butchery.enabled' (1x).\nLine 6: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 6: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 9: Converted 'talent.sic_em' to 'talent.sic_em.enabled' (1x).\nLine 13: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 6: Converted 'talent.vicious_hunt' to 'talent.vicious_hunt.enabled' (1x).\nLine 7: Converted 'talent.vicious_hunt' to 'talent.vicious_hunt.enabled' (1x).\nLine 8: Converted 'talent.vicious_hunt' to 'talent.vicious_hunt.enabled' (1x).\nLine 9: Converted 'talent.vicious_hunt' to 'talent.vicious_hunt.enabled' (1x).\n\nThe import for 'plst' required some automated changes.\nLine 4: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\nLine 5: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\nLine 11: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 11: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 16: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - pack_coordination\n\nThe import for 'cds' required some automated changes.\nLine 2: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 2: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 2: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 3: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 3: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 3: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 4: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 4: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 4: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 5: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 5: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 5: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 6: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\nLine 6: Converted 'talent.spearhead' to 'talent.spearhead.enabled' (1x).\nLine 6: Converted 'talent.coordinated_assault' to 'talent.coordinated_assault.enabled' (1x).\n\nThe import for 'plcleave' required some automated changes.\nLine 7: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 7: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\n\nThe import for 'sentst' required some automated changes.\nLine 4: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\nLine 5: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\nLine 9: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 9: Converted 'talent.bombardier' to 'talent.bombardier.enabled' (1x).\nLine 16: Converted 'talent.contagious_reagents' to 'talent.contagious_reagents.enabled' (1x).\n\nImported 7 action lists.\n",
["spec"] = 255,
["profile"] = "actions.precombat+=/summon_pet\nactions.precombat+=/use_item,name=imperfect_ascendancy_serum\nactions.precombat+=/hunters_mark,if=(settings.mark_any||target.is_boss)&active_dot.hunters_mark=0&target.time_to_pct_80>20\nactions.precombat+=/use_item,name=algethar_puzzle_box\n\nactions+=/muzzle\nactions+=/tranquilizing_shot\nactions+=/hunters_mark,if=(settings.mark_any||target.is_boss)&active_dot.hunters_mark=0&target.time_to_pct_80>20\nactions+=/mend_pet,if=pet.health_pct<pet_healing\nactions+=/call_action_list,name=cds\nactions+=/call_action_list,name=plst,strict=1,if=active_enemies<3&talent.vicious_hunt\nactions+=/call_action_list,name=plcleave,strict=1,if=active_enemies>2&talent.vicious_hunt\nactions+=/call_action_list,name=sentst,strict=1,if=active_enemies<3&!talent.vicious_hunt\nactions+=/call_action_list,name=sentcleave,strict=1,if=active_enemies>2&!talent.vicious_hunt\n# Use Kill Command if there's nothing else to press\nactions+=/kill_command,cycle_targets=1\nactions+=/arcane_torrent\nactions+=/bag_of_tricks\nactions+=/lights_judgment\n\n# COOLDOWNS ACTIONLIST\nactions.cds+=/harpoon,if=settings.use_harpoon\nactions.cds+=/blood_fury,if=buff.coordinated_assault.up||!talent.coordinated_assault&cooldown.spearhead.remains||!talent.spearhead&!talent.coordinated_assault\n## actions.cds+=/invoke_external_buff,name=power_infusion,if=buff.coordinated_assault.up||!talent.coordinated_assault&cooldown.spearhead.remains||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/ancestral_call,if=buff.coordinated_assault.up||!talent.coordinated_assault&cooldown.spearhead.remains||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/fireblood,if=buff.coordinated_assault.up||!talent.coordinated_assault&cooldown.spearhead.remains||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/berserking,if=buff.coordinated_assault.up||!talent.coordinated_assault&cooldown.spearhead.remains||!talent.spearhead&!talent.coordinated_assault||time_to_die<13\nactions.cds+=/potion,if=boss&fight_remains<25||buff.coordinated_assault.up||!talent.coordinated_assault&cooldown.spearhead.remains||!talent.spearhead&!talent.coordinated_assault\nactions.cds+=/use_item,name=imperfect_ascendancy_serum,use_off_gcd=1,if=gcd.remains>gcd.max-0.1\nactions.cds+=/use_items,if=cooldown.coordinated_assault.remains||cooldown.spearhead.remains\nactions.cds+=/aspect_of_the_eagle,if=target.distance>=6\n\n# PL ST is currently optimised for KCspam, if the playstyle ends up fixed it is likely better to entirely redo and take the sentactionlist as a baseline. PACK LEADER SINGLE TARGET ACTIONLIST.\nactions.plst+=/raptor_bite,cycle_targets=1,if=buff.howl_of_the_pack.up&buff.pack_coordination.up&buff.howl_of_the_pack.remains<gcd\nactions.plst+=/kill_command,cycle_targets=1,if=(buff.relentless_primal_ferocity.up&buff.tip_of_the_spear.stack<1)\nactions.plst+=/spearhead,if=cooldown.coordinated_assault.remains\nactions.plst+=/raptor_bite,cycle_targets=1,if=!dot.serpent_sting.ticking&target.time_to_die>12&(!talent.contagious_reagents||active_dot.serpent_sting=0)\nactions.plst+=/raptor_bite,cycle_targets=1,if=talent.contagious_reagents&active_dot.serpent_sting<active_enemies&dot.serpent_sting.remains\nactions.plst+=/butchery\nactions.plst+=/flanking_strike,if=buff.tip_of_the_spear.stack=2||buff.tip_of_the_spear.stack=1\nactions.plst+=/kill_shot,if=buff.tip_of_the_spear.stack>0\nactions.plst+=/wildfire_bomb,if=buff.tip_of_the_spear.stack>0&cooldown.wildfire_bomb.charges_fractional>1.7||cooldown.wildfire_bomb.charges_fractional>1.9||cooldown.coordinated_assault.remains<2*gcd\nactions.plst+=/explosive_shot\nactions.plst+=/coordinated_assault,if=!talent.bombardier||talent.bombardier&cooldown.wildfire_bomb.charges_fractional<1\nactions.plst+=/fury_of_the_eagle,if=buff.tip_of_the_spear.stack>0&(!raid_event.adds.exists||raid_event.adds.exists&raid_event.adds.in>40)\nactions.plst+=/raptor_bite,if=buff.furious_assault.up\nactions.plst+=/kill_command,if=focus+cast_regen<focus.max&(!buff.relentless_primal_ferocity.up||(buff.relentless_primal_ferocity.up&buff.tip_of_
},
["Demonology"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/dragonflight/engine/class_modules/apl/warlock.cpp",
["builtIn"] = true,
["date"] = 20241109,
["spec"] = 266,
["desc"] = "2024-11-09: Tyrant logic updates\n\n2024-10-23: Move imp_despawn to spec module\n\n2024-10-21: Remove outdated entries\n\n2024-10-06: Light's Judgment\n\n2024-09-24: SimC priority update\n\n2024-08-24, 08-30: SimC priority update\n\n2024-08-02: Adjust for new CD durations\n\n2024-07-23: The War Within (sort of)",
["lists"] = {
["items"] = {
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! pet.demonic_tyrant.active & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & ( pet.demonic_tyrant.active || ! talent.summon_demonic_tyrant.enabled || variable.trinket_priority = 2 & cooldown.summon_demonic_tyrant.remains > 20 & ! pet.demonic_tyrant.active & trinket.t2.cooldown.remains < cooldown.summon_demonic_tyrant.remains + 5 ) & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 & ! variable.trinket_2_manual ) || variable.trinket_1_buff_duration >= fight_remains",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! pet.demonic_tyrant.active & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & ( pet.demonic_tyrant.active || ! talent.summon_demonic_tyrant.enabled || variable.trinket_priority = 1 & cooldown.summon_demonic_tyrant.remains > 20 & ! pet.demonic_tyrant.active & trinket.t1.cooldown.remains < cooldown.summon_demonic_tyrant.remains + 5 ) & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 & ! variable.trinket_1_manual ) || variable.trinket_2_buff_duration >= fight_remains",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains ) & ( trinket.t1.cast_time > 0 & ! pet.demonic_tyrant.active || ! trinket.t1.cast_time > 0 ) || ( time < 20 & variable.trinket_2_buffs ) || cooldown.summon_demonic_tyrant.remains_expected > 20 )",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains ) & ( trinket.t2.cast_time > 0 & ! pet.demonic_tyrant.active || ! trinket.t2.cast_time > 0 ) || ( time < 20 & variable.trinket_1_buffs ) || cooldown.summon_demonic_tyrant.remains_expected > 20 )",
},
{
["enabled"] = true,
["name"] = "spymasters_web",
["use_off_gcd"] = 1,
["action"] = "spymasters_web",
["criteria"] = "pet.demonic_tyrant.active & fight_remains <= 80 & buff.spymasters_report.stack >= 30 & ( ! variable.trinket_1_buffs & trinket.t2.is.spymasters_web || ! variable.trinket_2_buffs & trinket.t1.is.spymasters_web ) || fight_remains <= 20 & ( trinket.t1.cooldown.remains & trinket.t2.is.spymasters_web || trinket.t2.cooldown.remains & trinket.t1.is.spymasters_web || ! variable.trinket_1_buffs || ! variable.trinket_2_buffs )",
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["use_off_gcd"] = 1,
["action"] = "imperfect_ascendancy_serum",
["criteria"] = "pet.demonic_tyrant.active & gcd.remains > 0 || fight_remains <= 30",
},
{
["use_off_gcd"] = 1,
["enabled"] = true,
["action"] = "main_hand",
["slot"] = "main_hand",
},
{
["enabled"] = true,
["criteria"] = "trinket.t1.is.mirror_of_fractured_tomorrows & variable.trinket_priority = 2 || trinket.t2.is.mirror_of_fractured_tomorrows & variable.trinket_priority = 1",
["name"] = "mirror_of_fractured_tomorrows",
["action"] = "mirror_of_fractured_tomorrows",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains )",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains )",
["slot"] = "trinket2",
},
},
["fight_end"] = {
{
["enabled"] = true,
["criteria"] = "fight_remains < 20",
["action"] = "grimoire_felguard",
},
{
["action"] = "ruination",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 2 * gcd.max & ! prev_gcd.1.implosion",
["action"] = "implosion",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < gcd.max * 2 * buff.demonic_core.stack + 9 & buff.demonic_core.up & ( soul_shard < 4 || fight_remains < buff.demonic_core.stack * gcd.max )",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 20",
["action"] = "call_dreadstalkers",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 20",
["action"] = "summon_vilefiend",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 20",
["action"] = "summon_demonic_tyrant",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 10",
["action"] = "demonic_strength",
},
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.stack < 3 & fight_remains < 20",
["action"] = "power_siphon",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < gcd.max * 2 * buff.demonic_core.stack + 9 & buff.demonic_core.up & ( soul_shard < 4 || fight_remains < buff.demonic_core.stack * gcd.max )",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 2 & fight_remains < gcd.max * 2 * buff.demonic_core.stack + 9",
["action"] = "hand_of_guldan",
},
{
["action"] = "infernal_bolt",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "axe_toss",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "variables",
},
{
["enabled"] = true,
["criteria"] = "buff.tyrant.remains > 10",
["action"] = "potion",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "pet.demonic_tyrant.active || boss & fight_remains < 22",
["var_name"] = "check_racials",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["use_off_gcd"] = 1,
["criteria"] = "variable.check_racials",
["list_name"] = "racials",
},
{
["use_off_gcd"] = 1,
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 30",
["action"] = "call_action_list",
["list_name"] = "fight_end",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "time < variable.first_tyrant_time",
["list_name"] = "opener",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains < gcd.max * 14",
["action"] = "call_action_list",
["list_name"] = "tyrant",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains > 25 || variable.next_tyrant_cd > 25",
["action"] = "call_dreadstalkers",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains > 30",
["action"] = "summon_vilefiend",
},
{
["enabled"] = true,
["action"] = "demonbolt",
["criteria"] = "( ! debuff.doom.up || ! action.demonbolt.in_flight & debuff.doom.remains <= 2 ) & buff.demonic_core.up & ( ( ( ! talent.soul_strike.enabled || cooldown.soul_strike.remains > gcd.max * 2 & talent.fel_invocation.enabled ) & soul_shard < 4 ) || soul_shard < ( 4 - ( active_enemies > 2 ) ) ) & ! prev_gcd.1.demonbolt & talent.doom.enabled & cooldown.summon_demonic_tyrant.remains > 15",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.stack >= 3 & soul_shard <= 3 & ! variable.pool_cores_for_tyrant",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.stack < 3 & cooldown.summon_demonic_tyrant.remains > 25",
["action"] = "power_siphon",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "demonic_strength",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1",
["action"] = "bilescourge_bombers",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & ( cooldown.demonic_strength.remains || ! talent.demonic_strength.enabled )",
["action"] = "guillotine",
},
{
["action"] = "ruination",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.infernal_bolt.remains > cast_time & buff.infernal_bolt.remains < 2 * gcd.max || soul_shard < 3 & cooldown.summon_demonic_tyrant.remains > 20",
["action"] = "infernal_bolt",
},
{
["enabled"] = true,
["criteria"] = "two_cast_imps > 0 & variable.impl & ! prev_gcd.1.implosion & ( active_enemies > 3 || active_enemies <= 3 & last_cast_imps > 0 )",
["action"] = "implosion",
},
{
["enabled"] = true,
["criteria"] = "variable.diabolic_ritual_remains > gcd.max & variable.diabolic_ritual_remains < gcd.max + gcd.max & buff.demonic_core.up & soul_shard <= 3",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["criteria"] = "variable.diabolic_ritual_remains > gcd.max & variable.diabolic_ritual_remains < soul_shard_deficit * cast_time + gcd.max & soul_shard < 5",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "( ( soul_shard > 2 & ( cooldown.call_dreadstalkers.remains > gcd.max * 4 || buff.demonic_calling.remains - gcd.max > cooldown.call_dreadstalkers.remains ) & cooldown.summon_demonic_tyrant.remains > 17 ) || soul_shard = 5 || soul_shard = 4 & talent.fel_invocation.enabled ) & ( active_enemies = 1 )",
["action"] = "hand_of_guldan",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 2 & ! ( active_enemies = 1 )",
["action"] = "hand_of_guldan",
},
{
["enabled"] = true,
["action"] = "demonbolt",
["criteria"] = "( ( ! debuff.doom.up ) || active_enemies < 4 ) & buff.demonic_core.stack > 1 & ( ( soul_shard < 4 & ! talent.soul_strike.enabled || cooldown.soul_strike.remains > gcd.max * 2 & talent.fel_invocation.enabled ) || soul_shard < 3 ) & ! variable.pool_cores_for_tyrant",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.up & buff.tyrant.up & soul_shard < 3 - talent.quietus.enabled",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["criteria"] = "buff.demonic_core.stack > 1 & soul_shard < 4 - talent.quietus.enabled",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["action"] = "demonbolt",
["criteria"] = "( ( ! debuff.doom.up ) || active_enemies < 4 ) & talent.doom.enabled & ( debuff.doom.remains > 10 & buff.demonic_core.up & soul_shard < 4 - talent.quietus.enabled ) & ! variable.pool_cores_for_tyrant",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "fight_remains < buff.demonic_core.stack * gcd.max",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["action"] = "demonbolt",
["criteria"] = "( ( ! debuff.doom.up ) || active_enemies < 4 ) & buff.demonic_core.up & ( cooldown.power_siphon.remains < 4 ) & ( soul_shard < 4 - talent.quietus.enabled ) & ! variable.pool_cores_for_tyrant",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.demonic_core.up & cooldown.summon_demonic_tyrant.remains > 25",
["action"] = "power_siphon",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < cooldown.summon_demonic_tyrant.remains + 5",
["action"] = "summon_vilefiend",
},
{
["action"] = "infernal_bolt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! pet.tyrant.active & cooldown.tyrant_remains > 15 & active_enemies > 1",
["action"] = "lights_judgment",
},
{
["action"] = "shadow_bolt",
["enabled"] = true,
},
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive & ! buff.grimoire_of_sacrifice.up",
["action"] = "fel_domination",
},
{
["enabled"] = true,
["criteria"] = "! pet.alive & ! buff.grimoire_of_sacrifice.up",
["action"] = "summon_pet",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "12",
["description"] = "Sets the expected Tyrant Setup on pull to take a total 12 seconds long",
["var_name"] = "first_tyrant_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "first_tyrant_time",
["criteria"] = "talent.grimoire_felguard.enabled",
["description"] = "Accounts for the execution time of Grimoire Felguard in the setup of Tyrant on Pull",
["value"] = "action.grimoire_felguard.execute_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "first_tyrant_time",
["criteria"] = "talent.summon_vilefiend.enabled",
["description"] = "Accounts for the execution time of Vilefiend in the the setup of Tyrant on Pull",
["value"] = "action.summon_vilefiend.execute_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["var_name"] = "first_tyrant_time",
["criteria"] = "talent.grimoire_felguard.enabled || talent.summon_vilefiend.enabled",
["description"] = "Accounts for the execution time of both Grimoire Felguard and Vilefiend in the tyrant Setup on Pull",
["value"] = "gcd.max",
},
{
["enabled"] = true,
["op"] = "sub",
["action"] = "variable",
["value"] = "action.summon_demonic_tyrant.execute_time + action.shadow_bolt.execute_time",
["description"] = "Accounts for Tyrant own Cast Time and an additional Shadowbolt cast time",
["var_name"] = "first_tyrant_time",
},
{
["enabled"] = true,
["op"] = "min",
["action"] = "variable",
["value"] = "10",
["description"] = "Sets an absolute minimun of 10s for the First Tyrant Setup",
["var_name"] = "first_tyrant_time",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "in_opener",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff",
["description"] = "Defines if the the Trinket 1 is a buff Trinket in the trinket logic",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff",
["description"] = "Defines if the the Trinket 2 is a buff Trinket in the trinket logic",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell",
["description"] = "For On Use Trinkets on slot 1 with on use effects you dont want to use in combat",
["var_name"] = "trinket_1_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell",
["description"] = "For On Use Trinkets on slot 2 with on use effects you dont want to use in combat",
["var_name"] = "trinket_2_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.spymasters_web || trinket.t1.is.imperfect_ascendancy_serum",
["description"] = "Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic",
["var_name"] = "trinket_1_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.spymasters_web || trinket.t2.is.imperfect_ascendancy_serum",
["description"] = "Sets a specific Trinkets in Slot 2 to follow an APL line and not the automatic logic",
["var_name"] = "trinket_2_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.buff_duration + ( trinket.t1.is.mirror_of_fractured_tomorrows * 20 )",
["description"] = "Defines the Duration of the buff or an expected time for value of the trinket",
["var_name"] = "trinket_1_buff_duration",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.buff_duration + ( trinket.t2.is.mirror_of_fractured_tomorrows * 20 )",
["description"] = "Defines the Duration of the buff or an expected time for value of the trinket",
["var_name"] = "trinket_2_buff_duration",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Trinket Automatic Logic for Trinket 1",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.summon_demonic_tyrant.duration = 0 || cooldown.summon_demonic_tyrant.duration % trinket.t1.cooldown.duration = 0 )",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0.5",
["var_name"] = "trinket_1_sync",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Trinket Automatic Logic for Trinket 2",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.summon_demonic_tyrant.duration = 0 || cooldown.summon_demonic_tyrant.duration % trinket.t2.cooldown.duration = 0 )",
["value"] = "1",
["action"] = "variable",
["value_else"] = "0.5",
["var_name"] = "trinket_2_sync",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Automatic Logic in case of 2 Buff Trinkets",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_2_buffs & trinket.t2.ilvl > trinket.t1.ilvl",
["value"] = "2",
["action"] = "variable",
["value_else"] = "1",
["var_name"] = "damage_trinket_priority",
},
{
["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 / variable.trinket_2_buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( ( trinket.t1.cooldown.duration / variable.trinket_1_buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) ) * ( 1 + ( ( trinket.t1.ilvl - trinket.t2.ilvl ) / 100 ) ) )",
["value_else"] = "1",
["value"] = "2",
},
{
["action"] = "power_siphon",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.power_siphon.up || soul_shards.deficit > 1",
["action"] = "demonbolt",
},
{
["action"] = "shadow_bolt",
["enabled"] = true,
},
},
["racials"] = {
{
["use_off_gcd"] = 1,
["action"] = "berserking",
["enabled"] = true,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
},
["variables"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.summon_demonic_tyrant.remains_expected",
["var_name"] = "next_tyrant_cd",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["criteria"] = "pet.demonic_tyrant.active",
["var_name"] = "in_opener",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "impl",
["criteria"] = "active_enemies > 1 + ( talent.sacrificed_souls.enabled )",
["description"] = "Defines the viability of Implosion when Tyrant is down",
["value"] = "buff.tyrant.down",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "impl",
["criteria"] = "active_enemies > 2 + ( talent.sacrificed_souls.enabled ) & active_enemies < 5 + ( talent.sacrificed_souls.enabled )",
["description"] = "Defines the Viability of Implosion while Tyrant is Up",
["value"] = "buff.tyrant.remains < 6",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "impl",
["criteria"] = "active_enemies > 4 + ( talent.sacrificed_souls.enabled )",
["description"] = "Defines the Viability of Implosion while Tyrant is Up",
["value"] = "buff.tyrant.remains < 8",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.summon_demonic_tyrant.remains < 20 & variable.next_tyrant_cd < 20 & ( buff.demonic_core.stack <= 2 || ! buff.demonic_core.up ) & cooldown.summon_vilefiend.remains < gcd.max * 8 & cooldown.call_dreadstalkers.remains < gcd.max * 8",
["description"] = "Restricts Demonic Core usage for the sake of having 2 or more Demonic Cores on Tyrant Setup",
["var_name"] = "pool_cores_for_tyrant",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.diabolic_ritual_mother_of_chaos.remains",
["criteria"] = "buff.diabolic_ritual_mother_of_chaos.up",
["var_name"] = "diabolic_ritual_remains",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.diabolic_ritual_overlord.remains",
["criteria"] = "buff.diabolic_ritual_overlord.up",
["var_name"] = "diabolic_ritual_remains",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.diabolic_ritual_pit_lord.remains",
["criteria"] = "buff.diabolic_ritual_pit_lord.up",
["var_name"] = "diabolic_ritual_remains",
},
},
["tyrant"] = {
{
["enabled"] = true,
["criteria"] = "! variable.check_racials & ( variable.imp_despawn & variable.imp_despawn < time + gcd.max * 2 + action.summon_demonic_tyrant.cast_time & ( prev_gcd.1.hand_of_guldan || prev_gcd.1.ruination ) & ( variable.imp_despawn & variable.imp_despawn < time + gcd.max + action.summon_demonic_tyrant.cast_time || soul_shard < 2 ) )",
["action"] = "call_action_list",
["list_name"] = "racials",
},
{
["enabled"] = true,
["criteria"] = "variable.imp_despawn & variable.imp_despawn < time + gcd.max * 2 + action.summon_demonic_tyrant.cast_time & ( prev_gcd.1.hand_of_guldan || prev_gcd.1.ruination ) & ( variable.imp_despawn & variable.imp_despawn < time + gcd.max + action.summon_demonic_tyrant.cast_time || soul_shard < 2 )",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains < 15 & ( time < variable.first_tyrant_time || cooldown.summon_demonic_tyrant.remains > ( action.summon_demonic_tyrant.cast_time + 2 * gcd.max ) )",
["action"] = "power_siphon",
},
{
["enabled"] = true,
["criteria"] = "buff.dreadstalkers.remains > gcd.max + action.summon_demonic_tyrant.cast_time & ( soul_shard = 5 || variable.imp_despawn )",
["action"] = "ruination",
},
{
["enabled"] = true,
["criteria"] = "( buff.infernal_bolt.remains > cast_time & buff.infernal_bolt.remains < 2 * gcd.max || ! buff.demonic_core.up ) & variable.imp_despawn > time + gcd.max * 2 + action.summon_demonic_tyrant.cast_time & soul_shard < 3",
["action"] = "infernal_bolt",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.call_dreadstalkers & soul_shard < 4 & buff.demonic_core.stack < 4",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.2.call_dreadstalkers & prev_gcd.1.shadow_bolt & buff.bloodlust.up & soul_shard < 5",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.summon_vilefiend & ( buff.demonic_calling.down || prev_gcd.2.grimoire_felguard )",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.grimoire_felguard & buff.demonic_core.stack < 3 & buff.demonic_calling.remains > gcd.max * 3",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "variable.imp_despawn > time + gcd.max * 2 + action.summon_demonic_tyrant.cast_time & ! buff.demonic_core.up & buff.demonic_art_pit_lord.up & variable.imp_despawn < time + gcd.max * 5 + action.summon_demonic_tyrant.cast_time",
["action"] = "hand_of_guldan",
},
{
["enabled"] = true,
["criteria"] = "variable.imp_despawn > time + gcd.max + action.summon_demonic_tyrant.cast_time & variable.imp_despawn < time + gcd.max * 2 + action.summon_demonic_tyrant.cast_time & buff.dreadstalkers.remains > gcd.max + action.summon_demonic_tyrant.cast_time & soul_shard > 1",
["action"] = "hand_of_guldan",
},
{
["enabled"] = true,
["criteria"] = "! buff.demonic_core.up & variable.imp_despawn > time + gcd.max * 2 + action.summon_demonic_tyrant.cast_time & variable.imp_despawn < time + gcd.max * 4 + action.summon_demonic_tyrant.cast_time & soul_shard < 3 & buff.dreadstalkers.remains > gcd.max * 2 + action.summon_demonic_tyrant.cast_time",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains < 17 - 2 * gcd.max & cooldown.summon_vilefiend.remains < 15 - 2 * gcd.max & cooldown.call_dreadstalkers.remains < 12 - 2 * gcd.max",
["action"] = "grimoire_felguard",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains < 15 - 2 * gcd.max & ( buff.grimoire_felguard.up || cooldown.grimoire_felguard.remains > 15 || ! talent.grimoire_felguard.enabled ) & ( buff.dreadstalkers.up || cooldown.call_dreadstalkers.remains < 15 - 2 * gcd.max || ! talent.call_dreadstalkers.enabled )",
["action"] = "summon_vilefiend",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_demonic_tyrant.remains < 12 - 2 * gcd.max & ( buff.vilefiend.up || cooldown.summon_vilefiend.remains < 12 - 2 * gcd.max || ! talent.summon_vilefiend.enabled )",
["action"] = "call_dreadstalkers",
},
{
["enabled"] = true,
["criteria"] = "( ( ( variable.imp_despawn & variable.imp_despawn < time + gcd.max * 2 + cast_time ) || ( buff.wild_imps.stack > 9 & soul_shards < 2 ) ) & buff.dreadstalkers.up & ( buff.vilefiend.up || ! talent.summon_vilefiend.enabled ) ) || ( buff.dreadstalkers.up & buff.dreadstalkers.remains < gcd.max * 2 + cast_time & ( ( buff.vilefiend.up & buff.vilefiend.remains > 2 * gcd.max ) || ! talent.summon_vilefiend.enabled ) & ( ( buff.grimoire_felguard.up & buff.grimoire_felguard.remains > 2 * gcd.max ) || ! talent.grimoire_felguard.enabled || cooldown.grimoire_felguard.remains > 20 ) )",
["action"] = "summon_demonic_tyrant",
},
{
["enabled"] = true,
["criteria"] = "( variable.imp_despawn || buff.dreadstalkers.remains ) & soul_shard >= 3 || soul_shard = 5",
["action"] = "hand_of_guldan",
},
{
["enabled"] = true,
["criteria"] = "variable.imp_despawn & soul_shard < 3",
["action"] = "infernal_bolt",
},
{
["enabled"] = true,
["criteria"] = "variable.imp_despawn & buff.demonic_core.up & soul_shard < 4 || prev_gcd.1.call_dreadstalkers & soul_shard < 4 & buff.demonic_core.stack = 4 || buff.demonic_core.stack = 4 & soul_shard < 4 || buff.demonic_core.stack >= 2 & cooldown.power_siphon.remains < 5",
["action"] = "demonbolt",
},
{
["enabled"] = true,
["criteria"] = "variable.imp_despawn || soul_shard = 5 & cooldown.summon_vilefiend.remains > gcd.max * 3",
["action"] = "ruination",
},
{
["action"] = "shadow_bolt",
["enabled"] = true,
},
{
["action"] = "infernal_bolt",
["enabled"] = true,
},
},
["opener"] = {
{
["enabled"] = true,
["criteria"] = "soul_shard >= 5 - talent.fel_invocation.enabled",
["action"] = "grimoire_felguard",
},
{
["enabled"] = true,
["criteria"] = "soul_shard = 5",
["action"] = "summon_vilefiend",
},
{
["enabled"] = true,
["criteria"] = "soul_shard < 5 & cooldown.call_dreadstalkers.up",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "soul_shard = 5",
["action"] = "call_dreadstalkers",
},
{
["action"] = "ruination",
["enabled"] = true,
},
},
},
["version"] = 20241109,
["warnings"] = "The import for 'items' required some automated changes.\nLine 1: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 1: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 1: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 1: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 1: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 1: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 1: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 1: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 2: Converted 'talent.summon_demonic_tyrant' to 'talent.summon_demonic_tyrant.enabled' (1x).\nLine 2: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 2: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 2: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 2: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 2: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 3: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 4: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.2.is.spymasters_web' to 'trinket.t2.is.spymasters_web' (1x).\nLine 5: Converted 'trinket.1.is.spymasters_web' to 'trinket.t1.is.spymasters_web' (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.is.spymasters_web' to 'trinket.t2.is.spymasters_web' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 5: Converted 'trinket.1.is.spymasters_web' to 'trinket.t1.is.spymasters_web' (1x).\nLine 8: Converted 'trinket.1.is.mirror_of_fractured_tomorrows' to 'trinket.t1.is.mirror_of_fractured_tomorrows' (1x).\nLine 8: Converted 'trinket.2.is.mirror_of_fractured_tomorrows' to 'trinket.t2.is.mirror_of_fractured_tomorrows' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 10: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 10: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\n\nThe import for 'default' required some automated changes.\nLine 12: Converted 'talent.soul_strike' to 'talent.soul_strike.enabled' (1x).\nLine 12: Converted 'talent.fel_invocation' to 'talent.fel_invocation.enabled' (1x).\nLine 12: Converted 'talent.doom' to 'talent.doom.enabled' (1x).\nLine 17: Converted 'talent.demonic_strength' to 'talent.demonic_strength.enabled' (1x).\nLine 23: Converted 'talent.fel_invocation' to 'talent.fel_invocation.enabled' (1x).\nLine 25: Converted 'talent.soul_strike' to 'talent.soul_strike.enabled' (1x).\nLine 25: Converted 'talent.fel_invocation' to 'talent.fel_invocation.enabled' (1x).\nLine 26: Converted 'talent.quietus' to 'talent.quietus.enabled' (1x).\nLine 27: Converted 'talent.quietus' to 'talent.quietus.enabled' (1x).\nLine 28: Converted 'talent.d
["profile"] = "actions.precombat+=/fel_domination,if=time>0&!pet.alive&!buff.grimoire_of_sacrifice.up\nactions.precombat+=/summon_pet,if=!pet.alive&!buff.grimoire_of_sacrifice.up\n# Sets the expected Tyrant Setup on pull to take a total 12 seconds long\nactions.precombat+=/variable,name=first_tyrant_time,op=set,value=12\n# Accounts for the execution time of Grimoire Felguard in the setup of Tyrant on Pull\nactions.precombat+=/variable,name=first_tyrant_time,op=add,value=action.grimoire_felguard.execute_time,if=talent.grimoire_felguard.enabled\n# Accounts for the execution time of Vilefiend in the the setup of Tyrant on Pull\nactions.precombat+=/variable,name=first_tyrant_time,op=add,value=action.summon_vilefiend.execute_time,if=talent.summon_vilefiend.enabled\n# Accounts for the execution time of both Grimoire Felguard and Vilefiend in the tyrant Setup on Pull\nactions.precombat+=/variable,name=first_tyrant_time,op=add,value=gcd.max,if=talent.grimoire_felguard.enabled||talent.summon_vilefiend.enabled\n# Accounts for Tyrant own Cast Time and an additional Shadowbolt cast time\nactions.precombat+=/variable,name=first_tyrant_time,op=sub,value=action.summon_demonic_tyrant.execute_time+action.shadow_bolt.execute_time\n# Sets an absolute minimun of 10s for the First Tyrant Setup\nactions.precombat+=/variable,name=first_tyrant_time,op=min,value=10\nactions.precombat+=/variable,name=in_opener,op=set,value=1\n# Defines if the the Trinket 1 is a buff Trinket in the trinket logic\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff\n# Defines if the the Trinket 2 is a buff Trinket in the trinket logic\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff\n# For On Use Trinkets on slot 1 with on use effects you dont want to use in combat\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell\n# For On Use Trinkets on slot 2 with on use effects you dont want to use in combat\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell\n# Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.spymasters_web||trinket.1.is.imperfect_ascendancy_serum\n# Sets a specific Trinkets in Slot 2 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.spymasters_web||trinket.2.is.imperfect_ascendancy_serum\n# Defines the Duration of the buff or an expected time for value of the trinket\nactions.precombat+=/variable,name=trinket_1_buff_duration,value=trinket.1.proc.any_dps.duration+(trinket.1.is.mirror_of_fractured_tomorrows*20)\n# Defines the Duration of the buff or an expected time for value of the trinket\nactions.precombat+=/variable,name=trinket_2_buff_duration,value=trinket.2.proc.any_dps.duration+(trinket.2.is.mirror_of_fractured_tomorrows*20)\n# Trinket Automatic Logic for Trinket 1\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.summon_demonic_tyrant.duration=0||cooldown.summon_demonic_tyrant.duration%%trinket.1.cooldown.duration=0)\n# Trinket Automatic Logic for Trinket 2\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.summon_demonic_tyrant.duration=0||cooldown.summon_demonic_tyrant.duration%%trinket.2.cooldown.duration=0)\n# Automatic Logic in case of 2 Buff Trinkets\nactions.precombat+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>trinket.1.ilvl\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%variable.trinket_2_buff_duration)*(1.5+trinket.2.has_buff.intellect)*(variable.trinket_2_sync))>(((trinket.1.c
["author"] = "SimC",
},
["Vengeance"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241029,
["spec"] = 581,
["desc"] = "2024-10-29: 11.0.5\n\n2024-10-21: SimC update, increase defensiveness a bit\n\n2024-09-22: SimC update\n\n2024-09-12: Reimplement Demonsurge\n\n2024-09-10: SimC update\n\n2024-09-09: Tweak variable names to be consistent for FS vs. AR; fix wait loop\n\n2024-09-01, 09-08: SimC update\n\n2024-07-23: The War Within",
["profile"] = "actions.precombat+=/variable,name=single_target,value=spell_targets.spirit_bomb=1\nactions.precombat+=/variable,name=small_aoe,value=spell_targets.spirit_bomb>=2&spell_targets.spirit_bomb<=5\nactions.precombat+=/variable,name=big_aoe,value=spell_targets.spirit_bomb>=6\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_buff.agility||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit)\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_buff.agility||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit)\nactions.precombat+=/arcane_torrent\nactions.precombat+=/sigil_of_flame,if=hero_tree.aldrachi_reaver||(hero_tree.felscarred&talent.student_of_suffering)\nactions.precombat+=/immolation_aura\n\nactions+=/disrupt\nactions+=/demon_spikes,use_off_gcd=1,if=!buff.demon_spikes.up&(tanking||time<5)\nactions+=/variable,name=num_spawnable_souls,op=reset,default=0\nactions+=/variable,name=num_spawnable_souls,op=max,value=1,if=talent.soul_sigils&cooldown.sigil_of_flame.up\nactions+=/variable,name=num_spawnable_souls,op=max,value=2,if=talent.fracture&cooldown.fracture.charges_fractional>=1&!buff.metamorphosis.up\nactions+=/variable,name=num_spawnable_souls,op=max,value=3,if=talent.fracture&cooldown.fracture.charges_fractional>=1&buff.metamorphosis.up\nactions+=/variable,name=num_spawnable_souls,op=add,value=1,if=talent.soul_carver&(cooldown.soul_carver.remains>(cooldown.soul_carver.duration-3))\nactions+=/infernal_strike,use_off_gcd=1\nactions+=/run_action_list,name=ar,strict=1,if=!hero_tree.felscarred\nactions+=/run_action_list,name=fs,strict=1,if=hero_tree.felscarred\n\nactions.ar+=/variable,name=spb_threshold,op=setif,condition=talent.fiery_demise&dot.fiery_brand.ticking,value=(variable.single_target*5)+(variable.small_aoe*5)+(variable.big_aoe*4),value_else=(variable.single_target*5)+(variable.small_aoe*5)+(variable.big_aoe*4)\nactions.ar+=/variable,name=can_spb,op=setif,condition=talent.spirit_bomb,value=soul_fragments>=variable.spb_threshold,value_else=0\nactions.ar+=/variable,name=can_spb_soon,op=setif,condition=talent.spirit_bomb,value=soul_fragments>=variable.spb_threshold,value_else=0\nactions.ar+=/variable,name=can_spb_one_gcd,op=setif,condition=talent.spirit_bomb,value=(soul_fragments+variable.num_spawnable_souls)>=variable.spb_threshold,value_else=0\nactions.ar+=/variable,name=double_rm_remains,op=setif,condition=(variable.double_rm_expires-time)>0,value=variable.double_rm_expires-time,value_else=0\nactions.ar+=/variable,name=trigger_overflow,op=set,value=0,if=!buff.glaive_flurry.up&!buff.rending_strike.up&!prev_gcd.1.reavers_glaive\nactions.ar+=/variable,name=rg_enhance_cleave,op=setif,condition=variable.trigger_overflow||(spell_targets.spirit_bomb>=4)||(fight_remains<10||target.time_to_die<10),value=1,value_else=0\nactions.ar+=/variable,name=souls_before_next_rg_sequence,value=soul_fragments+buff.art_of_the_glaive.stack\nactions.ar+=/variable,name=souls_before_next_rg_sequence,op=add,value=(1.1*(1+stat.haste))*(variable.double_rm_remains-(action.reavers_glaive.execute_time+action.fracture.execute_time+action.soul_cleave.execute_time+gcd.remains+(0.5*gcd.max)))\nactions.ar+=/variable,name=souls_before_next_rg_sequence,op=add,value=3+talent.soul_sigils,if=cooldown.sigil_of_spite.remains<(variable.double_rm_remains-gcd.max-(2-talent.soul_sigils))\nactions.ar+=/variable,name=souls_before_next_rg_sequence,op=add,value=3,if=cooldown.soul_carver.remains<(variable.double_rm_remains-gcd.max)\nactions.ar+=/variable,name=souls_before_next_rg_sequence,op=add,value=3,if=cooldown.soul_carver.remains<(variable.double_rm_remains-gcd.max-3)\nactions.ar+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs||(variable.trinket_1_buffs&((buff.rending_strike.up&buff.glaive_flurry.up)||(prev_gcd.1.reavers_glaive)||(buff.thrill_of_the_fight_damage.remains>8)||(buff.reavers_glaive.up&cooldown.the_hunt.remains<5)))\nactions.ar+=/use
["version"] = 20241029,
["warnings"] = "The import for 'rg_prep' required some automated changes.\nLine 2: Converted 'talent.unhindered_assault' to 'talent.unhindered_assault.enabled' (1x).\n\nThe import for 'fs' required some automated changes.\nLine 1: Converted 'talent.aura_of_pain' to 'talent.aura_of_pain.enabled' (1x).\nLine 1: Converted operations in '(action.sigil_of_flame.crit_pct+(talent.aura_of_pain.enabled*6))%100' to '(action.sigil_of_flame.crit_pct+(talent.aura_of_pain.enabled*6))/100'.\nLine 1: Converted 'talent.volatile_flameblood' to 'talent.volatile_flameblood.enabled' (1x).\nLine 3: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 8: Converted 'talent.flames_of_fury' to 'talent.flames_of_fury.enabled' (1x).\nLine 11: Converted 'talent.volatile_flameblood' to 'talent.volatile_flameblood.enabled' (1x).\nLine 13: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 14: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 15: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 16: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 17: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 18: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 19: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 20: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 22: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 25: Converted 'talent.down_in_flames' to 'talent.down_in_flames.enabled' (1x).\nLine 26: Converted 'talent.illuminated_sigils' to 'talent.illuminated_sigils.enabled' (1x).\nLine 27: Converted 'talent.illuminated_sigils' to 'talent.illuminated_sigils.enabled' (1x).\nLine 28: Converted 'talent.student_of_suffering' to 'talent.student_of_suffering.enabled' (1x).\nLine 28: Converted 'talent.quickened_sigils' to 'talent.quickened_sigils.enabled' (1x).\nLine 29: Converted 'talent.ascending_flame' to 'talent.ascending_flame.enabled' (1x).\nLine 29: Converted 'talent.quickened_sigils' to 'talent.quickened_sigils.enabled' (1x).\nLine 30: Converted 'talent.illuminated_sigils' to 'talent.illuminated_sigils.enabled' (1x).\nLine 30: Converted 'talent.quickened_sigils' to 'talent.quickened_sigils.enabled' (1x).\nLine 31: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 31: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 31: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 31: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 32: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 32: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 32: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 32: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 34: Converted 'talent.fallout' to 'talent.fallout.enabled' (1x).\nLine 34: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 35: Converted 'talent.student_of_suffering' to 'talent.student_of_suffering.enabled' (1x).\nLine 37: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 37: Converted 'talent.down_in_flames' to 'talent.down_in_flames.enabled' (1x).\nLine 45: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 45: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 45: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 45: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 46: Converted 'talent.cycle_of_binding' to 'talent.cycle_of_binding.enabled' (1x).\nLine 46: Converted 'talent.spirit_bomb' to 'talent.spirit_bomb.enabled' (1x).\nLine 47: Converted 'talent.fiery_demise' to 'talent.fiery_demise.enabled' (1x).\nLine 48: Converted 'talent.fiery_demise' to 'talent.fi
["author"] = "SimC",
["lists"] = {
["rg_prep"] = {
{
["action"] = "felblade",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! cooldown.felblade.up & talent.unhindered_assault.enabled",
["action"] = "vengeful_retreat",
["use_off_gcd"] = 1,
},
{
["action"] = "sigil_of_flame",
["enabled"] = true,
},
{
["action"] = "immolation_aura",
["enabled"] = true,
},
{
["action"] = "fracture",
["enabled"] = true,
},
},
["fs"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( action.sigil_of_flame.crit_pct + ( talent.aura_of_pain.enabled * 6 ) ) / 100",
["criteria"] = "active_dot.sigil_of_flame > 0 & talent.volatile_flameblood.enabled",
["var_name"] = "crit_pct",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2 + ( 2 * gcd.max )",
["var_name"] = "fel_dev_sequence_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "gcd.max",
["criteria"] = "talent.fiery_demise.enabled & cooldown.fiery_brand.up",
["var_name"] = "fel_dev_sequence_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "gcd.max",
["criteria"] = "cooldown.sigil_of_flame.up || cooldown.sigil_of_flame.remains < variable.fel_dev_sequence_time",
["var_name"] = "fel_dev_sequence_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "gcd.max",
["criteria"] = "cooldown.immolation_aura.up || cooldown.immolation_aura.remains < variable.fel_dev_sequence_time",
["var_name"] = "fel_dev_sequence_time",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "2.5 * floor ( ( buff.student_of_suffering.remains >? variable.fel_dev_sequence_time ) )",
["criteria"] = "talent.student_of_suffering.enabled & ( buff.student_of_suffering.remains > 1 || prev_gcd.1.sigil_of_flame )",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "30 + ( 2 * talent.flames_of_fury.enabled * spell_targets.sigil_of_flame )",
["criteria"] = "( cooldown.sigil_of_flame.remains < variable.fel_dev_sequence_time )",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "8",
["criteria"] = "cooldown.immolation_aura.remains < variable.fel_dev_sequence_time",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "2 * floor ( ( buff.immolation_aura.remains >? variable.fel_dev_sequence_time ) )",
["criteria"] = "buff.immolation_aura.remains > 1",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "7.5 * variable.crit_pct * floor ( ( buff.immolation_aura.remains >? variable.fel_dev_sequence_time ) )",
["criteria"] = "talent.volatile_flameblood.enabled & buff.immolation_aura.remains > 1",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "22",
["criteria"] = "talent.darkglare_boon.enabled",
["var_name"] = "fel_dev_passive_fury_gen",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "spbomb_threshold",
["criteria"] = "talent.fiery_demise.enabled & dot.fiery_brand.ticking",
["value_else"] = "( variable.single_target * 5 ) + ( variable.small_aoe * 5 ) + ( variable.big_aoe * 4 )",
["value"] = "( variable.single_target * 5 ) + ( variable.small_aoe * 5 ) + ( variable.big_aoe * 4 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spbomb",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "soul_fragments >= variable.spbomb_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spbomb_soon",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "soul_fragments >= variable.spbomb_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spbomb_one_gcd",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "( soul_fragments + variable.num_spawnable_souls ) >= variable.spbomb_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "spburst_threshold",
["criteria"] = "talent.fiery_demise.enabled & dot.fiery_brand.ticking",
["value_else"] = "( variable.single_target * 5 ) + ( variable.small_aoe * 5 ) + ( variable.big_aoe * 4 )",
["value"] = "( variable.single_target * 5 ) + ( variable.small_aoe * 5 ) + ( variable.big_aoe * 4 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spburst",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "soul_fragments >= variable.spburst_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spburst_soon",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "soul_fragments >= variable.spburst_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spburst_one_gcd",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "( soul_fragments + variable.num_spawnable_souls ) >= variable.spburst_threshold",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "meta_prep_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.fiery_brand.execute_time",
["criteria"] = "talent.fiery_demise.enabled & cooldown.fiery_brand.up",
["var_name"] = "meta_prep_time",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "action.sigil_of_flame.execute_time * action.sigil_of_flame.charges",
["var_name"] = "meta_prep_time",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "dont_soul_cleave",
["criteria"] = "buff.metamorphosis.up & buff.demonsurge_hardcast.up",
["value_else"] = "( cooldown.fel_devastation.remains < ( gcd.max * 3 ) & ( ( fury + variable.fel_dev_passive_fury_gen ) < 120 ) ! ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 ) ) )",
["value"] = "buff.demonsurge_spirit_burst.up || ( buff.metamorphosis.remains < ( gcd.max * 2 ) & ( ( fury + variable.fel_dev_passive_fury_gen ) < 120 || ! ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 ) ) )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "fiery_brand_back_before_meta",
["criteria"] = "talent.down_in_flames.enabled",
["value_else"] = "( cooldown.fiery_brand.duration <= cooldown.metamorphosis.remains )",
["value"] = "charges >= max_charges || ( charges_fractional >= 1 & cooldown.fiery_brand.full_recharge_time <= gcd.remains + execute_time ) || ( charges_fractional >= 1 & ( ( 1 - ( charges_fractional - 1 ) ) * cooldown.fiery_brand.duration ) <= cooldown.metamorphosis.remains )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "hold_sof_for_meta",
["criteria"] = "talent.illuminated_sigils.enabled",
["value_else"] = "cooldown.sigil_of_flame.duration > cooldown.metamorphosis.remains",
["value"] = "( charges_fractional >= 1 & ( ( 1 - ( charges_fractional - 1 ) ) * cooldown.sigil_of_flame.duration ) > cooldown.metamorphosis.remains )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "hold_sof_for_fel_dev",
["criteria"] = "talent.illuminated_sigils.enabled",
["value_else"] = "cooldown.sigil_of_flame.duration > cooldown.fel_devastation.remains",
["value"] = "( charges_fractional >= 1 & ( ( 1 - ( charges_fractional - 1 ) ) * cooldown.sigil_of_flame.duration ) > cooldown.fel_devastation.remains )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "hold_sof_for_student",
["criteria"] = "talent.student_of_suffering.enabled",
["value_else"] = "0",
["value"] = "prev_gcd.1.sigil_of_flame || ( buff.student_of_suffering.remains > ( 4 - talent.quickened_sigils.enabled ) )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "hold_sof_for_dot",
["criteria"] = "talent.ascending_flame.enabled",
["value_else"] = "prev_gcd.1.sigil_of_flame || ( dot.sigil_of_flame.remains > ( 4 - talent.quickened_sigils.enabled ) )",
["value"] = "0",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.illuminated_sigils.enabled & time < ( 2 - talent.quickened_sigils.enabled ) )",
["var_name"] = "hold_sof_for_precombat",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs || ( variable.trinket_1_buffs & ( ( buff.metamorphosis.up & buff.demonsurge_hardcast.up ) || ( buff.metamorphosis.up & ! buff.demonsurge_hardcast.up & cooldown.metamorphosis.remains < 10 ) || ( cooldown.metamorphosis.remains > trinket.t1.cooldown.duration ) || ( variable.trinket_2_buffs & trinket.t2.cooldown.remains < cooldown.metamorphosis.remains ) ) )",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs || ( variable.trinket_2_buffs & ( ( buff.metamorphosis.up & buff.demonsurge_hardcast.up ) || ( buff.metamorphosis.up & ! buff.demonsurge_hardcast.up & cooldown.metamorphosis.remains < 10 ) || ( cooldown.metamorphosis.remains > trinket.t2.cooldown.duration ) || ( variable.trinket_1_buffs & trinket.t1.cooldown.remains < cooldown.metamorphosis.remains ) ) )",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "time < 4",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "! ( cooldown.metamorphosis.up & prev_gcd.1.sigil_of_flame ) & ! ( talent.fallout.enabled & talent.spirit_bomb.enabled & spell_targets.spirit_bomb >= 3 & ( ( buff.metamorphosis.up & ( variable.can_spburst || variable.can_spburst_soon ) ) || ( ! buff.metamorphosis.up & ( variable.can_spbomb || variable.can_spbomb_soon ) ) ) ) & ! ( buff.metamorphosis.up & buff.demonsurge_hardcast.up )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "! talent.student_of_suffering.enabled & ! variable.hold_sof_for_dot & ! variable.hold_sof_for_precombat",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "! variable.hold_sof_for_precombat & ( charges = max_charges || ( ! variable.hold_sof_for_student & ! variable.hold_sof_for_dot & ! variable.hold_sof_for_meta & ! variable.hold_sof_for_fel_dev ) )",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "active_dot.fiery_brand = 0 & ( ! talent.fiery_demise.enabled || ( ( talent.down_in_flames.enabled & charges >= max_charges ) || variable.fiery_brand_back_before_meta ) )",
["action"] = "fiery_brand",
},
{
["enabled"] = true,
["criteria"] = "fight_remains < 20",
["action"] = "call_action_list",
["list_name"] = "fs_execute",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.up & ! buff.demonsurge_hardcast.up & ( buff.demonsurge_soul_sunder.up || buff.demonsurge_spirit_burst.up )",
["action"] = "run_action_list",
["list_name"] = "fel_dev",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "buff.metamorphosis.up & buff.demonsurge_hardcast.up",
["list_name"] = "metamorphosis",
},
{
["enabled"] = true,
["criteria"] = "! buff.demonsurge_hardcast.up & ( cooldown.fel_devastation.up || ( cooldown.fel_devastation.remains <= ( gcd.max * 3 ) ) )",
["action"] = "run_action_list",
["list_name"] = "fel_dev_prep",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.metamorphosis.remains <= variable.meta_prep_time ) & ! cooldown.fel_devastation.up & ! cooldown.fel_devastation.remains < 10 & ! buff.demonsurge_soul_sunder.up & ! buff.demonsurge_spirit_burst.up",
["action"] = "run_action_list",
["list_name"] = "meta_prep",
},
{
["action"] = "the_hunt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.sigil_of_spite.remains < execute_time || cooldown.soul_carver.remains < execute_time ) & cooldown.fel_devastation.remains < ( execute_time + gcd.max ) & fury < 50 )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.fiery_demise.enabled || talent.fiery_demise.enabled & dot.fiery_brand.ticking ) & ( ( ! talent.spirit_bomb.enabled || variable.single_target ) || ( talent.spirit_bomb.enabled & ! prev_gcd.1.sigil_of_spite & ( ( soul_fragments + 3 <= 5 & fury >= 40 ) || ( soul_fragments = 0 & fury >= 15 ) ) ) )",
["action"] = "soul_carver",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.cycle_of_binding.enabled || ( cooldown.sigil_of_spite.duration < ( cooldown.metamorphosis.remains + 18 ) ) ) & ( ! talent.spirit_bomb.enabled || ( fury >= 80 & ( variable.can_spbomb || variable.can_spbomb_soon ) ) || ( soul_fragments <= ( 2 - talent.soul_sigils.rank ) ) )",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spburst & talent.fiery_demise.enabled & dot.fiery_brand.ticking & cooldown.fel_devastation.remains >= ( gcd.max * 3 )",
["action"] = "spirit_burst",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spbomb & talent.fiery_demise.enabled & dot.fiery_brand.ticking & cooldown.fel_devastation.remains >= ( gcd.max * 3 )",
["action"] = "spirit_bomb",
},
{
["enabled"] = true,
["criteria"] = "variable.single_target & ! variable.dont_soul_cleave",
["action"] = "soul_sunder",
},
{
["enabled"] = true,
["criteria"] = "variable.single_target & ! variable.dont_soul_cleave",
["action"] = "soul_cleave",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spburst & cooldown.fel_devastation.remains >= ( gcd.max * 3 )",
["action"] = "spirit_burst",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spbomb & cooldown.fel_devastation.remains >= ( gcd.max * 3 )",
["action"] = "spirit_bomb",
},
{
["enabled"] = true,
["criteria"] = "( ( fury < 40 & ( ( buff.metamorphosis.up & ( variable.can_spburst || variable.can_spburst_soon ) ) || ( ! buff.metamorphosis.up & ( variable.can_spbomb || variable.can_spbomb_soon ) ) ) ) )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "( ( fury < 40 & ( ( buff.metamorphosis.up & ( variable.can_spburst || variable.can_spburst_soon ) ) || ( ! buff.metamorphosis.up & ( variable.can_spbomb || variable.can_spbomb_soon ) ) ) ) || ( buff.metamorphosis.up & variable.can_spburst_one_gcd ) || ( ! buff.metamorphosis.up & variable.can_spbomb_one_gcd ) )",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "fury.deficit >= 40",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "! variable.dont_soul_cleave",
["action"] = "soul_sunder",
},
{
["enabled"] = true,
["criteria"] = "! variable.dont_soul_cleave",
["action"] = "soul_cleave",
},
{
["action"] = "fracture",
["enabled"] = true,
},
{
["action"] = "throw_glaive",
["enabled"] = true,
},
},
["rg_overflow"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "trigger_overflow",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "rg_enhance_cleave",
},
{
["enabled"] = true,
["criteria"] = "( fury + ( variable.rg_enhance_cleave * 25 ) + ( talent.keen_engagement.enabled * 20 ) ) >= 30 & ! buff.rending_strike.up & ! buff.glaive_flurry.up",
["action"] = "reavers_glaive",
},
{
["enabled"] = true,
["criteria"] = "( fury + ( variable.rg_enhance_cleave * 25 ) + ( talent.keen_engagement.enabled * 20 ) ) < 30",
["action"] = "call_action_list",
["list_name"] = "rg_prep",
},
},
["fel_dev"] = {
{
["enabled"] = true,
["criteria"] = "buff.demonsurge_spirit_burst.up & ( variable.can_spburst || soul_fragments >= 4 || ( buff.metamorphosis.remains < ( gcd.max * 2 ) ) )",
["action"] = "spirit_burst",
},
{
["enabled"] = true,
["criteria"] = "buff.demonsurge_soul_sunder.up & ( ! buff.demonsurge_spirit_burst.up || ( buff.metamorphosis.remains < ( gcd.max * 2 ) ) )",
["action"] = "soul_sunder",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.cycle_of_binding.enabled || ( cooldown.sigil_of_spite.duration < ( cooldown.metamorphosis.remains + 18 ) ) ) & ( soul_fragments <= 2 & buff.demonsurge_spirit_burst.up )",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["criteria"] = "soul_fragments <= 2 & ! prev_gcd.1.sigil_of_spite & buff.demonsurge_spirit_burst.up",
["action"] = "soul_carver",
},
{
["enabled"] = true,
["criteria"] = "soul_fragments <= 2 & buff.demonsurge_spirit_burst.up",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "buff.demonsurge_spirit_burst.up || buff.demonsurge_soul_sunder.up",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "buff.demonsurge_spirit_burst.up || buff.demonsurge_soul_sunder.up",
["action"] = "fracture",
},
},
["fs_execute"] = {
{
["use_off_gcd"] = 1,
["action"] = "metamorphosis",
["enabled"] = true,
},
{
["action"] = "the_hunt",
["enabled"] = true,
},
{
["action"] = "sigil_of_flame",
["enabled"] = true,
},
{
["action"] = "fiery_brand",
["enabled"] = true,
},
{
["action"] = "sigil_of_spite",
["enabled"] = true,
},
{
["action"] = "soul_carver",
["enabled"] = true,
},
{
["action"] = "fel_devastation",
["enabled"] = true,
},
},
["meta_prep"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.sigil_of_flame.charges < 1",
["action"] = "metamorphosis",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.fiery_demise.enabled & ( ( talent.down_in_flames.enabled & charges >= max_charges ) || active_dot.fiery_brand = 0 )",
["action"] = "fiery_brand",
},
{
["use_off_gcd"] = 1,
["action"] = "potion",
["enabled"] = true,
},
{
["action"] = "sigil_of_flame",
["enabled"] = true,
},
},
["rg_sequence"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "time + action.fracture.execute_time + 20",
["criteria"] = "! buff.glaive_flurry.up & buff.rending_strike.up",
["var_name"] = "double_rm_expires",
},
{
["enabled"] = true,
["criteria"] = "( fury < 30 & ( ( ! variable.rg_enhance_cleave & buff.glaive_flurry.up & buff.rending_strike.up ) || ( variable.rg_enhance_cleave & ! buff.rending_strike.up ) ) ) || ( action.fracture.charges_fractional < 1 & ( ( variable.rg_enhance_cleave & buff.rending_strike.up & buff.glaive_flurry.up ) || ( ! variable.rg_enhance_cleave & ! buff.glaive_flurry.up ) ) )",
["action"] = "call_action_list",
["list_name"] = "rg_sequence_filler",
},
{
["enabled"] = true,
["criteria"] = "( ( variable.rg_enhance_cleave & buff.rending_strike.up & buff.glaive_flurry.up ) || ( ! variable.rg_enhance_cleave & ! buff.glaive_flurry.up ) )",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "( ( variable.rg_enhance_cleave & buff.rending_strike.up & buff.glaive_flurry.up ) || ( ! variable.rg_enhance_cleave & ! buff.glaive_flurry.up ) )",
["action"] = "shear",
},
{
["enabled"] = true,
["criteria"] = "( ( ! variable.rg_enhance_cleave & buff.glaive_flurry.up & buff.rending_strike.up ) || ( variable.rg_enhance_cleave & ! buff.rending_strike.up ) )",
["action"] = "soul_cleave",
},
},
["metamorphosis"] = {
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.remains < ( gcd.max * 3 )",
["action"] = "fel_desolation",
},
{
["enabled"] = true,
["criteria"] = "fury < 50 & ( buff.metamorphosis.remains < ( gcd.max * 3 ) ) & cooldown.fel_desolation.up",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "fury < 50 & ! cooldown.felblade.up & ( buff.metamorphosis.remains < ( gcd.max * 3 ) ) & cooldown.fel_desolation.up",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "talent.illuminated_sigils.enabled & talent.cycle_of_binding.enabled & charges = max_charges",
["action"] = "sigil_of_doom",
},
{
["action"] = "immolation_aura",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.student_of_suffering.enabled & ( talent.ascending_flame.enabled || ( ! talent.ascending_flame.enabled & ! prev_gcd.1.sigil_of_doom & ( dot.sigil_of_doom.remains < ( 4 - talent.quickened_sigils.enabled ) ) ) )",
["action"] = "sigil_of_doom",
},
{
["enabled"] = true,
["criteria"] = "talent.student_of_suffering.enabled & ! prev_gcd.1.sigil_of_flame & ! prev_gcd.1.sigil_of_doom & ( buff.student_of_suffering.remains < ( 4 - talent.quickened_sigils.enabled ) )",
["action"] = "sigil_of_doom",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.remains < ( ( 2 - talent.quickened_sigils.enabled ) + ( charges * gcd.max ) )",
["action"] = "sigil_of_doom",
},
{
["enabled"] = true,
["criteria"] = "soul_fragments <= 3 & ( soul_fragments >= 2 || prev_gcd.1.sigil_of_spite )",
["action"] = "fel_desolation",
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.sigil_of_spite.remains < execute_time || cooldown.soul_carver.remains < execute_time ) & cooldown.fel_desolation.remains < ( execute_time + gcd.max ) & fury < 50 )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.spirit_bomb.enabled || ( variable.single_target & ! buff.demonsurge_spirit_burst.up ) ) || ( ( ( soul_fragments + 3 ) <= 6 ) & fury >= 40 & ! prev_gcd.1.sigil_of_spite )",
["action"] = "soul_carver",
},
{
["enabled"] = true,
["criteria"] = "! talent.spirit_bomb.enabled || ( fury >= 80 & ( variable.can_spburst || variable.can_spburst_soon ) ) || ( soul_fragments <= ( 2 - talent.soul_sigils.rank ) )",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spburst & buff.demonsurge_spirit_burst.up",
["action"] = "spirit_burst",
},
{
["action"] = "fel_desolation",
["enabled"] = true,
},
{
["action"] = "the_hunt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.demonsurge_soul_sunder.up & ! buff.demonsurge_spirit_burst.up & ! variable.can_spburst_one_gcd",
["action"] = "soul_sunder",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spburst & ( talent.fiery_demise.enabled & dot.fiery_brand.ticking || variable.big_aoe ) & buff.metamorphosis.remains > ( gcd.max * 2 )",
["action"] = "spirit_burst",
},
{
["enabled"] = true,
["criteria"] = "fury < 40 & ( variable.can_spburst || variable.can_spburst_soon ) & ( buff.demonsurge_spirit_burst.up || talent.fiery_demise.enabled & dot.fiery_brand.ticking || variable.big_aoe )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "fury < 40 & ( variable.can_spburst || variable.can_spburst_soon || variable.can_spburst_one_gcd ) & ( buff.demonsurge_spirit_burst.up || talent.fiery_demise.enabled & dot.fiery_brand.ticking || variable.big_aoe )",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spburst_one_gcd & ( buff.demonsurge_spirit_burst.up || variable.big_aoe ) & ! prev_gcd.1.fracture",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "variable.single_target & ! variable.dont_soul_cleave",
["action"] = "soul_sunder",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spburst & buff.metamorphosis.remains > ( gcd.max * 2 )",
["action"] = "spirit_burst",
},
{
["enabled"] = true,
["criteria"] = "fury.deficit >= 40",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "! variable.dont_soul_cleave & ! ( variable.big_aoe & ( variable.can_spburst || variable.can_spburst_soon ) )",
["action"] = "soul_sunder",
},
{
["action"] = "felblade",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! prev_gcd.1.fracture",
["action"] = "fracture",
},
},
["default"] = {
{
["action"] = "disrupt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.demon_spikes.up & ( tanking || time < 5 )",
["action"] = "demon_spikes",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "num_spawnable_souls",
["default"] = "0",
},
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "1",
["criteria"] = "talent.soul_sigils.enabled & cooldown.sigil_of_flame.up",
["var_name"] = "num_spawnable_souls",
},
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "2",
["criteria"] = "talent.fracture.enabled & cooldown.fracture.charges_fractional >= 1 & ! buff.metamorphosis.up",
["var_name"] = "num_spawnable_souls",
},
{
["enabled"] = true,
["op"] = "max",
["action"] = "variable",
["value"] = "3",
["criteria"] = "talent.fracture.enabled & cooldown.fracture.charges_fractional >= 1 & buff.metamorphosis.up",
["var_name"] = "num_spawnable_souls",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "1",
["criteria"] = "talent.soul_carver.enabled & ( cooldown.soul_carver.remains > ( cooldown.soul_carver.duration - 3 ) )",
["var_name"] = "num_spawnable_souls",
},
{
["use_off_gcd"] = 1,
["action"] = "infernal_strike",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! hero_tree.felscarred",
["list_name"] = "ar",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "hero_tree.felscarred",
["list_name"] = "fs",
},
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.spirit_bomb = 1",
["var_name"] = "single_target",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.spirit_bomb >= 2 & spell_targets.spirit_bomb <= 5",
["var_name"] = "small_aoe",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.spirit_bomb >= 6",
["var_name"] = "big_aoe",
},
{
["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 )",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff )",
["var_name"] = "trinket_2_buffs",
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "hero_tree.aldrachi_reaver || ( hero_tree.felscarred & talent.student_of_suffering.enabled )",
["action"] = "sigil_of_flame",
},
{
["action"] = "immolation_aura",
["enabled"] = true,
},
},
["rg_sequence_filler"] = {
{
["action"] = "felblade",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.rending_strike.up",
["action"] = "fracture",
},
{
["action"] = "sigil_of_flame",
["enabled"] = true,
},
{
["action"] = "sigil_of_spite",
["enabled"] = true,
},
{
["action"] = "soul_carver",
["enabled"] = true,
},
{
["action"] = "fel_devastation",
["enabled"] = true,
},
{
["action"] = "throw_glaive",
["enabled"] = true,
},
},
["ar"] = {
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "spb_threshold",
["criteria"] = "talent.fiery_demise.enabled & dot.fiery_brand.ticking",
["value_else"] = "( variable.single_target * 5 ) + ( variable.small_aoe * 5 ) + ( variable.big_aoe * 4 )",
["value"] = "( variable.single_target * 5 ) + ( variable.small_aoe * 5 ) + ( variable.big_aoe * 4 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spb",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "soul_fragments >= variable.spb_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spb_soon",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "soul_fragments >= variable.spb_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "can_spb_one_gcd",
["criteria"] = "talent.spirit_bomb.enabled",
["value_else"] = "0",
["value"] = "( soul_fragments + variable.num_spawnable_souls ) >= variable.spb_threshold",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "double_rm_remains",
["criteria"] = "( variable.double_rm_expires - time ) > 0",
["value_else"] = "0",
["value"] = "variable.double_rm_expires - time",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["criteria"] = "! buff.glaive_flurry.up & ! buff.rending_strike.up & ! prev_gcd.1.reavers_glaive",
["var_name"] = "trigger_overflow",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "rg_enhance_cleave",
["criteria"] = "variable.trigger_overflow || ( spell_targets.spirit_bomb >= 4 ) || ( fight_remains < 10 || target.time_to_die < 10 )",
["value_else"] = "0",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "soul_fragments + buff.art_of_the_glaive.stack",
["var_name"] = "souls_before_next_rg_sequence",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "( 1.1 * ( 1 + stat.haste ) ) * ( variable.double_rm_remains - ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) )",
["var_name"] = "souls_before_next_rg_sequence",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "3 + talent.soul_sigils.enabled",
["criteria"] = "cooldown.sigil_of_spite.remains < ( variable.double_rm_remains - gcd.max - ( 2 - talent.soul_sigils.enabled ) )",
["var_name"] = "souls_before_next_rg_sequence",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "3",
["criteria"] = "cooldown.soul_carver.remains < ( variable.double_rm_remains - gcd.max )",
["var_name"] = "souls_before_next_rg_sequence",
},
{
["enabled"] = true,
["op"] = "add",
["action"] = "variable",
["value"] = "3",
["criteria"] = "cooldown.soul_carver.remains < ( variable.double_rm_remains - gcd.max - 3 )",
["var_name"] = "souls_before_next_rg_sequence",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs || ( variable.trinket_1_buffs & ( ( buff.rending_strike.up & buff.glaive_flurry.up ) || ( prev_gcd.1.reavers_glaive ) || ( buff.thrill_of_the_fight_damage.remains > 8 ) || ( buff.reavers_glaive.up & cooldown.the_hunt.remains < 5 ) ) )",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs || ( variable.trinket_2_buffs & ( ( buff.rending_strike.up & buff.glaive_flurry.up ) || ( prev_gcd.1.reavers_glaive ) || ( buff.thrill_of_the_fight_damage.remains > 8 ) || ( buff.reavers_glaive.up & cooldown.the_hunt.remains < 5 ) ) )",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "( buff.rending_strike.up & buff.glaive_flurry.up ) || prev_gcd.1.reavers_glaive",
["action"] = "potion",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "buff.glaive_flurry.up || buff.rending_strike.up || prev_gcd.1.reavers_glaive",
["list_name"] = "rg_sequence",
},
{
["enabled"] = true,
["criteria"] = "time < 5 || cooldown.fel_devastation.remains >= 20",
["action"] = "metamorphosis",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.reavers_glaive.up & ( buff.art_of_the_glaive.stack + soul_fragments ) < 20",
["action"] = "the_hunt",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spb & ( soul_fragments > 2 || prev_gcd.1.sigil_of_spite || prev_gcd.1.soul_carver || ( spell_targets.spirit_bomb >= 4 & talent.fallout.enabled & cooldown.immolation_aura.remains < gcd.max ) )",
["action"] = "spirit_bomb",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.spirit_bomb >= 4 ) || ( ! buff.reavers_glaive.up || ( variable.double_rm_remains > ( ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) + gcd.max ) ) )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "( talent.ascending_flame.enabled || ( ! prev_gcd.1.sigil_of_flame & dot.sigil_of_flame.remains < ( 4 - talent.quickened_sigils.enabled ) ) ) & ( ! buff.reavers_glaive.up || ( variable.double_rm_remains > ( ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) + gcd.max ) ) )",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "buff.reavers_glaive.up & spell_targets.spirit_bomb < 4 & debuff.reavers_mark.up & ( variable.double_rm_remains > ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) & ( ! buff.thrill_of_the_fight_damage.up || ( buff.thrill_of_the_fight_damage.remains < ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) & ( ( variable.double_rm_remains - ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) > ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) & ( ( variable.souls_before_next_rg_sequence >= 20 ) || ( variable.double_rm_remains > ( ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) + cooldown.the_hunt.remains + action.the_hunt.execute_time ) ) )",
["action"] = "run_action_list",
["list_name"] = "rg_overflow",
},
{
["enabled"] = true,
["criteria"] = "( fight_remains < 10 || target.time_to_die < 10 )",
["action"] = "call_action_list",
["list_name"] = "ar_execute",
},
{
["enabled"] = true,
["criteria"] = "! buff.reavers_glaive.up & ( variable.double_rm_remains <= ( execute_time + ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) & ( soul_fragments < 3 & ( ( buff.art_of_the_glaive.stack + soul_fragments ) >= 20 ) )",
["action"] = "soul_cleave",
},
{
["enabled"] = true,
["criteria"] = "! buff.reavers_glaive.up & ( variable.double_rm_remains <= ( execute_time + ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) & ( ( buff.art_of_the_glaive.stack + soul_fragments ) >= 20 )",
["action"] = "spirit_bomb",
},
{
["enabled"] = true,
["criteria"] = "! buff.reavers_glaive.up & ( variable.double_rm_remains <= ( execute_time + ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) & ( ( buff.art_of_the_glaive.stack + ( spell_targets >? 5 ) ) >= 20 )",
["action"] = "bulk_extraction",
},
{
["enabled"] = true,
["criteria"] = "( fury + ( variable.rg_enhance_cleave * 25 ) + ( talent.keen_engagement.enabled * 20 ) ) >= 30 & ( ( ! buff.thrill_of_the_fight_attack_speed.up || ( variable.double_rm_remains <= ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) || ( spell_targets.spirit_bomb >= 4 ) ) & ! ( buff.rending_strike.up || buff.glaive_flurry.up )",
["action"] = "reavers_glaive",
},
{
["enabled"] = true,
["criteria"] = "( fury + ( variable.rg_enhance_cleave * 25 ) + ( talent.keen_engagement.enabled * 20 ) ) < 30 & ( ( ! buff.thrill_of_the_fight_attack_speed.up || ( variable.double_rm_remains <= ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) || ( spell_targets.spirit_bomb >= 4 ) )",
["action"] = "call_action_list",
["list_name"] = "rg_prep",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.fiery_demise.enabled & active_dot.fiery_brand = 0 ) || ( talent.down_in_flames.enabled & ( full_recharge_time < gcd.max ) ) || ( talent.fiery_demise.enabled & active_dot.fiery_brand = 0 & ( buff.reavers_glaive.up || cooldown.the_hunt.remains < 5 || buff.art_of_the_glaive.stack >= 15 || buff.thrill_of_the_fight_damage.remains > 5 ) )",
["action"] = "fiery_brand",
},
{
["enabled"] = true,
["criteria"] = "buff.thrill_of_the_fight_damage.up || ( fury >= 80 & ( variable.can_spb || variable.can_spb_soon ) ) || ( ( soul_fragments + buff.art_of_the_glaive.stack + ( ( 1.1 * ( 1 + raw_haste_pct ) ) * ( variable.double_rm_remains - ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) ) < 20 )",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["criteria"] = "variable.can_spb",
["action"] = "spirit_bomb",
},
{
["enabled"] = true,
["criteria"] = "( variable.can_spb || variable.can_spb_soon ) & fury < 40",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "( variable.can_spb || variable.can_spb_soon ) & fury < 40 & ! cooldown.felblade.up & talent.unhindered_assault.enabled",
["action"] = "vengeful_retreat",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( variable.can_spb || variable.can_spb_soon || variable.can_spb_one_gcd ) & fury < 40",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "buff.thrill_of_the_fight_damage.up || ( ( soul_fragments + buff.art_of_the_glaive.stack + ( ( 1.1 * ( 1 + raw_haste_pct ) ) * ( variable.double_rm_remains - ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) ) ) ) < 20 )",
["action"] = "soul_carver",
},
{
["enabled"] = true,
["criteria"] = "! buff.metamorphosis.up & ( ( variable.double_rm_remains > ( ( action.reavers_glaive.execute_time + action.fracture.execute_time + action.soul_cleave.execute_time + gcd.remains + ( 0.5 * gcd.max ) ) + 2 ) ) || ( spell_targets.spirit_bomb >= 4 ) ) & ( ( action.fracture.full_recharge_time < ( 2 + gcd.max ) ) || ( ! variable.single_target & buff.thrill_of_the_fight_damage.up ) )",
["action"] = "fel_devastation",
},
{
["enabled"] = true,
["criteria"] = "cooldown.fel_devastation.remains < gcd.max & fury < 50",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "cooldown.fel_devastation.remains < gcd.max & fury < 50 & ! cooldown.felblade.up & talent.unhindered_assault.enabled",
["action"] = "vengeful_retreat",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "cooldown.fel_devastation.remains < gcd.max & fury < 50",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "( full_recharge_time < gcd.max ) || buff.metamorphosis.up || variable.can_spb || variable.can_spb_soon || buff.warblades_hunger.stack >= 5",
["action"] = "fracture",
},
{
["enabled"] = true,
["criteria"] = "soul_fragments >= 1",
["action"] = "soul_cleave",
},
{
["enabled"] = true,
["criteria"] = "spell_targets >= 3",
["action"] = "bulk_extraction",
},
{
["action"] = "fracture",
["enabled"] = true,
},
{
["action"] = "soul_cleave",
["enabled"] = true,
},
{
["action"] = "shear",
["enabled"] = true,
},
{
["action"] = "felblade",
["enabled"] = true,
},
{
["action"] = "throw_glaive",
["enabled"] = true,
},
},
["fel_dev_prep"] = {
{
["enabled"] = true,
["criteria"] = "prev_gcd.1.fiery_brand",
["action"] = "potion",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! variable.hold_sof_for_precombat & ! variable.hold_sof_for_student & ! variable.hold_sof_for_dot",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "talent.fiery_demise.enabled & ( ( fury + variable.fel_dev_passive_fury_gen ) >= 120 ) & ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 ) & active_dot.fiery_brand = 0 & ( ( cooldown.metamorphosis.remains < ( execute_time + action.fel_devastation.execute_time + ( gcd.max * 2 ) ) ) || variable.fiery_brand_back_before_meta )",
["action"] = "fiery_brand",
},
{
["enabled"] = true,
["criteria"] = "( ( fury + variable.fel_dev_passive_fury_gen ) >= 120 ) & ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 )",
["action"] = "fel_devastation",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.cycle_of_binding.enabled || ( cooldown.sigil_of_spite.duration < ( cooldown.metamorphosis.remains + 18 ) ) ) & ( soul_fragments <= 1 || ( ! ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 ) & action.fracture.charges_fractional < 1 ) )",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.cycle_of_binding.enabled || cooldown.metamorphosis.remains > 20 ) & ( soul_fragments <= 1 || ( ! ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 ) & action.fracture.charges_fractional < 1 ) ) & ! prev_gcd.1.sigil_of_spite & ! prev_gcd.2.sigil_of_spite",
["action"] = "soul_carver",
},
{
["enabled"] = true,
["criteria"] = "( fury + variable.fel_dev_passive_fury_gen ) < 120 & ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "! ( variable.can_spburst || variable.can_spburst_soon || soul_fragments >= 4 ) || ( fury + variable.fel_dev_passive_fury_gen ) < 120",
["action"] = "fracture",
},
{
["action"] = "felblade",
["enabled"] = true,
},
{
["action"] = "fracture",
["enabled"] = true,
},
{
["action"] = "fel_devastation",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ( fury + variable.fel_dev_passive_fury_gen ) >= 150 )",
["action"] = "soul_cleave",
},
{
["action"] = "throw_glaive",
["enabled"] = true,
},
},
["ar_execute"] = {
{
["use_off_gcd"] = 1,
["action"] = "metamorphosis",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( fury + ( variable.rg_enhance_cleave * 25 ) + ( talent.keen_engagement.enabled * 20 ) ) >= 30 & ! ( buff.rending_strike.up || buff.glaive_flurry.up )",
["action"] = "reavers_glaive",
},
{
["enabled"] = true,
["criteria"] = "buff.reavers_glaive.up & ( fury + ( variable.rg_enhance_cleave * 25 ) + ( talent.keen_engagement.enabled * 20 ) ) < 30",
["action"] = "call_action_list",
["list_name"] = "rg_prep",
},
{
["enabled"] = true,
["criteria"] = "! buff.reavers_glaive.up",
["action"] = "the_hunt",
},
{
["enabled"] = true,
["criteria"] = "spell_targets >= 3 & buff.art_of_the_glaive.stack >= 20",
["action"] = "bulk_extraction",
},
{
["action"] = "sigil_of_flame",
["enabled"] = true,
},
{
["action"] = "fiery_brand",
["enabled"] = true,
},
{
["action"] = "sigil_of_spite",
["enabled"] = true,
},
{
["action"] = "soul_carver",
["enabled"] = true,
},
{
["action"] = "fel_devastation",
["enabled"] = true,
},
},
},
},
["Mistweaver"] = {
["builtIn"] = true,
["date"] = 20241109,
["spec"] = 270,
["desc"] = "Healer priorities are DPS-oriented only\n\n2024-11-09: Make RWK consistently replace RSK\n\n2024-11-06: Update Jadefire Stomp related talents\n\n2024-10-23: 11.0.5\n\n2024-09-28: Update for Teachings of the Monastery\n\n2024-07-30: The War Within",
["lists"] = {
["default"] = {
{
["action"] = "spear_hand_strike",
["enabled"] = true,
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "berserking",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
{
["action"] = "potion",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "pet.chiji.up",
["list_name"] = "crane",
},
{
["enabled"] = true,
["criteria"] = "! settings.save_faeline || talent.awakened_jadefire.enabled & buff.awakened_jadefire.down || talent.jadefire_teachings.enabled & buff.jadefire_teachings.down",
["action"] = "jadefire_stomp",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 3",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "active_enemies < 3",
["list_name"] = "st",
},
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "active_enemies <= 3",
["action"] = "thunder_focus_tea",
},
{
["enabled"] = true,
["criteria"] = "buff.zen_pulse.up",
["action"] = "vivify",
},
{
["enabled"] = true,
["criteria"] = "active_enemies <= 3 || settings.aoe_rsk",
["action"] = "rising_sun_kick",
},
{
["enabled"] = true,
["criteria"] = "active_enemies <= 3 || settings.aoe_rsk",
["action"] = "rushing_wind_kick",
},
{
["enabled"] = true,
["criteria"] = "talent.awakened_jadefire.enabled & buff.jadefire_stomp.up & buff.teachings_of_the_monastery.stack < 4 || buff.teachings_of_the_monastery.stack < 1",
["action"] = "tiger_palm",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.rushing_wind_kick.enabled & cooldown.rising_sun_kick.remains > 2 * gcd.max || cooldown.rushing_wind_kick.remains > 2 * gcd.max ) & ( buff.teachings_of_the_monastery.stack > 3 )",
["action"] = "blackout_kick",
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
{
["action"] = "spinning_crane_kick",
["enabled"] = true,
},
},
["st"] = {
{
["action"] = "thunder_focus_tea",
["enabled"] = true,
},
{
["action"] = "rising_sun_kick",
["enabled"] = true,
},
{
["action"] = "rushing_wind_kick",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.awakened_jadefire.enabled & buff.jadefire_stomp.up & buff.teachings_of_the_monastery.stack < 4 || buff.teachings_of_the_monastery.stack < 1",
["action"] = "tiger_palm",
},
{
["enabled"] = true,
["criteria"] = "( ( ! talent.awakened_jadefire.enabled || buff.jadefire_stomp.down ) & buff.teachings_of_the_monastery.up || buff.teachings_of_the_monastery.stack > 3 ) & ( ! talent.rushing_wind_kick.enabled & cooldown.rising_sun_kick.remains > 2 * gcd.max || cooldown.rushing_wind_kick.remains > 2 * gcd.max )",
["action"] = "blackout_kick",
},
{
["enabled"] = true,
["criteria"] = "settings.single_zen_pulse & buff.zen_pulse.up",
["action"] = "vivify",
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
{
["action"] = "tiger_palm",
["enabled"] = true,
},
},
["crane"] = {
{
["enabled"] = true,
["criteria"] = "time_to_max_charges <= gcd.max",
["action"] = "renewing_mist",
},
{
["enabled"] = true,
["criteria"] = "talent.ancient_teachings.enabled & buff.ancient_teachings.remains < gcd.max",
["action"] = "thunder_focus_tea",
},
{
["enabled"] = true,
["criteria"] = "talent.ancient_teachings.enabled & buff.ancient_teachings.remains < gcd.max",
["action"] = "essence_font",
},
{
["enabled"] = true,
["criteria"] = "talent.ancient_teachings.enabled & buff.ancient_teachings.remains < gcd.max",
["action"] = "jadefire_stomp",
},
{
["enabled"] = true,
["criteria"] = "buff.invoke_chiji.stack > 1",
["action"] = "enveloping_mist",
},
{
["action"] = "rising_sun_kick",
["enabled"] = true,
},
{
["action"] = "rushing_wind_kick",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ( ! talent.awakened_jadefire.enabled || buff.jadefire_stomp.down ) & buff.teachings_of_the_monastery.up || buff.teachings_of_the_monastery.stack > 3 ) & ( ! talent.rushing_wind_kick.enabled & cooldown.rising_sun_kick.remains > 2 * gcd.max || cooldown.rushing_wind_kick.remains > 2 * gcd.max )",
["action"] = "blackout_kick",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 3 || active_enemies > 1 & ! talent.ancient_concordance.enabled & ! talent.awakened_jadefire.enabled",
["action"] = "spinning_crane_kick",
},
{
["action"] = "blackout_kick",
["enabled"] = true,
},
{
["action"] = "tiger_palm",
["enabled"] = true,
},
},
},
["version"] = 20241109,
["warnings"] = "The import for 'default' required some automated changes.\nLine 11: Converted 'talent.awakened_jadefire' to 'talent.awakened_jadefire.enabled' (1x).\nLine 11: Converted 'talent.jadefire_teachings' to 'talent.jadefire_teachings.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 6: Converted 'talent.rushing_wind_kick' to 'talent.rushing_wind_kick.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 5: Converted 'talent.awakened_jadefire' to 'talent.awakened_jadefire.enabled' (1x).\nLine 5: Converted 'talent.rushing_wind_kick' to 'talent.rushing_wind_kick.enabled' (1x).\n\nThe import for 'crane' required some automated changes.\nLine 2: Converted 'talent.ancient_teachings' to 'talent.ancient_teachings.enabled' (1x).\nLine 3: Unsupported action 'essence_font'.\nLine 3: Converted 'talent.ancient_teachings' to 'talent.ancient_teachings.enabled' (1x).\nLine 4: Converted 'talent.ancient_teachings' to 'talent.ancient_teachings.enabled' (1x).\nLine 8: Converted 'talent.awakened_jadefire' to 'talent.awakened_jadefire.enabled' (1x).\nLine 8: Converted 'talent.rushing_wind_kick' to 'talent.rushing_wind_kick.enabled' (1x).\nLine 9: Converted 'talent.ancient_concordance' to 'talent.ancient_concordance.enabled' (1x).\nLine 9: Converted 'talent.awakened_jadefire' to 'talent.awakened_jadefire.enabled' (1x).\n\nImported 5 action lists.\n",
["author"] = "Aikanaka",
["profile"] = "actions.precombat+=/potion\nactions.precombat+=/chi_burst\n\nactions+=/spear_hand_strike\nactions+=/use_items\nactions+=/blood_fury\nactions+=/berserking\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/potion\nactions+=/run_action_list,name=crane,strict=1,if=pet.chiji.up\nactions+=/jadefire_stomp,if=!settings.save_faeline||talent.awakened_jadefire&buff.awakened_jadefire.down||talent.jadefire_teachings&buff.jadefire_teachings.down\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>=3\nactions+=/call_action_list,name=st,strict=1,if=active_enemies<3\n\nactions.st+=/thunder_focus_tea\nactions.st+=/rising_sun_kick\nactions.st+=/rushing_wind_kick\nactions.st+=/tiger_palm,if=talent.awakened_jadefire.enabled&buff.jadefire_stomp.up&buff.teachings_of_the_monastery.stack<4||buff.teachings_of_the_monastery.stack<1\nactions.st+=/blackout_kick,if=((!talent.awakened_jadefire||buff.jadefire_stomp.down)&buff.teachings_of_the_monastery.up||buff.teachings_of_the_monastery.stack>3)&(!talent.rushing_wind_kick&cooldown.rising_sun_kick.remains>2*gcd.max||cooldown.rushing_wind_kick.remains>2*gcd.max)\nactions.st+=/vivify,if=settings.single_zen_pulse&buff.zen_pulse.up\nactions.st+=/chi_burst\nactions.st+=/tiger_palm\n\nactions.aoe+=/thunder_focus_tea,if=active_enemies<=3\nactions.aoe+=/vivify,if=buff.zen_pulse.up\nactions.aoe+=/rising_sun_kick,if=active_enemies<=3||settings.aoe_rsk\nactions.aoe+=/rushing_wind_kick,if=active_enemies<=3||settings.aoe_rsk\nactions.aoe+=/tiger_palm,if=talent.awakened_jadefire.enabled&buff.jadefire_stomp.up&buff.teachings_of_the_monastery.stack<4||buff.teachings_of_the_monastery.stack<1\nactions.aoe+=/blackout_kick,if=(!talent.rushing_wind_kick&cooldown.rising_sun_kick.remains>2*gcd.max||cooldown.rushing_wind_kick.remains>2*gcd.max)&(buff.teachings_of_the_monastery.stack>3)\nactions.aoe+=/chi_burst\nactions.aoe+=/spinning_crane_kick\n\nactions.crane+=/renewing_mist,if=time_to_max_charges<=gcd.max\nactions.crane+=/thunder_focus_tea,if=talent.ancient_teachings&buff.ancient_teachings.remains<gcd.max\nactions.crane+=/essence_font,if=talent.ancient_teachings&buff.ancient_teachings.remains<gcd.max\nactions.crane+=/jadefire_stomp,if=talent.ancient_teachings&buff.ancient_teachings.remains<gcd.max\nactions.crane+=/enveloping_mist,if=buff.invoke_chiji.stack>1\nactions.crane+=/rising_sun_kick\nactions.crane+=/rushing_wind_kick\nactions.crane+=/blackout_kick,if=((!talent.awakened_jadefire||buff.jadefire_stomp.down)&buff.teachings_of_the_monastery.up||buff.teachings_of_the_monastery.stack>3)&(!talent.rushing_wind_kick&cooldown.rising_sun_kick.remains>2*gcd.max||cooldown.rushing_wind_kick.remains>2*gcd.max)\nactions.crane+=/spinning_crane_kick,if=active_enemies>3||active_enemies>1&!talent.ancient_concordance&!talent.awakened_jadefire\nactions.crane+=/blackout_kick\nactions.crane+=/tiger_palm",
},
["Holy Paladin"] = {
["builtIn"] = true,
["date"] = 20240908,
["spec"] = 65,
["desc"] = "Healer priorities are DPS-focused only\n\n2024-07-30, 09-08: The War Within",
["lists"] = {
["spenders"] = {
{
["enabled"] = true,
["criteria"] = "solo & ( health.pct < 70 || ! equipped.shield ) & buff.shining_righteousness_ready.up || buff.empyrean_legacy.up",
["action"] = "word_of_glory",
},
{
["enabled"] = true,
["criteria"] = "group & buff.shining_righteousness_ready.up",
["action"] = "light_of_dawn",
},
{
["action"] = "shield_of_the_righteous",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "rebuke",
["enabled"] = true,
},
{
["action"] = "avenging_wrath",
["enabled"] = true,
},
{
["action"] = "avenging_crusader",
["enabled"] = true,
},
{
["action"] = "holy_armaments",
["enabled"] = true,
},
{
["action"] = "blessing_of_summer",
["enabled"] = true,
},
{
["action"] = "blessing_of_autumn",
["enabled"] = true,
},
{
["action"] = "blessing_of_winter",
["enabled"] = true,
},
{
["action"] = "blessing_of_spring",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "potion",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.up || buff.avenging_wrath.up || buff.avenging_crusader.up",
["action"] = "fireblood",
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "! talent.avenging_crusader.enabled || cooldown.avenging_crusader.remains > gcd.max || holy_power.deficit = 0",
["list_name"] = "spenders",
},
{
["action"] = "divine_toll",
["enabled"] = true,
},
{
["action"] = "holy_prism",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "group",
["action"] = "beacon_of_virtue",
},
{
["enabled"] = true,
["criteria"] = "talent.avenging_crusader.enabled & full_recharge_time < gcd.max",
["action"] = "crusader_strike",
},
{
["enabled"] = true,
["criteria"] = "talent.avenging_crusader.enabled & full_recharge_time < gcd.max",
["action"] = "judgment",
},
{
["enabled"] = true,
["criteria"] = "! consecration.up & action.crusader_strike.in_range",
["action"] = "consecration",
},
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
},
{
["action"] = "judgment",
["enabled"] = true,
},
{
["action"] = "holy_shock",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.holy_shock.remains > gcd.max",
["action"] = "crusader_strike",
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "buff.paladin_aura.down",
["action"] = "devotion_aura",
},
{
["enabled"] = true,
["criteria"] = "active_dot.beacon_of_light = 0",
["action"] = "beacon_of_light",
},
{
["enabled"] = true,
["criteria"] = "group & active_dot.beacon_of_faith = 0",
["action"] = "beacon_of_faith",
},
},
},
["version"] = 20240908,
["warnings"] = "The import for 'default' required some automated changes.\nLine 13: Converted 'talent.avenging_crusader' to 'talent.avenging_crusader.enabled' (1x).\nLine 17: Converted 'talent.avenging_crusader' to 'talent.avenging_crusader.enabled' (1x).\nLine 18: Converted 'talent.avenging_crusader' to 'talent.avenging_crusader.enabled' (1x).\n\nImported 3 action lists.\n",
["profile"] = "actions.precombat+=/devotion_aura,if=buff.paladin_aura.down\nactions.precombat+=/beacon_of_light,if=active_dot.beacon_of_light=0\nactions.precombat+=/beacon_of_faith,if=group&active_dot.beacon_of_faith=0\n\nactions+=/rebuke\nactions+=/avenging_wrath\nactions+=/avenging_crusader\nactions+=/holy_armaments\nactions+=/blessing_of_summer\nactions+=/blessing_of_autumn\nactions+=/blessing_of_winter\nactions+=/blessing_of_spring\nactions+=/lights_judgment\nactions+=/potion\nactions+=/fireblood,if=buff.bloodlust.up||buff.avenging_wrath.up||buff.avenging_crusader.up\nactions+=/use_items\nactions+=/call_action_list,name=spenders,strict=1,if=!talent.avenging_crusader||cooldown.avenging_crusader.remains>gcd.max||holy_power.deficit=0\nactions+=/divine_toll\nactions+=/holy_prism\nactions+=/beacon_of_virtue,if=group\nactions+=/crusader_strike,if=talent.avenging_crusader&full_recharge_time<gcd.max\nactions+=/judgment,if=talent.avenging_crusader&full_recharge_time<gcd.max\nactions+=/consecration,if=!consecration.up&action.crusader_strike.in_range\nactions+=/hammer_of_wrath\nactions+=/judgment\nactions+=/holy_shock\nactions+=/crusader_strike,if=cooldown.holy_shock.remains>gcd.max\nactions+=/arcane_torrent\n\nactions.spenders+=/word_of_glory,if=solo&(health.pct<70||!equipped.shield)&buff.shining_righteousness_ready.up||buff.empyrean_legacy.up\nactions.spenders+=/light_of_dawn,if=group&buff.shining_righteousness_ready.up\nactions.spenders+=/shield_of_the_righteous",
["author"] = "Kaleokalani",
},
["Feral"] = {
["builtIn"] = true,
["date"] = 20241022,
["spec"] = 103,
["desc"] = "2024-10-22: 11.0.5\n\n2024-09-21: SimC update\n\n2024-09-10: Fix Ferocious Bite max_energy\n\n2024-09-04, 09-08: SimC update\n\n2024-09-03: Tweak targeting\n\n2024-08-24: SimC priority update\n\n2024-08-15: Adjust Ferocious Bite for Wildstalker\n\n2024-08-11: Mark of the Wild, priority update\n\n2024-08-08: Interrupt and Soothe\n\n2024-07-24: The War Within",
["profile"] = "actions.precombat+=/mark_of_the_wild\nactions.precombat+=/prowl,if=!buff.prowl.up\nactions.precombat+=/cat_form,if=!buff.cat_form.up\n# check if trinket slot contains a stat on use (variable is just kept in case of things like mirror not working with has_use_buff)\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff&!trinket.1.is.imperfect_ascendancy_serum&!trinket.1.is.ovinaxs_mercurial_egg&!trinket.1.is.concoction_kiss_of_death\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff&!trinket.2.is.imperfect_ascendancy_serum&!trinket.2.is.ovinaxs_mercurial_egg&!trinket.2.is.concoction_kiss_of_death\n# if we are playing 2 minute convoke, we prefer 2 minute on-use over 3 minute on-use even without berserk: heart of the lion\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=talent.convoke_the_spirits&!talent.ashamanes_guidance&variable.trinket_1_buffs&(trinket.1.cooldown.duration%%120=0||120%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=talent.convoke_the_spirits&!talent.ashamanes_guidance&variable.trinket_2_buffs&(trinket.1.cooldown.duration%%120=0||120%%trinket.1.cooldown.duration=0)\n# if we aren't playing 2 minute convoke, then we can sync 3 minute cds with berserk sans hotl\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=!(talent.convoke_the_spirits&!talent.ashamanes_guidance)&variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.bs_inc.duration=0||cooldown.bs_inc.duration%%trinket.1.cooldown.duration=0||trinket.1.cooldown.duration%%cooldown.convoke_the_spirits.duration=0||cooldown.convoke_the_spirits.duration%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=!(talent.convoke_the_spirits&!talent.ashamanes_guidance)&variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.bs_inc.duration=0||cooldown.bs_inc.duration%%trinket.2.cooldown.duration=0||trinket.2.cooldown.duration%%cooldown.convoke_the_spirits.duration=0||cooldown.convoke_the_spirits.duration%%trinket.2.cooldown.duration=0)\n# prioritize trinkets that line-up with cds->main-stat on uses->longer cd trinkets->shorter duration trinkets\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.agility)*(1.2+trinket.2.has_buff.mastery)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.agility)*(1.2+trinket.1.has_buff.mastery)*(variable.trinket_1_sync))\n\nactions+=/prowl,if=buff.bs_inc.down&!buff.prowl.up\nactions+=/cat_form,if=!buff.cat_form.up&!talent.fluid_form\nactions+=/skull_bash\nactions+=/soothe\n## Line up <a href='https://www.wowhead.com/spell=10060/power-infusion'>Power Infusion</a> with Berserk.\n## actions+=/invoke_external_buff,name=power_infusion,if=buff.bs_inc.up||!talent.berserk_heart_of_the_lion\nactions+=/call_action_list,name=variable\n## actions+=/stop_moving,if=gcd.remains=0&equipped.ovinaxs_mercurial_egg\nactions+=/tigers_fury,if=(energy.deficit>35||combo_points=5||combo_points>=3&dot.rip.refreshable&buff.bloodtalons.up)&(boss&fight_remains<=15||(cooldown.bs_inc.remains>20&fight_remains>5)||(cooldown.bs_inc.ready&fight_remains>12||boss))\nactions+=/rake,cycle_targets=1,if=buff.shadowmeld.up||buff.prowl.up\nactions+=/natures_vigil,if=variable.regrowth&health.percent<70&(buff.bs_inc.up||buff.tigers_fury.up)\nactions+=/renewal,if=variable.regrowth&health.percent<70\nactions+=/adaptive_swarm,cycle_targets=1,if=dot.adaptive_swarm_damage.stack<3&(!dot.adaptive_swarm_damage.ticking||dot.adaptive_swarm_damage.remains<2)&!action.adaptive_swarm.in_flight&(spell_targets=1||!talent.unbridled_swarm)&(dot.rip.ticking||hero_tree.druid_of_the_claw)\nactions+=/adaptive_swarm,cycle_targe
["version"] = 20241022,
["warnings"] = "The import for 'aoe_builder' required some automated changes.\nLine 2: Converted 'talent.thrashing_claws' to 'talent.thrashing_claws.enabled' (1x).\nLine 4: Converted 'talent.wild_slashes' to 'talent.wild_slashes.enabled' (1x).\nLine 5: Converted 'talent.wild_slashes' to 'talent.wild_slashes.enabled' (1x).\nLine 8: Converted 'talent.doubleclawed_rake' to 'talent.doubleclawed_rake.enabled' (1x).\nLine 9: Converted 'talent.wild_slashes' to 'talent.wild_slashes.enabled' (1x).\nLine 15: Converted 'talent.thrashing_claws' to 'talent.thrashing_claws.enabled' (1x).\nLine 16: Converted 'talent.doubleclawed_rake' to 'talent.doubleclawed_rake.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.fluid_form' to 'talent.fluid_form.enabled' (1x).\nLine 10: Converted 'talent.unbridled_swarm' to 'talent.unbridled_swarm.enabled' (1x).\nLine 14: Converted 'talent.raging_fury' to 'talent.raging_fury.enabled' (1x).\nLine 14: Converted 'talent.veinripper' to 'talent.veinripper.enabled' (1x).\nLine 14: Converted 'talent.bloodtalons' to 'talent.bloodtalons.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.is.imperfect_ascendancy_serum' to 'trinket.t1.is.imperfect_ascendancy_serum' (1x).\nLine 4: Converted 'trinket.1.is.ovinaxs_mercurial_egg' to 'trinket.t1.is.ovinaxs_mercurial_egg' (1x).\nLine 4: Converted 'trinket.1.is.concoction_kiss_of_death' to 'trinket.t1.is.concoction_kiss_of_death' (1x).\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.is.imperfect_ascendancy_serum' to 'trinket.t2.is.imperfect_ascendancy_serum' (1x).\nLine 5: Converted 'trinket.2.is.ovinaxs_mercurial_egg' to 'trinket.t2.is.ovinaxs_mercurial_egg' (1x).\nLine 5: Converted 'trinket.2.is.concoction_kiss_of_death' to 'trinket.t2.is.concoction_kiss_of_death' (1x).\nLine 6: Converted 'talent.convoke_the_spirits' to 'talent.convoke_the_spirits.enabled' (1x).\nLine 6: Converted 'talent.ashamanes_guidance' to 'talent.ashamanes_guidance.enabled' (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 '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 'talent.convoke_the_spirits.enabled&!talent.ashamanes_guidance.enabled&variable.trinket_1_buffs&(trinket.t1.cooldown.duration%%120=0||120%%trinket.t1.cooldown.duration=0)' to 'talent.convoke_the_spirits.enabled&!talent.ashamanes_guidance.enabled&variable.trinket_1_buffs&(trinket.t1.cooldown.duration%120=0||120%trinket.t1.cooldown.duration=0)'.\nLine 7: Converted 'talent.convoke_the_spirits' to 'talent.convoke_the_spirits.enabled' (1x).\nLine 7: Converted 'talent.ashamanes_guidance' to 'talent.ashamanes_guidance.enabled' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 7: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 7: Converted operations in 'talent.convoke_the_spirits.enabled&!talent.ashamanes_guidance.enabled&variable.trinket_2_buffs&(trinket.t1.cooldown.duration%%120=0||120%%trinket.t1.cooldown.duration=0)' to 'talent.convoke_the_spirits.enabled&!talent.ashamanes_guidance.enabled&variable.trinket_2_buffs&(trinket.t1.cooldown.duration%120=0||120%trinket.t1.cooldown.duration=0)'.\nLine 8: Converted 'talent.convoke_the_spirits' to 'talent.convoke_the_spirits.enabled' (1x).\nLine 8: Converted 'talent.ashamanes_guidance' to 'talent.ashamanes_guidance.enabled' (1x).\nLine 8: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1
["author"] = "Makahiki",
["lists"] = {
["aoe_builder"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.need_bt",
["var_name"] = "proccing_bt",
},
{
["enabled"] = true,
["criteria"] = "refreshable & ! talent.thrashing_claws.enabled & ! ( variable.need_bt & buff.bt_thrash.up )",
["action"] = "thrash_cat",
["description"] = "maintain thrash highest prio",
},
{
["enabled"] = true,
["action"] = "brutal_slash",
["cycle_targets"] = 1,
["description"] = "avoid capping brs charges. Also send brutal slashes/ws swipe in aoe, even if we need to proc bloodtalons, during berserk.",
["criteria"] = "( cooldown.brutal_slash.full_recharge_time < 4 || time_to_die < 4 || raid_event.adds.remains < 4 || ( buff.bs_inc.up & spell_targets >= 3 - hero_tree.druid_of_the_claw ) ) & ! ( variable.need_bt & buff.bt_swipe.up & ( buff.bs_inc.down || spell_targets < 3 - hero_tree.druid_of_the_claw ) )",
},
{
["enabled"] = true,
["criteria"] = "talent.wild_slashes.enabled & ( time_to_die < 4 || raid_event.adds.remains < 4 || buff.bs_inc.up & spell_targets >= 3 - hero_tree.druid_of_the_claw ) & ! ( variable.need_bt & buff.bt_swipe.up & ( buff.bs_inc.down || spell_targets < 3 - hero_tree.druid_of_the_claw ) )",
["action"] = "swipe_cat",
},
{
["enabled"] = true,
["criteria"] = "time_to_die < 4 || ( talent.wild_slashes.enabled & spell_targets.swipe_cat > 4 & ! ( variable.need_bt & buff.bt_swipe.up ) )",
["action"] = "swipe_cat",
["description"] = "with wild slashes we swipe at 5+ targets over raking/moonfire",
},
{
["enabled"] = true,
["criteria"] = "dot.rake.refreshable || dot.rake.pmultiplier < 1.4 & ! ( variable.need_bt & buff.bt_rake.up ) & action.rake.ready & gcd.remains = 0 & ! buff.sudden_ambush.up & ! variable.cc_capped",
["action"] = "prowl",
},
{
["enabled"] = true,
["criteria"] = "dot.rake.refreshable || dot.rake.pmultiplier < 1.4 & ! ( variable.need_bt & buff.bt_rake.up ) & action.rake.ready & ! buff.sudden_ambush.up & ! buff.prowl.up & ! variable.cc_capped",
["action"] = "shadowmeld",
},
{
["enabled"] = true,
["action"] = "rake",
["cycle_targets"] = 1,
["description"] = "dcr rake > moonfire",
["criteria"] = "refreshable & talent.doubleclawed_rake.enabled & ! ( variable.need_bt & buff.bt_rake.up ) & ! variable.cc_capped",
},
{
["enabled"] = true,
["criteria"] = "talent.wild_slashes.enabled & spell_targets.swipe_cat > 2 & ! ( variable.need_bt & buff.bt_swipe.up )",
["action"] = "swipe_cat",
["description"] = "at 3t with wild slashes, swipe is better than moonfiring/st rake",
},
{
["enabled"] = true,
["action"] = "lunar_inspiration",
["cycle_targets"] = 1,
["description"] = "li moonfire is better than non-dcr rake in aoe",
["criteria"] = "refreshable & ! ( variable.need_bt & buff.bt_moonfire.up ) & ! variable.cc_capped",
},
{
["enabled"] = true,
["criteria"] = "refreshable & ! ( variable.need_bt & buff.bt_rake.up ) & ! variable.cc_capped",
["action"] = "rake",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! ( variable.need_bt & buff.bt_swipe.up )",
["action"] = "brutal_slash",
["description"] = "fillers",
},
{
["enabled"] = true,
["criteria"] = "! ( variable.need_bt & buff.bt_swipe.up )",
["action"] = "swipe_cat",
},
{
["enabled"] = true,
["criteria"] = "! buff.sudden_ambush.up & ! variable.easy_swipe & ! ( variable.need_bt & buff.bt_shred.up )",
["action"] = "shred",
},
{
["enabled"] = true,
["criteria"] = "! talent.thrashing_claws.enabled & ! ( variable.need_bt & buff.bt_thrash.up )",
["action"] = "thrash_cat",
},
{
["enabled"] = true,
["action"] = "rake",
["cycle_targets"] = 1,
["description"] = "fallback bt actions",
["criteria"] = "talent.doubleclawed_rake.enabled & buff.sudden_ambush.up & variable.need_bt & buff.bt_rake.down",
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_moonfire.down",
["action"] = "lunar_inspiration",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.sudden_ambush.up & variable.need_bt & buff.bt_rake.down",
["action"] = "rake",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_shred.down & ! variable.easy_swipe",
["action"] = "shred",
},
{
["enabled"] = true,
["criteria"] = "dot.rake.pmultiplier < 1.6 & variable.need_bt & buff.bt_rake.down",
["action"] = "rake",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_shred.down",
["action"] = "thrash_cat",
},
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.down & ! buff.prowl.up",
["action"] = "prowl",
},
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up & ! talent.fluid_form.enabled",
["action"] = "cat_form",
},
{
["action"] = "skull_bash",
["enabled"] = true,
},
{
["action"] = "soothe",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "variable",
},
{
["enabled"] = true,
["criteria"] = "( energy.deficit > 35 || combo_points = 5 || combo_points >= 3 & dot.rip.refreshable & buff.bloodtalons.up ) & ( boss & fight_remains <= 15 || ( cooldown.bs_inc.remains > 20 & fight_remains > 5 ) || ( cooldown.bs_inc.ready & fight_remains > 12 || boss ) )",
["action"] = "tigers_fury",
},
{
["enabled"] = true,
["criteria"] = "buff.shadowmeld.up || buff.prowl.up",
["action"] = "rake",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.regrowth & health.percent < 70 & ( buff.bs_inc.up || buff.tigers_fury.up )",
["action"] = "natures_vigil",
},
{
["enabled"] = true,
["criteria"] = "variable.regrowth & health.percent < 70",
["action"] = "renewal",
},
{
["enabled"] = true,
["criteria"] = "dot.adaptive_swarm_damage.stack < 3 & ( ! dot.adaptive_swarm_damage.ticking || dot.adaptive_swarm_damage.remains < 2 ) & ! action.adaptive_swarm.in_flight & ( spell_targets = 1 || ! talent.unbridled_swarm.enabled ) & ( dot.rip.ticking || hero_tree.druid_of_the_claw )",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.cat_form.up & dot.adaptive_swarm_damage.stack < 3 & talent.unbridled_swarm.enabled & spell_targets.swipe_cat > 1 & dot.rip.ticking",
["action"] = "adaptive_swarm",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.apex_predators_craving.up & ! ( variable.need_bt & active_bt_triggers = 2 )",
["action"] = "ferocious_bite",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "dot.rip.ticking",
["list_name"] = "cooldown",
},
{
["enabled"] = true,
["criteria"] = "spell_targets = 1 & hero_tree.wildstalker & ! ( talent.raging_fury.enabled & talent.veinripper.enabled ) & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & ( dot.rip.remains < 5 & buff.tigers_fury.remains > 10 & combo_points >= 3 || ( ( buff.tigers_fury.remains < 3 & combo_points = 5 ) || buff.tigers_fury.remains <= 1 ) & buff.tigers_fury.up & combo_points >= 3 & remains < cooldown.tigers_fury.remains )",
["action"] = "rip",
["description"] = "with wildstalker and not both raging fury + veinripper, low cp rips for snapshot reasons is worth",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "combo_points = 5",
["list_name"] = "finisher",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "spell_targets.swipe_cat = 1 & combo_points < 5 & ( variable.time_to_pool <= 0 || ! variable.need_bt || variable.proccing_bt )",
["list_name"] = "builder",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "spell_targets.swipe_cat >= 2 & combo_points < 5 & ( variable.time_to_pool <= 0 || ! variable.need_bt || variable.proccing_bt )",
["list_name"] = "aoe_builder",
},
{
["enabled"] = true,
["criteria"] = "buff.predatory_swiftness.up & variable.regrowth & selection_time > gcd.max",
["action"] = "regrowth",
},
},
["precombat"] = {
{
["action"] = "mark_of_the_wild",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! buff.prowl.up",
["action"] = "prowl",
},
{
["enabled"] = true,
["criteria"] = "! buff.cat_form.up",
["action"] = "cat_form",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff & ! trinket.t1.is.imperfect_ascendancy_serum & ! trinket.t1.is.ovinaxs_mercurial_egg & ! trinket.t1.is.concoction_kiss_of_death",
["var_name"] = "trinket_1_buffs",
["description"] = "check if trinket slot contains a stat on use (variable is just kept in case of things like mirror not working with has_use_buff)",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff & ! trinket.t2.is.imperfect_ascendancy_serum & ! trinket.t2.is.ovinaxs_mercurial_egg & ! trinket.t2.is.concoction_kiss_of_death",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "if we are playing 2 minute convoke, we prefer 2 minute on-use over 3 minute on-use even without berserk: heart of the lion",
["value"] = "1",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["criteria"] = "talent.convoke_the_spirits.enabled & ! talent.ashamanes_guidance.enabled & variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % 120 = 0 || 120 % trinket.t1.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "talent.convoke_the_spirits.enabled & ! talent.ashamanes_guidance.enabled & variable.trinket_2_buffs & ( trinket.t1.cooldown.duration % 120 = 0 || 120 % trinket.t1.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "if we aren't playing 2 minute convoke, then we can sync 3 minute cds with berserk sans hotl",
["value"] = "1",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["criteria"] = "! ( talent.convoke_the_spirits.enabled & ! talent.ashamanes_guidance.enabled ) & variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.bs_inc.duration = 0 || cooldown.bs_inc.duration % trinket.t1.cooldown.duration = 0 || trinket.t1.cooldown.duration % cooldown.convoke_the_spirits.duration = 0 || cooldown.convoke_the_spirits.duration % trinket.t1.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "! ( talent.convoke_the_spirits.enabled & ! talent.ashamanes_guidance.enabled ) & variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.bs_inc.duration = 0 || cooldown.bs_inc.duration % trinket.t2.cooldown.duration = 0 || trinket.t2.cooldown.duration % cooldown.convoke_the_spirits.duration = 0 || cooldown.convoke_the_spirits.duration % trinket.t2.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "prioritize trinkets that line-up with cds->main-stat on uses->longer cd trinkets->shorter duration trinkets",
["value"] = "2",
["var_name"] = "trinket_priority",
["action"] = "variable",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( 1.2 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( 1.2 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
},
},
["builder"] = {
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 & energy >= 35 & ! buff.sudden_ambush.up & ( dot.rake.refreshable || dot.rake.pmultiplier < 1.4 ) * ! ( variable.need_bt & buff.bt_rake.up ) & buff.tigers_fury.up & ! buff.shadowmeld.up",
["action"] = "prowl",
},
{
["enabled"] = true,
["criteria"] = "gcd.remains = 0 & energy >= 35 & ! buff.sudden_ambush.up & ( dot.rake.refreshable || dot.rake.pmultiplier < 1.4 ) * ! ( variable.need_bt & buff.bt_rake.up ) & buff.tigers_fury.up & ! buff.prowl.up",
["action"] = "shadowmeld",
},
{
["enabled"] = true,
["criteria"] = "( ( refreshable & persistent_multiplier >= dot.rake.pmultiplier || dot.rake.remains < 3.5 ) || buff.sudden_ambush.up & persistent_multiplier > dot.rake.pmultiplier ) & ! ( variable.need_bt & buff.bt_rake.up )",
["action"] = "rake",
["description"] = "upgrade to stealth rakes, otherwise refresh in pandemic. Delay rake as long as possible if it would downgrade",
},
{
["enabled"] = true,
["criteria"] = "cooldown.brutal_slash.full_recharge_time < 4 & ! ( variable.need_bt & buff.bt_swipe.up )",
["action"] = "brutal_slash",
},
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "lunar_inspiration",
},
{
["enabled"] = true,
["criteria"] = "refreshable & ! talent.thrashing_claws.enabled",
["action"] = "thrash_cat",
},
{
["enabled"] = true,
["criteria"] = "buff.clearcasting.up & ! ( variable.need_bt & buff.bt_shred.up )",
["action"] = "shred",
},
{
["enabled"] = true,
["action"] = "pool_resource",
["description"] = "pool energy if we need to refresh dot in the next 1.5s [Hekili] TODO: Sim character to see how frequently this fires, determine if `wait` value should be adjusted.",
["criteria"] = "variable.dot_refresh_soon & energy.deficit > 70 & ! variable.need_bt & ! buff.bs_inc.up & cooldown.tigers_fury.remains > 3",
["wait"] = "0.2",
},
{
["enabled"] = true,
["criteria"] = "! ( variable.need_bt & buff.bt_swipe.up )",
["action"] = "brutal_slash",
},
{
["enabled"] = true,
["criteria"] = "! ( variable.need_bt & buff.bt_shred.up )",
["action"] = "shred",
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_swipe.down",
["action"] = "swipe_cat",
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_rake.down & persistent_multiplier >= dot.rake.pmultiplier",
["action"] = "rake",
["description"] = "clip rake for bt if it wont downgrade its snapshot",
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_moonfire.down",
["action"] = "lunar_inspiration",
},
{
["enabled"] = true,
["criteria"] = "variable.need_bt & buff.bt_thrash.down",
["action"] = "thrash_cat",
},
},
["variable"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "energy + ( 40 * buff.clearcasting.stack ) + ( 3 * energy.regen ) + ( 50 * ( cooldown.tigers_fury.remains < 3.5 ) )",
["var_name"] = "effective_energy",
["description"] = "most expensive bt cycle is Shred + Thrash + Rake, 40+40+35 for 115 energy. During incarn it is 32+32+28 for 92energy",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ( 115 - variable.effective_energy - ( 23 * buff.incarnation.up ) ) / energy.regen )",
["var_name"] = "time_to_pool",
["description"] = "estimated time until we have enough energy to proc bloodtalons.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! talent.thrashing_claws.enabled & ( dot.thrash_cat.remains - dot.thrash_cat.duration * 0.3 <= 2 ) ) || ( talent.lunar_inspiration.enabled & ( dot.moonfire_cat.remains - dot.moonfire_cat.duration * 0.3 <= 2 ) ) || ( ( dot.rake.pmultiplier < 1.6 || buff.sudden_ambush.up ) & ( dot.rake.remains - dot.rake.duration * 0.3 <= 2 ) )",
["var_name"] = "dot_refresh_soon",
["description"] = "this returns true if we have a dot nearing pandemic range",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.bloodtalons.enabled & buff.bloodtalons.stack <= 1",
["var_name"] = "need_bt",
["description"] = "try to proc bt if we have 1 or 0 sacks of bloodtalons",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.clearcasting.stack = ( 1 + talent.moment_of_clarity.enabled )",
["var_name"] = "cc_capped",
["description"] = "capped on clearcasting stacks",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( cooldown.convoke_the_spirits.remains + cooldown.convoke_the_spirits.duration ) > fight_remains & cooldown.convoke_the_spirits.remains < fight_remains",
["var_name"] = "lastconvoke",
["description"] = "checks if theres exactly 1 convoke remaining in sim",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( cooldown.bs_inc.remains + cooldown.bs_inc.duration + 5 ) > fight_remains & cooldown.convoke_the_spirits.remains < fight_remains",
["var_name"] = "lastzerk",
["description"] = "checks if theres exactly 1 berserk cast remaining in sim : at least 5s spare for now, TODO: check #s",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( cooldown.potions.remains + cooldown.potions.duration + 15 ) > fight_remains & cooldown.potions.remains + 15 < fight_remains",
["var_name"] = "lastpotion",
["description"] = "approximates if theres exactly 1 potion cast remaining with duration to spare",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["value"] = "settings.regrowth",
["var_name"] = "regrowth",
["description"] = "optional variable that sends regrowth and renewal casts. Turned off by default",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "easy_swipe",
["description"] = "optional variable that forgoes shredding in AoE. Turned off by default",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.need_bt",
["var_name"] = "proccing_bt",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "moonfire_snapshotted",
["value"] = "buff.tigers_fury.up",
["description"] = "track moonfire snapshot",
["criteria"] = "prev.lunar_inspiration",
},
},
["cooldown"] = {
{
["enabled"] = true,
["criteria"] = "fight_remains > 17 || boss",
["action"] = "incarnation",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "non-stat on use trinkets get used on cooldown, so long as it wont interfere with a stat on-use trinket",
["criteria"] = "trinket.t1.has_use_damage & ( trinket.t2.cooldown.remains > 20 || ! variable.trinket_2_buffs )",
},
{
["enabled"] = true,
["criteria"] = "trinket.t2.has_use_damage & ( trinket.t1.cooldown.remains > 20 || ! variable.trinket_1_buffs )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "buff.tigers_fury.up & ( fight_remains > 12 || boss )",
["action"] = "berserk",
["description"] = "berserk with tigers fury",
},
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.up",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.up || boss & fight_remains < 32 || ( ! variable.lastzerk & variable.lastconvoke & cooldown.convoke_the_spirits.remains < 10 )",
["action"] = "potion",
["description"] = "todo make last set of cds line up again now that we know potions.remains is the syntax",
},
{
["enabled"] = true,
["description"] = "non trinket gear-on-uses have variable rules on whether or not they trigger the trinket shared CD. For the cases they do we will need specific APL entries. For now just use on cooldown.",
["action"] = "use_items",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "stat on-use trinkets, prefers trinket with higher priority.",
["criteria"] = "variable.trinket_1_buffs & ( buff.bs_inc.up || ( ( buff.tigers_fury.up & cooldown.tigers_fury.remains > 25 ) & ( cooldown.convoke_the_spirits.remains < 6 || ( variable.trinket_2_buffs & cooldown.convoke_the_spirits.remains - trinket.t2.cooldown.remains > 0 ) || ! talent.convoke_the_spirits.enabled & cooldown.bs_inc.remains - trinket.t2.cooldown.remains > 0 ) ) ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains & boss",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_2_buffs & ( buff.bs_inc.up || ( ( buff.tigers_fury.up & cooldown.tigers_fury.remains > 25 ) & ( cooldown.convoke_the_spirits.remains < 6 || ( variable.trinket_1_buffs & cooldown.convoke_the_spirits.remains - trinket.t1.cooldown.remains > 0 ) || ! talent.convoke_the_spirits.enabled & cooldown.bs_inc.remains - trinket.t1.cooldown.remains > 0 ) ) ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains & boss",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "combo_points <= 1 || buff.bs_inc.up & combo_points <= 2",
["action"] = "feral_frenzy",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 5 || ( cooldown.bs_inc.remains > 45 || buff.bs_inc.up || ! talent.berserk_heart_of_the_lion.enabled ) & ( buff.tigers_fury.up & ( combo_points <= 4 || buff.bs_inc.up & combo_points <= 3 ) & ( target.time_to_die > 5 - talent.ashamanes_guidance.enabled || boss ) )",
["action"] = "convoke_the_spirits",
["description"] = "always line up convoke with berserk if you can",
},
},
["finisher"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.primal_wrath > 1 & ( ( dot.primal_wrath.remains < 6.5 & ! buff.bs_inc.up || dot.primal_wrath.refreshable ) || ( ! talent.rampant_ferocity.enabled & ( spell_targets.primal_wrath > 1 & ! dot.bloodseeker_vines.ticking & ! buff.ravage.up || spell_targets.primal_wrath > 6 + talent.ravage.enabled ) ) )",
["action"] = "primal_wrath",
["description"] = "maintain/upgrade pws, if we have 6.5+s left on pw, we will instead bite if we have rampant ferocity talented. Without rampant, we will bite a vined target with 6 or fewer targets. If we have Ravage, we use specifically Ravage at 7 or fewer targets.",
},
{
["enabled"] = true,
["action"] = "rip",
["cycle_targets"] = 1,
["description"] = "rip if single target or pw isnt up. Rip with bloodtalons if talented. If tigers fury will be up before rip falls off, then delay refresh",
["criteria"] = "refreshable & ( ! talent.primal_wrath.enabled || spell_targets = 1 ) & ( buff.bloodtalons.up || ! talent.bloodtalons.enabled ) & ( buff.tigers_fury.up || dot.rip.remains < cooldown.tigers_fury.remains ) & ( remains < fight_remains || remains < 4 & buff.ravage.up )",
},
{
["enabled"] = true,
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["action"] = "ferocious_bite",
["cycle_targets"] = 1,
["max_energy"] = 1,
["criteria"] = "! buff.bs_inc.up",
},
{
["enabled"] = true,
["criteria"] = "buff.bs_inc.up",
["action"] = "ferocious_bite",
["cycle_targets"] = 1,
},
},
},
},
["Protection Paladin"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20271021,
["author"] = "SimC",
["desc"] = "2024-10-11, 10-21: Update from SimC\n\n2024-09-08: Restore mitigation action list\n\n2024-09-02, 09-04, 09-08: SimC update\n\n2024-08-11, 22: Update from SimC\n\n2024-07-23: The War Within",
["lists"] = {
["mitigation"] = {
{
["enabled"] = true,
["criteria"] = "tanking & buff.shield_of_the_righteous.down & ( holy_power.deficit = 0 || buff.divine_purpose.up )",
["action"] = "shield_of_the_righteous",
},
{
["enabled"] = true,
["criteria"] = "health.pct < wog_health & ( holy_power.deficit = 0 || buff.divine_purpose.up || buff.shining_light_free.up )",
["action"] = "word_of_glory",
},
{
["enabled"] = true,
["criteria"] = "talent.final_stand.enabled & tanking & incoming_damage_5s > ds_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "divine_shield",
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > goak_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "guardian_of_ancient_kings",
},
{
["enabled"] = true,
["criteria"] = "defensive_sentinel & tanking & incoming_damage_5s > goak_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "avenging_wrath",
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s > goak_damage & ! ( buff.ardent_defender.up || buff.guardian_of_ancient_kings.up || buff.divine_shield.up || buff.potion.up )",
["action"] = "ardent_defender",
},
{
["enabled"] = true,
["criteria"] = "health.pct < 15",
["action"] = "lay_on_hands",
},
},
["default"] = {
{
["action"] = "rebuke",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "mitigation",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "standard",
},
},
["precombat"] = {
{
["action"] = "devotion_aura",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
{
["action"] = "consecration",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t1.has_cooldown & trinket.t1.has_stat.any_dps & ( ! trinket.t2.has_stat.any_dps || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration ) || ! trinket.t2.has_cooldown",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t2.has_cooldown & trinket.t2.has_stat.any_dps & ( ! trinket.t1.has_stat.any_dps || trinket.t2.cooldown.duration > trinket.t1.cooldown.duration ) || ! trinket.t1.has_cooldown",
},
},
["cooldowns"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.lights_judgment >= 2 || ! raid_event.adds.exists || raid_event.adds.in > 75 || raid_event.adds.up",
["action"] = "lights_judgment",
},
{
["action"] = "avenging_wrath",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "( buff.avenging_wrath.remains < 15 || ( time > 10 ) )",
["action"] = "moment_of_glory",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.shield_of_the_righteous >= 3",
["action"] = "divine_toll",
},
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.up || cooldown.avenging_wrath.remains <= 30",
["action"] = "bastion_of_light",
},
{
["enabled"] = true,
["criteria"] = "buff.avenging_wrath.remains > 8",
["action"] = "fireblood",
},
},
["trinkets"] = {
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "( variable.trinket_sync_slot = 1 & ( buff.avenging_wrath.up || fight_remains <= 40 ) || ( variable.trinket_sync_slot = 2 & ( ! trinket.t2.cooldown.ready || ! buff.avenging_wrath.up ) ) || ! variable.trinket_sync_slot )",
["slots"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( variable.trinket_sync_slot = 2 & ( buff.avenging_wrath.up || fight_remains <= 40 ) || ( variable.trinket_sync_slot = 1 & ( ! trinket.t1.cooldown.ready || ! buff.avenging_wrath.up ) ) || ! variable.trinket_sync_slot )",
["slots"] = "trinket2",
},
},
["hammer_of_light"] = {
{
["enabled"] = true,
["criteria"] = "( buff.blessing_of_dawn.stack > 0 || ! talent.of_dusk_and_dawn.enabled ) || spell_targets.shield_of_the_righteous >= 5",
["action"] = "hammer_of_light",
},
{
["enabled"] = true,
["criteria"] = "hpg_to_2dawn = 5 || ! talent.of_dusk_and_dawn.enabled",
["action"] = "eye_of_tyr",
},
{
["enabled"] = true,
["criteria"] = "hpg_to_2dawn = 4",
["action"] = "shield_of_the_righteous",
},
{
["enabled"] = true,
["criteria"] = "hpg_to_2dawn = 1 || buff.blessing_of_dawn.stack > 0",
["action"] = "eye_of_tyr",
},
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
},
{
["action"] = "judgment",
["enabled"] = true,
},
{
["action"] = "blessed_hammer",
["enabled"] = true,
},
{
["action"] = "hammer_of_the_righteous",
["enabled"] = true,
},
{
["action"] = "crusader_strike",
["enabled"] = true,
},
{
["action"] = "divine_toll",
["enabled"] = true,
},
},
["standard"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.lights_guidance.enabled & ( cooldown.eye_of_tyr.remains < 2 || buff.hammer_of_light_ready.up ) & ( ! talent.redoubt.enabled || buff.redoubt.stack >= 2 || ! talent.bastion_of_light.enabled ) & ! buff.hammer_of_light_free.up",
["list_name"] = "hammer_of_light",
},
{
["enabled"] = true,
["criteria"] = "buff.hammer_of_light_free.remains < 2 || buff.shake_the_heavens.duration < 1 || ! buff.shake_the_heavens.up || cooldown.eye_of_tyr.remains < 1.5 || fight_remains < 2",
["action"] = "hammer_of_light",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.righteous_protector.enabled || cooldown.righteous_protector_icd.remains = 0 ) & ! buff.hammer_of_light_ready.up",
["action"] = "shield_of_the_righteous",
},
{
["enabled"] = true,
["criteria"] = "next_armament = sacred_weapon & ( ! buff.sacred_weapon.up || ( buff.sacred_weapon.remains < 6 & ! buff.avenging_wrath.up & cooldown.avenging_wrath.remains <= 30 ) )",
["action"] = "holy_armaments",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.shield_of_the_righteous > 3 & buff.bulwark_of_righteous_fury.stack >= 3 & holy_power < 3",
["action"] = "judgment",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "! buff.bulwark_of_righteous_fury.up & talent.bulwark_of_righteous_fury.enabled & spell_targets.shield_of_the_righteous >= 3",
["action"] = "avengers_shield",
},
{
["enabled"] = true,
["criteria"] = "buff.blessed_assurance.up & spell_targets.shield_of_the_righteous < 3 & ! buff.avenging_wrath.up",
["action"] = "hammer_of_the_righteous",
},
{
["enabled"] = true,
["criteria"] = "buff.blessed_assurance.up & spell_targets.shield_of_the_righteous < 3 & ! buff.avenging_wrath.up",
["action"] = "blessed_hammer",
},
{
["enabled"] = true,
["criteria"] = "buff.blessed_assurance.up & spell_targets.shield_of_the_righteous < 2 & ! buff.avenging_wrath.up",
["action"] = "crusader_strike",
},
{
["enabled"] = true,
["criteria"] = "charges >= 2 || full_recharge_time <= gcd.max",
["action"] = "judgment",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.divine_guidance.stack = 5",
["action"] = "consecration",
},
{
["action"] = "hammer_of_wrath",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "next_armament = holy_bulwark & charges = 2",
["action"] = "holy_armaments",
},
{
["enabled"] = true,
["criteria"] = "( ! raid_event.adds.exists || raid_event.adds.in > 10 )",
["action"] = "divine_toll",
},
{
["enabled"] = true,
["action"] = "judgment",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "buff.blessed_assurance.up & spell_targets.shield_of_the_righteous < 3",
["action"] = "hammer_of_the_righteous",
},
{
["enabled"] = true,
["criteria"] = "buff.blessed_assurance.up & spell_targets.shield_of_the_righteous < 3",
["action"] = "blessed_hammer",
},
{
["enabled"] = true,
["criteria"] = "buff.blessed_assurance.up & spell_targets.shield_of_the_righteous < 2",
["action"] = "crusader_strike",
},
{
["enabled"] = true,
["action"] = "avengers_shield",
["description"] = "In single target, Templar should prioritize maintaining Shake the Heavens by casting spells listed in Higher Calling.",
["criteria"] = "! talent.lights_guidance.enabled",
},
{
["enabled"] = true,
["criteria"] = "! consecration.up",
["action"] = "consecration",
},
{
["enabled"] = true,
["criteria"] = "( talent.inmost_light.enabled & raid_event.adds.in >= 45 || spell_targets.shield_of_the_righteous >= 3 ) & ! talent.lights_deliverance.enabled",
["action"] = "eye_of_tyr",
},
{
["enabled"] = true,
["criteria"] = "next_armament = holy_bulwark",
["action"] = "holy_armaments",
},
{
["action"] = "blessed_hammer",
["enabled"] = true,
},
{
["action"] = "hammer_of_the_righteous",
["enabled"] = true,
},
{
["action"] = "crusader_strike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.shining_light_free.up & ( talent.blessed_assurance.enabled || ( talent.lights_guidance.enabled & cooldown.hammerfall_icd.remains = 0 ) )",
["action"] = "word_of_glory",
},
{
["action"] = "avengers_shield",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.lights_deliverance.enabled",
["action"] = "eye_of_tyr",
},
{
["enabled"] = true,
["criteria"] = "buff.shining_light_free.up",
["action"] = "word_of_glory",
},
{
["enabled"] = true,
["criteria"] = "holy_power < 5",
["action"] = "arcane_torrent",
},
{
["action"] = "consecration",
["enabled"] = true,
},
},
},
["version"] = 20271021,
["warnings"] = "The import for 'precombat' required some automated changes.\nLine 5: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 5: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 5: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 5: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 5: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 6: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 6: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 6: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 6: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 6: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 1: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 2: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 2: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\n\nImported 7 action lists.\n",
["spec"] = 66,
["profile"] = "## actions.precombat+=/rite_of_sanctification\n## actions.precombat+=/rite_of_adjuration\nactions.precombat+=/devotion_aura\nactions.precombat+=/lights_judgment\nactions.precombat+=/arcane_torrent\nactions.precombat+=/consecration\nactions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_cooldown&trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)||!trinket.2.has_cooldown\nactions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_cooldown&trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps||trinket.2.cooldown.duration>trinket.1.cooldown.duration)||!trinket.1.has_cooldown\n\nactions+=/rebuke\nactions+=/call_action_list,name=cooldowns\nactions+=/call_action_list,name=mitigation\nactions+=/call_action_list,name=trinkets\nactions+=/call_action_list,name=standard\n\nactions.cooldowns+=/lights_judgment,if=spell_targets.lights_judgment>=2||!raid_event.adds.exists||raid_event.adds.in>75||raid_event.adds.up\nactions.cooldowns+=/avenging_wrath\nactions.cooldowns+=/potion,if=buff.avenging_wrath.up\nactions.cooldowns+=/moment_of_glory,if=(buff.avenging_wrath.remains<15||(time>10))\nactions.cooldowns+=/divine_toll,if=spell_targets.shield_of_the_righteous>=3\nactions.cooldowns+=/bastion_of_light,if=buff.avenging_wrath.up||cooldown.avenging_wrath.remains<=30\n## actions.cooldowns+=/invoke_external_buff,name=power_infusion,if=buff.avenging_wrath.up\nactions.cooldowns+=/fireblood,if=buff.avenging_wrath.remains>8\n\nactions.mitigation+=/shield_of_the_righteous,if=tanking&buff.shield_of_the_righteous.down&(holy_power.deficit=0||buff.divine_purpose.up)\nactions.mitigation+=/word_of_glory,if=health.pct<wog_health&(holy_power.deficit=0||buff.divine_purpose.up||buff.shining_light_free.up)\nactions.mitigation+=/divine_shield,if=talent.final_stand.enabled&tanking&incoming_damage_5s>ds_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/guardian_of_ancient_kings,if=tanking&incoming_damage_5s>goak_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/sentinel,if=defensive_sentinel&tanking&incoming_damage_5s>goak_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/ardent_defender,if=tanking&incoming_damage_5s>goak_damage&!(buff.ardent_defender.up||buff.guardian_of_ancient_kings.up||buff.divine_shield.up||buff.potion.up)\nactions.mitigation+=/lay_on_hands,if=health.pct<15\n\nactions.standard+=/call_action_list,name=hammer_of_light,if=talent.lights_guidance.enabled&(cooldown.eye_of_tyr.remains<2||buff.hammer_of_light_ready.up)&(!talent.redoubt.enabled||buff.redoubt.stack>=2||!talent.bastion_of_light.enabled)&!buff.hammer_of_light_free.up\nactions.standard+=/hammer_of_light,if=buff.hammer_of_light_free.remains<2||buff.shake_the_heavens.duration<1||!buff.shake_the_heavens.up||cooldown.eye_of_tyr.remains<1.5||fight_remains<2\nactions.standard+=/shield_of_the_righteous,if=(!talent.righteous_protector.enabled||cooldown.righteous_protector_icd.remains=0)&!buff.hammer_of_light_ready.up\nactions.standard+=/holy_armaments,if=next_armament=sacred_weapon&(!buff.sacred_weapon.up||(buff.sacred_weapon.remains<6&!buff.avenging_wrath.up&cooldown.avenging_wrath.remains<=30))\nactions.standard+=/judgment,cycle_targets=1,if=spell_targets.shield_of_the_righteous>3&buff.bulwark_of_righteous_fury.stack>=3&holy_power<3\nactions.standard+=/avengers_shield,if=!buff.bulwark_of_righteous_fury.up&talent.bulwark_of_righteous_fury.enabled&spell_targets.shield_of_the_righteous>=3\nactions.standard+=/hammer_of_the_righteous,if=buff.blessed_assurance.up&spell_targets.shield_of_the_righteous<3&!buff.avenging_wrath.up\nactions.standard+=/blessed_hammer,if=buff.blessed_assurance.up&spell_targets.shield_of_the_righteous<3&!buff.avenging_wrath.up\nactions.standard+=/crusader_strike,if=buff.blessed_assurance.up&spell_targets.shield_of_the_ri
},
["Affliction"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241021,
["spec"] = 265,
["desc"] = "2024-10-21: SimC / revisions\n\n2024-08-30, 09-02, 09-08: SimC update\n\n2024-08-26: Revise variables\n\n2024-08-24: SimC priority update\n\n2024-08-06: Allow Darkglare if PS/VT get wasted\n\n2024-08-04: Oblivion; improve efficiency\n\n2024-07-23: The War Within (sort of)",
["profile"] = "actions.precombat=fel_domination,if=time>0&!pet.alive\nactions.precombat+=/summon_pet\nactions.precombat+=/variable,name=cleave_apl,value=toggle.funnel\n# Used to set Trinket in slot 1 as Buff Trinkets for the automatic logic\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff\n# Used to set Trinkets in slot 2 as Buff Trinkets for the automatic logic\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff\n# Automatic Logic for Buff Trinkets in Trinket Slot 1\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.soul_rot.duration=0||cooldown.soul_rot.duration%%trinket.1.cooldown.duration=0)\n# Automatic Logic for Buff Trinkets in Trinket Slot 2\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.soul_rot.duration=0||cooldown.soul_rot.duration%%trinket.2.cooldown.duration=0)\n# Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.spymasters_web||trinket.1.is.aberrant_spellforge\n# Sets a specific Trinkets in Slot 2 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.spymasters_web||trinket.2.is.aberrant_spellforge\n# For On Use Trinkets on slot 1 with on use effects you dont want to use in combat\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell\n# For On Use Trinkets on Slot 2 with on use effects you don't want to use in combat\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell\n# Sets the duration of Trinket 1 in the automatic logic\nactions.precombat+=/variable,name=trinket_1_buff_duration,value=trinket.1.proc.any_dps.duration+(trinket.1.is.mirror_of_fractured_tomorrows*20)\n# Sets the duration of Trinket 2 in the automatic logic\nactions.precombat+=/variable,name=trinket_2_buff_duration,value=trinket.2.proc.any_dps.duration+(trinket.2.is.mirror_of_fractured_tomorrows*20)\n# Automatic Logic in case of 2 On Use Buff Trinkets\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%variable.trinket_2_buff_duration)*(1+0.5*trinket.2.has_buff.intellect)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%variable.trinket_1_buff_duration)*(1+0.5*trinket.1.has_buff.intellect)*(variable.trinket_1_sync))\nactions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled\nactions.precombat+=/seed_of_corruption,if=spell_targets.seed_of_corruption_aoe>2||spell_targets.seed_of_corruption_aoe>1&talent.demonic_soul\nactions.precombat+=/haunt\n\nactions+=/spell_lock\nactions+=/call_action_list,name=variables\nactions+=/call_action_list,name=ogcd\nactions+=/call_action_list,name=items\n# This entry is manually translated and will differ from SIMC, but maintains the same functionality.\nactions+=/call_action_list,name=cleave,if=active_enemies=2||active_enemies>2&variable.cleave_apl\nactions+=/call_action_list,name=aoe,if=active_enemies>2\nactions+=/call_action_list,name=end_of_fight\nactions+=/agony,if=(!talent.vile_taint||remains<cooldown.vile_taint.remains+action.vile_taint.cast_time)&(talent.absolute_corruption&remains<3||!talent.absolute_corruption&remains<5||cooldown.soul_rot.remains<5&remains<8)&fight_remains>dot.agony.remains+5\nactions+=/haunt,if=talent.demonic_soul&buff.nightfall.stack<2-prev_gcd.1.drain_soul&(!talent.vile_taint||cooldown.vile_taint.remains)\nactions+=/unstable_affliction,if=(active_dot.unstable_affliction=0||ticking)&(talent.absolute_corruption&remains<3||!talent.absolute_corruption&remains<5||cooldown.soul_rot.remains<5&remains<8)&(!talent.demonic_soul||buff.nightfall.stack<2||prev_gcd.1.haunt&buff.nightfall.stack<2)&fight_remains>
["version"] = 20241021,
["warnings"] = "The import for 'cleave' required some automated changes.\nLine 2: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 2: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 4: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 4: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 5: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 7: Converted 'talent.wither' to 'talent.wither.enabled' (1x).\nLine 8: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 9: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 13: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 14: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 15: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 15: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 16: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 17: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 17: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 17: Converted 'talent.oblivion' to 'talent.oblivion.enabled' (1x).\nLine 18: Converted 'talent.tormented_crescendo' to 'talent.tormented_crescendo.enabled' (1x).\nLine 19: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 19: Converted 'talent.phantom_singularity' to 'talent.phantom_singularity.enabled' (1x).\nLine 19: Converted 'talent.wither' to 'talent.wither.enabled' (1x).\nLine 19: Converted 'talent.oblivion' to 'talent.oblivion.enabled' (1x).\nLine 20: Converted 'talent.tormented_crescendo' to 'talent.tormented_crescendo.enabled' (1x).\nLine 20: Converted 'talent.nightfall' to 'talent.nightfall.enabled' (1x).\nLine 20: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\nLine 20: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 21: Converted 'talent.demonic_soul' to 'talent.demonic_soul.enabled' (1x).\n\nThe import for 'variables' required some automated changes.\nLine 1: Converted 'talent.phantom_singularity' to 'talent.phantom_singularity.enabled' (1x).\nLine 2: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 3: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 3: Converted 'talent.phantom_singularity' to 'talent.phantom_singularity.enabled' (1x).\nLine 4: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 6: Converted 'talent.phantom_singularity' to 'talent.phantom_singularity.enabled' (1x).\nLine 6: Converted 'talent.vile_taint' to 'talent.vile_taint.enabled' (1x).\nLine 6: Converted 'talent.soul_rot' to 'talent.soul_rot.enabled' (1x).\nLine 6: Converted 'talent.summon_darkglare' to 'talent.summon_darkglare.enabled' (1x).\nLine 7: Converted 'talent.summon_darkglare' to 'talent.summon_darkglare.enabled' (1x).\n\nThe import for 'se_maintenance' required some automated changes.\nLine 1: Converted 'talent.shadow_embrace' to 'talent.shadow_embrace.enabled' (1x).\nLine 1: Converted 'talent.drain_soul' to 'talent.drain_soul.enabled' (1x).\nLine 2: Converted 'talent.shadow_embrace' to 'talent.shadow_embrace.enabled' (1x).\n\nThe import for 'items' required some automated changes.\nLine 2: Converted 'talent.drain_soul' to 'talent.drain_soul.enabled' (1x).\nLine 3: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 3: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldow
["author"] = "SimC",
["lists"] = {
["cleave"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "boss",
["list_name"] = "end_of_fight",
},
{
["enabled"] = true,
["criteria"] = "refreshable & ( remains < cooldown.vile_taint.remains + action.vile_taint.cast_time || ! talent.vile_taint.enabled ) & ( remains < gcd.max * 2 || talent.demonic_soul.enabled & remains < cooldown.soul_rot.remains + 8 & cooldown.soul_rot.remains < 5 ) & fight_remains > remains + 5",
["action"] = "agony",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "refreshable & remains < 5 & ! ( action.seed_of_corruption.in_flight || dot.seed_of_corruption.remains > 0 ) & fight_remains > remains + 5",
["action"] = "wither",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & buff.nightfall.stack < 2 - prev_gcd.1.drain_soul & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains ) || debuff.haunt.remains < 3",
["action"] = "haunt",
},
{
["enabled"] = true,
["criteria"] = "( remains < 5 || talent.demonic_soul.enabled & remains < cooldown.soul_rot.remains + 8 & cooldown.soul_rot.remains < 5 ) & fight_remains > remains + 5",
["action"] = "unstable_affliction",
},
{
["enabled"] = true,
["criteria"] = "refreshable & remains < 5 & ! ( action.seed_of_corruption.in_flight || dot.seed_of_corruption.remains > 0 ) & fight_remains > remains + 5",
["action"] = "corruption",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.wither.enabled",
["list_name"] = "cleave_se_maintenance",
},
{
["enabled"] = true,
["criteria"] = "! talent.soul_rot.enabled || ( variable.min_agony < 1.5 || cooldown.soul_rot.remains <= execute_time + gcd.max ) || cooldown.soul_rot.remains >= 20",
["action"] = "vile_taint",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.soul_rot.enabled || cooldown.soul_rot.remains < 4 || fight_remains < cooldown.soul_rot.remains ) & active_dot.agony = 2",
["action"] = "phantom_singularity",
},
{
["enabled"] = true,
["criteria"] = "variable.vt_ps_up",
["action"] = "malevolence",
},
{
["enabled"] = true,
["criteria"] = "( variable.vt_ps_up ) & active_dot.agony = 2",
["action"] = "soul_rot",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_dots_up",
["action"] = "summon_darkglare",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.demonic_soul.enabled",
["list_name"] = "opener_cleave_se",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "talent.demonic_soul.enabled",
["list_name"] = "cleave_se_maintenance",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 4 & ( talent.demonic_soul.enabled & buff.nightfall.stack < 2 || ! talent.demonic_soul.enabled ) || buff.tormented_crescendo.stack > 1",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & buff.nightfall.up & buff.tormented_crescendo.stack < 2 & target.health.pct < 20",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & ( soul_shard > 1 || buff.tormented_crescendo.up & cooldown.soul_rot.remains > buff.tormented_crescendo.remains * gcd.max ) & ( ! talent.vile_taint.enabled || soul_shard > 1 & cooldown.vile_taint.remains > 10 ) & ( ! talent.oblivion.enabled || cooldown.oblivion.remains > 10 || soul_shard > 2 & cooldown.oblivion.remains < 10 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & buff.tormented_crescendo.up & ( buff.tormented_crescendo.remains < gcd.max * 2 || buff.tormented_crescendo.stack = 2 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "( variable.cd_dots_up || ( talent.demonic_soul.enabled || talent.phantom_singularity.enabled ) & variable.vt_ps_up || talent.wither.enabled & variable.vt_ps_up & ! dot.soul_rot.remains & soul_shard > 1 ) & ( ! talent.oblivion.enabled || cooldown.oblivion.remains > 10 || soul_shard > 2 & cooldown.oblivion.remains < 10 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & talent.nightfall.enabled & buff.tormented_crescendo.up & buff.nightfall.up || talent.demonic_soul.enabled & ! buff.nightfall.up & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains > 10 || soul_shard > 1 & cooldown.vile_taint.remains < 10 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "! talent.demonic_soul.enabled & buff.tormented_crescendo.up",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "refreshable || cooldown.soul_rot.remains < 5 & remains < 8",
["action"] = "agony",
},
{
["enabled"] = true,
["criteria"] = "refreshable || cooldown.soul_rot.remains < 5 & remains < 8",
["action"] = "unstable_affliction",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "wither",
},
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "corruption",
},
{
["enabled"] = true,
["action"] = "drain_soul",
["interrupt_if"] = "tick_time>0.5",
["early_chain_if"] = "buff.nightfall.up",
["chain"] = "1",
},
{
["action"] = "shadow_bolt",
["enabled"] = true,
},
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive",
["action"] = "fel_domination",
},
{
["action"] = "summon_pet",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "toggle.funnel",
["var_name"] = "cleave_apl",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff",
["var_name"] = "trinket_1_buffs",
["description"] = "Used to set Trinket in slot 1 as Buff Trinkets for the automatic logic",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff",
["var_name"] = "trinket_2_buffs",
["description"] = "Used to set Trinkets in slot 2 as Buff Trinkets for the automatic logic",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Automatic Logic for Buff Trinkets in Trinket Slot 1",
["value"] = "1",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.soul_rot.duration = 0 || cooldown.soul_rot.duration % trinket.t1.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Automatic Logic for Buff Trinkets in Trinket Slot 2",
["value"] = "1",
["var_name"] = "trinket_2_sync",
["action"] = "variable",
["value_else"] = "0.5",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.soul_rot.duration = 0 || cooldown.soul_rot.duration % trinket.t2.cooldown.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.spymasters_web || trinket.t1.is.aberrant_spellforge",
["var_name"] = "trinket_1_manual",
["description"] = " Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.spymasters_web || trinket.t2.is.aberrant_spellforge",
["var_name"] = "trinket_2_manual",
["description"] = " Sets a specific Trinkets in Slot 2 to follow an APL line and not the automatic logic",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell",
["var_name"] = "trinket_1_exclude",
["description"] = "For On Use Trinkets on slot 1 with on use effects you dont want to use in combat",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell",
["var_name"] = "trinket_2_exclude",
["description"] = "For On Use Trinkets on Slot 2 with on use effects you don't want to use in combat",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.buff_duration + ( trinket.t1.is.mirror_of_fractured_tomorrows * 20 )",
["var_name"] = "trinket_1_buff_duration",
["description"] = " Sets the duration of Trinket 1 in the automatic logic",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.buff_duration + ( trinket.t2.is.mirror_of_fractured_tomorrows * 20 )",
["var_name"] = "trinket_2_buff_duration",
["description"] = " Sets the duration of Trinket 2 in the automatic logic",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Automatic Logic in case of 2 On Use Buff Trinkets",
["value"] = "2",
["var_name"] = "trinket_priority",
["action"] = "variable",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / variable.trinket_2_buff_duration ) * ( 1 + 0.5 * trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / variable.trinket_1_buff_duration ) * ( 1 + 0.5 * trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
},
{
["enabled"] = true,
["criteria"] = "talent.grimoire_of_sacrifice.enabled",
["action"] = "grimoire_of_sacrifice",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.seed_of_corruption_aoe > 2 || spell_targets.seed_of_corruption_aoe > 1 & talent.demonic_soul.enabled",
["action"] = "seed_of_corruption",
},
{
["action"] = "haunt",
["enabled"] = true,
},
},
["se_maintenance"] = {
{
["enabled"] = true,
["criteria"] = "talent.shadow_embrace.enabled & talent.drain_soul.enabled & ( debuff.shadow_embrace.stack < debuff.shadow_embrace.max_stack || debuff.shadow_embrace.remains < 3 ) & active_enemies <= 4 & target.time_to_die > 15",
["interrupt_if"] = "debuff.shadow_embrace.stack=debuff.shadow_embrace.max_stack",
["interrupt"] = "1",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "talent.shadow_embrace.enabled & ( ( debuff.shadow_embrace.stack + ( action.shadow_bolt.time_since < 1 ) ) < debuff.shadow_embrace.max_stack || debuff.shadow_embrace.remains < 3 & ! action.shadow_bolt.in_flight_to_target ) & active_enemies <= 4 & target.time_to_die > 15",
["action"] = "shadow_bolt",
},
},
["items"] = {
{
["enabled"] = true,
["action"] = "aberrant_spellforge",
["use_off_gcd"] = 1,
["criteria"] = "gcd.remains > gcd.max * 0.8",
["name"] = "aberrant_spellforge",
},
{
["enabled"] = true,
["name"] = "spymasters_web",
["action"] = "spymasters_web",
["criteria"] = "variable.cd_dots_up & ( buff.spymasters_report.stack >= 38 || boss & fight_remains <= 80 || talent.drain_soul.enabled & target.health.pct < 20 ) || boss & fight_remains < 20",
},
{
["enabled"] = true,
["criteria"] = "( variable.cds_active ) & ( variable.trinket_priority = 1 || variable.trinket_2_exclude || ! trinket.t2.has_cooldown || ( trinket.t2.cooldown.remains || variable.trinket_priority = 2 & cooldown.summon_darkglare.remains > 20 & ! pet.darkglare.active & trinket.t2.cooldown.remains < cooldown.summon_darkglare.remains ) ) & variable.trinket_1_buffs & ! variable.trinket_1_manual || ( variable.trinket_1_buff_duration + 1 >= fight_remains )",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "( variable.cds_active ) & ( variable.trinket_priority = 2 || variable.trinket_1_exclude || ! trinket.t1.has_cooldown || ( trinket.t1.cooldown.remains || variable.trinket_priority = 1 & cooldown.summon_darkglare.remains > 20 & ! pet.darkglare.active & trinket.t1.cooldown.remains < cooldown.summon_darkglare.remains ) ) & variable.trinket_2_buffs & ! variable.trinket_2_manual || ( variable.trinket_2_buff_duration + 1 >= fight_remains )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = false,
["criteria"] = "variable.cds_active || boss & fight_remains < 15 || ( ( trinket.t1.cooldown.duration < cooldown.summon_darkglare.remains_expected + 5 ) & active_enemies = 1 ) || ( active_enemies > 1 & havoc_active )",
["name"] = "time_thiefs_gambit",
},
{
["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 ) || talent.summon_darkglare.enabled & cooldown.summon_darkglare.remains_expected > 20 || ! talent.summon_darkglare.enabled )",
},
{
["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 ) || talent.summon_darkglare.enabled & cooldown.summon_darkglare.remains_expected > 20 || ! talent.summon_darkglare.enabled )",
},
{
["use_off_gcd"] = 1,
["enabled"] = true,
["action"] = "main_hand",
["slot"] = "main_hand",
},
},
["opener_cleave_se"] = {
{
["enabled"] = true,
["interrupt_if"] = "debuff.shadow_embrace.stack=debuff.shadow_embrace.max_stack",
["action"] = "drain_soul",
["criteria"] = "talent.shadow_embrace.enabled & talent.drain_soul.enabled & buff.nightfall.up & ( debuff.shadow_embrace.stack < debuff.shadow_embrace.max_stack || debuff.shadow_embrace.remains < 3 ) & ( target.time_to_die > 15 || time < 20 )",
},
},
["default"] = {
{
["action"] = "spell_lock",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "variables",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "ogcd",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "This entry is manually translated and will differ from SIMC, but maintains the same functionality.",
["criteria"] = "active_enemies = 2 || active_enemies > 2 & variable.cleave_apl",
["list_name"] = "cleave",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "active_enemies > 2",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "end_of_fight",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.vile_taint.enabled || remains < cooldown.vile_taint.remains + action.vile_taint.cast_time ) & ( talent.absolute_corruption.enabled & remains < 3 || ! talent.absolute_corruption.enabled & remains < 5 || cooldown.soul_rot.remains < 5 & remains < 8 ) & fight_remains > dot.agony.remains + 5",
["action"] = "agony",
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & buff.nightfall.stack < 2 - prev_gcd.1.drain_soul & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains )",
["action"] = "haunt",
},
{
["enabled"] = true,
["criteria"] = "( active_dot.unstable_affliction = 0 || ticking ) & ( talent.absolute_corruption.enabled & remains < 3 || ! talent.absolute_corruption.enabled & remains < 5 || cooldown.soul_rot.remains < 5 & remains < 8 ) & ( ! talent.demonic_soul.enabled || buff.nightfall.stack < 2 || prev_gcd.1.haunt & buff.nightfall.stack < 2 ) & fight_remains > dot.unstable_affliction.remains + 5",
["action"] = "unstable_affliction",
},
{
["enabled"] = true,
["criteria"] = "( talent.absolute_corruption.enabled & debuff.haunt.remains < 3 || ! talent.absolute_corruption.enabled & debuff.haunt.remains < 5 || cooldown.soul_rot.remains < 5 & debuff.haunt.remains < 8 ) & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains ) & fight_remains > debuff.haunt.remains + 5",
["action"] = "haunt",
},
{
["enabled"] = true,
["criteria"] = "talent.wither.enabled & ! ( action.seed_of_corruption.in_flight || active_dot.seed_of_corruption > 0 ) & ( talent.absolute_corruption.enabled & remains < 3 || ! talent.absolute_corruption.enabled & remains < 5 ) & fight_remains > dot.wither.remains + 5",
["action"] = "wither",
},
{
["enabled"] = true,
["criteria"] = "! ( action.seed_of_corruption.in_flight || active_dot.seed_of_corruption > 0 ) & refreshable & fight_remains > dot.corruption.remains + 5",
["action"] = "corruption",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up & ( buff.nightfall.stack > 1 || buff.nightfall.remains < execute_time * 2 ) & ! buff.tormented_crescendo.up & cooldown.soul_rot.remains & soul_shard < 5 - buff.tormented_crescendo.up & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains )",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up & ( buff.nightfall.stack > 1 || buff.nightfall.remains < execute_time * 2 ) & buff.tormented_crescendo.stack < 2 & cooldown.soul_rot.remains & soul_shard < 5 - buff.tormented_crescendo.up & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains )",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.wither.enabled",
["list_name"] = "se_maintenance",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.soul_rot.enabled || cooldown.soul_rot.remains > 20 || cooldown.soul_rot.remains <= execute_time + gcd.max || boss & fight_remains < cooldown.soul_rot.remains ) & dot.agony.remains & ( dot.corruption.remains || dot.wither.remains ) & dot.unstable_affliction.remains",
["action"] = "vile_taint",
},
{
["enabled"] = true,
["criteria"] = "( ! talent.soul_rot.enabled || cooldown.soul_rot.remains < 4 || boss & fight_remains < cooldown.soul_rot.remains ) & dot.agony.remains & ( dot.corruption.remains || dot.wither.remains ) & dot.unstable_affliction.remains",
["action"] = "phantom_singularity",
},
{
["enabled"] = true,
["criteria"] = "variable.vt_ps_up",
["action"] = "malevolence",
},
{
["enabled"] = true,
["criteria"] = "variable.vt_ps_up",
["action"] = "soul_rot",
},
{
["enabled"] = true,
["criteria"] = "variable.cd_dots_up & ( debuff.shadow_embrace.stack = debuff.shadow_embrace.max_stack )",
["action"] = "summon_darkglare",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "talent.demonic_soul.enabled",
["list_name"] = "se_maintenance",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 4 & ( talent.demonic_soul.enabled & buff.nightfall.stack < 2 || ! talent.demonic_soul.enabled ) || buff.tormented_crescendo.stack > 1",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & buff.nightfall.up & buff.tormented_crescendo.stack < 2 & target.health.pct < 20",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & ( soul_shard > 1 || buff.tormented_crescendo.up & cooldown.soul_rot.remains > buff.tormented_crescendo.remains * gcd.max ) & ( ! talent.vile_taint.enabled || soul_shard > 1 & cooldown.vile_taint.remains > 10 ) & ( ! talent.oblivion.enabled || cooldown.oblivion.remains > 10 || soul_shard > 2 & cooldown.oblivion.remains < 10 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "dot.agony.remains & ( dot.corruption.remains || dot.wither.remains ) & dot.unstable_affliction.remains & debuff.haunt.remains > 5",
["action"] = "oblivion",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & buff.tormented_crescendo.up & ( buff.tormented_crescendo.remains < gcd.max * 2 || buff.tormented_crescendo.stack = 2 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "( variable.cd_dots_up || ( talent.demonic_soul.enabled || talent.phantom_singularity.enabled ) & variable.vt_ps_up || talent.wither.enabled & variable.vt_ps_up & ! dot.soul_rot.remains & soul_shard > 2 ) & ( ! talent.oblivion.enabled || cooldown.oblivion.remains > 10 || soul_shard > 2 & cooldown.oblivion.remains < 10 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & talent.nightfall.enabled & buff.tormented_crescendo.up & buff.nightfall.up || talent.demonic_soul.enabled & ! buff.nightfall.up & ( ! talent.vile_taint.enabled || cooldown.vile_taint.remains > 10 || soul_shard > 1 & cooldown.vile_taint.remains < 10 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "! talent.demonic_soul.enabled & buff.tormented_crescendo.up",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up",
["action"] = "shadow_bolt",
},
{
["enabled"] = true,
["criteria"] = "refreshable",
["action"] = "agony",
},
{
["enabled"] = true,
["criteria"] = "( active_dot.unstable_affliction = 0 || ticking ) & refreshable",
["action"] = "unstable_affliction",
},
{
["enabled"] = true,
["action"] = "drain_soul",
["interrupt_if"] = "tick_time>0.5",
["early_chain_if"] = "buff.nightfall.up",
["chain"] = "1",
},
{
["action"] = "shadow_bolt",
["enabled"] = true,
},
},
["cleave_se_maintenance"] = {
{
["enabled"] = true,
["action"] = "drain_soul",
["cycle_targets"] = 1,
["interrupt_if"] = "debuff.shadow_embrace.stack>3",
["criteria"] = "talent.shadow_embrace.enabled & talent.drain_soul.enabled & ( talent.wither.enabled || talent.demonic_soul.enabled & buff.nightfall.up ) & ( debuff.shadow_embrace.stack < debuff.shadow_embrace.max_stack || debuff.shadow_embrace.remains < 3 ) & fight_remains > 15",
},
{
["enabled"] = true,
["criteria"] = "talent.shadow_embrace.enabled & ! talent.drain_soul.enabled & ( ( debuff.shadow_embrace.stack + action.shadow_bolt.in_flight_to_target_count ) < debuff.shadow_embrace.max_stack || debuff.shadow_embrace.remains < 3 & ! action.shadow_bolt.in_flight_to_target ) & fight_remains > 15",
["action"] = "shadow_bolt",
["cycle_targets"] = 1,
},
},
["variables"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.phantom_singularity.enabled || dot.phantom_singularity.up",
["var_name"] = "ps_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.vile_taint.enabled || dot.vile_taint_dot.up",
["var_name"] = "vt_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! talent.vile_taint.enabled & ! talent.phantom_singularity.enabled ) || dot.vile_taint_dot.up || dot.phantom_singularity.up",
["var_name"] = "vt_ps_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! talent.soul_rot.enabled || dot.soul_rot.up",
["var_name"] = "sr_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.ps_up & variable.vt_up & variable.sr_up",
["var_name"] = "cd_dots_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.phantom_singularity.enabled || talent.vile_taint.enabled || talent.soul_rot.enabled || talent.summon_darkglare.enabled",
["var_name"] = "has_cds",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "! variable.has_cds || ( variable.cd_dots_up & ( ! talent.summon_darkglare.enabled || cooldown.summon_darkglare.remains > 20 || pet.darkglare.remains ) )",
["var_name"] = "cds_active",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "min_vt",
["criteria"] = "variable.min_vt",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "min_ps",
["criteria"] = "variable.min_ps",
},
},
["end_of_fight"] = {
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & ( boss & fight_remains < 5 & buff.nightfall.up || prev_gcd.1.haunt & buff.nightfall.stack = 2 & ! buff.tormented_crescendo.up )",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 1 & boss & fight_remains < ( soul_shard + buff.tormented_crescendo.up ) * gcd.max + execute_time",
["action"] = "oblivion",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 4 & ( ! talent.demonic_soul.enabled || talent.demonic_soul.enabled & buff.nightfall.stack < 1 )",
["action"] = "malefic_rapture",
},
},
["aoe"] = {
{
["enabled"] = true,
["op"] = "min",
["action"] = "variable",
["value"] = "dot.agony.remains",
["var_name"] = "min_agony",
["default"] = "0",
},
{
["enabled"] = true,
["op"] = "min",
["action"] = "variable",
["value"] = "dot.vile_taint.remains",
["var_name"] = "min_vt",
["default"] = "10",
},
{
["enabled"] = true,
["op"] = "min",
["action"] = "variable",
["value"] = "dot.phantom_singularity.remains",
["var_name"] = "min_ps",
["default"] = "16",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( variable.min_vt * talent.vile_taint.enabled ) <? ( variable.min_ps * talent.phantom_singularity.enabled )",
["var_name"] = "min_ps1",
},
{
["enabled"] = true,
["criteria"] = "debuff.haunt.remains < 3",
["action"] = "haunt",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.soul_rot.remains <= execute_time || cooldown.soul_rot.remains >= 25 )",
["action"] = "vile_taint",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.soul_rot.remains <= execute_time || cooldown.soul_rot.remains >= 25 ) & dot.agony.remains",
["action"] = "phantom_singularity",
},
{
["enabled"] = true,
["criteria"] = "( active_dot.unstable_affliction = 0 || ticking ) & remains < 5",
["action"] = "unstable_affliction",
},
{
["enabled"] = true,
["criteria"] = "active_dot.agony < 8 & ( remains < cooldown.vile_taint.remains + action.vile_taint.cast_time || ! talent.vile_taint.enabled ) & gcd.max + action.soul_rot.cast_time + gcd.max < ( ( variable.min_vt * talent.vile_taint.enabled ) <? ( variable.min_ps * talent.phantom_singularity.enabled ) ) & remains < 10",
["action"] = "agony",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.vt_up & ( variable.ps_up || variable.vt_up ) & dot.agony.remains",
["action"] = "soul_rot",
},
{
["enabled"] = true,
["criteria"] = "variable.ps_up & variable.vt_up & variable.sr_up",
["action"] = "malevolence",
},
{
["enabled"] = true,
["criteria"] = "( ( ! talent.wither.enabled & dot.corruption.remains < 5 ) || ( talent.wither.enabled & dot.wither.remains < 5 ) ) & ! ( action.seed_of_corruption.in_flight || active_dot.seed_of_corruption > 0 )",
["action"] = "seed_of_corruption",
},
{
["enabled"] = true,
["criteria"] = "remains < 5 & ! talent.seed_of_corruption.enabled",
["action"] = "corruption",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "remains < 5 & ! talent.seed_of_corruption.enabled",
["action"] = "wither",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "variable.ps_up & variable.vt_up & variable.sr_up",
["action"] = "summon_darkglare",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.summon_darkglare.remains > 15 || soul_shard > 3 || ( talent.demonic_soul.enabled & soul_shard > 2 ) ) & buff.tormented_crescendo.up",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 4 || ( talent.tormented_crescendo.enabled & buff.tormented_crescendo.stack = 1 & soul_shard > 3 )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.demonic_soul.enabled & ( soul_shard > 2 || ( talent.tormented_crescendo.enabled & buff.tormented_crescendo.stack = 1 & soul_shard ) )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & buff.tormented_crescendo.up",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & buff.tormented_crescendo.stack = 2",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "( variable.cd_dots_up || variable.vt_ps_up ) & ( soul_shard > 2 || cooldown.oblivion.remains > 10 || ! talent.oblivion.enabled )",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["criteria"] = "talent.tormented_crescendo.enabled & talent.nightfall.enabled & buff.tormented_crescendo.up & buff.nightfall.up",
["action"] = "malefic_rapture",
},
{
["enabled"] = true,
["interrupt_if"] = "cooldown.vile_taint.ready",
["criteria"] = "talent.drain_soul.enabled & buff.nightfall.up & talent.shadow_embrace.enabled & ( debuff.shadow_embrace.stack < 4 || debuff.shadow_embrace.remains < 3 )",
["action"] = "drain_soul",
},
{
["enabled"] = true,
["action"] = "drain_soul",
["interrupt_if"] = "cooldown.vile_taint.ready",
["criteria"] = "talent.drain_soul.enabled & ( talent.shadow_embrace.enabled & ( debuff.shadow_embrace.stack < 4 || debuff.shadow_embrace.remains < 3 ) ) || ! talent.shadow_embrace.enabled",
["interrupt_global"] = "1",
},
{
["enabled"] = true,
["criteria"] = "buff.nightfall.up & talent.shadow_embrace.enabled & ( debuff.shadow_embrace.stack < 2 || debuff.shadow_embrace.remains < 3 )",
["action"] = "shadow_bolt",
},
},
["ogcd"] = {
{
["enabled"] = true,
["criteria"] = "variable.cds_active || fight_remains < 32 || prev_gcd.1.soul_rot & time < 20",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "variable.cds_active || fight_remains < 14 || prev_gcd.1.soul_rot & time < 20",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "variable.cds_active || fight_remains < 17 || prev_gcd.1.soul_rot & time < 20",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "variable.cds_active || fight_remains < 10 || prev_gcd.1.soul_rot & time < 20",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "variable.cds_active || fight_remains < 17 || prev_gcd.1.soul_rot & time < 20",
["action"] = "ancestral_call",
},
},
},
},
["Havoc"] = {
["source"] = "SimulationCraft",
["builtIn"] = true,
["date"] = 20241021,
["spec"] = 577,
["desc"] = "2024-10-21: SimC update\n\n2024-09-15: Typo; SimC update\n\n2024-09-12: Reimplement Demonsurge and split Demonic Intensity abilities\n\n2024-09-11: Tweak Metamorphosis\n\n2024-09-01, 09-03, 09-08, 09-10: SimC update\n\n2024-08-26: Update opener logic\n\n2024-08-24: SimC priority update\n\n2024-08-12: Check Unbound Chaos talent for Immo Aura\n\n2024-07-23: The War Within",
["profile"] = "actions.precombat+=/variable,name=trinket1_steroids,value=trinket.1.has_stat.any_dps\nactions.precombat+=/variable,name=trinket2_steroids,value=trinket.2.has_stat.any_dps\nactions.precombat+=/variable,name=rg_ds,default=0,op=reset\nactions.precombat+=/sigil_of_flame\nactions.precombat+=/immolation_aura,if=buff.immolation_aura.down\n\n## actions+=/retarget_auto_attack,line_cd=1,target_if=mindebuff.burning_wound.remains,if=talent.burning_wound&talent.demon_blades&active_dot.burning_wound<(spell_targets>?3)\n## actions+=/retarget_auto_attack,line_cd=1,target_if=min!target.is_boss,if=talent.burning_wound&talent.demon_blades&active_dot.burning_wound=(spell_targets>?3)\nactions+=/variable,name=rg_inc,op=set,value=buff.rending_strike.down&buff.glaive_flurry.up&cooldown.blade_dance.up&gcd.remains=0||variable.rg_inc&prev_gcd.1.death_sweep\n## actions+=/pick_up_fragment,use_off_gcd=1,if=fury<=70||hero_tree.aldrachi_reaver\nactions+=/variable,name=fel_barrage,op=set,value=talent.fel_barrage&(cooldown.fel_barrage.remains<gcd.max*7&(active_enemies>=desired_targets+raid_event.adds.count||raid_event.adds.in<gcd.max*7||raid_event.adds.in>90)&(cooldown.metamorphosis.remains||active_enemies>2)||buff.fel_barrage.up)&!(active_enemies=1&!raid_event.adds.exists)\nactions+=/disrupt\nactions+=/fel_rush,if=buff.unbound_chaos.up&buff.unbound_chaos.remains<gcd.max*2&(action.immolation_aura.charges>0||action.immolation_aura.recharge_time<5)&cooldown.metamorphosis.remains>10\nactions+=/chaos_strike,if=buff.rending_strike.up&buff.glaive_flurry.up&(variable.rg_ds=2||active_enemies>2)\nactions+=/annihilation,if=buff.rending_strike.up&buff.glaive_flurry.up&(variable.rg_ds=2||active_enemies>2)\nactions+=/reavers_glaive,if=buff.glaive_flurry.down&buff.rending_strike.down&buff.thrill_of_the_fight_damage.remains<gcd.max*4+(variable.rg_ds=2)+(cooldown.the_hunt.remains<gcd.max*3)*3+(cooldown.eye_beam.remains<gcd.max*3&talent.shattered_destiny)*3&(variable.rg_ds=0||variable.rg_ds=1&cooldown.blade_dance.up||variable.rg_ds=2&cooldown.blade_dance.remains)&(buff.thrill_of_the_fight_damage.up||!prev_gcd.1.death_sweep||!variable.rg_inc)&active_enemies<3&!action.reavers_glaive.last_used<5&debuff.essence_break.down||fight_remains<10\nactions+=/reavers_glaive,if=buff.glaive_flurry.down&buff.rending_strike.down&buff.thrill_of_the_fight_damage.remains<4&(buff.thrill_of_the_fight_damage.up||!prev_gcd.1.death_sweep||!variable.rg_inc)&active_enemies>2||fight_remains<10\nactions+=/call_action_list,name=cooldown\nactions+=/call_action_list,name=opener,if=(cooldown.eye_beam.up||cooldown.metamorphosis.up||cooldown.essence_break.up)&time<15&(raid_event.adds.in>40)&buff.demonsurge.stack<5\nactions+=/sigil_of_spite,if=debuff.essence_break.down&debuff.reavers_mark.remains>=2-talent.quickened_sigils\nactions+=/run_action_list,name=fel_barrage,if=variable.fel_barrage&raid_event.adds.up\nactions+=/immolation_aura,if=active_enemies>2&talent.ragefire&buff.unbound_chaos.down&(!talent.fel_barrage||cooldown.fel_barrage.remains>recharge_time)&debuff.essence_break.down&cooldown.eye_beam.remains>recharge_time+5&(buff.metamorphosis.down||buff.metamorphosis.remains>5)\n# actions+=/immolation_aura,if=cooldown.eye_beam.remains>24&buff.metamorphosis.down&debuff.essence_break.down actions+=/immolation_aura,if=cooldown.eye_beam.remains<8&cooldown.blade_dance.remains&debuff.essence_break.down&buff.student_of_suffering.down\nactions+=/immolation_aura,if=hero_tree.felscarred&cooldown.metamorphosis.remains<10&cooldown.eye_beam.remains<10&(buff.unbound_chaos.down||action.fel_rush.charges=0||(cooldown.eye_beam.remains<?cooldown.metamorphosis.remains)<5)&talent.a_fire_inside\nactions+=/immolation_aura,if=active_enemies>2&talent.ragefire&raid_event.adds.up&raid_event.adds.remains<15&raid_event.adds.remains>5&debuff.essence_break.down\nactions+=/fel_rush,if=buff.unbound_chaos.up&active_enemies>2&(!talent.inertia||cooldown.eye_beam.remains+2>buff.unbound_chaos.remains)\nactions+=/vengeful_retreat,use_off_gcd=1,if=talent.initiative&(cooldown.eye_beam.remains>15&gcd.remains<0.3||gcd.remains<0.2&
["version"] = 20241021,
["warnings"] = "The import for 'opener' required some automated changes.\nLine 2: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 2: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 2: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 2: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 2: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 2: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 2: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 3: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 3: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 4: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 5: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 6: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 6: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 7: Converted 'talent.momentum' to 'talent.momentum.enabled' (1x).\nLine 8: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 8: Converted 'talent.a_fire_inside' to 'talent.a_fire_inside.enabled' (1x).\nLine 9: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 9: Converted 'talent.a_fire_inside' to 'talent.a_fire_inside.enabled' (1x).\nLine 10: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 10: Converted 'talent.a_fire_inside' to 'talent.a_fire_inside.enabled' (1x).\nLine 11: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 11: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 11: Converted 'talent.initiative' to 'talent.initiative.enabled' (1x).\nLine 12: Converted 'talent.chaos_theory' to 'talent.chaos_theory.enabled' (1x).\nLine 12: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 13: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 14: Converted 'talent.a_fire_inside' to 'talent.a_fire_inside.enabled' (1x).\nLine 16: Converted 'talent.a_fire_inside' to 'talent.a_fire_inside.enabled' (1x).\nLine 16: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 16: Converted 'talent.ragefire' to 'talent.ragefire.enabled' (1x).\nLine 16: Converted 'talent.burning_wound' to 'talent.burning_wound.enabled' (1x).\nLine 17: Converted 'talent.inertia' to 'talent.inertia.enabled' (1x).\nLine 18: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 19: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 20: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\nLine 20: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 20: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 21: Converted 'talent.cycle_of_hatred' to 'talent.cycle_of_hatred.enabled' (1x).\nLine 23: Converted 'talent.essence_break' to 'talent.essence_break.enabled' (1x).\nLine 25: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 25: Converted 'talent.inner_demon' to 'talent.inner_demon.enabled' (1x).\nLine 26: Converted 'talent.restless_hunter' to 'talent.restless_hunter.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.fel_barrage' to 'talent.fel_barrage.enabled' (1x).\nLine 7: Converted 'talent.shattered_destiny' to 'talent.shattered_destiny.enabled' (1x).\nLine 11: Converted 'talent.quickened_sigils' to 'talent.quickened_sigils.enabled' (1x).\nLine 13: Converted 'talent.ragefire' to 'talent.ragefire.enabled' (1x).\nLine 13: Converted 'talent.fel_barrage' to 'talent.fel_barrage.enabled' (1x).\nLine 14: Converted 'talent.a_fire_inside' to 'talent.a_fire_inside.enabled' (1x).\nLine 15: Converted 'talent.rag
["author"] = "SimC",
["lists"] = {
["opener"] = {
{
["action"] = "potion",
["enabled"] = true,
},
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "talent.initiative.enabled & ( buff.initiative.down || talent.restless_hunter.enabled & buff.initiative.remains <= 0.1 ) & time > 4 & ( ( talent.essence_break.enabled & ! talent.restless_hunter.enabled & cooldown.metamorphosis.remains & cooldown.eye_beam.remains ) || ( talent.essence_break.enabled & talent.restless_hunter.enabled & ( buff.demonsurge_annihilation.down || prev_gcd.1.death_sweep ) & ( cooldown.eye_beam.remains || debuff.essence_break.up ) & buff.metamorphosis.up ) || ! talent.essence_break.enabled )",
["action"] = "vengeful_retreat",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.inertia_trigger.up & talent.essence_break.enabled & cooldown.metamorphosis.remains & buff.demonsurge.stack = 4 & buff.demonsurge_abyssal_gaze.up",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["action"] = "annihilation",
["criteria"] = "buff.demonsurge_annihilation.up & talent.restless_hunter.enabled",
["line_cd"] = "10",
},
{
["enabled"] = true,
["action"] = "annihilation",
["criteria"] = "! hero_tree.felscarred & buff.inner_demon.up & ! talent.shattered_destiny.enabled",
["line_cd"] = "10",
},
{
["enabled"] = true,
["criteria"] = "buff.inertia_trigger.up & talent.inertia.enabled & talent.restless_hunter.enabled & cooldown.essence_break.up & cooldown.metamorphosis.up & buff.demonsurge_annihilation.down & buff.metamorphosis.up",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.momentum.enabled & buff.momentum.remains < 6 & debuff.essence_break.down",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.unbound_chaos.up & talent.a_fire_inside.enabled & ( buff.inertia.down & buff.metamorphosis.up & ! hero_tree.felscarred || hero_tree.felscarred & ( buff.metamorphosis.down & charges > 1 || prev_gcd.1.eye_beam || buff.demonsurge.stack >= 5 || charges = 2 & buff.unbound_chaos.down ) ) & debuff.essence_break.down",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.unbound_chaos.up & ! talent.a_fire_inside.enabled & buff.metamorphosis.up & cooldown.metamorphosis.remains",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.unbound_chaos.up & prev_gcd.1.sigil_of_doom & ( active_enemies > 1 || talent.a_fire_inside.enabled )",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "( buff.metamorphosis.up & hero_tree.aldrachi_reaver & talent.shattered_destiny.enabled || ! talent.shattered_destiny.enabled & hero_tree.aldrachi_reaver || hero_tree.felscarred ) & ( ! talent.initiative.enabled || buff.initiative.up || time > 5 )",
["action"] = "the_hunt",
},
{
["enabled"] = true,
["criteria"] = "hero_tree.felscarred & talent.chaos_theory.enabled & buff.metamorphosis.up & buff.demonsurge.stack = 0 & ! talent.restless_hunter.enabled",
["action"] = "death_sweep",
},
{
["enabled"] = true,
["action"] = "annihilation",
["criteria"] = "hero_tree.felscarred & buff.demonsurge_annihilation.up & ( ! talent.essence_break.enabled || buff.inner_demon.up )",
["line_cd"] = "10",
},
{
["enabled"] = true,
["criteria"] = "fury < 40 & ( ! talent.a_fire_inside.enabled || hero_tree.aldrachi_reaver )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "debuff.reavers_mark.down & debuff.essence_break.down",
["action"] = "reavers_glaive",
},
{
["enabled"] = true,
["criteria"] = "talent.a_fire_inside.enabled & ( talent.inertia.enabled || talent.ragefire.enabled || talent.burning_wound.enabled ) & buff.metamorphosis.down & ( buff.unbound_chaos.down || hero_tree.felscarred )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.unbound_chaos.down & buff.metamorphosis.up & debuff.essence_break.down & cooldown.blade_dance.remains & ( buff.inner_demon.down || hero_tree.felscarred & buff.demonsurge_annihilation.down ) & buff.demonsurge.stack < 5",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "buff.glaive_flurry.up & ! talent.shattered_destiny.enabled",
["action"] = "blade_dance",
},
{
["enabled"] = true,
["criteria"] = "buff.rending_strike.up & ! talent.shattered_destiny.enabled",
["action"] = "chaos_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.up & cooldown.blade_dance.remains > gcd.max * 2 & buff.inner_demon.down & ( ! hero_tree.felscarred & ( ! talent.restless_hunter.enabled || prev_gcd.1.death_sweep ) || buff.demonsurge.stack = 2 ) & ( cooldown.essence_break.remains || hero_tree.felscarred || talent.shattered_destiny.enabled || ! talent.essence_break.enabled )",
["action"] = "metamorphosis",
},
{
["enabled"] = true,
["criteria"] = "hero_tree.felscarred || debuff.reavers_mark.up & ( ! talent.cycle_of_hatred.enabled || cooldown.eye_beam.remains & cooldown.metamorphosis.remains )",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["criteria"] = "buff.inner_demon.down & debuff.essence_break.down & cooldown.blade_dance.remains",
["action"] = "sigil_of_doom",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.down || debuff.essence_break.down & buff.inner_demon.down & ( cooldown.blade_dance.remains || talent.essence_break.enabled & cooldown.essence_break.up )",
["action"] = "eye_beam",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & cooldown.blade_dance.remains & buff.inner_demon.down",
["action"] = "abyssal_gaze",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.blade_dance.remains < gcd.max & ! hero_tree.felscarred & ! talent.shattered_destiny.enabled & buff.metamorphosis.up || ( cooldown.eye_beam.remains || buff.demonsurge_abyssal_gaze.down & ( buff.demonsurge.stack = 5 || buff.demonsurge.stack = 4 & ! talent.inner_demon.enabled ) ) & cooldown.metamorphosis.remains ) & ( ! hero_tree.felscarred || buff.inner_demon.down )",
["action"] = "essence_break",
},
{
["enabled"] = true,
["criteria"] = "talent.restless_hunter.enabled & buff.metamorphosis.up & buff.inner_demon.down & ( ! hero_tree.felscarred || buff.demonsurge_annihilation.down )",
["action"] = "essence_break",
},
{
["action"] = "death_sweep",
["enabled"] = true,
},
{
["action"] = "annihilation",
["enabled"] = true,
},
{
["action"] = "demons_bite",
["enabled"] = true,
},
},
["default"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.rending_strike.down & buff.glaive_flurry.up & cooldown.blade_dance.up & gcd.remains = 0 || variable.rg_inc & prev_gcd.1.death_sweep",
["var_name"] = "rg_inc",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.fel_barrage.enabled & ( cooldown.fel_barrage.remains < gcd.max * 7 & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in < gcd.max * 7 || raid_event.adds.in > 90 ) & ( cooldown.metamorphosis.remains || active_enemies > 2 ) || buff.fel_barrage.up ) & ! ( active_enemies = 1 & ! raid_event.adds.exists )",
["var_name"] = "fel_barrage",
},
{
["action"] = "disrupt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.up & buff.unbound_chaos.remains < gcd.max * 2 & ( action.immolation_aura.charges > 0 || action.immolation_aura.recharge_time < 5 ) & cooldown.metamorphosis.remains > 10",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "buff.rending_strike.up & buff.glaive_flurry.up & ( variable.rg_ds = 2 || active_enemies > 2 )",
["action"] = "chaos_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.rending_strike.up & buff.glaive_flurry.up & ( variable.rg_ds = 2 || active_enemies > 2 )",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "buff.glaive_flurry.down & buff.rending_strike.down & buff.thrill_of_the_fight_damage.remains < gcd.max * 4 + ( variable.rg_ds = 2 ) + ( cooldown.the_hunt.remains < gcd.max * 3 ) * 3 + ( cooldown.eye_beam.remains < gcd.max * 3 & talent.shattered_destiny.enabled ) * 3 & ( variable.rg_ds = 0 || variable.rg_ds = 1 & cooldown.blade_dance.up || variable.rg_ds = 2 & cooldown.blade_dance.remains ) & ( buff.thrill_of_the_fight_damage.up || ! prev_gcd.1.death_sweep || ! variable.rg_inc ) & active_enemies < 3 & ! action.reavers_glaive.last_used < 5 & debuff.essence_break.down || fight_remains < 10",
["action"] = "reavers_glaive",
},
{
["enabled"] = true,
["criteria"] = "buff.glaive_flurry.down & buff.rending_strike.down & buff.thrill_of_the_fight_damage.remains < 4 & ( buff.thrill_of_the_fight_damage.up || ! prev_gcd.1.death_sweep || ! variable.rg_inc ) & active_enemies > 2 || fight_remains < 10",
["action"] = "reavers_glaive",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldown",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["criteria"] = "( cooldown.eye_beam.up || cooldown.metamorphosis.up || cooldown.essence_break.up ) & time < 15 & ( raid_event.adds.in > 40 ) & buff.demonsurge.stack < 5",
["list_name"] = "opener",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & debuff.reavers_mark.remains >= 2 - talent.quickened_sigils.enabled",
["action"] = "sigil_of_spite",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "variable.fel_barrage & raid_event.adds.up",
["list_name"] = "fel_barrage",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & talent.ragefire.enabled & buff.unbound_chaos.down & ( ! talent.fel_barrage.enabled || cooldown.fel_barrage.remains > recharge_time ) & debuff.essence_break.down & cooldown.eye_beam.remains > recharge_time + 5 & ( buff.metamorphosis.down || buff.metamorphosis.remains > 5 )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["description"] = "actions.default+=/immolation_aura,if=cooldown.eye_beam.remains>24&buff.metamorphosis.down&debuff.essence_break.down actions.default+=/immolation_aura,if=cooldown.eye_beam.remains<8&cooldown.blade_dance.remains&debuff.essence_break.down&buff.student_of_suffering.down",
["criteria"] = "hero_tree.felscarred & cooldown.metamorphosis.remains < 10 & cooldown.eye_beam.remains < 10 & ( buff.unbound_chaos.down || action.fel_rush.charges = 0 || ( cooldown.eye_beam.remains <? cooldown.metamorphosis.remains ) < 5 ) & talent.a_fire_inside.enabled",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & talent.ragefire.enabled & raid_event.adds.up & raid_event.adds.remains < 15 & raid_event.adds.remains > 5 & debuff.essence_break.down",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.up & active_enemies > 2 & ( ! talent.inertia.enabled || cooldown.eye_beam.remains + 2 > buff.unbound_chaos.remains )",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "talent.initiative.enabled & ( cooldown.eye_beam.remains > 15 & gcd.remains < 0.3 || gcd.remains < 0.2 & cooldown.eye_beam.remains <= gcd.remains & ( buff.unbound_chaos.up || action.immolation_aura.recharge_time > 6 || ! talent.inertia.enabled || talent.momentum.enabled ) & ( cooldown.metamorphosis.remains > 10 || cooldown.blade_dance.remains < gcd.max * 2 & ( talent.inertia.enabled || talent.momentum.enabled || buff.metamorphosis.up ) ) ) & ( ! talent.student_of_suffering.enabled || cooldown.sigil_of_flame.remains ) & time > 10 & ( ! variable.trinket1_steroids & ! variable.trinket2_steroids || variable.trinket1_steroids & ( trinket.t1.cooldown.remains < gcd.max * 3 || trinket.t1.cooldown.remains > 20 ) || variable.trinket2_steroids & ( trinket.t2.cooldown.remains < gcd.max * 3 || trinket.t2.cooldown.remains > 20 || talent.shattered_destiny.enabled ) ) & ( cooldown.metamorphosis.remains || hero_tree.aldrachi_reaver ) & time > 20",
["action"] = "vengeful_retreat",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["criteria"] = "variable.fel_barrage || ! talent.demon_blades.enabled & talent.fel_barrage.enabled & ( buff.fel_barrage.up || cooldown.fel_barrage.up ) & buff.metamorphosis.down",
["list_name"] = "fel_barrage",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "buff.metamorphosis.up",
["list_name"] = "meta",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.up & talent.inertia.enabled & buff.inertia.down & cooldown.blade_dance.remains < 4 & cooldown.eye_beam.remains > 5 & ( action.immolation_aura.charges > 0 || action.immolation_aura.recharge_time + 2 < cooldown.eye_beam.remains || cooldown.eye_beam.remains > buff.unbound_chaos.remains - 2 )",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.momentum.enabled & cooldown.eye_beam.remains < gcd.max * 2",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.a_fire_inside.enabled & ( talent.unbound_chaos.enabled || talent.burning_wound.enabled ) & buff.unbound_chaos.down & full_recharge_time < gcd.max * 2 & ( raid_event.adds.in > full_recharge_time || active_enemies > desired_targets )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > desired_targets & buff.unbound_chaos.down & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > full_recharge_time )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.unbound_chaos.down & cooldown.eye_beam.remains < 5 & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > full_recharge_time & ( ! talent.essence_break.enabled || cooldown.essence_break.remains < 5 ) ) & ( ! variable.trinket1_steroids & ! variable.trinket2_steroids || variable.trinket1_steroids & ( trinket.t1.cooldown.remains < gcd.max * 3 || trinket.t1.cooldown.remains > 20 ) || variable.trinket2_steroids & ( trinket.t2.cooldown.remains < gcd.max * 3 || trinket.t2.cooldown.remains > 20 ) )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "talent.inertia.enabled & buff.inertia.down & ( ! talent.unbound_chaos.enabled || buff.unbound_chaos.down ) & recharge_time + 5 < cooldown.eye_beam.remains & cooldown.blade_dance.remains & cooldown.blade_dance.remains < 4 & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > full_recharge_time ) & charges_fractional > 1.00",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 15 & cooldown.blade_dance.remains & ( talent.inertia.enabled || talent.ragefire.enabled )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "talent.student_of_suffering.enabled & cooldown.eye_beam.remains < gcd.max & ( ! talent.inertia.enabled || buff.inertia_trigger.up ) & ( cooldown.essence_break.remains < gcd.max * 4 || ! talent.essence_break.enabled ) & ( cooldown.metamorphosis.remains > 10 || cooldown.blade_dance.remains < gcd.max * 3 ) & ( ! variable.trinket1_steroids & ! variable.trinket2_steroids || variable.trinket1_steroids & ( trinket.t1.cooldown.remains < gcd.max * 3 || trinket.t1.cooldown.remains > 20 ) || variable.trinket2_steroids & ( trinket.t2.cooldown.remains < gcd.max * 3 || trinket.t2.cooldown.remains > 20 ) )",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "cooldown.metamorphosis.up & talent.chaotic_transformation.enabled",
["action"] = "eye_beam",
},
{
["enabled"] = true,
["criteria"] = "! talent.essence_break.enabled & ( ! talent.chaotic_transformation.enabled || cooldown.metamorphosis.remains < 5 + 3 * talent.shattered_destiny.enabled || cooldown.metamorphosis.remains > 10 ) & ( active_enemies > desired_targets * 2 || raid_event.adds.in > 30 - talent.cycle_of_hatred.rank * 13 ) & ( ! talent.initiative.enabled || cooldown.vengeful_retreat.remains > 5 || cooldown.vengeful_retreat.up || talent.shattered_destiny.enabled ) & ( ! talent.student_of_suffering.enabled || cooldown.sigil_of_flame.remains )",
["action"] = "eye_beam",
},
{
["enabled"] = true,
["criteria"] = "talent.essence_break.enabled & ( cooldown.essence_break.remains < gcd.max * 2 + 5 * talent.shattered_destiny.enabled || talent.shattered_destiny.enabled & cooldown.essence_break.remains > 10 ) & ( cooldown.blade_dance.remains < 7 || raid_event.adds.up ) & ( ! talent.initiative.enabled || cooldown.vengeful_retreat.remains > 10 || ! talent.inertia.enabled & ! talent.momentum.enabled || raid_event.adds.up ) & ( active_enemies + 3 >= desired_targets + raid_event.adds.count || raid_event.adds.in > 30 - talent.cycle_of_hatred.rank * 6 ) & ( ! talent.inertia.enabled || buff.inertia_trigger.up || action.immolation_aura.charges = 0 & action.immolation_aura.recharge_time > 5 ) & ( ! raid_event.adds.up || raid_event.adds.remains > 8 ) & ( ! variable.trinket1_steroids & ! variable.trinket2_steroids || variable.trinket1_steroids & ( trinket.t1.cooldown.remains < gcd.max * 3 || trinket.t1.cooldown.remains > 20 ) || variable.trinket2_steroids & ( trinket.t2.cooldown.remains < gcd.max * 3 || trinket.t2.cooldown.remains > 20 ) ) || fight_remains < 10",
["action"] = "eye_beam",
},
{
["enabled"] = true,
["criteria"] = "cooldown.eye_beam.remains >= gcd.max * 3 & buff.rending_strike.down",
["action"] = "blade_dance",
},
{
["enabled"] = true,
["criteria"] = "buff.rending_strike.up",
["action"] = "chaos_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.down & fury.deficit > 40",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > 10",
["action"] = "glaive_tempest",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 3 & ! talent.student_of_suffering.enabled || buff.out_of_range.down & talent.art_of_the_glaive.enabled",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.up || cooldown.essence_break.true_remains > cooldown.essence_break.duration - debuff.essence_break.duration",
["action"] = "chaos_strike",
},
{
["enabled"] = true,
["criteria"] = "( buff.out_of_range.down || fury.deficit > 40 )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 1 & talent.furious_throws.enabled",
["action"] = "throw_glaive",
},
{
["enabled"] = true,
["criteria"] = "cooldown.eye_beam.remains > gcd.max * 2 || fury > 80 || talent.cycle_of_hatred.enabled",
["action"] = "chaos_strike",
},
{
["enabled"] = true,
["criteria"] = "! talent.inertia.enabled & ( raid_event.adds.in > full_recharge_time || active_enemies > desired_targets & active_enemies > 2 )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "buff.out_of_range.down & debuff.essence_break.down & ! talent.student_of_suffering.enabled & ( ! talent.fel_barrage.enabled || cooldown.fel_barrage.remains > 25 || ( active_enemies = 1 & ! raid_event.adds.exists ) )",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["description"] = "actions.default+=/felblade,if=cooldown.blade_dance.remains>=0.5&cooldown.blade_dance.remains<gcd.max",
["action"] = "demons_bite",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.down & recharge_time < cooldown.eye_beam.remains & debuff.essence_break.down & ( cooldown.eye_beam.remains > 8 || charges_fractional > 1.01 ) & buff.out_of_range.down & active_enemies > 1",
["action"] = "throw_glaive",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.down & recharge_time < cooldown.eye_beam.remains & debuff.essence_break.down & ( cooldown.eye_beam.remains > 8 || charges_fractional > 1.01 ) & active_enemies > 1",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "buff.out_of_range.down & debuff.essence_break.down & fury < 100",
["action"] = "arcane_torrent",
},
},
["precombat"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_stat.any_dps",
["var_name"] = "trinket1_steroids",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_stat.any_dps",
["var_name"] = "trinket2_steroids",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "rg_ds",
["default"] = "0",
},
{
["action"] = "sigil_of_flame",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.immolation_aura.down",
["action"] = "immolation_aura",
},
},
["meta"] = {
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.remains < gcd.max || ( hero_tree.felscarred & talent.chaos_theory.enabled & talent.essence_break.enabled & ( cooldown.metamorphosis.up || prev_gcd.1.metamorphosis ) & buff.demonsurge.stack = 0 ) & ( ! talent.restless_hunter.enabled || cooldown.metamorphosis.remains & cooldown.essence_break.remains )",
["action"] = "death_sweep",
},
{
["enabled"] = true,
["use_off_gcd"] = 1,
["criteria"] = "talent.initiative.enabled & cooldown.metamorphosis.remains & cooldown.eye_beam.remains",
["action"] = "vengeful_retreat",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.remains < gcd.max || debuff.essence_break.remains & debuff.essence_break.remains < 0.5 || talent.restless_hunter.enabled & buff.demonsurge_annihilation.up & cooldown.essence_break.up & cooldown.metamorphosis.up",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "( hero_tree.felscarred & buff.demonsurge_annihilation.up & ( talent.restless_hunter.enabled || ! talent.chaos_theory.enabled || buff.chaos_theory.up ) ) & ( cooldown.eye_beam.remains < gcd.max * 3 & cooldown.blade_dance.remains || cooldown.metamorphosis.remains < gcd.max * 3 )",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "buff.inertia_trigger.up & talent.inertia.enabled & cooldown.metamorphosis.remains & ( ! hero_tree.felscarred || cooldown.eye_beam.remains )",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "buff.inertia_trigger.up & talent.inertia.enabled & cooldown.blade_dance.remains < gcd.max * 3 & ( ! hero_tree.felscarred || cooldown.eye_beam.remains ) & cooldown.metamorphosis.remains",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "talent.momentum.enabled & buff.momentum.remains < gcd.max * 2",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "charges = 2 & active_enemies > 1 & debuff.essence_break.down",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "( buff.inner_demon.up ) & ( cooldown.eye_beam.remains < gcd.max * 3 & cooldown.blade_dance.remains || cooldown.metamorphosis.remains < gcd.max * 3 )",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "fury > 20 & ( cooldown.metamorphosis.remains > 10 || cooldown.blade_dance.remains < gcd.max * 2 ) & ( buff.unbound_chaos.down || buff.inertia.up || ! talent.inertia.enabled ) & buff.out_of_range.remains < gcd.max & ( ! talent.shattered_destiny.enabled || cooldown.eye_beam.remains > 4 ) & ( ! hero_tree.felscarred || active_enemies > 1 || cooldown.metamorphosis.remains > 5 & cooldown.eye_beam.remains ) || fight_remains < 10",
["action"] = "essence_break",
},
{
["enabled"] = true,
["criteria"] = "cooldown.blade_dance.remains & talent.inertia.enabled & buff.metamorphosis.remains > 10 & hero_tree.felscarred & full_recharge_time < gcd.max * 2 & buff.unbound_chaos.down & debuff.essence_break.down",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "fury > 20 & ( cooldown.metamorphosis.remains > 10 || cooldown.blade_dance.remains < gcd.max * 2 ) & ( buff.unbound_chaos.down || buff.inertia.up || ! talent.inertia.enabled ) & buff.out_of_range.remains < gcd.max & ( ! talent.shattered_destiny.enabled || cooldown.eye_beam.remains > 4 ) || fight_remains < 10",
["action"] = "essence_break",
},
{
["enabled"] = true,
["criteria"] = "cooldown.blade_dance.remains & debuff.essence_break.down",
["action"] = "sigil_of_doom",
},
{
["enabled"] = true,
["criteria"] = "buff.demonsurge.up & buff.demonsurge.remains < gcd.max * 3 & buff.demonsurge_consuming_fire.up",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & cooldown.blade_dance.remains > gcd.max + 0.5 & buff.unbound_chaos.down & talent.inertia.enabled & buff.inertia.down & full_recharge_time + 3 < cooldown.eye_beam.remains & buff.metamorphosis.remains > 5",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "! talent.cycle_of_hatred.enabled",
["action"] = "death_sweep",
},
{
["enabled"] = true,
["criteria"] = "( debuff.essence_break.up || cooldown.essence_break.remains >= gcd.max * 2 || ( cooldown.metamorphosis.up & cooldown.eye_beam.remains & ! talent.restless_hunter.enabled ) || ! talent.essence_break.enabled || ( prev_gcd.1.metamorphosis & talent.chaotic_transformation.enabled ) ) & talent.cycle_of_hatred.enabled",
["action"] = "death_sweep",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & buff.inner_demon.down",
["action"] = "eye_beam",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & buff.inner_demon.down",
["action"] = "abyssal_gaze",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & ( cooldown.blade_dance.remains > gcd.max * 2 || fury > 60 ) & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > 10 )",
["action"] = "glaive_tempest",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2 & debuff.essence_break.down",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "talent.soulscar.enabled & talent.furious_throws.enabled & active_enemies > 1 & debuff.essence_break.down",
["action"] = "throw_glaive",
},
{
["enabled"] = true,
["criteria"] = "cooldown.blade_dance.remains || fury > 60 || soul_fragments > 0 || buff.metamorphosis.remains < 5 & cooldown.felblade.up",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "buff.metamorphosis.remains > 5 & buff.out_of_range.down",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "( buff.out_of_range.down || fury.deficit > 40 )",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & buff.out_of_range.down",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "buff.out_of_range.down & recharge_time < ( cooldown.eye_beam.remains <? buff.metamorphosis.remains ) & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > full_recharge_time )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "talent.momentum.enabled",
["action"] = "fel_rush",
},
{
["action"] = "annihilation",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.down & recharge_time < cooldown.eye_beam.remains & debuff.essence_break.down & ( cooldown.eye_beam.remains > 8 || charges_fractional > 1.01 ) & buff.out_of_range.down & active_enemies > 1",
["action"] = "throw_glaive",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.down & recharge_time < cooldown.eye_beam.remains & debuff.essence_break.down & ( cooldown.eye_beam.remains > 8 || charges_fractional > 1.01 ) & buff.out_of_range.down & active_enemies > 1",
["action"] = "fel_rush",
},
{
["action"] = "demons_bite",
["enabled"] = true,
},
},
["cooldown"] = {
{
["enabled"] = true,
["criteria"] = "( ( cooldown.eye_beam.remains >= 20 & ( ! talent.essence_break.enabled || debuff.essence_break.up ) & buff.fel_barrage.down & ( raid_event.adds.in > 40 || ( raid_event.adds.remains > 8 || ! talent.fel_barrage.enabled ) & active_enemies > 2 ) || ! talent.chaotic_transformation.enabled || boss & fight_remains < 30 ) & buff.inner_demon.down & ( ! talent.restless_hunter.enabled & cooldown.blade_dance.remains > gcd.max * 3 || prev_gcd.1.death_sweep ) ) & ! talent.inertia.enabled & ! talent.essence_break.enabled & ( hero_tree.aldrachi_reaver || buff.demonsurge_death_sweep.down ) & time > 15",
["action"] = "metamorphosis",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.blade_dance.remains & ( ( prev_gcd.1.death_sweep || prev_gcd.2.death_sweep || prev_gcd.3.death_sweep || buff.metamorphosis.up & buff.metamorphosis.remains < gcd.max ) & cooldown.eye_beam.remains & ( ! talent.essence_break.enabled || debuff.essence_break.up || talent.shattered_destiny.enabled || hero_tree.felscarred ) & buff.fel_barrage.down & ( raid_event.adds.in > 40 || ( raid_event.adds.remains > 8 || ! talent.fel_barrage.enabled ) & active_enemies > 2 ) || ! talent.chaotic_transformation.enabled || boss & fight_remains < 30 ) & ( buff.inner_demon.down & ( buff.rending_strike.down || ! talent.restless_hunter.enabled || prev_gcd.1.death_sweep ) ) ) & ( talent.inertia.enabled || talent.essence_break.enabled ) & ( hero_tree.aldrachi_reaver || ( buff.demonsurge_death_sweep.down || buff.metamorphosis.remains < gcd.max ) & ( buff.demonsurge_annihilation.down ) ) & time > 15",
["action"] = "metamorphosis",
},
{
["enabled"] = true,
["criteria"] = "boss & fight_remains < 35 || buff.metamorphosis.up || debuff.essence_break.up",
["action"] = "potion",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "equipped.mad_queens_mandate || equipped.treacherous_transmitter || equipped.skardyns_grace",
["var_name"] = "special_trinket",
},
{
["enabled"] = true,
["criteria"] = "( ( ! talent.initiative.enabled || buff.initiative.up || time > 5 ) & ( buff.metamorphosis.remains > 5 || buff.metamorphosis.down ) & ( trinket.t1.is.mad_queens_mandate & ( trinket.t2.cooldown.duration < 10 || trinket.t2.cooldown.remains > 10 || ! trinket.t2.has_use_buff ) || trinket.t2.is.mad_queens_mandate & ( trinket.t1.cooldown.duration < 10 || trinket.t1.cooldown.remains > 10 || ! trinket.t1.has_use_buff ) ) & fight_remains > 120 || fight_remains < 10 & fight_remains < buff.metamorphosis.remains ) & debuff.essence_break.down || fight_remains < 5",
["name"] = "mad_queens_mandate",
["action"] = "mad_queens_mandate",
},
{
["enabled"] = true,
["criteria"] = "! equipped.mad_queens_mandate || equipped.mad_queens_mandate & ( trinket.t1.is.mad_queens_mandate & trinket.t1.cooldown.remains > fight_remains || trinket.t2.is.mad_queens_mandate & trinket.t2.cooldown.remains > fight_remains ) || fight_remains > 25",
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["criteria"] = "( ! equipped.mad_queens_mandate || fight_remains > 25 || trinket.t2.is.skardyns_grace & trinket.t1.cooldown.remains > fight_remains || trinket.t1.is.skardyns_grace & trinket.t2.cooldown.remains > fight_remains || trinket.t1.cooldown.duration < 10 || trinket.t2.cooldown.duration < 10 ) & buff.metamorphosis.up",
["name"] = "skardyns_grace",
["action"] = "skardyns_grace",
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.eye_beam.remains < gcd.max & active_enemies > 1 || buff.metamorphosis.up ) & ( raid_event.adds.in > trinket.t1.cooldown.duration - 15 || raid_event.adds.remains > 8 ) || ! trinket.t1.has_use_buff || fight_remains < 25 ) & ! trinket.t1.is.skardyns_grace & ! trinket.t1.is.mad_queens_mandate & ! trinket.t1.is.treacherous_transmitter & ( ! variable.special_trinket || trinket.t2.cooldown.remains > 20 )",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "( ( cooldown.eye_beam.remains < gcd.max & active_enemies > 1 || buff.metamorphosis.up ) & ( raid_event.adds.in > trinket.t2.cooldown.duration - 15 || raid_event.adds.remains > 8 ) || ! trinket.t2.has_use_buff || fight_remains < 25 ) & ! trinket.t2.is.skardyns_grace & ! trinket.t2.is.mad_queens_mandate & ! trinket.t2.is.treacherous_transmitter & ( ! variable.special_trinket || trinket.t1.cooldown.remains > 20 )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > 90 ) & ( debuff.reavers_mark.up || ! hero_tree.aldrachi_reaver ) & buff.reavers_glaive.down & ( buff.metamorphosis.remains > 5 || buff.metamorphosis.down ) & ( ! talent.initiative.enabled || buff.initiative.up || time > 5 ) & time > 5",
["action"] = "the_hunt",
},
{
["enabled"] = true,
["criteria"] = "debuff.essence_break.down & ( debuff.reavers_mark.remains >= 2 - talent.quickened_sigils.enabled || ! hero_tree.aldrachi_reaver ) & cooldown.blade_dance.remains & time > 15",
["action"] = "sigil_of_spite",
},
},
["fel_barrage"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.felblade.remains < gcd.max || cooldown.sigil_of_flame.remains < gcd.max",
["var_name"] = "generator_up",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "talent.demon_blades.enabled * ( 1 / ( 2.6 * attack_haste ) * 12 * ( ( hero_tree.felscarred & buff.metamorphosis.up ) * 0.33 + 1 ) ) + buff.immolation_aura.stack * 6 + buff.tactical_retreat.up * 10",
["var_name"] = "fury_gen",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "gcd.max * 32",
["var_name"] = "gcd_drain",
},
{
["enabled"] = true,
["criteria"] = "buff.inner_demon.up",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.down & ( active_enemies > 1 & raid_event.adds.up || raid_event.adds.in > 40 )",
["action"] = "eye_beam",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.down & ( active_enemies > 1 & raid_event.adds.up || raid_event.adds.in > 40 )",
["action"] = "abyssal_gaze",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.down & buff.metamorphosis.up",
["action"] = "essence_break",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.down",
["action"] = "death_sweep",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.down & ( active_enemies > 2 || buff.fel_barrage.up ) & ( ! talent.inertia.enabled || cooldown.eye_beam.remains > recharge_time + 3 )",
["action"] = "immolation_aura",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.down & active_enemies > 1",
["action"] = "glaive_tempest",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.down",
["action"] = "blade_dance",
},
{
["enabled"] = true,
["criteria"] = "fury > 100 & ( raid_event.adds.in > 90 || raid_event.adds.in < gcd.max || raid_event.adds.remains > 4 & active_enemies > 2 )",
["action"] = "fel_barrage",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.up & fury > 20 & buff.fel_barrage.up",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "fury.deficit > 40 & buff.fel_barrage.up & ( ! talent.student_of_suffering.enabled || cooldown.eye_beam.remains > 30 )",
["action"] = "sigil_of_flame",
},
{
["enabled"] = true,
["criteria"] = "fury.deficit > 40 & buff.fel_barrage.up",
["action"] = "sigil_of_doom",
},
{
["enabled"] = true,
["criteria"] = "buff.fel_barrage.up & fury.deficit > 40",
["action"] = "felblade",
},
{
["enabled"] = true,
["criteria"] = "fury - variable.gcd_drain - 35 > 0 & ( buff.fel_barrage.remains < 3 || variable.generator_up || fury > 80 || variable.fury_gen > 18 )",
["action"] = "death_sweep",
},
{
["enabled"] = true,
["criteria"] = "fury - variable.gcd_drain - 30 > 0 & ( buff.fel_barrage.remains < 3 || variable.generator_up || fury > 80 || variable.fury_gen > 18 )",
["action"] = "glaive_tempest",
},
{
["enabled"] = true,
["criteria"] = "fury - variable.gcd_drain - 35 > 0 & ( buff.fel_barrage.remains < 3 || variable.generator_up || fury > 80 || variable.fury_gen > 18 )",
["action"] = "blade_dance",
},
{
["enabled"] = true,
["criteria"] = "fury.deficit > 40 & buff.fel_barrage.up",
["action"] = "arcane_torrent",
},
{
["enabled"] = true,
["criteria"] = "buff.unbound_chaos.up",
["action"] = "fel_rush",
},
{
["enabled"] = true,
["criteria"] = "fury > 40 & ( active_enemies >= desired_targets + raid_event.adds.count || raid_event.adds.in > 80 )",
["action"] = "the_hunt",
},
{
["enabled"] = true,
["criteria"] = "fury - variable.gcd_drain - 40 > 20 & ( buff.fel_barrage.remains < 3 || variable.generator_up || fury > 80 || variable.fury_gen > 18 )",
["action"] = "annihilation",
},
{
["enabled"] = true,
["criteria"] = "fury - variable.gcd_drain - 40 > 20 & ( cooldown.fel_barrage.remains & cooldown.fel_barrage.remains < 10 & fury > 100 || buff.fel_barrage.up & ( buff.fel_barrage.remains * variable.fury_gen - buff.fel_barrage.remains * 32 ) > 0 )",
["action"] = "chaos_strike",
},
{
["action"] = "demons_bite",
["enabled"] = true,
},
},
},
},
["Subtlety"] = {
["builtIn"] = true,
["date"] = 20241101,
["spec"] = 261,
["desc"] = "2024-11-01: SimC Updates - Syrif\n\n2024-10-06: SimC updates, SnD out-of-combat only if refreshable; Gear-a-Rang out of stealth\n\n2024-09-22: Efficiency updates\n\n2024-09-03, 09-11: SimC updates\n\n2024-08-15, 22: SimC updates\n\n2024-07-28: The War Within",
["lists"] = {
["build"] = {
{
["enabled"] = true,
["action"] = "shadowstrike",
["cycle_targets"] = 1,
["description"] = "Combo Point Builder",
["criteria"] = "debuff.find_weakness.remains <= 2 & active_enemies = 2 & talent.unseen_blade.enabled || ! used_for_danse & ! talent.premeditation.enabled",
},
{
["enabled"] = true,
["criteria"] = "talent.deathstalkers_mark.enabled & ! buff.premeditation.up & active_enemies >= ( 2 + 3 * buff.shadow_dance.up ) || buff.clear_the_witnesses.up & ! buff.symbols_of_death.up || buff.flawless_form.up & active_enemies >= 3 & ! variable.stealth",
["action"] = "shuriken_storm",
},
{
["enabled"] = true,
["criteria"] = "buff.lingering_darkness.up || talent.deathstalkers_mark.enabled & cooldown.shadow_blades.remains >= 32 & active_enemies >= 2 || talent.unseen_blade.enabled & buff.symbols_of_death.up & active_enemies >= 4",
["action"] = "shuriken_tornado",
},
{
["action"] = "shadowstrike",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "combo_points.deficit >= 3",
["action"] = "goremaws_bite",
},
{
["action"] = "gloomblade",
["enabled"] = true,
},
{
["action"] = "backstab",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "stealth",
["enabled"] = true,
},
{
["action"] = "kick",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.shadow_dance.up || buff.stealth.up || buff.vanish.up",
["var_name"] = "stealth",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.shadow_dance.up || ! buff.slice_and_dice.up || buff.darkest_night.up || active_enemies >= 8 & ! talent.replicating_shadows.enabled & talent.unseen_blade.enabled",
["var_name"] = "skip_rupture",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( dot.rupture.ticking || variable.skip_rupture ) & buff.slice_and_dice.up",
["var_name"] = "maintenance",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "buff.shadow_dance.up || ( cooldown.flagellation.remains < 40 & cooldown.flagellation.remains > 20 & talent.death_perception.enabled )",
["var_name"] = "secret",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( buff.flagellation_buff.up & buff.shadow_dance.up ) || ! talent.shadow_blades.enabled & buff.symbols_of_death.up || boss & fight_remains < 20",
["var_name"] = "racial_sync",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points <= 1 || buff.darkest_night.up & combo_points >= 7 || effective_combo_points >= 6 & talent.unseen_blade.enabled",
["var_name"] = "shd_cp",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Cooldowns",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "blood_fury",
["description"] = "Racials",
["criteria"] = "variable.racial_sync",
},
{
["enabled"] = true,
["criteria"] = "variable.racial_sync",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "variable.racial_sync & buff.shadow_dance.up",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "variable.racial_sync",
["action"] = "ancestral_call",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
["criteria"] = "cooldown.flagellation.remains <= 2 || boss & fight_remains <= 15",
["description"] = "Items (Trinkets)",
},
{
["enabled"] = true,
["action"] = "imperfect_ascendancy_serum",
["use_off_gcd"] = 1,
["criteria"] = "dot.rupture.ticking & buff.flagellation_buff.up",
["name"] = "imperfect_ascendancy_serum",
},
{
["enabled"] = true,
["action"] = "mad_queens_mandate",
["criteria"] = "( ! talent.lingering_darkness.enabled || buff.lingering_darkness.up || equipped.treacherous_transmitter ) & ( ! equipped.treacherous_transmitter || cooldown.treacherous_transmitter.remains > 20 ) || boss & fight_remains <= 15",
["name"] = "mad_queens_mandate",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "( variable.trinket_sync_slot = 1 & ( buff.shadow_blades.up || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 2 & ( ! trinket.t2.cooldown.ready & ! buff.shadow_blades.up & cooldown.shadow_blades.remains > 20 ) ) || ! variable.trinket_sync_slot )",
["slots"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( variable.trinket_sync_slot = 2 & ( buff.shadow_blades.up || boss & fight_remains <= 20 ) || ( variable.trinket_sync_slot = 1 & ( ! trinket.t1.cooldown.ready & ! buff.shadow_blades.up & cooldown.shadow_blades.remains > 20 ) ) || ! variable.trinket_sync_slot )",
["slots"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Cooldowns for Stealth",
["criteria"] = "! variable.stealth",
["list_name"] = "stealth_cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Finishing Rules",
["criteria"] = "! buff.darkest_night.up & effective_combo_points >= 6 || buff.darkest_night.up & combo_points = cp_max_spend",
["list_name"] = "finish",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Combo Point Builder",
["list_name"] = "build",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Filler, Spells used if you can use nothing else.",
["criteria"] = "! variable.stealth",
["list_name"] = "fill",
},
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "toggle.funnel",
["var_name"] = "priority_rotation",
["description"] = "Swap to priority rotation if the variable is enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t1.has_stat.any_dps & ( ! trinket.t2.has_stat.any_dps || trinket.t1.cooldown.duration >= trinket.t2.cooldown.duration )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t2.has_stat.any_dps & ( ! trinket.t1.has_stat.any_dps || trinket.t2.cooldown.duration > trinket.t1.cooldown.duration )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t1.is.treacherous_transmitter",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["var_name"] = "trinket_sync_slot",
["criteria"] = "trinket.t2.is.treacherous_transmitter",
},
{
["action"] = "stealth",
["enabled"] = true,
},
},
["finish"] = {
{
["enabled"] = true,
["criteria"] = "variable.secret",
["action"] = "secret_technique",
},
{
["enabled"] = true,
["action"] = "rupture",
["description"] = "Maintenance Finisher",
["criteria"] = "! variable.skip_rupture & ( ! dot.rupture.ticking || refreshable ) & target.time_to_die - remains > 6",
},
{
["enabled"] = true,
["criteria"] = "! variable.skip_rupture & ! variable.priority_rotation & target.time_to_die >= ( 2 * combo_points ) & refreshable & active_enemies >= 2",
["action"] = "rupture",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "black_powder",
["description"] = "Direct Damage Finisher",
["criteria"] = "! variable.priority_rotation & variable.maintenance & active_enemies >= 2 & ! buff.flawless_form.up & ! buff.darkest_night.up",
},
{
["enabled"] = true,
["criteria"] = "debuff.fazed.up",
["action"] = "dispatch",
},
{
["action"] = "eviscerate",
["enabled"] = true,
},
},
["cds"] = {
{
["enabled"] = true,
["action"] = "cold_blood",
["description"] = "Cooldowns",
["criteria"] = "cooldown.secret_technique.up & buff.shadow_dance.up & combo_points >= 6 & variable.secret",
},
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.up || boss & fight_remains < 30 || buff.flagellation_buff.up",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "( buff.symbols_of_death.remains <= 3 & variable.maintenance & ( buff.flagellation_buff.up & cooldown.secret_technique.remains < 8 || ! talent.flagellation.enabled || buff.flagellation_persist.up & talent.unseen_blade.enabled || cooldown.flagellation.remains >= 30 - 15 * ! talent.death_perception.enabled & cooldown.secret_technique.remains < 8 || ! talent.death_perception.enabled ) || boss & fight_remains <= 15 )",
["action"] = "symbols_of_death",
},
{
["enabled"] = true,
["criteria"] = "variable.maintenance & variable.shd_cp & buff.shadow_dance.up & ! buff.premeditation.up",
["action"] = "shadow_blades",
},
{
["enabled"] = true,
["criteria"] = "buff.shadow_dance.remains > 2 & ! buff.thistle_tea.up",
["action"] = "thistle_tea",
},
{
["enabled"] = true,
["criteria"] = "combo_points >= 5 || boss & fight_remains <= 25",
["action"] = "flagellation",
},
},
["stealth_cds"] = {
{
["enabled"] = true,
["action"] = "shadow_dance",
["description"] = "Shadow Dance, Vanish, Shadowmeld",
["criteria"] = "variable.shd_cp & variable.maintenance & cooldown.secret_technique.remains <= 24 & ( buff.symbols_of_death.remains >= 6 || buff.flagellation_persist.remains >= 6 ) || boss & fight_remains <= 10",
},
{
["enabled"] = true,
["criteria"] = "energy >= 40 & ! buff.subterfuge.up & effective_combo_points <= 3",
["action"] = "vanish",
},
{
["enabled"] = true,
["criteria"] = "energy >= 40 & combo_points.deficit >= 3",
["action"] = "shadowmeld",
},
},
["fill"] = {
{
["enabled"] = true,
["action"] = "arcane_torrent",
["description"] = "This list usually contains Cooldowns with neglectable impact that causes global cooldowns",
["criteria"] = "energy.deficit >= 15 + energy.regen",
},
{
["action"] = "arcane_pulse",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
},
},
["version"] = 20241101,
["warnings"] = "The import for 'default' required some automated changes.\nLine 4: Converted 'talent.replicating_shadows' to 'talent.replicating_shadows.enabled' (1x).\nLine 4: Converted 'talent.unseen_blade' to 'talent.unseen_blade.enabled' (1x).\nLine 6: Converted 'talent.death_perception' to 'talent.death_perception.enabled' (1x).\nLine 7: Converted 'talent.shadow_blades' to 'talent.shadow_blades.enabled' (1x).\nLine 8: Converted 'talent.unseen_blade' to 'talent.unseen_blade.enabled' (1x).\nLine 16: Converted 'talent.lingering_darkness' to 'talent.lingering_darkness.enabled' (1x).\nLine 16: Converted 'trinket.treacherous_transmitter.cooldown.remains' to 'cooldown.treacherous_transmitter.remains'.\nLine 17: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 17: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\nLine 18: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 18: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 3: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 3: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 3: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 4: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 4: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 4: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 6: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 3: Converted 'talent.flagellation' to 'talent.flagellation.enabled' (1x).\nLine 3: Converted 'talent.unseen_blade' to 'talent.unseen_blade.enabled' (1x).\nLine 3: Converted 'talent.death_perception' to 'talent.death_perception.enabled' (1x).\nLine 3: Converted 'talent.death_perception' to 'talent.death_perception.enabled' (1x).\n\nThe import for 'build' required some automated changes.\nLine 1: Converted 'talent.unseen_blade' to 'talent.unseen_blade.enabled' (1x).\nLine 1: Converted 'talent.premeditation' to 'talent.premeditation.enabled' (1x).\nLine 2: Converted 'talent.deathstalkers_mark' to 'talent.deathstalkers_mark.enabled' (1x).\nLine 3: Converted 'talent.deathstalkers_mark' to 'talent.deathstalkers_mark.enabled' (1x).\nLine 3: Converted 'talent.unseen_blade' to 'talent.unseen_blade.enabled' (1x).\n\nImported 7 action lists.\n",
["profile"] = "actions.precombat+=/apply_poison\n# Swap to priority rotation if the variable is enabled\nactions.precombat+=/variable,name=priority_rotation,value=toggle.funnel\nactions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps||trinket.1.cooldown.duration>=trinket.2.cooldown.duration)\nactions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps||trinket.2.cooldown.duration>trinket.1.cooldown.duration)\nactions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.is.treacherous_transmitter\nactions.precombat+=/stealth\n\n\nactions+=/stealth\nactions+=/kick\nactions+=/variable,name=stealth,value=buff.shadow_dance.up||buff.stealth.up||buff.vanish.up\nactions+=/variable,name=skip_rupture,value=buff.shadow_dance.up||!buff.slice_and_dice.up||buff.darkest_night.up||active_enemies>=8&!talent.replicating_shadows&talent.unseen_blade\nactions+=/variable,name=maintenance,value=(dot.rupture.ticking||variable.skip_rupture)&buff.slice_and_dice.up\nactions+=/variable,name=secret,value=buff.shadow_dance.up||(cooldown.flagellation.remains<40&cooldown.flagellation.remains>20&talent.death_perception)\nactions+=/variable,name=racial_sync,value=(buff.flagellation_buff.up&buff.shadow_dance.up)||!talent.shadow_blades&buff.symbols_of_death.up||boss&fight_remains<20\nactions+=/variable,name=shd_cp,value=combo_points<=1||buff.darkest_night.up&combo_points>=7||effective_combo_points>=6&talent.unseen_blade\n# Cooldowns\nactions+=/call_action_list,name=cds\n# Racials\nactions+=/blood_fury,if=variable.racial_sync\nactions+=/berserking,if=variable.racial_sync\nactions+=/fireblood,if=variable.racial_sync&buff.shadow_dance.up\nactions+=/ancestral_call,if=variable.racial_sync\n## actions+=/invoke_external_buff,name=power_infusion,if=buff.shadow_dance.up\n# Items (Trinkets)\nactions+=/use_item,name=treacherous_transmitter,if=cooldown.flagellation.remains<=2||boss&fight_remains<=15\n## actions+=/do_treacherous_transmitter_task,if=buff.shadow_dance.up||boss&fight_remains<=15\nactions+=/use_item,name=imperfect_ascendancy_serum,use_off_gcd=1,if=dot.rupture.ticking&buff.flagellation_buff.up\nactions+=/use_item,name=mad_queens_mandate,if=(!talent.lingering_darkness||buff.lingering_darkness.up||equipped.treacherous_transmitter)&(!equipped.treacherous_transmitter||trinket.treacherous_transmitter.cooldown.remains>20)||boss&fight_remains<=15\nactions+=/use_items,slots=trinket1,if=(variable.trinket_sync_slot=1&(buff.shadow_blades.up||boss&fight_remains<=20)||(variable.trinket_sync_slot=2&(!trinket.2.cooldown.ready&!buff.shadow_blades.up&cooldown.shadow_blades.remains>20))||!variable.trinket_sync_slot)\nactions+=/use_items,slots=trinket2,if=(variable.trinket_sync_slot=2&(buff.shadow_blades.up||boss&fight_remains<=20)||(variable.trinket_sync_slot=1&(!trinket.1.cooldown.ready&!buff.shadow_blades.up&cooldown.shadow_blades.remains>20))||!variable.trinket_sync_slot)\n\n# Cooldowns for Stealth\nactions+=/call_action_list,name=stealth_cds,if=!variable.stealth\n# Finishing Rules\nactions+=/call_action_list,name=finish,if=!buff.darkest_night.up&effective_combo_points>=6||buff.darkest_night.up&combo_points=cp_max_spend\n# Combo Point Builder\nactions+=/call_action_list,name=build\n# Filler, Spells used if you can use nothing else.\nactions+=/call_action_list,name=fill,if=!variable.stealth\n\n# Combo Point Builder\nactions.build+=/shadowstrike,cycle_targets=1,if=debuff.find_weakness.remains<=2&active_enemies=2&talent.unseen_blade||!used_for_danse&!talent.premeditation\nactions.build+=/shuriken_storm,if=talent.deathstalkers_mark&!buff.premeditation.up&active_enemies>=(2+3*buff.shadow_dance.up)||buff.clear_the_witnesses.up&!buff.symbols_of_death.up||buff.flawless_form.up&active_enemies>=3&!variable.stealth\nactions.build+=/shuriken_tornado,if=buff.lingering_darkness.up||talent.deathstalkers_mark&cooldown.shadow_blades.remains>=32&active_enemi
["author"] = "SimC",
},
["Preservation"] = {
["builtIn"] = true,
["date"] = 20240730,
["spec"] = 1468,
["desc"] = "Healer priorities are DPS-focused only\n\n2024-07-30: The War Within",
["profile"] = "actions.precombat+=/blessing_of_the_bronze\n\nactions+=/quell\nactions+=/cauterizing_flame\nactions+=/unravel\nactions+=/deep_breath\nactions+=/potion\nactions+=/use_items\nactions+=/fire_breath,empower_to=1,if=fight_remains>14+cast_time\nactions+=/fire_breath,empower_to=2,if=fight_remains>8+cast_time\nactions+=/fire_breath,empower_to=3,if=fight_remains>2+cast_time\nactions+=/fire_breath,empower_to=4,if=empowering.fire_breath||fight_remains>cast_time\nactions+=/hover,if=moving&buff.hover.down&settings.use_hover\nactions+=/disintegrate,if=buff.essence_burst.up&(!moving||buff.hover.remains>cast_time)||essence.time_to_max<cast_time&settings.spend_essence\nactions+=/azure_strike,if=active_enemies>2\nactions+=/living_flame,if=!moving||buff.hover.remains>cast_time\nactions+=/azure_strike,if=moving&buff.hover.down",
["version"] = 20240730,
["warnings"] = "Imported 2 action lists.\n",
["lists"] = {
["default"] = {
{
["action"] = "quell",
["enabled"] = true,
},
{
["action"] = "cauterizing_flame",
["enabled"] = true,
},
{
["action"] = "unravel",
["enabled"] = true,
},
{
["action"] = "deep_breath",
["enabled"] = true,
},
{
["action"] = "potion",
["enabled"] = true,
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "fight_remains > 14 + cast_time",
["empower_to"] = "1",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "fight_remains > 8 + cast_time",
["empower_to"] = "2",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "fight_remains > 2 + cast_time",
["empower_to"] = "3",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "empowering.fire_breath || fight_remains > cast_time",
["empower_to"] = "4",
},
{
["enabled"] = true,
["criteria"] = "moving & buff.hover.down & settings.use_hover",
["action"] = "hover",
},
{
["enabled"] = true,
["criteria"] = "buff.essence_burst.up & ( ! moving || buff.hover.remains > cast_time ) || essence.time_to_max < cast_time & settings.spend_essence",
["action"] = "disintegrate",
},
{
["enabled"] = true,
["criteria"] = "active_enemies > 2",
["action"] = "azure_strike",
},
{
["enabled"] = true,
["criteria"] = "! moving || buff.hover.remains > cast_time",
["action"] = "living_flame",
},
{
["enabled"] = true,
["criteria"] = "moving & buff.hover.down",
["action"] = "azure_strike",
},
},
["precombat"] = {
{
["action"] = "blessing_of_the_bronze",
["enabled"] = true,
},
},
},
["author"] = "Kahekili",
},
["Fury"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241119,
["author"] = "SimC",
["desc"] = "2024-11-19: Fix Slayer Execute vs. Rampage\n\n2024-11-09: Fix Reckless Abandon and action-list splitting\n\n2024-10-30: SimC update\n\n2024-10-22: 11.0.5 update; enable pre-Hero talents\n\n2024-10-21: SimC update\n\n2024-10-06: Fix trinket/variables order\n\n2024-09-03, 09-05, 09-10, 09-22: SimC update\n\n2024-08-25: Update using Icy-Veins\n\n2024-08-15: Sim update\n\n2024-07-30: Sim update\n\n2024-07-23: The War Within",
["profile"] = "actions.precombat+=/battle_shout\nactions.precombat+=/berserker_stance,toggle=on\nactions.precombat+=/variable,name=treacherous_transmitter_precombat_cast,value=2\nactions.precombat+=/use_item,name=treacherous_transmitter\nactions.precombat+=/recklessness,if=!equipped.fyralath_the_dreamrender\nactions.precombat+=/avatar,if=!talent.titans_torment\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.treacherous_transmitter\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.treacherous_transmitter\n# Evaluates a trinkets cooldown, divided by avatar or odyns fur. If it's value has no remainder return 1, else return 0.5.\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(trinket.1.cooldown.duration%%cooldown.avatar.duration=0||trinket.1.cooldown.duration%%cooldown.odyns_fury.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(trinket.2.cooldown.duration%%cooldown.avatar.duration=0||trinket.2.cooldown.duration%%cooldown.odyns_fury.duration=0)\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff||(trinket.1.has_stat.any_dps&!variable.trinket_1_exclude)\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff||(trinket.2.has_stat.any_dps&!variable.trinket_2_exclude)\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box\n\nactions+=/pummel,if=target.debuff.casting.react\nactions+=/charge,if=time<=0.5||movement.distance>5\nactions+=/heroic_leap,if=movement.distance>25\nactions+=/potion\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=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)||target.health.pct<20\n## actions.trinkets+=/do_treacherous_transmitter_task\nactions+=/use_item,name=treacherous_transmitter,if=variable.adds_remain||variable.st_planning\n# Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.\nactions+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.avatar.up&trinket.1.cast_time>0||!trinket.1.cast_time>0)&((talent.titans_torment&cooldown.avatar.ready)||(buff.avatar.up&!talent.titans_torment))&(variable.trinket_2_exclude||!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.proc.any_dps.duration>=fight_remains&boss\nactions+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&(!buff.avatar.up&trinket.2.cast_time>0||!trinket.2.cast_time>0)&((talent.titans_torment&cooldown.avatar.ready)||(buff.avatar.up&!talent.titans_torment))&(variable.trinket_1_exclude||!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.proc.any_dps.duration>=fight_remains&boss\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+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.1.cast_time>0&!buff.avatar.up||!trinket.1.cast_time>0)&!variable.trinket_1_manual&(!variable.trinket_1_buffs&(trinket.2.cooldown.remains||!variable.trinket_2_buffs)||(trinket.1.cast_time>0&!buff.avatar.up||!trinket.1.cast_time>0)||cooldown.avatar.remains_expected>20)\naction
["version"] = 20241119,
["warnings"] = "The import for 'slayer_ra_st' required some automated changes.\nLine 1: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 1: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 3: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 3: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 3: Converted 'talent.champions_might' to 'talent.champions_might.enabled' (1x).\nLine 3: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 6: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 7: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 9: Converted 'talent.ashen_juggernaut' to 'talent.ashen_juggernaut.enabled' (1x).\nLine 10: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 13: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 14: Converted 'talent.vicious_contempt' to 'talent.vicious_contempt.enabled' (1x).\nLine 22: Converted 'talent.meat_cleaver' to 'talent.meat_cleaver.enabled' (1x).\n\nThe import for 'thane_am_st' required some automated changes.\nLine 1: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 1: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 3: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 3: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 3: Converted 'talent.champions_might' to 'talent.champions_might.enabled' (1x).\nLine 3: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 6: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 7: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 8: Converted 'talent.ashen_juggernaut' to 'talent.ashen_juggernaut.enabled' (1x).\nLine 9: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 10: Converted 'talent.unhinged' to 'talent.unhinged.enabled' (1x).\nLine 11: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 13: Converted 'talent.vicious_contempt' to 'talent.vicious_contempt.enabled' (1x).\nLine 15: Converted 'talent.ashen_juggernaut' to 'talent.ashen_juggernaut.enabled' (1x).\n\nThe import for 'slayer_ra_mt' required some automated changes.\nLine 1: Converted 'talent.anger_management' to 'talent.anger_management.enabled' (1x).\nLine 1: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 1: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 2: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 2: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 2: Converted 'talent.champions_might' to 'talent.champions_might.enabled' (1x).\nLine 2: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 3: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 5: Converted 'talent.titans_torment' to 'talent.titans_torment.enabled' (1x).\nLine 6: Converted 'talent.titanic_rage' to 'talent.titanic_rage.enabled' (1x).\nLine 7: Converted 'talent.bladestorm' to 'talent.bladestorm.enabled' (1x).\nLine 9: Converted 'talent.meat_cleaver' to 'talent.meat_cleaver.enabled' (1x).\nLine 10: Converted 'talent.ashen_juggernaut' to 'talent.ashen_juggernaut.enabled' (1x).\nLine 11: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 18: Converted 'talent.tenderize' to 'talent.tenderize.enabled' (1x).\nLine 20: Converted 'talent.slaughtering_strikes' to 'talent.slaughtering_strikes.enabled' (1x).\n\nThe import for 'thane_ra_mt' required some automated changes.\nLine 1: Con
["spec"] = 72,
["lists"] = {
["slayer_ra_st"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains < 1 & talent.titans_torment.enabled || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["enabled"] = true,
["criteria"] = "( buff.enrage.up & talent.titans_torment.enabled & cooldown.avatar.remains < gcd.max ) || ( buff.enrage.up & ! talent.titans_torment.enabled )",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & cooldown.avatar.remains >= 9",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "debuff.marked_for_execution.stack = 3 || talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains < 2 || buff.sudden_death.stack = 2 & buff.sudden_death.remains < 7 || buff.sudden_death.up & buff.sudden_death.remains < 2",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled & buff.brutal_finish.up",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "crit_pct_current >= 85 || buff.bloodcraze.stack >= 3",
["action"] = "bloodbath",
},
{
["action"] = "crushing_blow",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 35 & talent.vicious_contempt.enabled",
["action"] = "bloodbath",
},
{
["enabled"] = true,
["criteria"] = "rage >= 115",
["action"] = "rampage",
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["action"] = "bloodbath",
["enabled"] = true,
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "onslaught",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.meat_cleaver.enabled",
["action"] = "whirlwind",
},
{
["action"] = "slam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["thane_am_st"] = {
{
["enabled"] = true,
["criteria"] = "talent.anger_management.enabled || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled",
["action"] = "avatar",
},
{
["action"] = "ravager",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( cooldown.avatar.remains < gcd.max || ! talent.titans_torment.enabled )",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains <= gcd.max & buff.enrage.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & talent.unhinged.enabled",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.vicious_contempt.enabled & target.health.pct < 35 & buff.bloodcraze.stack >= 2 || ! dot.ravager.remains & buff.bloodcraze.stack >= 3",
["action"] = "bloodthirst",
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled",
["action"] = "execute",
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
},
["slayer_am_st"] = {
{
["enabled"] = true,
["criteria"] = "( ! talent.anger_management.enabled & cooldown.avatar.remains < 1 & talent.titans_torment.enabled ) || talent.anger_management.enabled || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["enabled"] = true,
["criteria"] = "( buff.enrage.up & talent.titans_torment.enabled & cooldown.avatar.remains < gcd.max ) || ( buff.enrage.up & ! talent.titans_torment.enabled )",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "debuff.marked_for_execution.stack = 3 || talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains < 2 || buff.sudden_death.stack = 2 & buff.sudden_death.remains < 7 || buff.sudden_death.up & buff.sudden_death.remains < 2",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( cooldown.recklessness.remains >= 9 || cooldown.avatar.remains >= 9 )",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled & buff.brutal_finish.up",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.opportunist.up",
["action"] = "raging_blow",
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 35 & talent.vicious_contempt.enabled & buff.bloodcraze.stack >= 2",
["action"] = "bloodthirst",
},
{
["enabled"] = true,
["criteria"] = "action.raging_blow.charges <= 1 & rage >= 115",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.bloodcraze.stack > 3 || crit_pct_current >= 85",
["action"] = "bloodthirst",
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "talent.meat_cleaver.enabled",
["action"] = "whirlwind",
},
{
["action"] = "slam",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["thane_ra_st"] = {
{
["enabled"] = true,
["criteria"] = "( ! talent.anger_management.enabled & cooldown.avatar.remains < 1 & talent.titans_torment.enabled ) || talent.anger_management.enabled || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled & buff.enrage.up",
["action"] = "avatar",
},
{
["action"] = "ravager",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ( cooldown.avatar.remains < gcd.max || ! talent.titans_torment.enabled )",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains <= gcd.max & buff.enrage.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & talent.unhinged.enabled",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "talent.vicious_contempt.enabled & target.health.pct < 35 || buff.bloodcraze.stack >= 3",
["action"] = "bloodbath",
},
{
["action"] = "crushing_blow",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "rage >= 115",
["action"] = "rampage",
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["action"] = "bloodbath",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & ! buff.burst_of_power.up",
["action"] = "bloodthirst",
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "onslaught",
["enabled"] = true,
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.meat_cleaver.enabled",
["action"] = "whirlwind",
},
{
["action"] = "slam",
["enabled"] = true,
},
},
["default"] = {
{
["enabled"] = true,
["criteria"] = "target.debuff.casting.react",
["action"] = "pummel",
},
{
["enabled"] = true,
["criteria"] = "time <= 0.5 || movement.distance > 5",
["action"] = "charge",
},
{
["enabled"] = true,
["criteria"] = "movement.distance > 25",
["action"] = "heroic_leap",
},
{
["action"] = "potion",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "active_enemies = 1 & ( raid_event.adds.in > 15 || ! raid_event.adds.exists )",
["var_name"] = "st_planning",
},
{
["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",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.massacre.enabled & target.health.pct < 35 ) || target.health.pct < 20",
["var_name"] = "execute_phase",
},
{
["enabled"] = true,
["criteria"] = "variable.adds_remain || variable.st_planning",
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.",
["criteria"] = "variable.trinket_1_buffs & ! variable.trinket_1_manual & ( ! buff.avatar.up & trinket.t1.cast_time > 0 || ! trinket.t1.cast_time > 0 ) & ( ( talent.titans_torment.enabled & cooldown.avatar.ready ) || ( buff.avatar.up & ! talent.titans_torment.enabled ) ) & ( variable.trinket_2_exclude || ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 ) || trinket.t1.buff_duration >= fight_remains & boss",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_2_buffs & ! variable.trinket_2_manual & ( ! buff.avatar.up & trinket.t2.cast_time > 0 || ! trinket.t2.cast_time > 0 ) & ( ( talent.titans_torment.enabled & cooldown.avatar.ready ) || ( buff.avatar.up & ! talent.titans_torment.enabled ) ) & ( variable.trinket_1_exclude || ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 ) || trinket.t2.buff_duration >= fight_remains & boss",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.",
["criteria"] = "! variable.trinket_1_buffs & ( trinket.t1.cast_time > 0 & ! buff.avatar.up || ! trinket.t1.cast_time > 0 ) & ! variable.trinket_1_manual & ( ! variable.trinket_1_buffs & ( trinket.t2.cooldown.remains || ! variable.trinket_2_buffs ) || ( trinket.t1.cast_time > 0 & ! buff.avatar.up || ! trinket.t1.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ( trinket.t2.cast_time > 0 & ! buff.avatar.up || ! trinket.t2.cast_time > 0 ) & ! variable.trinket_2_manual & ( ! variable.trinket_2_buffs & ( trinket.t1.cooldown.remains || ! variable.trinket_1_buffs ) || ( trinket.t2.cast_time > 0 & ! buff.avatar.up || ! trinket.t2.cast_time > 0 ) || cooldown.avatar.remains_expected > 20 )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "! equipped.fyralath_the_dreamrender & ( ! variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( ! variable.trinket_2_buffs || trinket.t2.cooldown.remains )",
["action"] = "main_hand",
["slot"] = "main_hand",
},
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & buff.avatar.down & rage < 80 & buff.bloodbath.down & buff.crushing_blow.down & buff.sudden_death.down & ! cooldown.bladestorm.ready & ( ! cooldown.execute.ready || ! variable.execute_phase )",
["action"] = "lights_judgment",
},
{
["enabled"] = true,
["criteria"] = "buff.recklessness.down & buff.avatar.down & rage < 80 & buff.bloodbath.down & buff.crushing_blow.down & buff.sudden_death.down & ! cooldown.bladestorm.ready & ( ! cooldown.execute.ready || ! variable.execute_phase )",
["action"] = "bag_of_tricks",
},
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up",
["action"] = "berserking",
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.slayers_dominance.enabled & talent.reckless_abandon.enabled & active_enemies = 1",
["list_name"] = "slayer_ra_st",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.slayers_dominance.enabled & ( talent.anger_management.enabled || ! talent.reckless_abandon.enabled ) & active_enemies = 1",
["list_name"] = "slayer_am_st",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.slayers_dominance.enabled & talent.reckless_abandon.enabled & active_enemies > 1",
["list_name"] = "slayer_ra_mt",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "talent.slayers_dominance.enabled & ( talent.anger_management.enabled || ! talent.reckless_abandon.enabled ) & active_enemies > 1",
["list_name"] = "slayer_am_mt",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.slayers_dominance.enabled & talent.reckless_abandon.enabled & active_enemies = 1",
["list_name"] = "thane_ra_st",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.slayers_dominance.enabled & ( talent.anger_management.enabled || ! talent.reckless_abandon.enabled ) & active_enemies = 1",
["list_name"] = "thane_am_st",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.slayers_dominance.enabled & talent.reckless_abandon.enabled & active_enemies > 1",
["list_name"] = "thane_ra_mt",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! talent.slayers_dominance.enabled & ( talent.anger_management.enabled || ! talent.reckless_abandon.enabled ) & active_enemies > 1",
["list_name"] = "thane_am_mt",
},
},
["precombat"] = {
{
["action"] = "battle_shout",
["enabled"] = true,
},
{
["toggle"] = "on",
["action"] = "berserker_stance",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "2",
["var_name"] = "treacherous_transmitter_precombat_cast",
},
{
["enabled"] = true,
["name"] = "treacherous_transmitter",
["action"] = "treacherous_transmitter",
},
{
["enabled"] = true,
["criteria"] = "! equipped.fyralath_the_dreamrender",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "! talent.titans_torment.enabled",
["action"] = "avatar",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.treacherous_transmitter",
["var_name"] = "trinket_1_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.treacherous_transmitter",
["var_name"] = "trinket_2_exclude",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Evaluates a trinkets cooldown, divided by avatar or odyns fur. If it's value has no remainder return 1, else return 0.5.",
["value"] = "1",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["criteria"] = "trinket.t1.has_use_buff & ( trinket.t1.cooldown.duration % cooldown.avatar.duration = 0 || trinket.t1.cooldown.duration % cooldown.odyns_fury.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["value"] = "1",
["value_else"] = "0.5",
["criteria"] = "trinket.t2.has_use_buff & ( trinket.t2.cooldown.duration % cooldown.avatar.duration = 0 || trinket.t2.cooldown.duration % cooldown.odyns_fury.duration = 0 )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff || ( trinket.t1.has_stat.any_dps & ! variable.trinket_1_exclude )",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || ( trinket.t2.has_stat.any_dps & ! variable.trinket_2_exclude )",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / trinket.t2.buff_duration ) * ( 1.5 + trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / trinket.t1.buff_duration ) * ( 1.5 + trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.algethar_puzzle_box",
["var_name"] = "trinket_1_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.algethar_puzzle_box",
["var_name"] = "trinket_2_manual",
},
},
["thane_am_mt"] = {
{
["enabled"] = true,
["criteria"] = "( ! talent.anger_management.enabled & cooldown.avatar.remains < 1 & talent.titans_torment.enabled ) || talent.anger_management.enabled || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "buff.meat_cleaver.stack = 0 & talent.meat_cleaver.enabled",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["action"] = "ravager",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains <= gcd.max & buff.enrage.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "thunder_clap",
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
{
["action"] = "onslaught",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "whirlwind",
["enabled"] = true,
},
{
["action"] = "slam",
["enabled"] = true,
},
},
["slayer_ra_mt"] = {
{
["enabled"] = true,
["criteria"] = "( ! talent.anger_management.enabled & cooldown.avatar.remains < 1 & talent.titans_torment.enabled ) || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled & buff.enrage.up",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up & ! talent.titans_torment.enabled",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["enabled"] = true,
["criteria"] = "( buff.enrage.up & talent.titans_torment.enabled & cooldown.avatar.remains < gcd.max ) || ( buff.enrage.up & ! talent.titans_torment.enabled )",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & cooldown.avatar.remains >= 9 & buff.enrage.remains > 3",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "buff.meat_cleaver.stack = 0 & talent.meat_cleaver.enabled",
["action"] = "whirlwind",
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains <= gcd.max & buff.enrage.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled & buff.brutal_finish.up",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 6",
["action"] = "bloodbath",
},
{
["action"] = "crushing_blow",
["enabled"] = true,
},
{
["action"] = "bloodbath",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 6",
["action"] = "bloodthirst",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & debuff.marked_for_execution.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "rage > 115",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "talent.slaughtering_strikes.enabled",
["action"] = "raging_blow",
},
{
["action"] = "onslaught",
["enabled"] = true,
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["action"] = "whirlwind",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["slayer_am_mt"] = {
{
["action"] = "recklessness",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["enabled"] = true,
["criteria"] = "( buff.enrage.up & talent.titans_torment.enabled & cooldown.avatar.remains < gcd.max ) || ( buff.enrage.up & ! talent.titans_torment.enabled )",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "buff.meat_cleaver.stack = 0 & talent.meat_cleaver.enabled",
["action"] = "whirlwind",
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains <= gcd.max & buff.enrage.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & cooldown.avatar.remains >= 5",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up & debuff.marked_for_execution.stack = 3",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up",
["action"] = "rampage",
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.slaughtering_strikes.stack >= 2",
["action"] = "rampage",
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "execute",
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["action"] = "onslaught",
["enabled"] = true,
},
{
["action"] = "whirlwind",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.bladestorm.up",
["action"] = "storm_bolt",
},
},
["thane_ra_mt"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.avatar.remains < 1 & talent.titans_torment.enabled || ! talent.titans_torment.enabled",
["action"] = "recklessness",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunder_blast",
},
{
["enabled"] = true,
["criteria"] = "( talent.titans_torment.enabled & ( buff.enrage.up || talent.titanic_rage.enabled ) & ( debuff.champions_might.up || ! talent.champions_might.enabled ) ) || ! talent.titans_torment.enabled & buff.enrage.up",
["action"] = "avatar",
},
{
["enabled"] = true,
["criteria"] = "buff.meat_cleaver.stack = 0 & talent.meat_cleaver.enabled",
["action"] = "thunder_clap",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "thunderous_roar",
},
{
["action"] = "ravager",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "champions_spear",
},
{
["enabled"] = true,
["criteria"] = "dot.odyns_fury_torment_mh.remains < 1 & ( buff.enrage.up || talent.titanic_rage.enabled ) & cooldown.avatar.remains",
["action"] = "odyns_fury",
},
{
["enabled"] = true,
["criteria"] = "talent.ashen_juggernaut.enabled & buff.ashen_juggernaut.remains <= gcd.max & buff.enrage.up",
["action"] = "execute",
},
{
["enabled"] = true,
["criteria"] = "talent.bladestorm.enabled & cooldown.bladestorm.remains <= gcd.max & ! debuff.champions_might.up",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "buff.enrage.up",
["action"] = "bladestorm",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["enabled"] = true,
["criteria"] = "! buff.enrage.up",
["action"] = "rampage",
},
{
["action"] = "bloodbath",
["enabled"] = true,
},
{
["action"] = "crushing_blow",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.recklessness.up || rage > 115",
["action"] = "rampage",
},
{
["enabled"] = true,
["criteria"] = "talent.tenderize.enabled",
["action"] = "onslaught",
},
{
["action"] = "bloodthirst",
["enabled"] = true,
},
{
["action"] = "thunder_clap",
["enabled"] = true,
},
{
["action"] = "raging_blow",
["enabled"] = true,
},
{
["action"] = "onslaught",
["enabled"] = true,
},
{
["action"] = "rampage",
["enabled"] = true,
},
{
["action"] = "execute",
["enabled"] = true,
},
{
["action"] = "whirlwind",
["enabled"] = true,
},
},
},
},
["Brewmaster"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241021,
["author"] = "SimC",
["desc"] = "2024-10-21: Babyproof Blackout Combo\n\n2024-10-11: Aspect of Harmony accumulator and SimC update\n\n2024-09-22: Consume Blackout Combo with Tiger Palm\n\n2024-09-05: Avoid double-CB\n\n2024-08-22: Avoid nonsensical Purifying Brews\n\n2024-07-26: The War Within",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["criteria"] = "target.debuff.casting.react",
["action"] = "spear_hand_strike",
},
{
["action"] = "diffuse_magic",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "health.pct <= settings.vivify_percent & buff.vivacious_vivification.up",
["action"] = "vivify",
},
{
["enabled"] = true,
["criteria"] = "tanking & settings.purify_for_celestial & ( time_to_max_charges < gcd.max || buff.purified_chi.up & buff.purified_chi.remains < 1.5 * gcd.max ) || cooldown.celestial_brew.remains < 2 * gcd.max & charges_fractional > 1.5",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "tanking & buff.celestial_brew.down & ( ! talent.improved_celestial_brew.enabled || buff.purified_chi.up ) & ( ! settings.max_damage || buff.blackout_combo.down )",
["action"] = "celestial_brew",
},
{
["enabled"] = true,
["criteria"] = "group & ( ! settings.max_damage || buff.blackout_combo.down ) & settings.purify_stagger_currhp > 0 & stagger.pct >= settings.purify_stagger_currhp",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "solo & ( ! settings.max_damage || buff.blackout_combo.down ) & settings.purify_stagger_currhp > 0 & stagger.pct >= settings.purify_stagger_currhp * 0.5",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "group & ( settings.max_damage & buff.blackout_combo.down ) & settings.purify_stagger_maxhp > 0 & stagger.pct >= settings.purify_stagger_maxhp",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "solo & ( ! settings.max_damage || buff.blackout_combo.down ) & settings.purify_stagger_maxhp > 0 & stagger.pct >= settings.purify_stagger_maxhp * 0.5",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "group & ( ! settings.max_damage || buff.blackout_combo.down ) & settings.purify_stagger_currhp = 0 & settings.purify_stagger_maxhp = 0 & stagger.pct > 20",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "solo & ( ! settings.max_damage || buff.blackout_combo.down ) & settings.purify_stagger_currhp = 0 & settings.purify_stagger_maxhp = 0 & stagger.pct > 10",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "health.pct < 75 & incoming_damage_3s > health.max * ( 0.2 + ( 0.2 * group ) ) & buff.fortifying_brew.down",
["action"] = "dampen_harm",
},
{
["enabled"] = true,
["criteria"] = "health.pct < 50 & incoming_damage_3s > health.max * ( 0.2 + ( 0.2 * group ) ) & ( buff.dampen_harm.down )",
["action"] = "fortifying_brew",
},
{
["action"] = "touch_of_death",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.gift_of_the_ox.stack > 4 & health.pct < settings.eh_percent",
["action"] = "expel_harm",
},
{
["action"] = "potion",
["enabled"] = true,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "berserking",
["enabled"] = true,
},
{
["action"] = "arcane_torrent",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "energy < 40",
["action"] = "black_ox_brew",
},
{
["enabled"] = true,
["criteria"] = "( ! settings.max_damage || buff.blackout_combo.down ) & buff.aspect_of_harmony_accumulator.value > 0.3 * health.max & buff.weapons_of_order.up & ! dot.aspect_of_harmony_damage.ticking",
["action"] = "celestial_brew",
},
{
["enabled"] = true,
["criteria"] = "( ! settings.max_damage || buff.blackout_combo.down ) & buff.aspect_of_harmony_accumulator.value > 0.3 * health.max & ! talent.weapons_of_order.enabled & ! dot.aspect_of_harmony_damage.ticking",
["action"] = "celestial_brew",
},
{
["enabled"] = true,
["criteria"] = "( ! settings.max_damage || buff.blackout_combo.down ) & fight_remains < 20 & fight_remains > 14 & buff.aspect_of_harmony_accumulator.value > 0.2 * health.max",
["action"] = "celestial_brew",
},
{
["enabled"] = true,
["criteria"] = "( ! settings.max_damage || buff.blackout_combo.down ) & buff.aspect_of_harmony_accumulator.value > 0.3 * health.max & cooldown.weapons_of_order.remains > 20 & ! dot.aspect_of_harmony_damage.ticking",
["action"] = "celestial_brew",
},
{
["action"] = "blackout_kick",
["enabled"] = true,
},
{
["action"] = "chi_burst",
["enabled"] = true,
},
{
["action"] = "weapons_of_order",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "! talent.fluidity_of_motion.enabled",
["action"] = "rising_sun_kick",
},
{
["enabled"] = true,
["criteria"] = "buff.blackout_combo.up",
["action"] = "tiger_palm",
},
{
["enabled"] = true,
["criteria"] = "talent.scalding_brew.enabled",
["action"] = "keg_smash",
},
{
["enabled"] = true,
["criteria"] = "talent.charred_passions.enabled & talent.scalding_brew.enabled & buff.charred_passions.up & buff.charred_passions.remains < 3 & dot.breath_of_fire.remains < 9 & active_enemies > 4",
["action"] = "spinning_crane_kick",
},
{
["enabled"] = true,
["criteria"] = "talent.fluidity_of_motion.enabled",
["action"] = "rising_sun_kick",
},
{
["enabled"] = true,
["criteria"] = "buff.blackout_combo.down",
["action"] = "purifying_brew",
},
{
["enabled"] = true,
["criteria"] = "( buff.charred_passions.down & ( ! talent.scalding_brew.enabled || active_enemies < 5 ) ) || ! talent.charred_passions.enabled || ( dot.breath_of_fire.remains < 3 & talent.scalding_brew.enabled )",
["action"] = "breath_of_fire",
},
{
["action"] = "exploding_keg",
["enabled"] = true,
},
{
["action"] = "keg_smash",
["enabled"] = true,
},
{
["action"] = "rushing_jade_wind",
["enabled"] = true,
},
{
["action"] = "invoke_niuzao_the_black_ox",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "energy > 40 - cooldown.keg_smash.remains * energy.regen",
["action"] = "tiger_palm",
},
{
["enabled"] = true,
["criteria"] = "energy > 40 - cooldown.keg_smash.remains * energy.regen",
["action"] = "spinning_crane_kick",
},
},
["precombat"] = {
{
["action"] = "potion",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.chi_burst.enabled",
["action"] = "chi_burst",
},
},
},
["version"] = 20241021,
["warnings"] = "The import for 'default' required some automated changes.\nLine 5: Converted 'talent.improved_celestial_brew' to 'talent.improved_celestial_brew.enabled' (1x).\n\nImported 2 action lists.\n",
["profile"] = "actions.precombat+=/potion\nactions.precombat+=/chi_burst,if=talent.chi_burst.enabled\n\nactions+=/spear_hand_strike,if=target.debuff.casting.react\nactions+=/diffuse_magic\nactions+=/vivify,if=health.pct<=settings.vivify_percent&buff.vivacious_vivification.up\nactions+=/purifying_brew,if=tanking&settings.purify_for_celestial&(time_to_max_charges<gcd.max||buff.purified_chi.up&buff.purified_chi.remains<1.5*gcd.max)||cooldown.celestial_brew.remains<2*gcd.max&charges_fractional>1.5\nactions+=/celestial_brew,if=tanking&buff.celestial_brew.down&(!talent.improved_celestial_brew||buff.purified_chi.up)&(!settings.max_damage||buff.blackout_combo.down)\n## actions+=/purifying_brew,line_cd=5,if=talent.improved_invoke_niuzao_the_black_ox&settings.purify_for_niuzao&pet.niuzao_the_black_ox.active\nactions+=/purifying_brew,if=group&(!settings.max_damage||buff.blackout_combo.down)&settings.purify_stagger_currhp>0&stagger.pct>=settings.purify_stagger_currhp\nactions+=/purifying_brew,if=solo&(!settings.max_damage||buff.blackout_combo.down)&settings.purify_stagger_currhp>0&stagger.pct>=settings.purify_stagger_currhp*0.5\nactions+=/purifying_brew,if=group&(settings.max_damage&buff.blackout_combo.down)&settings.purify_stagger_maxhp>0&stagger.pct>=settings.purify_stagger_maxhp\nactions+=/purifying_brew,if=solo&(!settings.max_damage||buff.blackout_combo.down)&settings.purify_stagger_maxhp>0&stagger.pct>=settings.purify_stagger_maxhp*0.5\nactions+=/purifying_brew,if=group&(!settings.max_damage||buff.blackout_combo.down)&settings.purify_stagger_currhp=0&settings.purify_stagger_maxhp=0&stagger.pct>20\nactions+=/purifying_brew,if=solo&(!settings.max_damage||buff.blackout_combo.down)&settings.purify_stagger_currhp=0&settings.purify_stagger_maxhp=0&stagger.pct>10\nactions+=/dampen_harm,if=health.pct<75&incoming_damage_3s>health.max*(0.2+(0.2*group))&buff.fortifying_brew.down\nactions+=/fortifying_brew,if=health.pct<50&incoming_damage_3s>health.max*(0.2+(0.2*group))&(buff.dampen_harm.down)\nactions+=/touch_of_death\nactions+=/expel_harm,if=buff.gift_of_the_ox.stack>4&health.pct<settings.eh_percent\nactions+=/potion\nactions+=/blood_fury\nactions+=/berserking\nactions+=/arcane_torrent\nactions+=/lights_judgment\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/use_item,slot=trinket1\nactions+=/use_item,slot=trinket2\nactions+=/black_ox_brew,if=energy<40\nactions+=/celestial_brew,if=(!settings.max_damage||buff.blackout_combo.down)&buff.aspect_of_harmony_accumulator.value>0.3*health.max&buff.weapons_of_order.up&!dot.aspect_of_harmony_damage.ticking\nactions+=/celestial_brew,if=(!settings.max_damage||buff.blackout_combo.down)&buff.aspect_of_harmony_accumulator.value>0.3*health.max&!talent.weapons_of_order.enabled&!dot.aspect_of_harmony_damage.ticking\nactions+=/celestial_brew,if=(!settings.max_damage||buff.blackout_combo.down)&fight_remains<20&fight_remains>14&buff.aspect_of_harmony_accumulator.value>0.2*health.max\nactions+=/celestial_brew,if=(!settings.max_damage||buff.blackout_combo.down)&buff.aspect_of_harmony_accumulator.value>0.3*health.max&cooldown.weapons_of_order.remains>20&!dot.aspect_of_harmony_damage.ticking\nactions+=/blackout_kick\nactions+=/chi_burst\nactions+=/weapons_of_order\nactions+=/rising_sun_kick,if=!talent.fluidity_of_motion.enabled\nactions+=/tiger_palm,if=buff.blackout_combo.up\nactions+=/keg_smash,if=talent.scalding_brew.enabled\nactions+=/spinning_crane_kick,if=talent.charred_passions.enabled&talent.scalding_brew.enabled&buff.charred_passions.up&buff.charred_passions.remains<3&dot.breath_of_fire.remains<9&active_enemies>4\nactions+=/rising_sun_kick,if=talent.fluidity_of_motion.enabled\nactions+=/purifying_brew,if=buff.blackout_combo.down\nactions+=/breath_of_fire,if=(buff.charred_passions.down&(!talent.scalding_brew.enabled||active_enemies<5))||!talent.charred_passions.enabled||(dot.breath_of_fire.remains<3&talent.scalding_brew.enabled)\nactions+=/exploding_keg\nactions+=/keg_smash\nactions+=/rushing_jade_wind\nactions+=/invoke_niuzao\nactions+=/tiger_palm,if=energy>40-cooldown.
["spec"] = 268,
},
["Destruction"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241122,
["author"] = "SimC",
["desc"] = "2024-11-13, 11-22: SimC update\n\n2024-11-01: Shadowburn update\n\n2024-09-24: Another Immolate spam fix\n\n2024-09-11: SimC update\n\n2024-09-05: Fix for Immolate spam\n\n2024-09-03: Fix Wither, trinkets\n\n2024-08-24, 08-30: SimC priority update\n\n2024-07-23: The War Within (sort of)",
["lists"] = {
["items"] = {
{
["enabled"] = true,
["criteria"] = "pet.infernal.remains >= 10 & pet.infernal.remains <= 20 & buff.spymasters_report.stack >= 38 & ( fight_remains > 240 || fight_remains <= 140 ) || boss & fight_remains <= 30",
["name"] = "spymasters_web",
["action"] = "spymasters_web",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "( variable.infernal_active || ! talent.summon_infernal.enabled || variable.trinket_1_will_lose_cast ) & ( variable.trinket_priority = 1 || variable.trinket_2_exclude || ! trinket.t2.has_cooldown || ( trinket.t2.cooldown.remains || variable.trinket_priority = 2 & cooldown.summon_infernal.remains > 20 & ! variable.infernal_active & trinket.t2.cooldown.remains < cooldown.summon_infernal.remains ) ) & variable.trinket_1_buffs & ! variable.trinket_1_manual || ( variable.trinket_1_buff_duration + 1 >= fight_remains )",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "( variable.infernal_active || ! talent.summon_infernal.enabled || variable.trinket_2_will_lose_cast ) & ( variable.trinket_priority = 2 || variable.trinket_1_exclude || ! trinket.t1.has_cooldown || ( trinket.t1.cooldown.remains || variable.trinket_priority = 1 & cooldown.summon_infernal.remains > 20 & ! variable.infernal_active & trinket.t1.cooldown.remains < cooldown.summon_infernal.remains ) ) & variable.trinket_2_buffs & ! variable.trinket_2_manual || ( variable.trinket_2_buff_duration + 1 >= fight_remains )",
["slot"] = "trinket2",
},
{
["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 ) || talent.summon_infernal.enabled & cooldown.summon_infernal.remains_expected > 20 & ! prev_gcd.1.summon_infernal || ! talent.summon_infernal.enabled )",
},
{
["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 ) || talent.summon_infernal.enabled & cooldown.summon_infernal.remains_expected > 20 & ! prev_gcd.1.summon_infernal || ! talent.summon_infernal.enabled )",
},
{
["use_off_gcd"] = 1,
["enabled"] = true,
["action"] = "main_hand",
["slot"] = "main_hand",
},
},
["aoe"] = {
{
["enabled"] = true,
["criteria"] = "cooldown.summon_infernal.remains >= 55 & soul_shard < 4.7 & ( active_enemies <= 3 + active_dot.wither || time > 30 )",
["action"] = "malevolence",
},
{
["enabled"] = true,
["criteria"] = "demonic_art",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["sec"] = "( ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) )",
["action"] = "wait",
["criteria"] = "( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) < gcd.max * 0.25 ) & soul_shard > 2",
},
{
["enabled"] = true,
["criteria"] = "( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) <= action.incinerate.cast_time & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) > gcd.max * 0.25 )",
["action"] = "incinerate",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "havoc_active & havoc_remains > gcd.max & active_enemies < 5 & ( ! cooldown.summon_infernal.up || ! talent.summon_infernal.enabled )",
["list_name"] = "havoc",
},
{
["enabled"] = true,
["criteria"] = "soul_shard < 4.7 & ( charges > 2 || boss & fight_remains < cooldown.dimensional_rift.duration )",
["action"] = "dimensional_rift",
},
{
["enabled"] = true,
["criteria"] = "! talent.inferno.enabled & soul_shard >= ( 4.5 - 0.1 * ( active_dot.immolate + active_dot.wither ) ) || soul_shard >= ( 3.5 - 0.1 * ( active_dot.immolate + active_dot.wither ) ) || buff.ritual_of_ruin.up",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["action"] = "wither",
["criteria"] = "dot.wither.refreshable & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.wither.remains ) & ( ! talent.raging_demonfire.enabled || cooldown.channel_demonfire.remains > remains || time < 5 ) & ( active_dot.wither <= 4 || time > 15 ) & target.time_to_die > 18",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "dot.immolate.remains + dot.wither.remains > cast_time & talent.raging_demonfire.enabled",
["action"] = "channel_demonfire",
},
{
["enabled"] = true,
["criteria"] = "( ( buff.malevolence.up & ( ( talent.cataclysm.enabled & talent.raging_demonfire.enabled & active_enemies <= 10 & fight_remains >= 60 ) || ( talent.cataclysm.enabled & ! talent.raging_demonfire.enabled & active_enemies <= 8 & fight_remains >= 60 ) || active_enemies <= 5 ) ) || ( ! talent.wither.enabled & talent.cataclysm.enabled & active_enemies <= 5 ) || active_enemies <= 3 ) & ( ( cooldown.shadowburn.full_recharge_time <= gcd.max * 3 || debuff.eradication.remains <= gcd.max & talent.eradication.enabled & ! action.chaos_bolt.in_flight & ! talent.diabolic_ritual.enabled ) & ( talent.conflagration_of_chaos.enabled || talent.blistering_atrophy.enabled ) || boss & fight_remains <= 8 )",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["action"] = "shadowburn",
["criteria"] = "( ( buff.malevolence.up & ( ( talent.cataclysm.enabled & talent.raging_demonfire.enabled & active_enemies <= 10 & fight_remains >= 60 ) || ( talent.cataclysm.enabled & ! talent.raging_demonfire.enabled & active_enemies <= 8 & fight_remains >= 60 ) || active_enemies <= 5 ) ) || ( ! talent.wither.enabled & talent.cataclysm.enabled & active_enemies <= 5 ) || active_enemies <= 3 ) & ( ( cooldown.shadowburn.full_recharge_time <= gcd.max * 3 || debuff.eradication.remains <= gcd.max & talent.eradication.enabled & ! action.chaos_bolt.in_flight & ! talent.diabolic_ritual.enabled ) & ( talent.conflagration_of_chaos.enabled || talent.blistering_atrophy.enabled ) & time_to_die < 5 || boss & fight_remains <= 8 )",
["cycle_targets"] = 1,
},
{
["action"] = "ruination",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "pet.infernal.active & talent.rain_of_chaos.enabled",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["action"] = "soul_fire",
["criteria"] = "( buff.decimation.up ) & ! talent.raging_demonfire.enabled & havoc_active",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "soul_fire",
["criteria"] = "buff.decimation.up & active_dot.immolate <= 4",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "soul_shard < 2.5",
["action"] = "infernal_bolt",
},
{
["enabled"] = true,
["criteria"] = "soul_shard > 3.5 - ( 0.1 * active_enemies ) & ! talent.rain_of_fire.enabled",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15 || talent.wither.enabled",
["action"] = "cataclysm",
},
{
["enabled"] = true,
["action"] = "havoc",
["criteria"] = "( ! cooldown.summon_infernal.up || ! talent.summon_infernal.enabled || ( talent.inferno.enabled & active_enemies > 4 ) ) & target.time_to_die > 8 & ( cooldown.malevolence.remains > 15 || ! talent.malevolence.enabled ) || time < 5",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "wither",
["criteria"] = "dot.wither.refreshable & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.wither.remains ) & ( ! talent.raging_demonfire.enabled || cooldown.channel_demonfire.remains > remains || time < 5 ) & active_dot.wither <= cycle_enemies & target.time_to_die > 18",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "immolate",
["criteria"] = "dot.immolate.refreshable & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) & ( ! talent.raging_demonfire.enabled || cooldown.channel_demonfire.remains > remains || time < 5 ) & ( active_dot.immolate <= 6 & ! ( talent.diabolic_ritual.enabled & talent.inferno.enabled ) || active_dot.immolate <= 4 ) & target.time_to_die > 18",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "ogcd",
},
{
["action"] = "summon_infernal",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "debuff.pyrogenics.down & active_enemies <= 4 & ! talent.diabolic_ritual.enabled",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["criteria"] = "dot.immolate.remains + dot.wither.remains > cast_time",
["action"] = "channel_demonfire",
},
{
["enabled"] = true,
["action"] = "immolate",
["criteria"] = "dot.immolate.refreshable & ( ( ( ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) ) || cycle_enemies > active_dot.immolate ) & target.time_to_die > 10 & ! havoc_active & ! ( talent.diabolic_ritual.enabled & talent.inferno.enabled ) )",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "immolate",
["criteria"] = "dot.immolate.refreshable & ( ( variable.havoc_immo_time < 5.4 || ( dot.immolate.remains < 2 & dot.immolate.remains < havoc_remains ) || ! dot.immolate.ticking || ( variable.havoc_immo_time < 2 ) * havoc_active ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) & target.time_to_die > 11 & ! ( talent.diabolic_ritual.enabled & talent.inferno.enabled ) )",
["cycle_targets"] = 1,
},
{
["action"] = "dimensional_rift",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "soul_fire",
["criteria"] = "buff.decimation.up",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "talent.fire_and_brimstone.enabled & buff.backdraft.up",
["action"] = "incinerate",
},
{
["enabled"] = true,
["criteria"] = "buff.backdraft.stack < 2 || ! talent.backdraft.enabled",
["action"] = "conflagrate",
},
{
["action"] = "incinerate",
["enabled"] = true,
},
},
["havoc"] = {
{
["enabled"] = true,
["criteria"] = "talent.backdraft.enabled & buff.backdraft.down & soul_shard >= 1 & soul_shard <= 4",
["action"] = "conflagrate",
},
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains & soul_shard < 2.5",
["action"] = "soul_fire",
},
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15 || ( talent.wither.enabled & dot.wither.remains < action.wither.cast_time * 0.3 )",
["action"] = "cataclysm",
},
{
["enabled"] = true,
["action"] = "immolate",
["criteria"] = "( ( ( dot.immolate.refreshable & variable.havoc_immo_time < 5.4 ) & target.time_to_die > 5 ) || ( ( dot.immolate.remains < 2 & dot.immolate.remains < havoc_remains ) || ! dot.immolate.ticking || variable.havoc_immo_time < 2 ) & target.time_to_die > 11 ) & soul_shard < 4.5",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "wither",
["criteria"] = "( ( ( dot.wither.refreshable & variable.havoc_immo_time < 5.4 ) & target.time_to_die > 5 ) || ( ( dot.wither.remains < 2 & dot.wither.remains < havoc_remains ) || ! dot.wither.ticking || variable.havoc_immo_time < 2 ) & target.time_to_die > 11 ) & soul_shard < 4.5",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( cooldown.shadowburn.full_recharge_time <= gcd.max * 3 || debuff.eradication.remains <= gcd.max & talent.eradication.enabled & ! action.chaos_bolt.in_flight & ! talent.diabolic_ritual.enabled ) & ( talent.conflagration_of_chaos.enabled || talent.blistering_atrophy.enabled )",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["criteria"] = "havoc_remains <= gcd.max * 3",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains & ( ( ! talent.improved_chaos_bolt.enabled & active_enemies <= 2 ) || ( talent.improved_chaos_bolt.enabled & ( ( talent.wither.enabled & talent.inferno.enabled & active_enemies <= 2 ) || ( ( ( talent.wither.enabled & talent.cataclysm.enabled ) || ( ! talent.wither.enabled & talent.inferno.enabled ) ) & active_enemies <= 3 ) || ( ! talent.wither.enabled & talent.cataclysm.enabled & active_enemies <= 4 ) ) ) )",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 3",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["criteria"] = "soul_shard < 4.5",
["action"] = "channel_demonfire",
},
{
["enabled"] = true,
["criteria"] = "! talent.backdraft.enabled",
["action"] = "conflagrate",
},
{
["enabled"] = true,
["criteria"] = "soul_shard < 4.7 & ( charges > 2 || boss & fight_remains < cooldown.dimensional_rift.duration )",
["action"] = "dimensional_rift",
},
{
["enabled"] = true,
["criteria"] = "cast_time < havoc_remains",
["action"] = "incinerate",
},
},
["cleave"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "havoc_active & havoc_remains > gcd.max",
["list_name"] = "havoc",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.havoc.remains <= 5 || talent.mayhem.enabled",
["var_name"] = "pool_soul_shards",
},
{
["enabled"] = true,
["criteria"] = "( ! cooldown.summon_infernal.up || ! talent.summon_infernal.enabled )",
["action"] = "malevolence",
},
{
["enabled"] = true,
["action"] = "havoc",
["criteria"] = "( ! cooldown.summon_infernal.up || ! talent.summon_infernal.enabled ) & target.time_to_die > 8",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "demonic_art",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.decimation.react & ( soul_shard <= 4 || buff.decimation.remains <= gcd.max * 2 ) & debuff.conflagrate.remains >= execute_time & cooldown.havoc.remains",
["action"] = "soul_fire",
},
{
["enabled"] = true,
["action"] = "wither",
["criteria"] = "talent.internal_combustion.enabled & ( ( ( dot.wither.remains - 5 * action.chaos_bolt.in_flight ) < dot.wither.duration * 0.4 ) || dot.wither.remains < 3 || ( dot.wither.remains - action.chaos_bolt.execute_time ) < 5 & action.chaos_bolt.usable ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + action.soul_fire.cast_time > ( dot.wither.remains - 5 ) ) & target.time_to_die > 8 & ! action.soul_fire.in_flight_to_target",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "wither",
["criteria"] = "! talent.internal_combustion.enabled & ( ( ( dot.wither.remains - 5 * ( action.chaos_bolt.in_flight ) ) < dot.wither.duration * 0.3 ) || dot.wither.remains < 3 ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + action.soul_fire.cast_time > ( dot.wither.remains ) ) & target.time_to_die > 8 & ! action.soul_fire.in_flight_to_target",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["criteria"] = "( talent.roaring_blaze.enabled & full_recharge_time <= gcd.max * 2 ) || recharge_time <= 8 & ( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) < gcd.max ) & ! variable.pool_soul_shards",
["action"] = "conflagrate",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.shadowburn.full_recharge_time <= gcd.max * 3 || debuff.eradication.remains <= gcd.max & talent.eradication.enabled & ! action.chaos_bolt.in_flight & ! talent.diabolic_ritual.enabled ) & ( talent.conflagration_of_chaos.enabled || talent.blistering_atrophy.enabled ) || boss & fight_remains <= 8",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["criteria"] = "buff.ritual_of_ruin.up",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_infernal.remains >= 90 & talent.rain_of_chaos.enabled",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_infernal.remains >= 90 & talent.rain_of_chaos.enabled",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_infernal.remains >= 90 & talent.rain_of_chaos.enabled",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "( debuff.eradication.remains >= execute_time || ! talent.eradication.enabled || ! talent.shadowburn.enabled )",
["action"] = "ruination",
},
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15",
["action"] = "cataclysm",
},
{
["enabled"] = true,
["criteria"] = "talent.raging_demonfire.enabled & ( dot.immolate.remains + dot.wither.remains - 5 * ( action.chaos_bolt.in_flight & talent.internal_combustion.enabled ) ) > cast_time",
["action"] = "channel_demonfire",
},
{
["enabled"] = true,
["criteria"] = "soul_shard <= 3.5 & ( debuff.conflagrate.remains > cast_time + travel_time || ! talent.roaring_blaze.enabled & buff.backdraft.up ) & ! variable.pool_soul_shards",
["action"] = "soul_fire",
},
{
["enabled"] = true,
["action"] = "immolate",
["criteria"] = "( dot.immolate.refreshable & ( dot.immolate.remains < cooldown.havoc.remains || ! dot.immolate.ticking ) ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > remains ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + ( ! talent.mayhem.enabled * action.soul_fire.cast_time ) > dot.immolate.remains ) & target.time_to_die > 15",
["cycle_targets"] = 1,
},
{
["action"] = "summon_infernal",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.diabolic_ritual.enabled & ( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains - 2 - ! variable.disable_cb_2t * action.chaos_bolt.cast_time - variable.disable_cb_2t * gcd.max ) <= 0 )",
["action"] = "incinerate",
},
{
["enabled"] = true,
["criteria"] = "variable.pooling_condition & ! talent.wither.enabled & buff.rain_of_chaos.up",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["criteria"] = "variable.allow_rof_2t_spender >= 1 & ! talent.wither.enabled & talent.pyrogenics.enabled & debuff.pyrogenics.remains <= gcd.max & ( ! talent.rain_of_chaos.enabled || cooldown.summon_infernal.remains >= gcd.max * 3 ) & variable.pooling_condition",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["criteria"] = "variable.do_rof_2t & variable.pooling_condition & ( cooldown.summon_infernal.remains >= gcd.max * 3 || ! talent.rain_of_chaos.enabled )",
["action"] = "rain_of_fire",
},
{
["enabled"] = true,
["criteria"] = "soul_shard <= 4 & talent.mayhem.enabled",
["action"] = "soul_fire",
},
{
["enabled"] = true,
["criteria"] = "! variable.disable_cb_2t & variable.pooling_condition_cb & ( cooldown.summon_infernal.remains >= gcd.max * 3 || soul_shard > 4 || ! talent.rain_of_chaos.enabled )",
["action"] = "chaos_bolt",
},
{
["action"] = "channel_demonfire",
["enabled"] = true,
},
{
["action"] = "dimensional_rift",
["enabled"] = true,
},
{
["action"] = "infernal_bolt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "time_to_max_charges < 2 * gcd.max || boss & fight_remains < gcd.max * charges",
["action"] = "conflagrate",
},
{
["action"] = "incinerate",
["enabled"] = true,
},
},
["variables"] = {
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["value"] = "dot.immolate.remains <? dot.wither.remains",
["criteria"] = "havoc_active",
["var_name"] = "havoc_immo_time",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( soul_shard >= 3 || ( talent.secrets_of_the_coven.enabled & buff.infernal_bolt.up || buff.decimation.up ) & soul_shard >= 3 )",
["default"] = "1",
["var_name"] = "pooling_condition",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.pooling_condition || pet.infernal.active & soul_shard >= 3",
["default"] = "1",
["var_name"] = "pooling_condition_cb",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "pet.infernal.active || ( cooldown.summon_infernal.duration - cooldown.summon_infernal.remains ) < 20",
["var_name"] = "infernal_active",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ( floor ( ( fight_remains / trinket.t1.cooldown.duration ) + 1 ) != floor ( ( fight_remains + ( cooldown.summon_infernal.duration - cooldown.summon_infernal.remains ) ) / cooldown.summon_infernal.duration ) ) & ( floor ( ( fight_remains / trinket.t1.cooldown.duration ) + 1 ) ) != ( floor ( ( ( fight_remains - cooldown.summon_infernal.remains ) / trinket.t1.cooldown.duration ) + 1 ) ) || ( ( floor ( ( fight_remains / trinket.t1.cooldown.duration ) + 1 ) = floor ( ( fight_remains + ( cooldown.summon_infernal.duration - cooldown.summon_infernal.remains ) ) / cooldown.summon_infernal.duration ) ) & ( ( ( fight_remains - cooldown.summon_infernal.remains % trinket.t1.cooldown.duration ) - cooldown.summon_infernal.remains - variable.trinket_1_buff_duration ) > 0 ) ) ) & cooldown.summon_infernal.remains > 20",
["var_name"] = "trinket_1_will_lose_cast",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ( floor ( ( fight_remains / trinket.t2.cooldown.duration ) + 1 ) != floor ( ( fight_remains + ( cooldown.summon_infernal.duration - cooldown.summon_infernal.remains ) ) / cooldown.summon_infernal.duration ) ) & ( floor ( ( fight_remains / trinket.t2.cooldown.duration ) + 1 ) ) != ( floor ( ( ( fight_remains - cooldown.summon_infernal.remains ) / trinket.t2.cooldown.duration ) + 1 ) ) || ( ( floor ( ( fight_remains / trinket.t2.cooldown.duration ) + 1 ) = floor ( ( fight_remains + ( cooldown.summon_infernal.duration - cooldown.summon_infernal.remains ) ) / cooldown.summon_infernal.duration ) ) & ( ( ( fight_remains - cooldown.summon_infernal.remains % trinket.t2.cooldown.duration ) - cooldown.summon_infernal.remains - variable.trinket_2_buff_duration ) > 0 ) ) ) & cooldown.summon_infernal.remains > 20",
["var_name"] = "trinket_2_will_lose_cast",
},
},
["default"] = {
{
["action"] = "spell_lock",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "variables",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "ogcd",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "items",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "( active_enemies >= 3 ) & ! variable.cleave_apl",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "This entry is manually translated and will differ from SIMC, but maintains the same functionality.",
["strict"] = 1,
["criteria"] = "active_enemies != 1",
["list_name"] = "cleave",
},
{
["enabled"] = true,
["criteria"] = "cooldown.summon_infernal.remains >= 55",
["action"] = "malevolence",
},
{
["enabled"] = true,
["sec"] = "( ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) )",
["action"] = "wait",
["criteria"] = "( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) < gcd.max * 0.25 ) & soul_shard > 2",
},
{
["enabled"] = true,
["criteria"] = "demonic_art",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "buff.decimation.react & ( soul_shard <= 4 || buff.decimation.remains <= gcd.max * 2 ) & debuff.conflagrate.remains >= execute_time",
["action"] = "soul_fire",
},
{
["enabled"] = true,
["criteria"] = "talent.internal_combustion.enabled & ( ( ( dot.wither.remains - 5 * action.chaos_bolt.in_flight ) < dot.wither.duration * 0.4 ) || dot.wither.remains < 3 || ( dot.wither.remains - action.chaos_bolt.execute_time ) < 5 & action.chaos_bolt.usable ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + action.soul_fire.cast_time > ( dot.wither.remains - 5 ) ) & target.time_to_die > 8 & ! action.soul_fire.in_flight_to_target",
["action"] = "wither",
},
{
["enabled"] = true,
["criteria"] = "talent.roaring_blaze.enabled & debuff.conflagrate.remains < 1.5 || full_recharge_time <= gcd.max * 2 || recharge_time <= 8 & ( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains ) < gcd.max ) & soul_shard >= 1.5",
["action"] = "conflagrate",
},
{
["enabled"] = true,
["criteria"] = "( full_recharge_time <= gcd.max * 3 || debuff.eradication.remains <= gcd.max & talent.eradication.enabled & ! action.chaos_bolt.in_flight & ! talent.diabolic_ritual.enabled ) & ( talent.conflagration_of_chaos.enabled || talent.blistering_atrophy.enabled ) & ! demonic_art || boss & fight_remains <= 8",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["criteria"] = "buff.ritual_of_ruin.up",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.summon_infernal.remains >= 90 & talent.rain_of_chaos.enabled ) || buff.malevolence.up",
["action"] = "shadowburn",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.summon_infernal.remains >= 90 & talent.rain_of_chaos.enabled ) || buff.malevolence.up",
["action"] = "chaos_bolt",
},
{
["enabled"] = true,
["criteria"] = "( debuff.eradication.remains >= execute_time || ! talent.eradication.enabled || ! talent.shadowburn.enabled )",
["action"] = "ruination",
},
{
["enabled"] = true,
["criteria"] = "raid_event.adds.in > 15 & ( dot.immolate.refreshable & ! talent.wither.enabled || talent.wither.enabled & dot.wither.refreshable )",
["action"] = "cataclysm",
},
{
["enabled"] = true,
["criteria"] = "talent.raging_demonfire.enabled & ( dot.immolate.remains + dot.wither.remains - 5 * ( action.chaos_bolt.in_flight & talent.internal_combustion.enabled ) ) > cast_time",
["action"] = "channel_demonfire",
},
{
["enabled"] = true,
["criteria"] = "! talent.internal_combustion.enabled & ( ( ( dot.wither.remains - 5 * ( action.chaos_bolt.in_flight ) ) < dot.wither.duration * 0.3 ) || dot.wither.remains < 3 ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.wither.remains ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + action.soul_fire.cast_time > ( dot.wither.remains ) ) & target.time_to_die > 8 & ! action.soul_fire.in_flight_to_target",
["action"] = "wither",
},
{
["enabled"] = true,
["criteria"] = "( ( ( dot.immolate.remains - 5 * ( action.chaos_bolt.in_flight & talent.internal_combustion.enabled ) ) < dot.immolate.duration * 0.3 ) || dot.immolate.remains < 3 || ( dot.immolate.remains - action.chaos_bolt.execute_time ) < 5 & talent.internal_combustion.enabled & action.chaos_bolt.usable ) & ( ! talent.cataclysm.enabled || cooldown.cataclysm.remains > dot.immolate.remains ) & ( ! talent.soul_fire.enabled || cooldown.soul_fire.remains + action.soul_fire.cast_time > ( dot.immolate.remains - 5 * talent.internal_combustion.enabled ) ) & target.time_to_die > 8 & ! action.soul_fire.in_flight_to_target",
["action"] = "immolate",
},
{
["action"] = "summon_infernal",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.diabolic_ritual.enabled & ( diabolic_ritual & ( buff.diabolic_ritual_mother_of_chaos.remains + buff.diabolic_ritual_overlord.remains + buff.diabolic_ritual_pit_lord.remains - 2 - ! variable.disable_cb_2t * action.chaos_bolt.cast_time - variable.disable_cb_2t * gcd.max ) <= 0 )",
["action"] = "incinerate",
},
{
["enabled"] = true,
["criteria"] = "variable.pooling_condition_cb & ( cooldown.summon_infernal.remains >= gcd.max * 3 || soul_shard > 4 || ! talent.rain_of_chaos.enabled )",
["action"] = "chaos_bolt",
},
{
["action"] = "channel_demonfire",
["enabled"] = true,
},
{
["action"] = "dimensional_rift",
["enabled"] = true,
},
{
["action"] = "infernal_bolt",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "time_to_max_charges < 2 * gcd.max || boss & fight_remains < gcd.max * charges",
["action"] = "conflagrate",
},
{
["enabled"] = true,
["criteria"] = "buff.backdraft.up",
["action"] = "soul_fire",
},
{
["action"] = "incinerate",
["enabled"] = true,
},
},
["precombat"] = {
{
["enabled"] = true,
["criteria"] = "time > 0 & ! pet.alive",
["action"] = "fel_domination",
},
{
["action"] = "summon_pet",
["enabled"] = true,
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "toggle.funnel",
["var_name"] = "cleave_apl",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.has_use_buff",
["description"] = "Automatic Logic for Buff Trinkets in Trinket Slot 1",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff",
["description"] = "Automatic Logic for Buff Trinkets in Trinket Slot 2",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_1_sync",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.summon_infernal.duration = 0 || cooldown.summon_infernal.duration % trinket.t1.cooldown.duration = 0 )",
["value_else"] = "0.5",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.summon_infernal.duration = 0 || cooldown.summon_infernal.duration % trinket.t2.cooldown.duration = 0 )",
["value_else"] = "0.5",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.spymasters_web",
["description"] = "Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic",
["var_name"] = "trinket_1_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.spymasters_web",
["description"] = "Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic",
["var_name"] = "trinket_2_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.whispering_incarnate_icon",
["description"] = "Sets a specific Trinkets in Slot 2 to follow an APL line and not the automatic logic",
["var_name"] = "trinket_1_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.whispering_incarnate_icon",
["description"] = "For On Use Trinkets on slot 2 with on use effects you dont want to use in combat",
["var_name"] = "trinket_2_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.buff_duration",
["description"] = "Sets the duration of the trinket in the automatic logic",
["var_name"] = "trinket_1_buff_duration",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.buff_duration",
["description"] = "Sets the duration of the trinket in the automatic logic",
["var_name"] = "trinket_2_buff_duration",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Automatic Logic in case both Trinkets are on use buffs",
["criteria"] = "! variable.trinket_1_buffs & variable.trinket_2_buffs || variable.trinket_2_buffs & ( ( trinket.t2.cooldown.duration / variable.trinket_2_buff_duration ) * ( 1 + 0.5 * trinket.t2.has_use_buff ) * ( variable.trinket_2_sync ) ) > ( ( trinket.t1.cooldown.duration / variable.trinket_1_buff_duration ) * ( 1 + 0.5 * trinket.t1.has_use_buff ) * ( variable.trinket_1_sync ) )",
["value"] = "2",
["action"] = "variable",
["value_else"] = "1",
["var_name"] = "trinket_priority",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "allow_rof_2t_spender",
["default"] = "2",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.allow_rof_2t_spender > 1.99 & ! ( talent.cataclysm.enabled & talent.improved_chaos_bolt.enabled )",
["var_name"] = "do_rof_2t",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.do_rof_2t || variable.allow_rof_2t_spender > 0.01 & variable.allow_rof_2t_spender < 0.99",
["var_name"] = "disable_cb_2t",
},
{
["enabled"] = true,
["criteria"] = "talent.grimoire_of_sacrifice.enabled",
["action"] = "grimoire_of_sacrifice",
},
{
["enabled"] = true,
["criteria"] = "active_enemies >= 2",
["action"] = "cataclysm",
},
{
["action"] = "soul_fire",
["enabled"] = true,
},
{
["action"] = "incinerate",
["enabled"] = true,
},
},
["ogcd"] = {
{
["enabled"] = true,
["criteria"] = "variable.infernal_active || ! talent.summon_infernal.enabled",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "variable.infernal_active || ! talent.summon_infernal.enabled || ( boss & fight_remains < ( cooldown.summon_infernal.remains_expected + cooldown.berserking.duration ) & ( fight_remains > cooldown.berserking.duration ) ) || boss & fight_remains < cooldown.summon_infernal.remains_expected",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "variable.infernal_active || ! talent.summon_infernal.enabled || ( boss & fight_remains < cooldown.summon_infernal.remains_expected + 10 + cooldown.blood_fury.duration & fight_remains > cooldown.blood_fury.duration ) || boss & fight_remains < cooldown.summon_infernal.remains",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "variable.infernal_active || ! talent.summon_infernal.enabled || ( boss & fight_remains < cooldown.summon_infernal.remains_expected + 10 + cooldown.fireblood.duration & fight_remains > cooldown.fireblood.duration ) || boss & fight_remains < cooldown.summon_infernal.remains_expected",
["action"] = "fireblood",
},
{
["enabled"] = true,
["criteria"] = "variable.infernal_active || ! talent.summon_infernal.enabled || ( boss & fight_remains < ( cooldown.summon_infernal.remains_expected + cooldown.berserking.duration ) & ( fight_remains > cooldown.berserking.duration ) ) || boss & fight_remains < cooldown.summon_infernal.remains_expected",
["action"] = "ancestral_call",
},
},
},
["version"] = 20241122,
["warnings"] = "The import for 'items' required some automated changes.\nLine 2: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (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.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 3: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 3: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 4: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\nLine 5: Converted 'talent.summon_infernal' to 'talent.summon_infernal.enabled' (1x).\n\nThe import for 'variables' required some automated changes.\nLine 2: Converted 'talent.secrets_of_the_coven' to 'talent.secrets_of_the_coven.enabled' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted operations in '((floor((fight_remains%trinket.t1.cooldown.duration)+1)!=floor((fight_remains+(cooldown.summon_infernal.duration-cooldown.summon_infernal.remains))%cooldown.summon_infernal.duration))&(floor((fight_remains%trinket.t1.cooldown.duration)+1))!=(floor(((fight_remains-cooldown.summon_infernal.remains)%trinket.t1.cooldown.duration)+1))||((floor((fight_remains%trinket.t1.cooldown.duration)+1)=floor((fight_remains+(cooldown.summon_infernal.duration-cooldown.summon_infernal.remains))%cooldown.summon_infernal.duration))&(((fight_remains-cooldown.summon_infernal.remains%%trinket.t1.cooldown.duration)-cooldown.summon_infernal.remains-variable.trinket_1_buff_duration)>0)))&cooldown.summon_infernal.remains>20' to '((floor((fight_remains/trinket.t1.cooldown.duration)+1)!=floor((fight_remains+(cooldown.summon_infernal.duration-cooldown.summon_infernal.remains))/cooldown.summon_infernal.duration))&(floor((fight_remains/trinket.t1.cooldown.duration)+1))!=(floor(((fight_remains-cooldown.summon_infernal.remains)/trinket.t1.cooldown.duration)+1))||((floor((fight_remains/trinket.t1.cooldown.duration)+1)=floor((fight_remains+(cooldown.summon_infernal.duration-cooldown.summon_infernal.remains))/cooldown.summon_infernal.duration))&(((fight_remains-cooldown.summon_infernal.remains%t
["profile"] = "actions.precombat=fel_domination,if=time>0&!pet.alive\nactions.precombat+=/summon_pet\nactions.precombat+=/variable,name=cleave_apl,value=toggle.funnel\n# Automatic Logic for Buff Trinkets in Trinket Slot 1\nactions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff\n# Automatic Logic for Buff Trinkets in Trinket Slot 2\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.summon_infernal.duration=0||cooldown.summon_infernal.duration%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.summon_infernal.duration=0||cooldown.summon_infernal.duration%%trinket.2.cooldown.duration=0)\n# Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.spymasters_web\n# Sets a specific Trinkets in Slot 1 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.spymasters_web\n# Sets a specific Trinkets in Slot 2 to follow an APL line and not the automatic logic\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.whispering_incarnate_icon\n# For On Use Trinkets on slot 2 with on use effects you dont want to use in combat\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.whispering_incarnate_icon\n# Sets the duration of the trinket in the automatic logic\nactions.precombat+=/variable,name=trinket_1_buff_duration,value=trinket.1.proc.any_dps.duration\n# Sets the duration of the trinket in the automatic logic\nactions.precombat+=/variable,name=trinket_2_buff_duration,value=trinket.2.proc.any_dps.duration\n# Automatic Logic in case both Trinkets are on use buffs\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%variable.trinket_2_buff_duration)*(1+0.5*trinket.2.has_buff.intellect)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%variable.trinket_1_buff_duration)*(1+0.5*trinket.1.has_buff.intellect)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=allow_rof_2t_spender,default=2,op=reset\nactions.precombat+=/variable,name=do_rof_2t,value=variable.allow_rof_2t_spender>1.99&!(talent.cataclysm&talent.improved_chaos_bolt),op=set\nactions.precombat+=/variable,name=disable_cb_2t,value=variable.do_rof_2t||variable.allow_rof_2t_spender>0.01&variable.allow_rof_2t_spender<0.99\nactions.precombat+=/grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled\nactions.precombat+=/cataclysm,if=active_enemies>=2\nactions.precombat+=/soul_fire\nactions.precombat+=/incinerate\n\nactions+=/spell_lock\nactions+=/call_action_list,name=variables\nactions+=/call_action_list,name=ogcd\nactions+=/call_action_list,name=items\nactions+=/call_action_list,name=aoe,strict=1,if=(active_enemies>=3)&!variable.cleave_apl\n# This entry is manually translated and will differ from SIMC, but maintains the same functionality.\nactions+=/call_action_list,name=cleave,strict=1,if=active_enemies!=1\nactions+=/malevolence,if=cooldown.summon_infernal.remains>=55\nactions+=/wait,sec=((buff.diabolic_ritual_mother_of_chaos.remains+buff.diabolic_ritual_overlord.remains+buff.diabolic_ritual_pit_lord.remains)),if=(diabolic_ritual&(buff.diabolic_ritual_mother_of_chaos.remains+buff.diabolic_ritual_overlord.remains+buff.diabolic_ritual_pit_lord.remains)<gcd.max*0.25)&soul_shard>2\nactions+=/chaos_bolt,if=demonic_art\nactions+=/soul_fire,if=buff.decimation.react&(soul_shard<=4||buff.decimation.remains<=gcd.max*2)&debuff.conflagrate.remains>=execute_time\nactions+=/wither,if=talent.internal_combustion&(((dot.wither.remains-5*action.chaos_bolt.in_flight)<dot.wither.duration*0.4)||do
["spec"] = 267,
},
["Blood"] = {
["source"] = "SimulationCraft",
["builtIn"] = true,
["date"] = 20241122,
["spec"] = 250,
["desc"] = "2024-11-22: SimC update\n\n2024-11-02: Restore IBF, VB, RT\n\n2024-10-29: 11.0.5 SimC update + Reaper of Souls\n\n2024-10-06: Marrowrend / Exterminate during DRW\n\n2024-09-28: Marrowrend / Exterminate\n\n2024-09-08: Vampiric Blood\n\n2024-09-05: Sim update\n\n2024-08-28: Sim update\n\n2024-07-24: The War Within",
["lists"] = {
["sanlayn"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "settings.death_strike_pool_amount",
["var_name"] = "death_strike_dump_amount",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "20",
["var_name"] = "death_strike_pre_essence_dump_amount",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "7",
["var_name"] = "bone_shield_refresh_value",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 21 + spell_targets.heart_strike * talent.heartbreaker.enabled * 2 )",
["var_name"] = "heart_strike_rp_drw",
},
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains <= gcd.max",
["action"] = "death_strike",
},
{
["enabled"] = true,
["description"] = "Use Death Strike if your Blood Shield is going to expire.",
["criteria"] = "settings.save_blood_shield & buff.blood_shield.up & buff.blood_shield.remains <= gcd.max",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "! buff.bone_shield.up",
["action"] = "deaths_caress",
},
{
["enabled"] = true,
["criteria"] = "! dot.blood_plague.ticking || ( dot.blood_plague.remains < 10 & buff.dancing_rune_weapon.up )",
["action"] = "blood_boil",
},
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up",
["action"] = "potion",
},
{
["enabled"] = true,
["criteria"] = "pet.dancing_rune_weapon.active & pet.dancing_rune_weapon.remains <= 3",
["action"] = "consumption",
},
{
["enabled"] = true,
["criteria"] = "( buff.death_and_decay.up ) & buff.bone_shield.stack > 5 & cooldown.dancing_rune_weapon.remains >= 25",
["action"] = "bonestorm",
},
{
["enabled"] = true,
["criteria"] = "runic_power >= 108",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up & rune > 1",
["action"] = "heart_strike",
},
{
["enabled"] = true,
["criteria"] = "! buff.death_and_decay.up",
["action"] = "death_and_decay",
},
{
["enabled"] = true,
["criteria"] = "buff.infliction_of_sorrow.up & buff.death_and_decay.up",
["action"] = "heart_strike",
},
{
["action"] = "raise_dead",
["enabled"] = true,
},
{
["action"] = "abomination_limb",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ! buff.dancing_rune_weapon.up & buff.death_and_decay.up ) & buff.bone_shield.stack > 5 & runic_power.deficit >= 30 & cooldown.dancing_rune_weapon.remains >= 25 & buff.coagulopathy.remains > 2 * gcd.max",
["action"] = "tombstone",
},
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains >= 2 * gcd.max & ( ! buff.essence_of_the_blood_queen.up || buff.essence_of_the_blood_queen.remains >= 3 * gcd.max ) & ( ! buff.dancing_rune_weapon.up || buff.dancing_rune_weapon.remains >= 6 * gcd.max )",
["action"] = "dancing_rune_weapon",
},
{
["enabled"] = true,
["criteria"] = "! buff.vampiric_strike.up & cooldown.dancing_rune_weapon.remains <= 30 & runic_power > variable.death_strike_pre_essence_dump_amount & buff.essence_of_the_blood_queen.stack >= 3",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "! dot.bonestorm.ticking & ( buff.bone_shield.stack < variable.bone_shield_refresh_value & runic_power.deficit > 20 || buff.bone_shield.remains <= 3 )",
["action"] = "marrowrend",
},
{
["enabled"] = true,
["criteria"] = "! dot.bonestorm.ticking & ( buff.bone_shield.stack < variable.bone_shield_refresh_value & runic_power.deficit > 20 & ! cooldown.dancing_rune_weapon.up || buff.bone_shield.remains <= 3 )",
["action"] = "marrowrend",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & target.time_to_pct_35 < 5 & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up & ( buff.coagulopathy.remains < 2 * gcd.max || ( runic_power.deficit <= variable.heart_strike_rp_drw & buff.incite_terror.stack >= 3 ) )",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.vampiric_strike.up || buff.infliction_of_sorrow.up & ( ( talent.consumption.enabled & buff.consumption.up ) || ! talent.consumption.enabled ) & dot.blood_plague.ticking & dot.blood_plague.remains > 20",
["action"] = "heart_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.up",
["action"] = "dancing_rune_weapon",
},
{
["enabled"] = true,
["criteria"] = "runic_power.deficit <= variable.heart_strike_rp_drw || runic_power >= variable.death_strike_dump_amount",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "charges >= 2 || ( full_recharge_time <= gcd.max )",
["action"] = "blood_boil",
},
{
["enabled"] = true,
["criteria"] = "cooldown.dancing_rune_weapon.remains > 20",
["action"] = "consumption",
},
{
["enabled"] = true,
["criteria"] = "rune > 1",
["action"] = "heart_strike",
},
{
["enabled"] = true,
["criteria"] = "buff.death_and_decay.up & buff.bone_shield.stack > 5 & cooldown.dancing_rune_weapon.remains >= 25",
["action"] = "bonestorm",
},
{
["enabled"] = true,
["criteria"] = "buff.death_and_decay.up & buff.bone_shield.stack > 5 & runic_power.deficit >= 30 & cooldown.dancing_rune_weapon.remains >= 25",
["action"] = "tombstone",
},
},
["deathbringer"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "settings.death_strike_pool_amount",
["var_name"] = "death_strike_dump_amount",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "6",
["var_name"] = "bone_shield_refresh_value",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( 25 + spell_targets.heart_strike * talent.heartbreaker.enabled * 2 )",
["var_name"] = "heart_strike_rp_drw",
},
{
["enabled"] = true,
["criteria"] = "buff.dancing_rune_weapon.up",
["action"] = "potion",
},
{
["action"] = "raise_dead",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.dancing_rune_weapon.ready",
["action"] = "blood_fury",
},
{
["enabled"] = true,
["criteria"] = "cooldown.dancing_rune_weapon.ready",
["action"] = "berserking",
},
{
["enabled"] = true,
["criteria"] = "rune <= 1",
["action"] = "blood_tap",
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["enabled"] = true,
["description"] = "Use Death Strike if your Blood Shield is going to expire.",
["criteria"] = "settings.save_blood_shield & buff.blood_shield.up & buff.blood_shield.remains <= gcd.max",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "! buff.bone_shield.up",
["action"] = "deaths_caress",
},
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains <= gcd.max || runic_power.deficit < 35",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "dot.reapers_mark.ticking & dot.reapers_mark.remains < 2 * gcd.max",
["action"] = "blood_boil",
},
{
["enabled"] = true,
["criteria"] = "dot.reapers_mark.ticking & charges_fractional >= 1.5",
["action"] = "blood_boil",
},
{
["enabled"] = true,
["criteria"] = "dot.reapers_mark.ticking & dot.blood_plague.ticking",
["action"] = "consumption",
},
{
["enabled"] = true,
["criteria"] = "buff.reaper_of_souls.up & buff.coagulopathy.remains > 1 * gcd.max",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "active_enemies = 1 & ( target.time_to_pct_35 < 5 || buff.reaper_of_souls.up ) & target.time_to_die > ( dot.soul_reaper.remains + 5 )",
["action"] = "soul_reaper",
},
{
["enabled"] = true,
["criteria"] = "( dot.reapers_mark.ticking & ( pet.dancing_rune_weapon.active & dot.blood_plague.stack < 2 ) ) || ! dot.blood_plague.ticking || ( charges_fractional >= 1 & dot.reapers_mark.ticking & buff.coagulopathy.remains > 2 * gcd.max )",
["action"] = "blood_boil",
},
{
["enabled"] = true,
["criteria"] = "( ( dot.reapers_mark.ticking ) & ! death_and_decay.ticking ) || ! buff.death_and_decay.up",
["action"] = "death_and_decay",
},
{
["enabled"] = true,
["criteria"] = "buff.exterminate.up & ( runic_power.deficit > 20 & buff.coagulopathy.remains > 2 * gcd.max )",
["action"] = "marrowrend",
},
{
["enabled"] = true,
["criteria"] = "( buff.exterminate.up ) & ( runic_power.deficit > 20 & buff.coagulopathy.remains > 2 * gcd.max )",
["action"] = "marrowrend",
},
{
["enabled"] = true,
["criteria"] = "dot.reapers_mark.ticking",
["action"] = "abomination_limb",
},
{
["enabled"] = true,
["criteria"] = "! dot.reapers_mark.ticking & dot.blood_plague.ticking",
["action"] = "reapers_mark",
},
{
["enabled"] = true,
["criteria"] = "buff.death_and_decay.up & buff.bone_shield.stack > 5 & cooldown.dancing_rune_weapon.remains >= 10 & ( dot.reapers_mark.ticking )",
["action"] = "bonestorm",
},
{
["action"] = "abomination_limb",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains > 3 * gcd.max & ! buff.dancing_rune_weapon.up",
["action"] = "blooddrinker",
},
{
["enabled"] = true,
["criteria"] = "buff.coagulopathy.remains > 2 * gcd.max",
["action"] = "dancing_rune_weapon",
},
{
["enabled"] = true,
["criteria"] = "buff.death_and_decay.up & buff.bone_shield.stack > 5 & cooldown.dancing_rune_weapon.remains >= 10",
["action"] = "bonestorm",
},
{
["enabled"] = true,
["criteria"] = "buff.death_and_decay.up & buff.bone_shield.stack > 5 & runic_power.deficit >= 30 & cooldown.dancing_rune_weapon.remains >= 10",
["action"] = "tombstone",
},
{
["enabled"] = true,
["criteria"] = "! dot.bonestorm.ticking & ( buff.bone_shield.stack < variable.bone_shield_refresh_value & runic_power.deficit > 20 || buff.bone_shield.remains <= 3 )",
["action"] = "marrowrend",
},
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.5 || ( full_recharge_time <= gcd.max )",
["action"] = "blood_boil",
},
{
["action"] = "consumption",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "runic_power.deficit <= variable.heart_strike_rp_drw || runic_power >= variable.death_strike_dump_amount",
["action"] = "death_strike",
},
{
["enabled"] = true,
["criteria"] = "charges_fractional >= 1.5 & buff.hemostasis.stack < 5 & cooldown.reapers_mark.remains > 5",
["action"] = "blood_boil",
},
{
["enabled"] = true,
["criteria"] = "rune >= 1 || rune.time_to_2 < gcd.max || runic_power.deficit >= variable.heart_strike_rp_drw",
["action"] = "heart_strike",
},
{
["action"] = "blood_boil",
["enabled"] = true,
},
},
["default"] = {
{
["action"] = "mind_freeze",
["enabled"] = true,
},
{
["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 ) || trinket.t1.is.mirror_of_fractured_tomorrows",
["var_name"] = "trinket_1_buffs",
["description"] = "Trinkets",
},
{
["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 ) || trinket.t2.is.mirror_of_fractured_tomorrows",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "damage_trinket_priority",
["value"] = "2",
["value_else"] = "1",
["criteria"] = "! variable.trinket_2_buffs & trinket.t2.ilvl >= trinket.t1.ilvl || variable.trinket_1_buffs",
},
{
["enabled"] = true,
["criteria"] = "dot.mark_of_fyralath.ticking",
["name"] = "fyralath_the_dreamrender",
["action"] = "fyralath_the_dreamrender",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["description"] = "Prioritize damage dealing on use trinkets over trinkets that give buffs",
["criteria"] = "! variable.trinket_1_buffs & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown )",
},
{
["enabled"] = true,
["criteria"] = "! variable.trinket_2_buffs & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["criteria"] = "! equipped.fyralath_the_dreamrender & ( variable.trinket_1_buffs || trinket.t1.cooldown.remains ) & ( variable.trinket_2_buffs || trinket.t2.cooldown.remains )",
["action"] = "main_hand",
["slot"] = "main_hand",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_1_buffs & ( buff.dancing_rune_weapon.up || ! talent.dancing_rune_weapon.enabled || cooldown.dancing_rune_weapon.remains > 20 ) & ( trinket.t2.cooldown.remains || ! trinket.t2.has_cooldown || variable.trinket_2_buffs )",
["action"] = "trinket1",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "variable.trinket_2_buffs & ( buff.dancing_rune_weapon.up || ! talent.dancing_rune_weapon.enabled || cooldown.dancing_rune_weapon.remains > 20 ) & ( trinket.t1.cooldown.remains || ! trinket.t1.has_cooldown || variable.trinket_1_buffs )",
["action"] = "trinket2",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["description"] = "Use Icebound Fortitude if you're taking sufficient damage and you don't have Dancing Rune Weapon or Vampiric Blood up.",
["criteria"] = "tanking & incoming_damage_5s >= ibf_damage & ! ( buff.dancing_rune_weapon.up || buff.vampiric_blood.up )",
["action"] = "icebound_fortitude",
},
{
["enabled"] = true,
["criteria"] = "tanking & incoming_damage_5s >= vb_damage & ! ( buff.dancing_rune_weapon.up || buff.icebound_fortitude.up )",
["action"] = "vampiric_blood",
},
{
["enabled"] = true,
["description"] = "Use Rune Tap if you're taking sufficient damage and you don't have Dancing Rune Weapon, Vampiric Blood, or Icebound Fortitude up.",
["criteria"] = "tanking & incoming_damage_5s >= rt_damage & ! ( buff.dancing_rune_weapon.up || buff.vampiric_blood.up || buff.icebound_fortitude.up )",
["action"] = "rune_tap",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "hero_tree.deathbringer",
["list_name"] = "deathbringer",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "! hero_tree.deathbringer",
["list_name"] = "sanlayn",
},
},
},
["version"] = 20241122,
["warnings"] = "The import for 'default' required some automated changes.\nLine 2: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 2: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 2: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 2: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 2: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 2: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 2: Converted 'trinket.1.is.mirror_of_fractured_tomorrows' to 'trinket.t1.is.mirror_of_fractured_tomorrows' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 3: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 3: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 3: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 3: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 3: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.is.mirror_of_fractured_tomorrows' to 'trinket.t2.is.mirror_of_fractured_tomorrows' (1x).\nLine 4: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 4: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 6: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 7: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 8: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 8: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 8: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 8: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 9: Converted 'talent.dancing_rune_weapon' to 'talent.dancing_rune_weapon.enabled' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 9: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 9: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 10: Converted 'talent.dancing_rune_weapon' to 'talent.dancing_rune_weapon.enabled' (1x).\nLine 10: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 10: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 10: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nImported 4 action lists.\n",
["author"] = "SimC",
["profile"] = "actions+=/mind_freeze\n# Trinkets\nactions+=/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)||trinket.1.is.mirror_of_fractured_tomorrows\nactions+=/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)||trinket.2.is.mirror_of_fractured_tomorrows\nactions+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl||variable.trinket_1_buffs\nactions+=/use_item,name=fyralath_the_dreamrender,if=dot.mark_of_fyralath.ticking\n# Prioritize damage dealing on use trinkets over trinkets that give buffs\nactions+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(variable.damage_trinket_priority=1||trinket.2.cooldown.remains||!trinket.2.has_cooldown)\nactions+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(variable.damage_trinket_priority=2||trinket.1.cooldown.remains||!trinket.1.has_cooldown)\nactions+=/use_item,slot=main_hand,if=!equipped.fyralath_the_dreamrender&(variable.trinket_1_buffs||trinket.1.cooldown.remains)&(variable.trinket_2_buffs||trinket.2.cooldown.remains)\nactions+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&(buff.dancing_rune_weapon.up||!talent.dancing_rune_weapon||cooldown.dancing_rune_weapon.remains>20)&(trinket.2.cooldown.remains||!trinket.2.has_cooldown||variable.trinket_2_buffs)\nactions+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&(buff.dancing_rune_weapon.up||!talent.dancing_rune_weapon||cooldown.dancing_rune_weapon.remains>20)&(trinket.1.cooldown.remains||!trinket.1.has_cooldown||variable.trinket_1_buffs)\n# Use Icebound Fortitude if you're taking sufficient damage and you don't have Dancing Rune Weapon or Vampiric Blood up.\nactions+=/icebound_fortitude,if=tanking&incoming_damage_5s>=ibf_damage&!(buff.dancing_rune_weapon.up||buff.vampiric_blood.up)\nactions+=/vampiric_blood,if=tanking&incoming_damage_5s>=vb_damage&!(buff.dancing_rune_weapon.up||buff.icebound_fortitude.up)\n# Use Rune Tap if you're taking sufficient damage and you don't have Dancing Rune Weapon, Vampiric Blood, or Icebound Fortitude up.\nactions+=/rune_tap,if=tanking&incoming_damage_5s>=rt_damage&!(buff.dancing_rune_weapon.up||buff.vampiric_blood.up||buff.icebound_fortitude.up)\nactions+=/run_action_list,name=deathbringer,strict=1,if=hero_tree.deathbringer\nactions+=/run_action_list,name=sanlayn,strict=1,if=!hero_tree.deathbringer\n\nactions.deathbringer+=/variable,name=death_strike_dump_amount,value=settings.death_strike_pool_amount\nactions.deathbringer+=/variable,name=bone_shield_refresh_value,value=6\nactions.deathbringer+=/variable,name=heart_strike_rp_drw,value=(25+spell_targets.heart_strike*talent.heartbreaker.enabled*2)\nactions.deathbringer+=/potion,if=buff.dancing_rune_weapon.up\nactions.deathbringer+=/raise_dead\nactions.deathbringer+=/blood_fury,if=cooldown.dancing_rune_weapon.ready\nactions.deathbringer+=/berserking,if=cooldown.dancing_rune_weapon.ready\nactions.deathbringer+=/blood_tap,if=rune<=1\nactions.deathbringer+=/use_items\n# Use Death Strike if your Blood Shield is going to expire.\nactions.deathbringer+=/death_strike,if=settings.save_blood_shield&buff.blood_shield.up&buff.blood_shield.remains<=gcd.max\nactions.deathbringer+=/deaths_caress,if=!buff.bone_shield.up\nactions.deathbringer+=/death_strike,if=buff.coagulopathy.remains<=gcd||runic_power.deficit<35\nactions.deathbringer+=/blood_boil,if=dot.reapers_mark.ticking&dot.reapers_mark.remains<2*gcd\nactions.deathbringer+=/blood_boil,if=dot.reapers_mark.ticking&charges_fractional>=1.5\nactions.deathbringer+=/consumption,if=dot.reapers_mark.ticking&dot.blood_plague.ticking\nactions.deathbringer+=/soul_reaper,if=buff.reaper_of_souls.up&buff.coagulopathy.remains>1*gcd\nactions.deathbringer+=/soul_reaper,if=active_enemies=1&(target.time_to_pct_35<5||buff.reaper
},
["Devastation"] = {
["source"] = "https://github.com/simulationcraft/simc/blob/thewarwithin/engine/class_modules/apl/apl_evoker.cpp",
["builtIn"] = true,
["date"] = 20240921,
["spec"] = 1467,
["desc"] = "2024-09-21: SimC updates\n\n2024-09-15: Allow Dragonrage in AOE\n\n2024-07-27, 09-04, 09-08: Updates from SimC\n\n2024-07-23: The War Within",
["lists"] = {
["es"] = {
{
["enabled"] = true,
["action"] = "eternity_surge",
["empower_to"] = "1",
["cycle_targets"] = 1,
["criteria"] = "active_enemies <= 1 + talent.eternitys_span.enabled || buff.dragonrage.remains < 1.75 * spell_haste & buff.dragonrage.remains >= 1 * spell_haste || buff.dragonrage.up & ( active_enemies > ( 3 + talent.font_of_magic.enabled ) * ( 1 + talent.eternitys_span.enabled ) ) || active_enemies >= 6 & ! talent.eternitys_span.enabled",
["description"] = "Eternity Surge, use rank most applicable to targets.",
},
{
["enabled"] = true,
["action"] = "eternity_surge",
["empower_to"] = "2",
["cycle_targets"] = 1,
["criteria"] = "active_enemies <= 2 + 2 * talent.eternitys_span.enabled || buff.dragonrage.remains < 2.5 * spell_haste & buff.dragonrage.remains >= 1.75 * spell_haste",
},
{
["enabled"] = true,
["action"] = "eternity_surge",
["empower_to"] = "3",
["cycle_targets"] = 1,
["criteria"] = "active_enemies <= 3 + 3 * talent.eternitys_span.enabled || ! talent.font_of_magic.enabled || buff.dragonrage.remains <= 3.25 * spell_haste & buff.dragonrage.remains >= 2.5 * spell_haste",
},
{
["enabled"] = true,
["empower_to"] = "4",
["action"] = "eternity_surge",
["cycle_targets"] = 1,
},
},
["fb"] = {
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "1",
["criteria"] = "( buff.dragonrage.remains < 1.75 * spell_haste & buff.dragonrage.remains >= 1 * spell_haste ) || active_enemies = 1 || talent.scorching_embers.enabled & ! dot.fire_breath_damage.ticking",
["description"] = "Fire Breath, use rank appropriate to target count/talents.",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "active_enemies = 2 || ( buff.dragonrage.remains < 2.5 * spell_haste & buff.dragonrage.remains >= 1.75 * spell_haste ) || talent.scorching_embers.enabled",
["empower_to"] = "2",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["criteria"] = "! talent.font_of_magic.enabled || ( buff.dragonrage.remains <= 3.25 * spell_haste & buff.dragonrage.remains >= 2.5 * spell_haste ) || talent.scorching_embers.enabled",
["empower_to"] = "3",
},
{
["enabled"] = true,
["action"] = "fire_breath",
["empower_to"] = "4",
},
},
["default"] = {
{
["enabled"] = true,
["action"] = "potion",
["description"] = "Delay pot in ST if you are about to SS - mostly relevant for opener where you want DR->FB->SS->rotation",
["criteria"] = "buff.dragonrage.up & ( ! cooldown.shattering_star.up || active_enemies >= 2 ) || boss & fight_remains < 35",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.dragonrage.remains <? ( ( cooldown.eternity_surge.remains - 8 ) >? ( cooldown.fire_breath.remains - 8 ) )",
["description"] = "Variable that evaluates when next dragonrage is by working out the maximum between the dragonrage cd and your empowers, ignoring CDR effect estimates.",
["var_name"] = "next_dragonrage",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "pool_for_id",
["criteria"] = "talent.imminent_destruction.enabled & talent.melt_armor.enabled & talent.maneuverability.enabled",
["default"] = "0",
["value"] = "cooldown.deep_breath.remains < 8 & essence.deficit >= 1 & ! buff.essence_burst.up",
},
{
["enabled"] = true,
["description"] = "Rupt to make the raidleader happy",
["action"] = "quell",
["use_off_gcd"] = 1,
},
{
["action"] = "unravel",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "trinkets",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["strict"] = 1,
["criteria"] = "active_enemies >= 3",
["list_name"] = "aoe",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["list_name"] = "st",
},
},
["precombat"] = {
{
["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.is.mirror_of_fractured_tomorrows",
["var_name"] = "trinket_1_buffs",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.has_use_buff || trinket.t2.is.mirror_of_fractured_tomorrows",
["var_name"] = "trinket_2_buffs",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "Decide which trinket to pair with Dragonrage, prefer 2 minute and 1 minute trinkets",
["criteria"] = "variable.trinket_1_buffs & ( trinket.t1.cooldown.duration % cooldown.dragonrage.duration = 0 || cooldown.dragonrage.duration % trinket.t1.cooldown.duration = 0 )",
["var_name"] = "trinket_1_sync",
["action"] = "variable",
["value_else"] = "0.5",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "trinket_2_sync",
["criteria"] = "variable.trinket_2_buffs & ( trinket.t2.cooldown.duration % cooldown.dragonrage.duration = 0 || cooldown.dragonrage.duration % trinket.t2.cooldown.duration = 0 )",
["value_else"] = "0.5",
["value"] = "1",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.belorrelos_the_suncaller || trinket.t1.is.nymues_unraveling_spindle || trinket.t1.is.spymasters_web",
["description"] = "Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a intellect modifier (currently 1.5x) to give a higher priority to intellect trinkets. The intellect modifier should be changed as intellect priority increases or decreases. As well as a modifier for if a trinket will or will not sync with cooldowns.",
["var_name"] = "trinket_1_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.belorrelos_the_suncaller || trinket.t2.is.nymues_unraveling_spindle || trinket.t2.is.spymasters_web",
["var_name"] = "trinket_2_manual",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "trinket_1_ogcd_cast",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "trinket_2_ogcd_cast",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t1.is.ruby_whelp_shell || trinket.t1.is.whispering_incarnate_icon",
["var_name"] = "trinket_1_exclude",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "trinket.t2.is.ruby_whelp_shell || trinket.t2.is.whispering_incarnate_icon",
["var_name"] = "trinket_2_exclude",
},
{
["enabled"] = true,
["op"] = "setif",
["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",
},
{
["enabled"] = true,
["op"] = "setif",
["action"] = "variable",
["var_name"] = "damage_trinket_priority",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_2_buffs & trinket.t2.ilvl >= trinket.t1.ilvl",
["value_else"] = "1",
["value"] = "2",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "1.0 * spell_haste",
["description"] = "Rank 1 empower spell cast time",
["var_name"] = "r1_cast_time",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "dr_prep_time_aoe",
["default"] = "4",
["description"] = "Variable for when to start holding empowers for upcoming DR in AoE. - From my testing 4sec seems like the sweetspot, but it's very minor diff so far - Holding for more than 6 seconds it begins to become a loss.",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "dr_prep_time_st",
["default"] = "8",
["description"] = "Variable for when to start holding empowers for upcoming DR in ST.",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "cooldown.invoke_power_infusion_0.duration > 0",
["var_name"] = "has_external_pi",
},
{
["enabled"] = true,
["action"] = "verdant_embrace",
["description"] = "Get Some Scarlet Adaptation Prepull",
["criteria"] = "talent.scarlet_adaptation.enabled",
},
{
["enabled"] = true,
["criteria"] = "talent.firestorm.enabled & ( ! talent.engulf.enabled || ! talent.ruby_embers.enabled )",
["action"] = "firestorm",
},
{
["enabled"] = true,
["criteria"] = "! talent.firestorm.enabled || talent.engulf.enabled & talent.ruby_embers.enabled",
["action"] = "living_flame",
},
},
["aoe"] = {
{
["enabled"] = true,
["action"] = "shattering_star",
["cycle_targets"] = 1,
["criteria"] = "cooldown.dragonrage.up & talent.arcane_vigor.enabled || talent.eternitys_span.enabled & active_enemies <= 3",
["description"] = "AOE action list, Open with star before DR to save a global and start with a free EB",
},
{
["enabled"] = true,
["criteria"] = "raid_event.movement.in < 6 & ! buff.hover.up & gcd.remains >= 0.5 & ( buff.mass_disintegrate_stacks.up & talent.mass_disintegrate.enabled || active_enemies <= 4 )",
["action"] = "hover",
["use_off_gcd"] = 1,
},
{
["enabled"] = true,
["action"] = "firestorm",
["description"] = "Spend firestorm procs ASAP",
["criteria"] = "buff.snapfire.up",
},
{
["enabled"] = true,
["action"] = "firestorm",
["description"] = "Acquire the buff",
["criteria"] = "talent.feed_the_flames.enabled",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Grab Irid Red before Dragonrage without griefing extension",
["criteria"] = "talent.dragonrage.enabled & cooldown.dragonrage.up & talent.iridescence.enabled || empowering.fire_breath",
["list_name"] = "fb",
},
{
["enabled"] = true,
["criteria"] = "talent.maneuverability.enabled & talent.melt_armor.enabled",
["action"] = "deep_breath",
},
{
["action"] = "dragonrage",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "tip_the_scales",
["description"] = "Tip ES at appropiate target count or when playing Flameshaper otherwise Tip FB",
["criteria"] = "buff.dragonrage.up & ( ( active_enemies <= 3 + 3 * talent.eternitys_span.enabled & ! talent.engulf.enabled ) || ! cooldown.fire_breath.up )",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Cast Fire Breath DS optimization: Only cast if current fight will last 8s+ or encounter ends in less than 30s",
["criteria"] = "( ! talent.dragonrage.enabled || buff.dragonrage.up || cooldown.dragonrage.remains > variable.dr_prep_time_aoe || ! talent.animosity.enabled ) & ( fight_remains >= 8 || fight_remains < 30 )",
["list_name"] = "fb",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Cast Eternity Surge DS optimization: Only cast if current fight will last 8s+ or encounter ends in less than 30s",
["criteria"] = "( ! talent.dragonrage.enabled || buff.dragonrage.up || cooldown.dragonrage.remains > variable.dr_prep_time_aoe || ! talent.animosity.enabled ) & ( target.time_to_die >= 8 || fight_remains < 30 ) || empowering.eternity_surge",
["list_name"] = "es",
},
{
["enabled"] = true,
["action"] = "deep_breath",
["description"] = "Cast DB if not in DR and not going to overflow essence.",
["criteria"] = "! buff.dragonrage.up & essence.deficit > 3",
},
{
["enabled"] = true,
["action"] = "shattering_star",
["cycle_targets"] = 1,
["criteria"] = "buff.essence_burst.stack < buff.essence_burst.max_stack & talent.arcane_vigor.enabled || talent.eternitys_span.enabled & active_enemies <= 3",
["description"] = "Send SS when it doesn't overflow EB, without vigor send on CD",
},
{
["enabled"] = true,
["criteria"] = "dot.fire_breath_damage.ticking & ( ! talent.shattering_star.enabled || debuff.shattering_star_debuff.up ) & cooldown.dragonrage.remains >= 27",
["action"] = "engulf",
},
{
["enabled"] = true,
["action"] = "disintegrate",
["cycle_targets"] = 1,
["criteria"] = "buff.mass_disintegrate_stacks.up & talent.mass_disintegrate.enabled & ( buff.charged_blast.stack < 10 || ! talent.charged_blast.enabled )",
["description"] = "Use Mass Disintegrate if CB wont't overcap",
},
{
["enabled"] = true,
["action"] = "pyre",
["cycle_targets"] = 1,
["criteria"] = "( active_enemies >= 4 || talent.volatility.enabled ) & ( cooldown.dragonrage.remains > gcd.max * 4 || ! talent.charged_blast.enabled || talent.engulf.enabled & ( ! talent.arcane_intensity.enabled || ! talent.eternitys_span.enabled ) ) & ! variable.pool_for_id",
["description"] = "Pyre 4T+ - 3T+ with Volatility - 12 stacks of CB - Pool CB for DR",
},
{
["enabled"] = true,
["action"] = "pyre",
["criteria"] = "buff.charged_blast.stack >= 12 & cooldown.dragonrage.remains > gcd.max * 4",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["action"] = "living_flame",
["cycle_targets"] = 1,
["criteria"] = "( ! talent.burnout.enabled || buff.burnout.up || cooldown.fire_breath.remains <= gcd.max * 5 || buff.scarlet_adaptation.up || buff.ancient_flame.up ) & buff.leaping_flames.up & ! buff.essence_burst.up & essence.deficit > 1",
["description"] = "Cast LF with leaping flames up if: not playing burnout, burnout is up or the next firebreath is soon.",
},
{
["enabled"] = true,
["chain"] = "1",
["description"] = "Yoinked the disintegrate logic from ST",
["cycle_targets"] = 1,
["interrupt_if"] = "evoker.use_clipping&buff.dragonrage.up&ticks>=2&(raid_event.movement.in>2||buff.hover.up)",
["early_chain_if"] = "evoker.use_early_chaining&ticks>=2&(raid_event.movement.in>2||buff.hover.up)",
["criteria"] = "( raid_event.movement.in > 2 || buff.hover.up ) & ! variable.pool_for_id",
["action"] = "disintegrate",
},
{
["enabled"] = true,
["action"] = "living_flame",
["cycle_targets"] = 1,
["criteria"] = "talent.snapfire.enabled & buff.burnout.up",
["description"] = "Cast LF with burnout to fish for snapfire procs",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Get Ancient Flame as Filler",
["criteria"] = "talent.ancient_flame.enabled & ! buff.ancient_flame.up & ! buff.dragonrage.up",
["list_name"] = "green",
},
{
["enabled"] = true,
["action"] = "azure_strike",
["description"] = "Fallback filler",
["cycle_targets"] = 1,
},
},
["trinkets"] = {
{
["enabled"] = true,
["action"] = "spymasters_web",
["criteria"] = "buff.dragonrage.up & ( fight_remains < 130 ) & buff.spymasters_report.stack >= 15 || ( boss & fight_remains <= 20 || cooldown.engulf.up & talent.engulf.enabled & fight_remains <= 40 & cooldown.dragonrage.remains >= 40 )",
["name"] = "spymasters_web",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["criteria"] = "buff.dragonrage.up & ( ( variable.trinket_2_buffs & ! cooldown.fire_breath.up & ! cooldown.shattering_star.up & trinket.t2.cooldown.remains ) || ( ! cooldown.fire_breath.up & ! cooldown.shattering_star.up ) || active_enemies >= 3 ) & ( ! trinket.t2.has_cooldown || trinket.t2.cooldown.remains || variable.trinket_priority = 1 || variable.trinket_2_exclude ) & ! variable.trinket_1_manual || trinket.t1.buff_duration >= fight_remains || trinket.t1.cooldown.duration <= 60 & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled ) & ( ! buff.dragonrage.up || variable.trinket_priority = 1 ) & ! variable.trinket_1_manual",
["description"] = "The trinket with the highest estimated value, will be used first and paired with Dragonrage. Trinkets are used on 4 stacks of Emerald Trance, unless playing double buff trinket, then one is used after SS/FB and the next on CD. Or with DR in AoE",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "buff.dragonrage.up & ( ( variable.trinket_1_buffs & ! cooldown.fire_breath.up & ! cooldown.shattering_star.up & trinket.t1.cooldown.remains ) || ( ! cooldown.fire_breath.up & ! cooldown.shattering_star.up ) || active_enemies >= 3 ) & ( ! trinket.t1.has_cooldown || trinket.t1.cooldown.remains || variable.trinket_priority = 2 || variable.trinket_1_exclude ) & ! variable.trinket_2_manual || trinket.t2.buff_duration >= fight_remains || trinket.t2.cooldown.duration <= 60 & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled ) & ( ! buff.dragonrage.up || variable.trinket_priority = 2 ) & ! variable.trinket_2_manual",
["slot"] = "trinket2",
},
{
["enabled"] = true,
["action"] = "trinket1",
["slot"] = "trinket1",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || trinket.t2.is.spymasters_web || trinket.t2.cooldown.duration = 0 ) & ( gcd.remains > 0.1 & ! prev_gcd.1.deep_breath ) & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled || ! variable.trinket_2_buffs || trinket.t2.is.spymasters_web & ( buff.spymasters_report.stack < 5 || fight_remains >= 130 + variable.next_dragonrage ) )",
["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.",
},
{
["enabled"] = true,
["action"] = "trinket2",
["slot"] = "trinket2",
["use_off_gcd"] = 1,
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || trinket.t1.is.spymasters_web || trinket.t1.cooldown.duration = 0 ) & ( gcd.remains > 0.1 & ! prev_gcd.1.deep_breath ) & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled || ! variable.trinket_1_buffs || trinket.t1.is.spymasters_web & ( buff.spymasters_report.stack < 5 || fight_remains >= 130 + variable.next_dragonrage ) )",
},
{
["enabled"] = true,
["action"] = "trinket1",
["criteria"] = "! variable.trinket_1_buffs & ! variable.trinket_1_manual & ( variable.damage_trinket_priority = 1 || trinket.t2.cooldown.remains || trinket.t2.is.spymasters_web || trinket.t2.cooldown.duration = 0 ) & ( ! variable.trinket_1_ogcd_cast ) & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled || ! variable.trinket_2_buffs || trinket.t2.is.spymasters_web & ( buff.spymasters_report.stack < 5 || fight_remains >= 130 + variable.next_dragonrage ) )",
["slot"] = "trinket1",
},
{
["enabled"] = true,
["action"] = "trinket2",
["criteria"] = "! variable.trinket_2_buffs & ! variable.trinket_2_manual & ( variable.damage_trinket_priority = 2 || trinket.t1.cooldown.remains || trinket.t1.is.spymasters_web || trinket.t1.cooldown.duration = 0 ) & ( ! variable.trinket_2_ogcd_cast ) & ( variable.next_dragonrage > 20 || ! talent.dragonrage.enabled || ! variable.trinket_1_buffs || trinket.t1.is.spymasters_web & ( buff.spymasters_report.stack < 5 || fight_remains >= 130 + variable.next_dragonrage ) )",
["slot"] = "trinket2",
},
},
["st"] = {
{
["enabled"] = true,
["name"] = "kharnalex_the_first_light",
["description"] = "ST Action List, it's a mess, but it's getting better!",
["criteria"] = "! buff.dragonrage.up & debuff.shattering_star_debuff.down & raid_event.movement.in > 6",
["action"] = "kharnalex_the_first_light",
},
{
["enabled"] = true,
["criteria"] = "raid_event.movement.in < 6 & ! buff.hover.up & gcd.remains >= 0.5",
["use_off_gcd"] = 1,
["action"] = "hover",
["description"] = "Movement Logic, Time spiral logic might need some tweaking actions.st+=/time_spiral,if=raid_event.movement.in<3&cooldown.hover.remains>=3&!buff.hover.up",
},
{
["enabled"] = true,
["criteria"] = "talent.maneuverability.enabled & talent.melt_armor.enabled",
["action"] = "deep_breath",
},
{
["enabled"] = true,
["action"] = "dragonrage",
["description"] = "Relaxed Dragonrage Entry Requirements, cannot reliably reach third extend under normal conditions (Bloodlust + Power Infusion/Very high haste gear) DS optimization: Only cast if current fight will last 32s+ or encounter ends in less than 30s",
["criteria"] = "( cooldown.fire_breath.remains < 4 || cooldown.eternity_surge.remains < 4 & ( ! set_bonus.tww1_4pc || ! talent.mass_disintegrate.enabled ) ) & ( cooldown.fire_breath.remains < 8 & ( cooldown.eternity_surge.remains < 8 || set_bonus.tww1_4pc & talent.mass_disintegrate.enabled ) ) & target.time_to_die >= 32 || boss & fight_remains < 32",
},
{
["enabled"] = true,
["action"] = "tip_the_scales",
["description"] = "Tip second FB if not playing font of magic or if playing EBF, otherwise tip ES.",
["criteria"] = "( ! talent.dragonrage.enabled || buff.dragonrage.up ) & ( cooldown.fire_breath.remains < cooldown.eternity_surge.remains || ( cooldown.eternity_surge.remains < cooldown.fire_breath.remains & talent.font_of_magic.enabled ) )",
},
{
["enabled"] = true,
["action"] = "shattering_star",
["description"] = "Throw Star on CD, Don't overcap with Arcane Vigor.",
["criteria"] = "( buff.essence_burst.stack < buff.essence_burst.max_stack || ! talent.arcane_vigor.enabled ) & ( ! cooldown.eternity_surge.up || ! buff.dragonrage.up || talent.mass_disintegrate.enabled || ! talent.event_horizon.enabled & ( ! talent.traveling_flame.enabled || ! cooldown.engulf.up ) ) & ( cooldown.dragonrage.remains >= 15 || cooldown.fire_breath.remains >= 8 || buff.dragonrage.up & ( cooldown.fire_breath.remains <= gcd.max & buff.tip_the_scales.up || cooldown.tip_the_scales.remains >= 15 & ! buff.tip_the_scales.up ) || ! talent.traveling_flame.enabled ) & ( ! cooldown.fire_breath.up || buff.tip_the_scales.up )",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( ! talent.bombardments.enabled || talent.extended_battle.enabled || debuff.bombardments.remains <= 7 & ! buff.mass_disintegrate_stacks.up || buff.dragonrage.up )",
["criteria"] = "talent.bombardments.enabled",
["var_name"] = "bombardment_clause",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Fire breath logic. Play around blazing shards if outside of DR. DS optimization: Only cast if current fight will last 8s+ or encounter ends in less than 30s",
["criteria"] = "( ! talent.dragonrage.enabled || variable.next_dragonrage > variable.dr_prep_time_st || ! talent.animosity.enabled ) & ( ! cooldown.eternity_surge.up || ! talent.event_horizon.enabled & ! talent.traveling_flame.enabled || talent.mass_disintegrate.enabled || ! buff.dragonrage.up ) & ( target.time_to_die >= 8 || fight_remains < 30 ) || empowering.fire_breath",
["list_name"] = "fb",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Eternity Surge logic. Play around blazing shards if outside of DR. DS optimization: Only cast if current fight will last 8s+ or encounter ends in less than 30s",
["criteria"] = "( ! talent.dragonrage.enabled || variable.next_dragonrage > variable.dr_prep_time_st || ! talent.animosity.enabled || set_bonus.tww1_4pc & talent.mass_disintegrate.enabled ) & ( target.time_to_die >= 8 || fight_remains < 30 ) || empowering.eternity_surge",
["list_name"] = "es",
},
{
["enabled"] = true,
["action"] = "wait",
["sec"] = "cooldown.fire_breath.remains",
["description"] = "Wait for FB/ES to be ready if spending another GCD would result in the cast no longer fitting inside of DR",
["criteria"] = "talent.animosity.enabled & buff.dragonrage.up & buff.dragonrage.remains < gcd.max + variable.r1_cast_time * buff.tip_the_scales.down & buff.dragonrage.remains - cooldown.fire_breath.remains >= variable.r1_cast_time * buff.tip_the_scales.down",
},
{
["enabled"] = true,
["sec"] = "cooldown.eternity_surge.remains",
["action"] = "wait",
["criteria"] = "talent.animosity.enabled & buff.dragonrage.up & buff.dragonrage.remains < gcd.max + variable.r1_cast_time & buff.dragonrage.remains - cooldown.eternity_surge.remains > variable.r1_cast_time * buff.tip_the_scales.down",
},
{
["enabled"] = true,
["action"] = "living_flame",
["description"] = "Spend the last 1 or 2 GCDs of DR on fillers to exit with 2 EBs",
["criteria"] = "buff.dragonrage.up & buff.dragonrage.remains < ( buff.essence_burst.max_stack - buff.essence_burst.stack ) * gcd.max & buff.burnout.up",
},
{
["enabled"] = true,
["criteria"] = "buff.dragonrage.up & buff.dragonrage.remains < ( buff.essence_burst.max_stack - buff.essence_burst.stack ) * gcd.max",
["action"] = "azure_strike",
},
{
["enabled"] = true,
["criteria"] = "dot.fire_breath_damage.ticking & ( ! talent.enkindle.enabled || dot.enkindle.ticking & ( prev_gcd.1.disintegrate || prev_gcd.1.engulf || prev_gcd.2.disintegrate || ! talent.fan_the_flames.enabled || active_enemies > 1 ) ) & ( ! talent.ruby_embers.enabled || dot.living_flame_damage.ticking ) & ( ! talent.shattering_star.enabled || debuff.shattering_star_debuff.up ) & cooldown.dragonrage.remains >= 27",
["action"] = "engulf",
},
{
["enabled"] = true,
["action"] = "living_flame",
["description"] = "Spend burnout procs without overcapping resources",
["criteria"] = "buff.burnout.up & buff.leaping_flames.up & ! buff.essence_burst.up & buff.dragonrage.up",
},
{
["enabled"] = true,
["action"] = "firestorm",
["description"] = "Hard cast only outside of SS and DR windows",
["criteria"] = "! buff.dragonrage.up & debuff.shattering_star_debuff.down & talent.feed_the_flames.enabled & ( ( ! talent.dragonrage.enabled || cooldown.dragonrage.remains >= 10 ) & ( essence >= 3 || buff.essence_burst.up || talent.shattering_star.enabled & cooldown.shattering_star.remains <= 6 ) || talent.dragonrage.enabled & cooldown.dragonrage.remains <= cast_time & cooldown.fire_breath.remains < 6 & cooldown.eternity_surge.remains < 12 ) & ! debuff.in_firestorm.up",
},
{
["enabled"] = true,
["criteria"] = "! buff.dragonrage.up & ( talent.imminent_destruction.enabled & ! debuff.shattering_star_debuff.up || talent.melt_armor.enabled & talent.maneuverability.enabled )",
["action"] = "deep_breath",
},
{
["enabled"] = true,
["action"] = "pyre",
["description"] = "Spend pyre if raging inferno debuff is active and you have 20 stacks of CB on 2T",
["criteria"] = "debuff.in_firestorm.up & talent.feed_the_flames.enabled & buff.charged_blast.stack = 20 & active_enemies >= 2",
},
{
["enabled"] = true,
["action"] = "disintegrate",
["cycle_targets"] = 1,
["early_chain_if"] = "ticks_remain<=1&buff.mass_disintegrate_stacks.up",
["criteria"] = "( raid_event.movement.in > 2 || buff.hover.up ) & buff.mass_disintegrate_stacks.up & talent.mass_disintegrate.enabled",
["description"] = "Mass Disintegrates",
},
{
["enabled"] = true,
["chain"] = "1",
["description"] = "Dis logic Early Chain if needed for resources management. Clip after in DR after third tick for more important buttons.",
["cycle_targets"] = 1,
["interrupt_if"] = "evoker.use_clipping&ticks>=2&(raid_event.movement.in>2||buff.hover.up)",
["early_chain_if"] = "evoker.use_early_chaining&ticks>=2&(raid_event.movement.in>2||buff.hover.up)",
["criteria"] = "( raid_event.movement.in > 2 || buff.hover.up ) & ! variable.pool_for_id",
["action"] = "disintegrate",
},
{
["enabled"] = true,
["action"] = "firestorm",
["description"] = "Spend firestorm procs ASAP",
["criteria"] = "buff.snapfire.up || ! debuff.in_firestorm.up & talent.feed_the_flames.enabled",
},
{
["enabled"] = true,
["action"] = "deep_breath",
["description"] = "Use Deep Breath on 2T, unless adds will come before it'll be ready again or if talented ID.",
["criteria"] = "! buff.dragonrage.up & active_enemies >= 2 & ( ( raid_event.adds.in >= 120 & ! talent.onyx_legacy.enabled ) || ( raid_event.adds.in >= 60 & talent.onyx_legacy.enabled ) )",
},
{
["enabled"] = true,
["criteria"] = "! buff.dragonrage.up & ( talent.imminent_destruction.enabled & ! debuff.shattering_star_debuff.up || talent.melt_armor.enabled || talent.maneuverability.enabled )",
["action"] = "deep_breath",
},
{
["enabled"] = true,
["criteria"] = "talent.ancient_flame.enabled & ! buff.ancient_flame.up & ! buff.shattering_star_debuff.up & talent.scarlet_adaptation.enabled & ! buff.dragonrage.up & ! buff.burnout.up",
["action"] = "call_action_list",
["list_name"] = "green",
},
{
["enabled"] = true,
["action"] = "living_flame",
["description"] = "Cast LF outside of DR, In DR only cast with Iridescence.",
["criteria"] = "! buff.dragonrage.up || ( buff.iridescence_red.remains > execute_time || ! talent.engulfing_blaze.enabled || buff.iridescence_blue.up || buff.burnout.up || buff.leaping_flames.up & cooldown.fire_breath.remains <= 5 ) & active_enemies = 1",
},
{
["action"] = "azure_strike",
["enabled"] = true,
},
},
["green"] = {
{
["enabled"] = true,
["description"] = "Green Spells used to trigger Ancient Flame",
["action"] = "emerald_blossom",
},
{
["action"] = "verdant_embrace",
["enabled"] = true,
},
},
},
["version"] = 20240921,
["warnings"] = "The import for 'es' required some automated changes.\nLine 1: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 1: Converted 'talent.font_of_magic' to 'talent.font_of_magic.enabled' (1x).\nLine 1: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 1: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 2: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 3: Converted 'talent.eternitys_span' to 'talent.eternitys_span.enabled' (1x).\nLine 3: Converted 'talent.font_of_magic' to 'talent.font_of_magic.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 3: Converted 'talent.maneuverability' to 'talent.maneuverability.enabled' (1x).\nLine 3: Converted 'talent.melt_armor' to 'talent.melt_armor.enabled' (1x).\nLine 4: Converted 'talent.mass_disintegrate' to 'talent.mass_disintegrate.enabled' (1x).\nLine 4: Converted 'talent.mass_disintegrate' to 'talent.mass_disintegrate.enabled' (1x).\nLine 5: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 5: Converted 'talent.font_of_magic' to 'talent.font_of_magic.enabled' (1x).\nLine 6: Converted 'talent.arcane_vigor' to 'talent.arcane_vigor.enabled' (1x).\nLine 6: Converted 'talent.mass_disintegrate' to 'talent.mass_disintegrate.enabled' (1x).\nLine 6: Converted 'talent.event_horizon' to 'talent.event_horizon.enabled' (1x).\nLine 6: Converted 'talent.traveling_flame' to 'talent.traveling_flame.enabled' (1x).\nLine 6: Converted 'talent.traveling_flame' to 'talent.traveling_flame.enabled' (1x).\nLine 7: Converted 'talent.bombardments' to 'talent.bombardments.enabled' (1x).\nLine 7: Converted 'talent.extended_battle' to 'talent.extended_battle.enabled' (1x).\nLine 7: Converted 'talent.bombardments' to 'talent.bombardments.enabled' (1x).\nLine 8: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 8: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 8: Converted 'talent.event_horizon' to 'talent.event_horizon.enabled' (1x).\nLine 8: Converted 'talent.traveling_flame' to 'talent.traveling_flame.enabled' (1x).\nLine 8: Converted 'talent.mass_disintegrate' to 'talent.mass_disintegrate.enabled' (1x).\nLine 9: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 9: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 9: Converted 'talent.mass_disintegrate' to 'talent.mass_disintegrate.enabled' (1x).\nLine 10: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 11: Converted 'talent.animosity' to 'talent.animosity.enabled' (1x).\nLine 14: Converted 'talent.enkindle' to 'talent.enkindle.enabled' (1x).\nLine 14: Converted 'talent.fan_the_flames' to 'talent.fan_the_flames.enabled' (1x).\nLine 14: Converted 'talent.ruby_embers' to 'talent.ruby_embers.enabled' (1x).\nLine 14: Converted 'talent.shattering_star' to 'talent.shattering_star.enabled' (1x).\nLine 16: Converted 'talent.feed_the_flames' to 'talent.feed_the_flames.enabled' (1x).\nLine 16: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 16: Converted 'talent.shattering_star' to 'talent.shattering_star.enabled' (1x).\nLine 16: Converted 'talent.dragonrage' to 'talent.dragonrage.enabled' (1x).\nLine 17: Converted 'talent.imminent_destruction' to 'talent.imminent_destruction.enabled' (1x).\nLine 17: Converted 'talent.melt_armor' to 'talent.melt_armor.enabled' (1x).\nLine 17: Converted 'talent.maneuverability' to 'talent.maneuverability.enabled' (1x).\nLine 18: Converted 'talent.feed_the_flames' to 'talent.feed_the_flames.enabled' (1x).\nLine 18: Converted operations in 'debuff.in_firestorm.up&talent.feed_the_flames.enabled&buff.charged_blast.stack==20&active_enemies>=2' to 'debuff.in_firestorm.up&talent.feed_the_flames.enabled&buff.charged_blast.stack=20&active_enemies>=2'.\nLine 19: Converted 'talent.mass_disintegrate' to 'talent.mass_disintegrate.enabled' (1x).\nLine 21: Converted 'talent.feed_the_flames' to 'talent.feed_the_flames.enabled' (1x
["author"] = "SimC",
["profile"] = "actions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_buff.intellect||trinket.1.has_buff.mastery||trinket.1.has_buff.versatility||trinket.1.has_buff.haste||trinket.1.has_buff.crit||trinket.1.is.mirror_of_fractured_tomorrows\nactions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_buff.intellect||trinket.2.has_buff.mastery||trinket.2.has_buff.versatility||trinket.2.has_buff.haste||trinket.2.has_buff.crit||trinket.2.is.mirror_of_fractured_tomorrows\n# Decide which trinket to pair with Dragonrage, prefer 2 minute and 1 minute trinkets\nactions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%%trinket.1.cooldown.duration=0)\nactions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.dragonrage.duration=0||cooldown.dragonrage.duration%%trinket.2.cooldown.duration=0)\n# Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a intellect modifier (currently 1.5x) to give a higher priority to intellect trinkets. The intellect modifier should be changed as intellect priority increases or decreases. As well as a modifier for if a trinket will or will not sync with cooldowns.\nactions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.belorrelos_the_suncaller||trinket.1.is.nymues_unraveling_spindle||trinket.1.is.spymasters_web\nactions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.belorrelos_the_suncaller||trinket.2.is.nymues_unraveling_spindle||trinket.2.is.spymasters_web\nactions.precombat+=/variable,name=trinket_1_ogcd_cast,value=0\nactions.precombat+=/variable,name=trinket_2_ogcd_cast,value=0\nactions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell||trinket.1.is.whispering_incarnate_icon\nactions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell||trinket.2.is.whispering_incarnate_icon\nactions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.intellect)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.intellect)*(variable.trinket_1_sync))\nactions.precombat+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl\n# Rank 1 empower spell cast time\nactions.precombat+=/variable,name=r1_cast_time,value=1.0*spell_haste\n# Variable for when to start holding empowers for upcoming DR in AoE. - From my testing 4sec seems like the sweetspot, but it's very minor diff so far - Holding for more than 6 seconds it begins to become a loss.\nactions.precombat+=/variable,name=dr_prep_time_aoe,default=4,op=reset\n# Variable for when to start holding empowers for upcoming DR in ST.\nactions.precombat+=/variable,name=dr_prep_time_st,default=8,op=reset\nactions.precombat+=/variable,name=has_external_pi,value=cooldown.invoke_power_infusion_0.duration>0\n# Get Some Scarlet Adaptation Prepull\nactions.precombat+=/verdant_embrace,if=talent.scarlet_adaptation\nactions.precombat+=/firestorm,if=talent.firestorm&(!talent.engulf||!talent.ruby_embers)\nactions.precombat+=/living_flame,if=!talent.firestorm||talent.engulf&talent.ruby_embers\n\n# Delay pot in ST if you are about to SS - mostly relevant for opener where you want DR->FB->SS->rotation\nactions+=/potion,if=buff.dragonrage.up&(!cooldown.shattering_star.up||active_enemies>=2)||boss&fight_remains<35\n# Variable that evaluates when next dragonrage is by working out the maximum between the dragonrage cd and your empowers, ignoring CDR effect estimates.\nactions+=/variable,name=next_dragonrage,value=coold
},
["Outlaw"] = {
["source"] = "https://github.com/simulationcraft/simc/",
["builtIn"] = true,
["date"] = 20241025,
["author"] = "SimC",
["desc"] = "2024-10-23: 11.0.5\n\n2024-09-08, 09-10, 09-15: SimC update\n\n2024-09-03: Poisons\n\n2024-08-25, 09-01: SimC rtb_reroll tweak\n\n2024-08-22: Respect LD Opener setting\n\n2024-08-15: Major revisions from SimC\n\n2024-08-09: Update finisher conditions from SimC\n\n2024-08-06: Respect Vanish CD when considering BtE with Crackshot\n\n2024-07-28: The War Within",
["lists"] = {
["build"] = {
{
["enabled"] = true,
["description"] = "High priority Ambush for Hidden Opportunity builds",
["criteria"] = "talent.hidden_opportunity.enabled & buff.audacity.up",
["action"] = "ambush",
},
{
["enabled"] = true,
["description"] = "With Audacity + Hidden Opportunity + Fan the Hammer, consume Opportunity to proc Audacity any time Ambush is not available",
["criteria"] = "talent.fan_the_hammer.enabled & talent.audacity.enabled & talent.hidden_opportunity.enabled & buff.opportunity.up & ! buff.audacity.up",
["action"] = "pistol_shot",
},
{
["enabled"] = true,
["description"] = "With Fan the Hammer, consume Opportunity as a higher priority if at max stacks or if it will expire",
["criteria"] = "talent.fan_the_hammer.enabled & buff.opportunity.up & ( buff.opportunity.stack >= buff.opportunity.max_stack || buff.opportunity.remains < 2 )",
["action"] = "pistol_shot",
},
{
["enabled"] = true,
["description"] = "With Fan the Hammer, consume Opportunity if it will not overcap CPs, or with 1 CP at minimum",
["criteria"] = "talent.fan_the_hammer.enabled & buff.opportunity.up & ( combo_points.deficit >= ( 1 + ( talent.quick_draw.enabled + buff.broadside.up ) * ( talent.fan_the_hammer.rank + 1 ) ) || combo_points <= talent.ruthlessness.enabled )",
["action"] = "pistol_shot",
},
{
["enabled"] = true,
["description"] = "If not using Fan the Hammer, then consume Opportunity based on energy, when it will exactly cap CPs, or when using Quick Draw",
["criteria"] = "! talent.fan_the_hammer.enabled & buff.opportunity.up & ( energy.base_deficit > energy.regen * 1.5 || combo_points.deficit <= 1 + buff.broadside.up || talent.quick_draw.enabled || talent.audacity.enabled & ! buff.audacity.up )",
["action"] = "pistol_shot",
},
{
["enabled"] = true,
["description"] = "Fallback pooling just so Sinister Strike is never casted if Ambush is available for Hidden Opportunity builds",
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["criteria"] = "talent.hidden_opportunity.enabled",
["action"] = "ambush",
},
{
["action"] = "sinister_strike",
["enabled"] = true,
},
},
["default"] = {
{
["enabled"] = true,
["description"] = "Restealth if possible (no vulnerable enemies in combat)",
["action"] = "stealth",
},
{
["enabled"] = true,
["description"] = "Interrupt on cooldown to allow simming interactions with that",
["action"] = "kick",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "rtb_buffs_will_lose = ( rtb_buffs_will_lose_buff.buried_treasure + rtb_buffs_will_lose_buff.grand_melee & spell_targets.blade_flurry < 2 )",
["var_name"] = "rtb_reroll",
["description"] = "Variables that define the reroll rules for Roll the Bones Default rule: reroll if the only buff that will be rolled away is Buried Treasure, or Grand Melee in single target without upcoming adds",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["var_name"] = "rtb_reroll",
["value"] = "rtb_buffs_will_lose <= buff.loaded_dice.up || buff.loaded_dice.up & rtb_buffs_will_lose < 3 & ( ! rtb_buffs_will_lose_buff.broadside || buff.broadside.remains < 11 ) & ( ! rtb_buffs_will_lose_buff.ruthless_precision || buff.ruthless_precision.remains < 11 ) & ( ! rtb_buffs_will_lose_buff.true_bearing || buff.true_bearing.remains < 11 )",
["description"] = "If Loaded Dice is talented, then keep any 1 buff from Roll the Bones but roll it into 2 buffs when Loaded Dice is active. Also reroll 2 buffs with loaded dice up if broadside, ruthless precision and true bearing are all missing and loaded dice is up",
["criteria"] = "talent.loaded_dice.enabled",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "variable.rtb_reroll & rtb_buffs_longer = 0 || rtb_buffs_normal = 0 & rtb_buffs_longer >= 1 & buff.loaded_dice.up & ( rtb_buffs < 6 & rtb_buffs_max_remains < 39 || talent.supercharger.enabled )",
["var_name"] = "rtb_reroll",
["description"] = "If all active Roll the Bones buffs are ahead of its container buff and have under 40s remaining or with supercharger talented, then reroll again with Loaded Dice active in an attempt to get even more buffs",
},
{
["enabled"] = true,
["op"] = "reset",
["action"] = "variable",
["var_name"] = "rtb_reroll",
["description"] = "Non supercharger builds should avoid rerolls when we will not have time remaining on the fight or add wave to recoup the opportunity cost of the global",
["criteria"] = "! talent.supercharger.enabled & ! ( raid_event.adds.remains > 12 || raid_event.adds.up & ( raid_event.adds.in - raid_event.adds.remains ) < 6 || target.time_to_die > 12 ) || fight_remains < 12 & boss",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "( talent.hidden_opportunity.enabled || combo_points.deficit >= 2 + talent.improved_ambush.enabled + buff.broadside.up ) & energy >= 50",
["var_name"] = "ambush_condition",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "combo_points >= cp_max_spend - 1 - ( stealthed.all & talent.crackshot.enabled || ( talent.hand_of_fate.enabled || talent.flawless_form.enabled ) & talent.hidden_opportunity.enabled & ( buff.audacity.up || buff.opportunity.up ) )",
["var_name"] = "finish_condition",
["description"] = "Use finishers if at -1 from max combo points, or -2 in Stealth with Crackshot. With the hero trees, Hidden Opportunity builds also finish at -2 if Audacity or Opportunity is active",
},
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "spell_targets.blade_flurry < 2 & raid_event.adds.in > 20 || buff.blade_flurry.remains > gcd.max",
["var_name"] = "blade_flurry_sync",
["description"] = "With multiple targets, this variable is checked to decide whether some CDs should be synced with Blade Flurry",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cds",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "High priority stealth list, will fall through if no conditions are met",
["strict"] = 1,
["criteria"] = "stealthed.all",
["list_name"] = "stealth",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "variable.finish_condition",
["list_name"] = "finish",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "build",
},
{
["enabled"] = true,
["criteria"] = "energy.base_deficit >= 15 + energy.regen",
["action"] = "arcane_torrent",
},
{
["action"] = "arcane_pulse",
["enabled"] = true,
},
{
["action"] = "lights_judgment",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
},
["precombat"] = {
{
["action"] = "apply_poison",
["enabled"] = true,
},
{
["enabled"] = true,
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
},
{
["enabled"] = true,
["action"] = "stealth",
["precombat_seconds"] = "2",
},
{
["enabled"] = true,
["action"] = "adrenaline_rush",
["precombat_seconds"] = "2",
["description"] = "Builds with Keep it Rolling prepull Adrenaline Rush before Roll the Bones to consume Loaded Dice immediately instead of on the next pandemic roll",
["criteria"] = "talent.improved_adrenaline_rush.enabled & buff.adrenaline_rush.down & talent.keep_it_rolling.enabled & talent.loaded_dice.enabled",
},
{
["enabled"] = true,
["criteria"] = "buff.roll_the_bones.down",
["action"] = "roll_the_bones",
["precombat_seconds"] = "2",
},
{
["enabled"] = true,
["criteria"] = "talent.improved_adrenaline_rush.enabled & buff.adrenaline_rush.down",
["action"] = "adrenaline_rush",
["precombat_seconds"] = "1",
},
},
["cds"] = {
{
["enabled"] = true,
["description"] = "Use Adrenaline Rush if it is not active and the finisher condition is not met, with Improved Adrenaline Rush you can also refresh it with 2cp or less if Loaded Dice is not already up Adrenaline rush if buff is missing unless you can finish or with 2 or less cp if loaded dice is missing",
["criteria"] = "! buff.adrenaline_rush.up & ( ! variable.finish_condition || ! talent.improved_adrenaline_rush.enabled ) || talent.improved_adrenaline_rush.enabled & combo_points <= 2 & ! buff.loaded_dice.up",
["action"] = "adrenaline_rush",
},
{
["enabled"] = true,
["description"] = "Sprint to further benefit from Scroll of Momentum trinket",
["criteria"] = "( trinket.t1.is.scroll_of_momentum || trinket.t2.is.scroll_of_momentum ) & buff.full_momentum.up",
["action"] = "sprint",
},
{
["enabled"] = true,
["description"] = "Maintain Blade Flurry on 2+ targets",
["criteria"] = "spell_targets >= 2 & buff.blade_flurry.remains < gcd.max",
["action"] = "blade_flurry",
},
{
["enabled"] = true,
["description"] = "With Deft Maneuvers, use Blade Flurry on cooldown at 5+ targets, or at 3-4 targets if missing combo points equal to the amount given",
["criteria"] = "talent.deft_maneuvers.enabled & ! variable.finish_condition & ( spell_targets >= 3 & combo_points.deficit = spell_targets + buff.broadside.up || spell_targets >= 5 )",
["action"] = "blade_flurry",
},
{
["enabled"] = true,
["description"] = "Use Roll the Bones if reroll conditions are met, or with no buffs",
["criteria"] = "variable.rtb_reroll || rtb_buffs = 0",
["action"] = "roll_the_bones",
},
{
["enabled"] = true,
["description"] = "Use Keep it Rolling with any 4 buffs. If Broadside is not active, then wait until just before the lowest buff expires in an attempt to obtain it from Count the Odds.",
["criteria"] = "rtb_buffs >= 4 & ( rtb_buffs_min_remains < 2 || buff.broadside.up )",
["action"] = "keep_it_rolling",
},
{
["enabled"] = true,
["criteria"] = "combo_points < cp_max_spend",
["action"] = "ghostly_strike",
},
{
["enabled"] = true,
["name"] = "manic_grieftorch",
["action"] = "manic_grieftorch",
["criteria"] = "! stealthed.all & buff.between_the_eyes.up || fight_remains <= 5",
["description"] = "Trinkets that should not be used during stealth and have higher priority than entering stealth",
},
{
["enabled"] = true,
["criteria"] = "! stealthed.all & buff.between_the_eyes.up || boss & fight_remains <= 5",
["name"] = "beacon_to_the_beyond",
["action"] = "beacon_to_the_beyond",
},
{
["enabled"] = true,
["criteria"] = "! stealthed.all || boss & fight_remains <= 22",
["name"] = "imperfect_ascendancy_serum",
["action"] = "imperfect_ascendancy_serum",
},
{
["enabled"] = true,
["criteria"] = "! stealthed.all || boss & fight_remains <= 5",
["name"] = "mad_queens_mandate",
["action"] = "mad_queens_mandate",
},
{
["enabled"] = true,
["description"] = "Killing Spree has higher priority than stealth cooldowns",
["criteria"] = "variable.finish_condition & ! stealthed.all",
["action"] = "killing_spree",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Crackshot builds use stealth cooldowns if not already in stealth",
["criteria"] = "! stealthed.all",
["list_name"] = "stealth_cds",
},
{
["enabled"] = true,
["criteria"] = "! buff.thistle_tea.up & ( energy.base_deficit >= 150 || fight_remains < charges * 6 )",
["action"] = "thistle_tea",
},
{
["enabled"] = true,
["description"] = "Use Blade Rush at minimal energy outside of stealth",
["criteria"] = "energy.base_time_to_max > 4 & ! stealthed.all",
["action"] = "blade_rush",
},
{
["enabled"] = true,
["criteria"] = "buff.bloodlust.up || boss & fight_remains < 30 || buff.adrenaline_rush.up",
["action"] = "potion",
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "berserking",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.between_the_eyes.up || trinket.t1.has_stat.any_dps || boss & fight_remains <= 20",
["slots"] = "trinket1",
["action"] = "trinket1",
},
{
["enabled"] = true,
["criteria"] = "buff.between_the_eyes.up || trinket.t2.has_stat.any_dps || boss & fight_remains <= 20",
["slots"] = "trinket2",
["action"] = "trinket2",
},
},
["stealth"] = {
{
["enabled"] = true,
["criteria"] = "variable.finish_condition",
["action"] = "cold_blood",
},
{
["enabled"] = true,
["description"] = "Ensure Crackshot BtE is not skipped because of low energy",
["for_next"] = 1,
["action"] = "pool_resource",
},
{
["enabled"] = true,
["description"] = "High priority Between the Eyes for Crackshot, except not directly out of Shadowmeld",
["criteria"] = "variable.finish_condition & talent.crackshot.enabled & ( ! buff.shadowmeld.up || stealthed.rogue )",
["action"] = "between_the_eyes",
},
{
["enabled"] = true,
["criteria"] = "variable.finish_condition",
["action"] = "dispatch",
},
{
["enabled"] = true,
["description"] = "2 Fan the Hammer Crackshot builds can consume Opportunity in stealth with max stacks, Broadside, and low CPs, or with Greenskins active",
["criteria"] = "talent.crackshot.enabled & talent.fan_the_hammer.rank >= 2 & buff.opportunity.stack >= 6 & ( buff.broadside.up & combo_points <= 1 || buff.greenskins_wickers.up )",
["action"] = "pistol_shot",
},
{
["enabled"] = true,
["criteria"] = "talent.hidden_opportunity.enabled",
["action"] = "ambush",
},
},
["stealth_cds"] = {
{
["enabled"] = true,
["description"] = "Builds with Underhanded Upper Hand and Subterfuge must use Vanish while Adrenaline Rush is active and either BTE on CD with RP up, adrenaline rush about to expire, supercharger buff up, vanish capped on charges or about to cap or fight about to end",
["criteria"] = "talent.underhanded_upper_hand.enabled & talent.subterfuge.enabled & talent.crackshot.enabled & buff.adrenaline_rush.up & variable.finish_condition & ( ! cooldown.between_the_eyes.ready & buff.ruthless_precision.up || buff.adrenaline_rush.remains < 3 || buff.supercharge.up || cooldown.vanish.full_recharge_time < 15 || boss & fight_remains < 8 )",
["action"] = "vanish",
},
{
["enabled"] = true,
["description"] = "Builds with Underhanded Upper Hand and Subterfuge but without crackshot use vanish only with Adrenaline Rush active",
["criteria"] = "talent.underhanded_upper_hand.enabled & talent.subterfuge.enabled & ! talent.crackshot.enabled & buff.adrenaline_rush.up & ( variable.ambush_condition || ! talent.hidden_opportunity.enabled ) & ( ! cooldown.between_the_eyes.ready & buff.ruthless_precision.up || buff.ruthless_precision.down || buff.adrenaline_rush.remains < 3 )",
["action"] = "vanish",
},
{
["enabled"] = true,
["description"] = "Builds without Underhanded Upper Hand but with Crackshot must still use Vanish into Between the Eyes on cooldown",
["criteria"] = "! talent.underhanded_upper_hand.enabled & talent.crackshot.enabled & variable.finish_condition",
["action"] = "vanish",
},
{
["enabled"] = true,
["description"] = "Builds without Underhanded Upper Hand and Crackshot but still Hidden Opportunity use Vanish into Ambush when Audacity is not active and under max Opportunity stacks",
["criteria"] = "! talent.underhanded_upper_hand.enabled & ! talent.crackshot.enabled & talent.hidden_opportunity.enabled & ! buff.audacity.up & buff.opportunity.stack < buff.opportunity.max_stack & variable.ambush_condition",
["action"] = "vanish",
},
{
["enabled"] = true,
["description"] = "Builds without Underhanded Upper Hand, Crackshot, and Hidden Opportunity but with Fatebound use Vanish at five stacks of either Fatebound coin in order to proc the Lucky Coin if it's not already active, and otherwise continue to Vanish into a Dispatch to proc Double Jeopardy on a biased coin",
["criteria"] = "! talent.underhanded_upper_hand.enabled & ! talent.crackshot.enabled & ! talent.hidden_opportunity.enabled & talent.fateful_ending.enabled & ( ! buff.fatebound_lucky_coin.up & ( buff.fatebound_coin_tails.stack >= 5 || buff.fatebound_coin_heads.stack >= 5 ) || buff.fatebound_lucky_coin.up & ! cooldown.between_the_eyes.ready )",
["action"] = "vanish",
},
{
["enabled"] = true,
["description"] = "Builds with none of the above can use Vanish to maintain Take 'em By Surprise",
["criteria"] = "! talent.underhanded_upper_hand.enabled & ! talent.crackshot.enabled & ! talent.hidden_opportunity.enabled & ! talent.fateful_ending.enabled & talent.take_em_by_surprise.enabled & ! buff.take_em_by_surprise.up",
["action"] = "vanish",
},
{
["enabled"] = true,
["criteria"] = "variable.finish_condition & ! cooldown.vanish.ready",
["action"] = "shadowmeld",
},
},
["finish"] = {
{
["enabled"] = true,
["description"] = "Use Between the Eyes to keep the crit buff up, but on cooldown if Improved/Greenskins, and avoid overriding Greenskins",
["criteria"] = "! talent.crackshot.enabled & ( buff.between_the_eyes.remains < 4 || talent.improved_between_the_eyes.enabled || talent.greenskins_wickers.enabled ) & ! buff.greenskins_wickers.up",
["action"] = "between_the_eyes",
},
{
["enabled"] = true,
["description"] = "Crackshot builds use Between the Eyes outside of Stealth to refresh the Between the Eyes crit buff or on cd with the Ruthless Precision buff",
["criteria"] = "talent.crackshot.enabled & ( buff.ruthless_precision.up || buff.between_the_eyes.remains < 4 )",
["action"] = "between_the_eyes",
},
{
["action"] = "cold_blood",
["enabled"] = true,
},
{
["action"] = "dispatch",
["enabled"] = true,
},
{
["action"] = "dispatch",
["enabled"] = true,
},
},
},
["version"] = 20241025,
["warnings"] = "The import for 'finish' required some automated changes.\nLine 1: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 1: Converted 'talent.improved_between_the_eyes' to 'talent.improved_between_the_eyes.enabled' (1x).\nLine 1: Converted 'talent.greenskins_wickers' to 'talent.greenskins_wickers.enabled' (1x).\nLine 2: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'rtb_buffs.will_lose.buried_treasure' to 'rtb_buffs_will_lose_buff.buried_treasure' (1x).\nLine 3: Converted 'rtb_buffs.will_lose.grand_melee' to 'rtb_buffs_will_lose_buff.grand_melee' (1x).\nLine 4: Converted 'talent.loaded_dice' to 'talent.loaded_dice.enabled' (1x).\nLine 4: Converted 'rtb_buffs.will_lose.broadside' to 'rtb_buffs_will_lose_buff.broadside' (1x).\nLine 4: Converted 'rtb_buffs.will_lose.ruthless_precision' to 'rtb_buffs_will_lose_buff.ruthless_precision' (1x).\nLine 4: Converted 'rtb_buffs.will_lose.true_bearing' to 'rtb_buffs_will_lose_buff.true_bearing' (1x).\nLine 5: Converted 'talent.supercharger' to 'talent.supercharger.enabled' (1x).\nLine 6: Converted 'talent.supercharger' to 'talent.supercharger.enabled' (1x).\nLine 7: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 7: Converted 'talent.improved_ambush' to 'talent.improved_ambush.enabled' (1x).\nLine 8: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 8: Converted 'talent.hand_of_fate' to 'talent.hand_of_fate.enabled' (1x).\nLine 8: Converted 'talent.flawless_form' to 'talent.flawless_form.enabled' (1x).\nLine 8: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'talent.improved_adrenaline_rush' to 'talent.improved_adrenaline_rush.enabled' (1x).\nLine 4: Converted 'talent.keep_it_rolling' to 'talent.keep_it_rolling.enabled' (1x).\nLine 4: Converted 'talent.loaded_dice' to 'talent.loaded_dice.enabled' (1x).\nLine 6: Converted 'talent.improved_adrenaline_rush' to 'talent.improved_adrenaline_rush.enabled' (1x).\n\nThe import for 'stealth' required some automated changes.\nLine 3: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 5: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 6: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 1: Converted 'talent.improved_adrenaline_rush' to 'talent.improved_adrenaline_rush.enabled' (1x).\nLine 1: Converted 'talent.improved_adrenaline_rush' to 'talent.improved_adrenaline_rush.enabled' (1x).\nLine 2: Converted 'trinket.1.is.scroll_of_momentum' to 'trinket.t1.is.scroll_of_momentum' (1x).\nLine 2: Converted 'trinket.2.is.scroll_of_momentum' to 'trinket.t2.is.scroll_of_momentum' (1x).\nLine 4: Converted 'talent.deft_maneuvers' to 'talent.deft_maneuvers.enabled' (1x).\nLine 21: Converted 'trinket.1.has_stat.any_dps' to 'trinket.t1.has_stat.any_dps' (1x).\nLine 22: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\n\nThe import for 'stealth_cds' required some automated changes.\nLine 1: Converted 'talent.underhanded_upper_hand' to 'talent.underhanded_upper_hand.enabled' (1x).\nLine 1: Converted 'talent.subterfuge' to 'talent.subterfuge.enabled' (1x).\nLine 1: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 2: Converted 'talent.underhanded_upper_hand' to 'talent.underhanded_upper_hand.enabled' (1x).\nLine 2: Converted 'talent.subterfuge' to 'talent.subterfuge.enabled' (1x).\nLine 2: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 2: Converted 'talent.hidden_opportunity' to 'talent.hidden_opportunity.enabled' (1x).\nLine 3: Converted 'talent.underhanded_upper_hand' to 'talent.underhanded_upper_hand.enabled' (1x).\nLine 3: Converted 'talent.crackshot' to 'talent.crackshot.enabled' (1x).\nLine 4: Converted 'talent.underhanded_upper_hand' to 'talen
["spec"] = 260,
["basedOn"] = "Outlaw",
["profile"] = "actions.precombat+=/apply_poison\nactions.precombat+=/use_item,name=imperfect_ascendancy_serum\nactions.precombat+=/stealth,precombat_seconds=2\n# Builds with Keep it Rolling prepull Adrenaline Rush before Roll the Bones to consume Loaded Dice immediately instead of on the next pandemic roll\nactions.precombat+=/adrenaline_rush,precombat_seconds=2,if=talent.improved_adrenaline_rush&buff.adrenaline_rush.down&talent.keep_it_rolling&talent.loaded_dice\nactions.precombat+=/roll_the_bones,precombat_seconds=2,if=buff.roll_the_bones.down\nactions.precombat+=/adrenaline_rush,precombat_seconds=1,if=talent.improved_adrenaline_rush&buff.adrenaline_rush.down\n\n# Restealth if possible (no vulnerable enemies in combat)\nactions+=/stealth\n# Interrupt on cooldown to allow simming interactions with that\nactions+=/kick\n# Variables that define the reroll rules for Roll the Bones Default rule: reroll if the only buff that will be rolled away is Buried Treasure, or Grand Melee in single target without upcoming adds\nactions+=/variable,name=rtb_reroll,value=rtb_buffs.will_lose=(rtb_buffs.will_lose.buried_treasure+rtb_buffs.will_lose.grand_melee&spell_targets.blade_flurry<2)\n# If Loaded Dice is talented, then keep any 1 buff from Roll the Bones but roll it into 2 buffs when Loaded Dice is active. Also reroll 2 buffs with loaded dice up if broadside, ruthless precision and true bearing are all missing and loaded dice is up\nactions+=/variable,name=rtb_reroll,if=talent.loaded_dice,value=rtb_buffs.will_lose<=buff.loaded_dice.up||buff.loaded_dice.up&rtb_buffs.will_lose<3&(!rtb_buffs.will_lose.broadside||buff.broadside.remains<11)&(!rtb_buffs.will_lose.ruthless_precision||buff.ruthless_precision.remains<11)&(!rtb_buffs.will_lose.true_bearing||buff.true_bearing.remains<11)\n# If all active Roll the Bones buffs are ahead of its container buff and have under 40s remaining or with supercharger talented, then reroll again with Loaded Dice active in an attempt to get even more buffs\nactions+=/variable,name=rtb_reroll,value=variable.rtb_reroll&rtb_buffs.longer=0||rtb_buffs.normal=0&rtb_buffs.longer>=1&buff.loaded_dice.up&(rtb_buffs<6&rtb_buffs.max_remains<39||talent.supercharger)\n# Non supercharger builds should avoid rerolls when we will not have time remaining on the fight or add wave to recoup the opportunity cost of the global\nactions+=/variable,name=rtb_reroll,op=reset,if=!talent.supercharger&!(raid_event.adds.remains>12||raid_event.adds.up&(raid_event.adds.in-raid_event.adds.remains)<6||target.time_to_die>12)||fight_remains<12&boss\nactions+=/variable,name=ambush_condition,value=(talent.hidden_opportunity||combo_points.deficit>=2+talent.improved_ambush+buff.broadside.up)&energy>=50\n# Use finishers if at -1 from max combo points, or -2 in Stealth with Crackshot. With the hero trees, Hidden Opportunity builds also finish at -2 if Audacity or Opportunity is active\nactions+=/variable,name=finish_condition,value=combo_points>=cp_max_spend-1-(stealthed.all&talent.crackshot||(talent.hand_of_fate||talent.flawless_form)&talent.hidden_opportunity&(buff.audacity.up||buff.opportunity.up))\n# With multiple targets, this variable is checked to decide whether some CDs should be synced with Blade Flurry\nactions+=/variable,name=blade_flurry_sync,value=spell_targets.blade_flurry<2&raid_event.adds.in>20||buff.blade_flurry.remains>gcd\nactions+=/call_action_list,name=cds\n# High priority stealth list, will fall through if no conditions are met\nactions+=/call_action_list,name=stealth,strict=1,if=stealthed.all\nactions+=/call_action_list,name=finish,strict=1,if=variable.finish_condition\nactions+=/call_action_list,name=build\nactions+=/arcane_torrent,if=energy.base_deficit>=15+energy.regen\nactions+=/arcane_pulse\nactions+=/lights_judgment\nactions+=/bag_of_tricks\n\n## Builders\n# High priority Ambush for Hidden Opportunity builds\nactions.build+=/ambush,if=talent.hidden_opportunity&buff.audacity.up\n# With Audacity + Hidden Opportunity + Fan the Hammer, consume Opportunity to proc Audacity any time Ambush is not available\nactions.build+=/p
},
["Holy Priest"] = {
["builtIn"] = true,
["date"] = 20240828,
["spec"] = 257,
["desc"] = "Healer priorities are DPS-focused only\n\n2024-08-28: Use cooldowns action list\n\n2024-07-30: The War Within",
["profile"] = "actions.precombat+=/power_word_fortitude\n\nactions+=/call_action_list,name=cooldowns\n# Always use HF if we have empyreal blaze (dot extension) or harmonious apparatus (cd reduction) or if it's not currently ticking. Otherwise, only use when refreshable to be sure we get the longest duration possible. It's worth it to cast even when the target will die soon based on just the initial hit damage. We also don't want to cast immediately once empyreal blaze is up when we are prepping divine word\nactions+=/holy_fire,cycle_targets=1,if=(talent.empyreal_blaze||talent.harmonious_apparatus||!ticking||refreshable)&!(buff.empyreal_blaze.up&(cooldown.divine_word.up||buff.divine_word.up)&cooldown.holy_word_chastise.up)\n# Don't cast SW:P during apotheosis or divine favor: chastise. We also don't cycle targets because it isn't worth the GCDs, since Smite deals slightly more damage than a full SW:P.\nactions+=/shadow_word_pain,if=(refreshable||!ticking)&(target.time_to_die>=dot.shadow_word_pain.duration)&!buff.divine_favor_chastise.up&!buff.apotheosis.up\n# Prepare to enter divine favor: chastise\nactions+=/call_action_list,name=divine_favor_chastise_prep,if=talent.divine_word&talent.holy_word_chastise&buff.divine_favor_chastise.down\n# Enter Divine Favor rotation with divine favor: chastise buff up\nactions+=/run_action_list,name=divine_favor_chastise_active,strict=1,if=buff.divine_favor_chastise.up\n# Run divine favor fillers rotation with buff down\nactions+=/run_action_list,name=divine_favor_filler,if=talent.divine_word&talent.holy_word_chastise&buff.divine_favor_chastise.down\n# Run divine image rotation with divine image talented\nactions+=/run_action_list,name=divine_image,strict=1,if=talent.divine_image\n# Otherwise generic rotation\nactions+=/run_action_list,name=generic\n\nactions.divine_favor_chastise_prep+=/variable,name=empyreal_exec_time,op=set,value=0\n# apotheosis_exec_time: Store how long Apotheosis will take to execute\nactions.divine_favor_chastise_prep+=/variable,name=apotheosis_exec_time,op=setif,condition=talent.apotheosis,value=action.apotheosis.execute_time,value_else=0\n# Use apotheosis to get Chastise back if its on cooldown and Divine Word will be up soon. We can use Apotheosis (2min CD) to reset Chastise for every other Divine Word (1min CD).\nactions.divine_favor_chastise_prep+=/apotheosis,if=(cooldown.holy_word_chastise.remains>cooldown.divine_word.remains)&(cooldown.divine_word.remains<=(variable.empyreal_exec_time+variable.apotheosis_exec_time))\n# Divine Word only if we can sync with Chastise and (if talented) Empyreal Blaze\nactions.divine_favor_chastise_prep+=/divine_word,if=cooldown.holy_word_chastise.up&(!talent.empyreal_blaze||buff.empyreal_blaze.up)\n# Holy word chastise to trigger divine favor: chastise\nactions.divine_favor_chastise_prep+=/holy_word_chastise,if=!talent.empyreal_blaze&buff.divine_word.up||talent.empyreal_blaze&buff.empyreal_blaze.down\n\nactions.divine_favor_chastise_active+=/halo,if=spell_targets.halo>=2\nactions.divine_favor_chastise_active+=/divine_star,if=spell_targets.divine_star>=2\n# There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do\nactions.divine_favor_chastise_active+=/holy_nova,if=(spell_targets.holy_nova>=2&buff.rhapsody.stack>=18)||(spell_targets.holy_nova>=3&buff.rhapsody.stack>=9)||(spell_targets.holy_nova>=4&buff.rhapsody.stack>=4)||spell_targets.holy_nova>=5\nactions.divine_favor_chastise_active+=/mindgames\nactions.divine_favor_chastise_active+=/shadow_word_death,if=target.health.pct<20\nactions.divine_favor_chastise_active+=/holy_word_chastise\n# We want to cycle smite to different targets to spread holy fire dots in AOE situations, this will buff holy nova's damage\nactions.divine_favor_chastise_active+=/smite,cycle_targets=1,if=spell_targets.holy_nova>=2\nactions.divine_favor_chastise_active+=/smite\n\nactions.divine_favor_filler+=/halo,if=spell_targets.halo>=2\nactions.divine_favor_filler+=/divine_star,if=spell_targets.divine_star>=2\n# There are particular brea
["version"] = 20240828,
["warnings"] = "The import for 'cooldowns' required some automated changes.\nLine 2: Converted 'talent.divine_word' to 'talent.divine_word.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.empyreal_blaze' to 'talent.empyreal_blaze.enabled' (1x).\nLine 2: Converted 'talent.harmonious_apparatus' to 'talent.harmonious_apparatus.enabled' (1x).\nLine 4: Converted 'talent.divine_word' to 'talent.divine_word.enabled' (1x).\nLine 4: Converted 'talent.holy_word_chastise' to 'talent.holy_word_chastise.enabled' (1x).\nLine 6: Converted 'talent.divine_word' to 'talent.divine_word.enabled' (1x).\nLine 6: Converted 'talent.holy_word_chastise' to 'talent.holy_word_chastise.enabled' (1x).\nLine 7: Converted 'talent.divine_image' to 'talent.divine_image.enabled' (1x).\n\nThe import for 'divine_favor_chastise_prep' required some automated changes.\nLine 2: Converted 'talent.apotheosis' to 'talent.apotheosis.enabled' (1x).\nLine 4: Converted 'talent.empyreal_blaze' to 'talent.empyreal_blaze.enabled' (1x).\nLine 5: Converted 'talent.empyreal_blaze' to 'talent.empyreal_blaze.enabled' (1x).\nLine 5: Converted 'talent.empyreal_blaze' to 'talent.empyreal_blaze.enabled' (1x).\n\nImported 8 action lists.\n",
["lists"] = {
["default"] = {
{
["enabled"] = true,
["action"] = "call_action_list",
["list_name"] = "cooldowns",
},
{
["enabled"] = true,
["action"] = "holy_fire",
["cycle_targets"] = 1,
["criteria"] = "( talent.empyreal_blaze.enabled || talent.harmonious_apparatus.enabled || ! ticking || refreshable ) & ! ( buff.empyreal_blaze.up & ( cooldown.divine_word.up || buff.divine_word.up ) & cooldown.holy_word_chastise.up )",
["description"] = "Always use HF if we have empyreal blaze (dot extension) or harmonious apparatus (cd reduction) or if it's not currently ticking. Otherwise, only use when refreshable to be sure we get the longest duration possible. It's worth it to cast even when the target will die soon based on just the initial hit damage. We also don't want to cast immediately once empyreal blaze is up when we are prepping divine word",
},
{
["enabled"] = true,
["criteria"] = "( refreshable || ! ticking ) & ( target.time_to_die >= dot.shadow_word_pain.duration ) & ! buff.divine_favor_chastise.up & ! buff.apotheosis.up",
["action"] = "shadow_word_pain",
["description"] = "Don't cast SW:P during apotheosis or divine favor: chastise. We also don't cycle targets because it isn't worth the GCDs, since Smite deals slightly more damage than a full SW:P.",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["description"] = "Prepare to enter divine favor: chastise",
["criteria"] = "talent.divine_word.enabled & talent.holy_word_chastise.enabled & buff.divine_favor_chastise.down",
["list_name"] = "divine_favor_chastise_prep",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "Enter Divine Favor rotation with divine favor: chastise buff up",
["strict"] = 1,
["criteria"] = "buff.divine_favor_chastise.up",
["list_name"] = "divine_favor_chastise_active",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "Run divine favor fillers rotation with buff down",
["criteria"] = "talent.divine_word.enabled & talent.holy_word_chastise.enabled & buff.divine_favor_chastise.down",
["list_name"] = "divine_favor_filler",
},
{
["enabled"] = true,
["action"] = "run_action_list",
["description"] = "Run divine image rotation with divine image talented",
["strict"] = 1,
["criteria"] = "talent.divine_image.enabled",
["list_name"] = "divine_image",
},
{
["enabled"] = true,
["description"] = "Otherwise generic rotation",
["action"] = "run_action_list",
["list_name"] = "generic",
},
},
["divine_image"] = {
{
["enabled"] = true,
["criteria"] = "buff.answered_prayers.down & ! ( cooldown.holy_word_sanctify.up || cooldown.holy_word_serenity.up || cooldown.holy_word_chastise.up )",
["action"] = "apotheosis",
},
{
["enabled"] = true,
["action"] = "holy_word_sanctify",
["description"] = "line_cd prevents re-casting sanctify and serenity right away, wasting GCDs that could be used to proc divine image damage. In testing, the sweet spot balance between adding more divine images, triggering apotheosis, and casting damage CDs was to let the image from each healing holy word expire before re-casting",
["line_cd"] = "9",
},
{
["enabled"] = true,
["action"] = "holy_word_serenity",
["line_cd"] = "9",
},
{
["action"] = "holy_word_chastise",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "spell_targets.halo >= 2",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.divine_star >= 2",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.holy_nova >= 2 & buff.rhapsody.stack >= 18 ) || ( spell_targets.holy_nova >= 3 & buff.rhapsody.stack >= 9 ) || ( spell_targets.holy_nova >= 4 & buff.rhapsody.stack >= 4 ) || spell_targets.holy_nova >= 5",
["action"] = "holy_nova",
["description"] = "There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do",
},
{
["action"] = "mindgames",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20",
["action"] = "shadow_word_death",
},
{
["action"] = "smite",
["enabled"] = true,
},
},
["divine_favor_filler"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.halo >= 2",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.divine_star >= 2",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.holy_nova >= 2 & buff.rhapsody.stack >= 18 ) || ( spell_targets.holy_nova >= 3 & buff.rhapsody.stack >= 9 ) || ( spell_targets.holy_nova >= 4 & buff.rhapsody.stack >= 4 ) || spell_targets.holy_nova >= 5",
["action"] = "holy_nova",
["description"] = "There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do",
},
{
["action"] = "mindgames",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20",
["action"] = "shadow_word_death",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.apotheosis.remains < cooldown.divine_word.remains ) || ( cooldown.holy_word_chastise.duration_expected <= cooldown.divine_word.remains )",
["action"] = "holy_word_chastise",
["description"] = "We can use chastise for damage as long as we will have apotheosis available before the next divine word, otherwise only use it when it will be back up at the same time as divine word",
},
{
["action"] = "smite",
["enabled"] = true,
},
},
["precombat"] = {
{
["action"] = "power_word_fortitude",
["enabled"] = true,
},
},
["divine_favor_chastise_active"] = {
{
["enabled"] = true,
["criteria"] = "spell_targets.halo >= 2",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.divine_star >= 2",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.holy_nova >= 2 & buff.rhapsody.stack >= 18 ) || ( spell_targets.holy_nova >= 3 & buff.rhapsody.stack >= 9 ) || ( spell_targets.holy_nova >= 4 & buff.rhapsody.stack >= 4 ) || spell_targets.holy_nova >= 5",
["action"] = "holy_nova",
["description"] = "There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do",
},
{
["action"] = "mindgames",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20",
["action"] = "shadow_word_death",
},
{
["action"] = "holy_word_chastise",
["enabled"] = true,
},
{
["enabled"] = true,
["action"] = "smite",
["cycle_targets"] = 1,
["criteria"] = "spell_targets.holy_nova >= 2",
["description"] = "We want to cycle smite to different targets to spread holy fire dots in AOE situations, this will buff holy nova's damage",
},
{
["action"] = "smite",
["enabled"] = true,
},
},
["generic"] = {
{
["action"] = "holy_word_chastise",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "cooldown.holy_word_chastise.remains > ( gcd.max * 3 )",
["action"] = "apotheosis",
["description"] = "Hold Apotheosis if chastise will be up soon",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.halo >= 2",
["action"] = "halo",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.divine_star >= 2",
["action"] = "divine_star",
},
{
["enabled"] = true,
["criteria"] = "( spell_targets.holy_nova >= 2 & buff.rhapsody.stack >= 18 ) || ( spell_targets.holy_nova >= 3 & buff.rhapsody.stack >= 9 ) || ( spell_targets.holy_nova >= 4 & buff.rhapsody.stack >= 4 ) || spell_targets.holy_nova >= 5",
["action"] = "holy_nova",
["description"] = "There are particular breakpoints combinations of rhapsody and spell targets beyond which holy nova beats everything else we can do",
},
{
["action"] = "mindgames",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "target.health.pct < 20",
["action"] = "shadow_word_death",
},
{
["action"] = "smite",
["enabled"] = true,
},
},
["cooldowns"] = {
{
["action"] = "mindbender",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "( ! talent.divine_word.enabled || ( cooldown.divine_word.up & cooldown.holy_word_chastise.up ) )",
["action"] = "power_infusion",
["description"] = "Sync PI with divine favor: chastise if we took divine word",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up",
["action"] = "potion",
["description"] = "Only potion in sync with power infusion",
},
{
["enabled"] = true,
["criteria"] = "buff.power_infusion.up",
["action"] = "use_items",
["description"] = "hold trinkets to use with PI",
},
},
["divine_favor_chastise_prep"] = {
{
["enabled"] = true,
["op"] = "set",
["action"] = "variable",
["value"] = "0",
["var_name"] = "empyreal_exec_time",
},
{
["enabled"] = true,
["op"] = "setif",
["description"] = "apotheosis_exec_time: Store how long Apotheosis will take to execute",
["criteria"] = "talent.apotheosis.enabled",
["value"] = "action.apotheosis.execute_time",
["action"] = "variable",
["value_else"] = "0",
["var_name"] = "apotheosis_exec_time",
},
{
["enabled"] = true,
["criteria"] = "( cooldown.holy_word_chastise.remains > cooldown.divine_word.remains ) & ( cooldown.divine_word.remains <= ( variable.empyreal_exec_time + variable.apotheosis_exec_time ) )",
["action"] = "apotheosis",
["description"] = "Use apotheosis to get Chastise back if its on cooldown and Divine Word will be up soon. We can use Apotheosis (2min CD) to reset Chastise for every other Divine Word (1min CD).",
},
{
["enabled"] = true,
["criteria"] = "cooldown.holy_word_chastise.up & ( ! talent.empyreal_blaze.enabled || buff.empyreal_blaze.up )",
["action"] = "divine_word",
["description"] = "Divine Word only if we can sync with Chastise and (if talented) Empyreal Blaze",
},
{
["enabled"] = true,
["criteria"] = "! talent.empyreal_blaze.enabled & buff.divine_word.up || talent.empyreal_blaze.enabled & buff.empyreal_blaze.down",
["action"] = "holy_word_chastise",
["description"] = "Holy word chastise to trigger divine favor: chastise",
},
},
},
["author"] = "Kapulani",
},
["Restoration Shaman"] = {
["builtIn"] = true,
["date"] = 20241020,
["spec"] = 264,
["desc"] = "2024-07-30: The War Within",
["profile"] = "actions.precombat+=/earthliving_weapon\nactions.precombat+=/tidecallers_guard\nactions.precombat+=/water_shield,if=buff.water_shield.up+buff.earth_shield.up+buff.lightning_shield.up<1+talent.elemental_orbit.rank||(!buff.water_shield.up&settings.healing_mode)\nactions.precombat+=/lightning_shield,if=(buff.water_shield.up+buff.earth_shield.up+buff.lightning_shield.up<1+talent.elemental_orbit.rank)&settings.second_shield=lightning_shield\nactions.precombat+=/earth_shield,if=(buff.water_shield.up+buff.earth_shield.up+buff.lightning_shield.up<1+talent.elemental_orbit.rank)&settings.second_shield=earth_shield\nactions.precombat+=/earth_elemental\nactions.precombat+=/potion\n\nactions+=/spiritwalkers_grace,moving=1,if=movement.distance>6\n# Interrupt of casts.\nactions+=/wind_shear\nactions+=/call_action_list,name=healing,strict=1,if=settings.healing_mode\nactions+=/potion\nactions+=/use_items\nactions+=/blood_fury\nactions+=/berserking\nactions+=/fireblood\nactions+=/ancestral_call\nactions+=/bag_of_tricks\nactions+=/surging_totem,if=talent.acid_rain\nactions+=/healing_rain,if=!moving&talent.acid_rain\nactions+=/flame_shock,cycle_targets=1,if=active_enemies<3&refreshable\n# actions+=/primordial_wave\nactions+=/lava_burst,if=(active_enemies=1||active_enemies=2&buff.lava_surge.up)&dot.flame_shock.remains>cast_time&cooldown_react\nactions+=/earth_elemental\nactions+=/lightning_bolt,if=spell_targets.chain_lightning<2||!talent.chain_lightning\nactions+=/chain_lightning,if=spell_targets.chain_lightning>1\nactions+=/flame_shock,moving=1\nactions+=/frost_shock,moving=1\n\nactions.healing+=/downpour,if=buff.unleash_life.up||buff.downpour.up&buff.downpour.remains<2\nactions.healing+=/mana_tide_totem,if=mana.pct<85\nactions.healing+=/totemic_recall,if=prev_gcd.earthen_wall_totem\nactions.healing+=/earthen_wall_totem\nactions.healing+=/chain_heal,if=buff.high_tide.up\nactions.healing+=/call_action_list,strict=1,name=unleash,if=buff.unleash_life.up\nactions.healing+=/surging_totem\nactions.healing+=/healing_rain\nactions.healing+=/earth_shield,if=active_dot.earth_shield<1+talent.elemental_orbit.rank&buff.earth_shield.up\nactions.healing+=/earth_shield,if=(!buff.earth_shield.up&settings.second_shield=earth_shield&talent.elemental_orbit.enabled)\nactions.healing+=/healing_stream_totem,if=totem.surging_totem.up&!totem.healing_stream_totem.up\nactions.healing+=/riptide,if=cooldown.riptide.charges=cooldown.riptide.charges_max\nactions.healing+=/unleash_life,if=talent.call_of_the_ancestors.enabled||cooldown.wellspring.remains<2||(cooldown.surging_totem.remains<3||buff.downpour.up&buff.downpour.remains>3)\nactions.healing+=/wellspring\n\nactions.unleash+=/downpour\nactions.unleash+=/wellspring\nactions.unleash+=/riptide",
["version"] = 20241020,
["warnings"] = "The import for 'default' required some automated changes.\nLine 11: Converted 'talent.acid_rain' to 'talent.acid_rain.enabled' (1x).\nLine 12: Converted 'talent.acid_rain' to 'talent.acid_rain.enabled' (1x).\nLine 16: Converted 'talent.chain_lightning' to 'talent.chain_lightning.enabled' (1x).\n\nImported 4 action lists.\n",
["lists"] = {
["precombat"] = {
{
["action"] = "earthliving_weapon",
["enabled"] = true,
},
{
["action"] = "tidecallers_guard",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.water_shield.up + buff.earth_shield.up + buff.lightning_shield.up < 1 + talent.elemental_orbit.rank || ( ! buff.water_shield.up & settings.healing_mode )",
["action"] = "water_shield",
},
{
["enabled"] = true,
["criteria"] = "( buff.water_shield.up + buff.earth_shield.up + buff.lightning_shield.up < 1 + talent.elemental_orbit.rank ) & settings.second_shield = lightning_shield",
["action"] = "lightning_shield",
},
{
["enabled"] = true,
["criteria"] = "( buff.water_shield.up + buff.earth_shield.up + buff.lightning_shield.up < 1 + talent.elemental_orbit.rank ) & settings.second_shield = earth_shield",
["action"] = "earth_shield",
},
{
["action"] = "earth_elemental",
["enabled"] = true,
},
{
["action"] = "potion",
["enabled"] = true,
},
},
["healing"] = {
{
["enabled"] = true,
["criteria"] = "buff.unleash_life.up || buff.downpour.up & buff.downpour.remains < 2",
["action"] = "downpour",
},
{
["enabled"] = true,
["criteria"] = "mana.pct < 85",
["action"] = "mana_tide_totem",
},
{
["enabled"] = true,
["criteria"] = "prev_gcd.earthen_wall_totem",
["action"] = "totemic_recall",
},
{
["action"] = "earthen_wall_totem",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "buff.high_tide.up",
["action"] = "chain_heal",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "buff.unleash_life.up",
["list_name"] = "unleash",
},
{
["action"] = "surging_totem",
["enabled"] = true,
},
{
["action"] = "healing_rain",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "active_dot.earth_shield < 1 + talent.elemental_orbit.rank & buff.earth_shield.up",
["action"] = "earth_shield",
},
{
["enabled"] = true,
["criteria"] = "( ! buff.earth_shield.up & settings.second_shield = earth_shield & talent.elemental_orbit.enabled )",
["action"] = "earth_shield",
},
{
["enabled"] = true,
["criteria"] = "totem.surging_totem.up & ! totem.healing_stream_totem.up",
["action"] = "healing_stream_totem",
},
{
["enabled"] = true,
["criteria"] = "cooldown.riptide.charges = cooldown.riptide.charges_max",
["action"] = "riptide",
},
{
["enabled"] = true,
["criteria"] = "talent.call_of_the_ancestors.enabled || cooldown.wellspring.remains < 2 || ( cooldown.surging_totem.remains < 3 || buff.downpour.up & buff.downpour.remains > 3 )",
["action"] = "unleash_life",
},
{
["action"] = "wellspring",
["enabled"] = true,
},
},
["default"] = {
{
["enabled"] = true,
["enable_moving"] = true,
["action"] = "spiritwalkers_grace",
["criteria"] = "movement.distance > 6",
["moving"] = 1,
},
{
["enabled"] = true,
["description"] = "Interrupt of casts.",
["action"] = "wind_shear",
},
{
["enabled"] = true,
["action"] = "call_action_list",
["strict"] = 1,
["criteria"] = "settings.healing_mode",
["list_name"] = "healing",
},
{
["action"] = "potion",
["enabled"] = true,
},
{
["action"] = "use_items",
["enabled"] = true,
},
{
["action"] = "blood_fury",
["enabled"] = true,
},
{
["action"] = "berserking",
["enabled"] = true,
},
{
["action"] = "fireblood",
["enabled"] = true,
},
{
["action"] = "ancestral_call",
["enabled"] = true,
},
{
["action"] = "bag_of_tricks",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "talent.acid_rain.enabled",
["action"] = "surging_totem",
},
{
["enabled"] = true,
["criteria"] = "! moving & talent.acid_rain.enabled",
["action"] = "healing_rain",
},
{
["enabled"] = true,
["action"] = "flame_shock",
["criteria"] = "active_enemies < 3 & refreshable",
["cycle_targets"] = 1,
},
{
["enabled"] = true,
["description"] = "actions.default+=/primordial_wave",
["criteria"] = "( active_enemies = 1 || active_enemies = 2 & buff.lava_surge.up ) & dot.flame_shock.remains > cast_time & cooldown_react",
["action"] = "lava_burst",
},
{
["action"] = "earth_elemental",
["enabled"] = true,
},
{
["enabled"] = true,
["criteria"] = "spell_targets.chain_lightning < 2 || ! talent.chain_lightning.enabled",
["action"] = "lightning_bolt",
},
{
["enabled"] = true,
["criteria"] = "spell_targets.chain_lightning > 1",
["action"] = "chain_lightning",
},
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "flame_shock",
["enabled"] = true,
},
{
["moving"] = 1,
["enable_moving"] = true,
["action"] = "frost_shock",
["enabled"] = true,
},
},
["unleash"] = {
{
["action"] = "downpour",
["enabled"] = true,
},
{
["action"] = "wellspring",
["enabled"] = true,
},
{
["action"] = "riptide",
["enabled"] = true,
},
},
},
["author"] = "Hekili",
},
},
},
},
2023-05-09 22:28:02 +02:00
}