HekiliDB = { ["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.flurry_strikes.enabled' (1x).\nLine 18: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 20: Converted 'talent.memory_of_the_monastery' to 'talent.memory_of_the_monastery.enabled' (1x).\nLine 24: Converted 'talent.knowledge_of_the_broken_temple' to 'talent.knowledge_of_the_broken_temple.enabled' (1x).\nLine 27: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 28: Converted 'talent.sequenced_strikes' to 'talent.sequenced_strikes.enabled' (1x).\nLine 28: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 28: Converted 'talent.sequenced_strikes' to 'talent.sequenced_strikes.enabled' (1x).\nLine 28: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 29: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 30: Converted 'talent.singularly_focused_jade' to 'talent.singularly_focused_jade.enabled' (1x).\nLine 30: Converted 'talent.jadefire_harmony' to 'talent.jadefire_harmony.enabled' (1x).\nLine 32: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 38: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\nLine 39: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 2: Converted 'talent.invoke_xuen' to 'talent.invoke_xuen.enabled' (1x).\nLine 7: Converted 'talent.storm_earth_and_fire' to 'talent.storm_earth_and_fire.enabled' (1x).\nLine 9: Converted 'talent.celestial_conduit' to 'talent.celestial_conduit.enabled' (1x).\n\nThe import for 'cooldowns' required some automated changes.\nLine 1: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 1: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\nLine 2: Converted 'talent.xuens_bond' to 'talent.xuens_bond.enabled' (1x).\nLine 2: Converted 'talent.celestial_conduit' to 'talent.celestial_conduit.enabled' (1x).\nLine 2: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 2: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 2: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 3: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 3: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 3: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 3: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\nLine 3: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\n\nThe import for 'normal_opener' required some automated changes.\nLine 1: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\nLine 2: Converted 'talent.ordered_elements' to 'talent.ordered_elements.enabled' (1x).\n\nThe import for 'default_aoe' required some automated changes.\nLine 1: Converted 'talent.inner_peace' to 'talent.inner_peace.enabled' (1x).\nLine 1: Converted 'talent.inner_peace' to 'talent.inner_peace.enabled' (1x).\nLine 1: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 1: 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 6: Converted 'talent.xuens_battlegear' to 'talent.xuens_battlegear.enabled' (1x).\nLine 6: Converted 'talent.revolving_whirl' to 'talent.revolving_whirl.enabled' (1x).\nLine 6: Converted 'talent.revolving_whirl' to 'talent.revolving_whirl.enabled' (1x).\nLine 7: Converted 'talent.revolving_whirl' to 'talent.revolving_whirl.enabled' (1x).\nLine 7: Converted 'talent.revolving_whirl' to 'talent.revolving_whirl.enabled' (1x).\nLine 8: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 9: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 10: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 11: Converted 'talent.power_of_the_thunder_king' to 'talent.power_of_the_thunder_king.enabled' (1x).\nLine 13: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 18: Converted 'talent.crane_vortex' to 'talent.crane_vortex.enabled' (1x).\nLine 19: Converted 'talent.flurry_strikes' to 'talent.flurry_strikes.enabled' (1x).\nLine 21: Converted 'talent.singularly_focused_jade' to 'talent.singularly_focused_jade.enabled' (1x).\nLine 21: Converted 'talent.jadefire_harmony' to 'talent.jadefire_harmony.enabled' (1x).\nLine 22: Converted 'talent.crane_vortex' to 'talent.crane_vortex.enabled' (1x).\nLine 23: Converted 'talent.shadowboxing_treads' to 'talent.shadowboxing_treads.enabled' (1x).\nLine 26: Converted 'talent.energy_burst' to 'talent.energy_burst.enabled' (1x).\nLine 32: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\nLine 33: Converted 'talent.hit_combo' to 'talent.hit_combo.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 1: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 8: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 9: Converted 'talent.invoke_xuen_the_white_tiger' to 'talent.invoke_xuen_the_white_tiger.enabled' (1x).\nLine 10: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 10: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 10: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\n\nThis profile is missing support for generic trinkets. It is recommended that every priority includes either:\n - [Use Items], which includes any trinkets not explicitly included in the priority; or\n - [Trinket 1] and [Trinket 2], which will recommend the trinket for the numbered slot.\nImported 9 action lists.\n", ["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_remains&!buff.bloodlust.up&(active_enemies>1||cooldown.strike_of_the_windlord.remains<2&(talent.flurry_strikes||buff.heart_of_the_jade_serpent.up))&(chi>3||chi>1&talent.ordered_elements)||cooldown.storm_earth_and_fire.full_recharge_time<10&(chi>3||chi>1&talent.ordered_elements))||boss&fight_remains<30||prev.invoke_xuen_the_white_tiger||buff.invokers_delight.remains>10&!boss&(cooldown.rising_sun_kick.remains||!talent.ordered_elements||active_enemies>2)\nactions.cooldowns+=/touch_of_karma\n\n## aoe opener\n# Hekili: Modified to check Hit Combo since you will go pack-to-pack in dungeons (vs. single-encounter sims).\nactions.aoe_opener+=/tiger_palm,cycle_targets=1,if=chi<6&(combo_strike||!talent.hit_combo)\n\n# normal opener\nactions.normal_opener+=/tiger_palm,cycle_targets=1,if=chi<6&(combo_strike||!talent.hit_combo)\nactions.normal_opener+=/rising_sun_kick,cycle_targets=1,if=talent.ordered_elements\n\n# >=5 Targets\nactions.default_aoe+=/tiger_palm,cycle_targets=1,if=(energy>55&talent.inner_peace||energy>60&!talent.inner_peace)&combo_strike&chi.max-chi>=2&buff.teachings_of_the_monastery.stack29&cooldown.fists_of_fury.remains<5\nactions.default_aoe+=/celestial_conduit,cycle_targets=1,if=buff.storm_earth_and_fire.up&cooldown.strike_of_the_windlord.remains&(talent.xuens_bond||!talent.xuens_bond&buff.invokers_delight.up)||boss&fight_remains<15\nactions.default_aoe+=/rising_sun_kick,,cycle_targets=1,if=!talent.xuens_battlegear&!cooldown.whirling_dragon_punch.remains&cooldown.fists_of_fury.remains>1&(!talent.revolving_whirl||talent.revolving_whirl&buff.dance_of_chiji.stack<2&active_enemies>2)||!buff.storm_earth_and_fire.up&buff.pressure_point.up\nactions.default_aoe+=/whirling_dragon_punch,cycle_targets=1,if=!talent.revolving_whirl||talent.revolving_whirl&buff.dance_of_chiji.stack<2&active_enemies>2\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=combo_strike&buff.bok_proc.up&chi<2&talent.energy_burst&energy<55\nactions.default_aoe+=/strike_of_the_windlord,cycle_targets=1,if=time>5&(cooldown.invoke_xuen_the_white_tiger.remains>15||talent.flurry_strikes)\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=8&talent.shadowboxing_treads\nactions.default_aoe+=/crackling_jade_lightning,cycle_targets=1,if=buff.the_emperors_capacitor.stack>19&combo_strike&talent.power_of_the_thunder_king\nactions.default_aoe+=/fists_of_fury,cycle_targets=1\nactions.default_aoe+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&buff.wisdom_of_the_wall_flurry.up&chi<6\nactions.default_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&chi>5\nactions.default_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.dance_of_chiji.up&buff.chi_energy.stack>29&cooldown.fists_of_fury.remains<5\nactions.default_aoe+=/rising_sun_kick,cycle_targets=1,if=buff.pressure_point.up&cooldown.fists_of_fury.remains>2\nactions.default_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.dance_of_chiji.up&spinning_crane_kick.max\nactions.default_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.ordered_elements.up&talent.crane_vortex&active_enemies>2&spinning_crane_kick.max\nactions.default_aoe+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&buff.ordered_elements.up\nactions.default_aoe+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.deficit>=2&(!buff.ordered_elements.up||energy.time_to_max<=gcd.max*3)\nactions.default_aoe+=/jadefire_stomp,cycle_targets=1,if=talent.singularly_focused_jade||talent.jadefire_harmony\nactions.default_aoe+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&!buff.ordered_elements.up&talent.crane_vortex&active_enemies>2&chi>4&spinning_crane_kick.max\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains&(buff.teachings_of_the_monastery.stack>3||buff.ordered_elements.up)&(talent.shadowboxing_treads||buff.bok_proc.up)\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=combo_strike&!cooldown.fists_of_fury.remains&chi<3\nactions.default_aoe+=/spinning_crane_kick,if=combo_strike&(chi>3||energy>55)\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=combo_strike&(buff.ordered_elements.up||buff.bok_proc.up&chi.deficit>=1&talent.energy_burst)&cooldown.fists_of_fury.remains\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains&(chi>2||energy>60||buff.bok_proc.up)\nactions.default_aoe+=/jadefire_stomp,cycle_targets=1\nactions.default_aoe+=/tiger_palm,cycle_targets=1,if=combo_strike&buff.ordered_elements.up&chi.deficit>=1\nactions.default_aoe+=/chi_burst,if=!buff.ordered_elements.up\nactions.default_aoe+=/chi_burst\nactions.default_aoe+=/spinning_crane_kick,if=combo_strike&buff.ordered_elements.up&talent.hit_combo&spinning_crane_kick.max\nactions.default_aoe+=/blackout_kick,cycle_targets=1,if=buff.ordered_elements.up&!talent.hit_combo&cooldown.fists_of_fury.remains\nactions.default_aoe+=/tiger_palm,if=!combo_strike&chi<3&!cooldown.fists_of_fury.remains\n\n# 2-4 targets\nactions.default_cleave+=/rising_sun_kick,cycle_targets=1,if=buff.pressure_point.up&active_enemies<4&cooldown.fists_of_fury.remains>4\nactions.default_cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.dance_of_chiji.stack=2&active_enemies>3\nactions.default_cleave+=/tiger_palm,cycle_targets=1,if=(energy>55&talent.inner_peace||energy>60&!talent.inner_peace)&combo_strike&chi.max-chi>=2&buff.teachings_of_the_monastery.stack=2&!buff.ordered_elements.up\nactions.default_cleave+=/touch_of_death\nactions.default_cleave+=/celestial_conduit,cycle_targets=1,if=buff.storm_earth_and_fire.up&cooldown.strike_of_the_windlord.remains&(talent.xuens_bond||!talent.xuens_bond&buff.invokers_delight.up)||boss&fight_remains<15\nactions.default_cleave+=/rising_sun_kick,cycle_targets=1,if=!pet.xuen_the_white_tiger.active&prev.tiger_palm&time<5||buff.heart_of_the_jade_serpent_cdr_celestial.up&buff.pressure_point.up\nactions.default_cleave+=/fists_of_fury,cycle_targets=1,if=buff.heart_of_the_jade_serpent_cdr_celestial.up\nactions.default_cleave+=/whirling_dragon_punch,cycle_targets=1,if=buff.heart_of_the_jade_serpent_cdr_celestial.up\nactions.default_cleave+=/strike_of_the_windlord,cycle_targets=1,if=talent.gale_force&buff.invokers_delight.up&(buff.bloodlust.up||cooldown.celestial_conduit.remains&!buff.heart_of_the_jade_serpent_cdr_celestial.up)\nactions.default_cleave+=/fists_of_fury,cycle_targets=1,if=buff.power_infusion.up&buff.bloodlust.up\nactions.default_cleave+=/rising_sun_kick,cycle_targets=1,if=buff.power_infusion.up&buff.bloodlust.up&active_enemies<3\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=8&(active_enemies<3||talent.shadowboxing_treads)\nactions.default_cleave+=/whirling_dragon_punch,cycle_targets=1,if=!talent.revolving_whirl||talent.revolving_whirl&buff.dance_of_chiji.stack<2&active_enemies>2||active_enemies<3\nactions.default_cleave+=/strike_of_the_windlord,cycle_targets=1,if=time>5&(cooldown.invoke_xuen_the_white_tiger.remains>15||talent.flurry_strikes)\nactions.default_cleave+=/crackling_jade_lightning,cycle_targets=1,if=buff.the_emperors_capacitor.stack>19&combo_strike&talent.power_of_the_thunder_king\nactions.default_cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.dance_of_chiji.stack=2\nactions.default_cleave+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&active_enemies<5&buff.wisdom_of_the_wall_flurry.up&active_enemies<4\nactions.default_cleave+=/fists_of_fury,cycle_targets=1\nactions.default_cleave+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&active_enemies<5&buff.wisdom_of_the_wall_flurry.up\nactions.default_cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.dance_of_chiji.up&buff.chi_energy.stack>29\nactions.default_cleave+=/rising_sun_kick,cycle_targets=1,if=chi>4&(active_enemies<3||talent.glory_of_the_dawn)||chi>2&energy>50&(active_enemies<3||talent.glory_of_the_dawn)||cooldown.fists_of_fury.remains>2&(active_enemies<3||talent.glory_of_the_dawn)\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=4&!talent.knowledge_of_the_broken_temple&talent.shadowboxing_treads&active_enemies<3\nactions.default_cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.dance_of_chiji.up\nactions.default_cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&buff.ordered_elements.up&talent.crane_vortex&active_enemies>2\nactions.default_cleave+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&active_enemies<5\nactions.default_cleave+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.deficit>=2&(!buff.ordered_elements.up||energy.time_to_max<=gcd.max*3)\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains&buff.teachings_of_the_monastery.stack>3&cooldown.rising_sun_kick.remains\nactions.default_cleave+=/jadefire_stomp,cycle_targets=1,if=talent.singularly_focused_jade||talent.jadefire_harmony\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains&(buff.teachings_of_the_monastery.stack>3||buff.ordered_elements.up)&(talent.shadowboxing_treads||buff.bok_proc.up||buff.ordered_elements.up)\nactions.default_cleave+=/spinning_crane_kick,cycle_targets=1,if=combo_strike&!buff.ordered_elements.up&talent.crane_vortex&active_enemies>2&chi>4\nactions.default_cleave+=/chi_burst,if=!buff.ordered_elements.up\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&(buff.ordered_elements.up||buff.bok_proc.up&chi.deficit>=1&talent.energy_burst)&cooldown.fists_of_fury.remains\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains&(chi>2||energy>60||buff.bok_proc.up)\nactions.default_cleave+=/jadefire_stomp,cycle_targets=1\nactions.default_cleave+=/tiger_palm,cycle_targets=1,if=combo_strike&buff.ordered_elements.up&chi.deficit>=1\nactions.default_cleave+=/chi_burst\nactions.default_cleave+=/spinning_crane_kick,if=combo_strike&buff.ordered_elements.up&talent.hit_combo\nactions.default_cleave+=/blackout_kick,cycle_targets=1,if=buff.ordered_elements.up&!talent.hit_combo&cooldown.fists_of_fury.remains\nactions.default_cleave+=/tiger_palm,if=!combo_strike&chi<3&!cooldown.fists_of_fury.remains\n\n# 1 target\nactions.default_st+=/rising_sun_kick,if=buff.pressure_point.up||buff.ordered_elements.remains<=gcd.max*3&buff.storm_earth_and_fire.up\nactions.default_st+=/tiger_palm,cycle_targets=1,if=(energy>55&talent.inner_peace||energy>60&!talent.inner_peace)&combo_strike&chi.max-chi>=2&buff.teachings_of_the_monastery.stack=2&!buff.ordered_elements.up\nactions.default_st+=/touch_of_death\nactions.default_st+=/rising_sun_kick,cycle_targets=1,if=buff.invokers_delight.up&!buff.storm_earth_and_fire.up&talent.ordered_elements\nactions.default_st+=/celestial_conduit,if=buff.storm_earth_and_fire.up&(!talent.ordered_elements||buff.ordered_elements.up)&cooldown.strike_of_the_windlord.remains&(talent.xuens_bond||!talent.xuens_bond&buff.invokers_delight.up)||boss&fight_remains<15\nactions.default_st+=/rising_sun_kick,cycle_targets=1,if=!pet.xuen_the_white_tiger.active&prev.tiger_palm&time<5||buff.storm_earth_and_fire.up&talent.ordered_elements\nactions.default_st+=/strike_of_the_windlord,if=talent.gale_force&buff.invokers_delight.up&(buff.bloodlust.up||cooldown.celestial_conduit.remains&!buff.heart_of_the_jade_serpent_cdr_celestial.up)\nactions.default_st+=/rising_sun_kick,cycle_targets=1,if=buff.power_infusion.up&buff.bloodlust.up\nactions.default_st+=/fists_of_fury,cycle_targets=1,if=buff.power_infusion.up&buff.bloodlust.up\nactions.default_st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack>3&buff.ordered_elements.up&cooldown.rising_sun_kick.remains>1&cooldown.fists_of_fury.remains>2\nactions.default_st+=/spinning_crane_kick,if=buff.dance_of_chiji.stack=2&combo_strike&buff.power_infusion.up&buff.bloodlust.up\nactions.default_st+=/whirling_dragon_punch,if=buff.power_infusion.up&buff.bloodlust.up\nactions.default_st+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&buff.power_infusion.up&buff.bloodlust.up\nactions.default_st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack>4&cooldown.rising_sun_kick.remains>1&cooldown.fists_of_fury.remains>2\nactions.default_st+=/whirling_dragon_punch,if=!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\nactions.default_st+=/strike_of_the_windlord,if=time>5&(cooldown.invoke_xuen_the_white_tiger.remains>15||talent.flurry_strikes)\nactions.default_st+=/rising_sun_kick,cycle_targets=1,if=chi>4||chi>2&energy>50||cooldown.fists_of_fury.remains>2\nactions.default_st+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes&buff.wisdom_of_the_wall_flurry.up\nactions.default_st+=/tiger_palm,cycle_targets=1,if=combo_strike&chi.deficit>=2&energy.time_to_max<=gcd.max*3\nactions.default_st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack>7&talent.memory_of_the_monastery&!buff.memory_of_the_monastery.up&cooldown.fists_of_fury.remains\nactions.default_st+=/fists_of_fury\nactions.default_st+=/spinning_crane_kick,if=(buff.dance_of_chiji.stack=2||buff.dance_of_chiji.remains<2&buff.dance_of_chiji.up)&combo_strike&!buff.ordered_elements.up\nactions.default_st+=/whirling_dragon_punch\nactions.default_st+=/blackout_kick,cycle_targets=1,if=buff.teachings_of_the_monastery.stack=4&!talent.knowledge_of_the_broken_temple&cooldown.rising_sun_kick.remains>1&cooldown.fists_of_fury.remains>2\nactions.default_st+=/spinning_crane_kick,if=buff.dance_of_chiji.stack=2&combo_strike\nactions.default_st+=/blackout_kick,cycle_targets=1,if=combo_strike&buff.ordered_elements.up&cooldown.rising_sun_kick.remains>1&cooldown.fists_of_fury.remains>2\nactions.default_st+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes\nactions.default_st+=/spinning_crane_kick,if=combo_strike&buff.dance_of_chiji.up&(buff.ordered_elements.up||energy.time_to_max>=gcd.max*3&talent.sequenced_strikes&talent.energy_burst||!talent.sequenced_strikes||!talent.energy_burst||buff.dance_of_chiji.remains<=gcd.max*3)\nactions.default_st+=/tiger_palm,cycle_targets=1,if=combo_strike&energy.time_to_max<=gcd.max*3&talent.flurry_strikes\nactions.default_st+=/jadefire_stomp,if=talent.singularly_focused_jade||talent.jadefire_harmony\nactions.default_st+=/chi_burst,if=!buff.ordered_elements.up\nactions.default_st+=/blackout_kick,cycle_targets=1,if=combo_strike&(buff.ordered_elements.up||buff.bok_proc.up&chi.deficit>=1&talent.energy_burst)&cooldown.fists_of_fury.remains\nactions.default_st+=/crackling_jade_lightning,if=buff.the_emperors_capacitor.stack>19&!buff.ordered_elements.up&combo_strike\nactions.default_st+=/blackout_kick,cycle_targets=1,if=combo_strike&cooldown.fists_of_fury.remains&(chi>2||energy>60||buff.bok_proc.up)\nactions.default_st+=/jadefire_stomp\nactions.default_st+=/tiger_palm,cycle_targets=1,if=combo_strike&buff.ordered_elements.up&chi.deficit>=1\nactions.default_st+=/chi_burst\nactions.default_st+=/spinning_crane_kick,if=combo_strike&buff.ordered_elements.up&talent.hit_combo\nactions.default_st+=/blackout_kick,cycle_targets=1,if=buff.ordered_elements.up&!talent.hit_combo&cooldown.fists_of_fury.remains\nactions.default_st+=/tiger_palm,if=prev.tiger_palm&chi<3&!cooldown.fists_of_fury.remains", }, ["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 'talent.mind_devourer.enabled' (1x).\nLine 17: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 20: Converted 'talent.mind_spike' to 'talent.mind_spike.enabled' (1x).\nLine 20: Converted 'talent.mind_spike' to 'talent.mind_spike.enabled' (1x).\nLine 20: Converted 'talent.empowered_surges' to 'talent.empowered_surges.enabled' (1x).\nLine 22: Converted 'talent.distorted_reality' to 'talent.distorted_reality.enabled' (1x).\nLine 22: Converted 'talent.distorted_reality' to 'talent.distorted_reality.enabled' (1x).\nLine 22: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 22: Converted 'talent.mind_devourer' to 'talent.mind_devourer.enabled' (1x).\nLine 22: Converted 'talent.perfected_form' to 'talent.perfected_form.enabled' (1x).\nLine 22: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 23: Converted 'talent.entropic_rift' to 'talent.entropic_rift.enabled' (1x).\nLine 25: Converted 'talent.unfurling_darkness' to 'talent.unfurling_darkness.enabled' (1x).\nLine 25: Converted 'talent.inner_quietus' to 'talent.inner_quietus.enabled' (1x).\nLine 26: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 26: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\nLine 28: Converted 'talent.mind_devourer' to 'talent.mind_devourer.enabled' (1x).\nLine 28: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 11: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\n\nThe import for 'aoe' 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).\nLine 7: Converted 'talent.whispering_shadows' to 'talent.whispering_shadows.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 7: Converted 'talent.power_surge' to 'talent.power_surge.enabled' (1x).\nLine 7: Converted 'talent.mindbender' to 'talent.mindbender.enabled' (1x).\nLine 7: Converted 'talent.mindbender' to 'talent.mindbender.enabled' (1x).\nLine 7: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 7: Converted 'talent.dark_ascension' to 'talent.dark_ascension.enabled' (1x).\nLine 7: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 8: Converted 'talent.mindbender' to 'talent.mindbender.enabled' (1x).\nLine 8: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 9: Converted 'talent.mindbender' to 'talent.mindbender.enabled' (1x).\nLine 9: Converted 'talent.inescapable_torment' to 'talent.inescapable_torment.enabled' (1x).\nLine 9: Converted 'talent.minds_eye' to 'talent.minds_eye.enabled' (1x).\nLine 9: Converted 'talent.distorted_reality' to 'talent.distorted_reality.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 2: Converted 'talent.entropic_rift' to 'talent.entropic_rift.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.void_eruption' to 'talent.void_eruption.enabled' (1x).\nLine 3: Converted 'talent.dark_ascension' to 'talent.dark_ascension.enabled' (1x).\nLine 3: Converted 'talent.void_torrent' to 'talent.void_torrent.enabled' (1x).\nLine 3: Converted 'talent.psychic_link' to 'talent.psychic_link.enabled' (1x).\n\nImported 9 action lists.\n", ["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 Insanity during the opener with Voidweaver\nactions.main+=/mind_spike,if=talent.mind_melt&talent.void_blast&(buff.mind_melt.stack<(1*talent.distorted_reality+1-talent.unfurling_darkness-talent.minds_eye*1)&talent.halo||!talent.halo&buff.mind_melt.stack<2)&cooldown.mindbender.up&cooldown.dark_ascension.up&time<=4&insanity<=20\n# Use Shadowfiend and Mindbender on cooldown as long as Vampiric Touch and Shadow Word: Pain are active and sync with Dark Ascension\nactions.main+=/mindbender,if=(dot.shadow_word_pain.ticking&variable.dots_up||action.shadow_crash.in_flight&talent.whispering_shadows)&(boss&fight_remains<30||target.time_to_die>15)&(!talent.dark_ascension||cooldown.dark_ascension.remains=execute_time||buff.entropic_rift.remains<=gcd.max||action.void_torrent.channeling&talent.void_empowerment)&(insanity.deficit>=16||cooldown.mind_blast.full_recharge_time<=gcd.max||buff.entropic_rift.remains<=gcd.max)&(!talent.mind_devourer||!buff.mind_devourer.up||buff.entropic_rift.remains<=gcd.max)\n# Do not let Voidform Expire if you can avoid it.\nactions.main+=/devouring_plague,cycle_targets=1,if=(dot.devouring_plague.remains<=gcd.max||variable.dr_force_prio||!talent.distorted_reality&variable.me_force_prio)&buff.voidform.up&talent.perfected_form&buff.voidform.remains<=gcd.max&talent.void_eruption\nactions.main+=/wait,sec=cooldown.mind_blast.recharge_time,if=cooldown.mind_blast.recharge_time=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\n# 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\nactions.main+=/void_bolt,cycle_targets=1,if=insanity.deficit>16&cooldown.void_bolt.remains<=0.1\n# Do not overcap on insanity\nactions.main+=/devouring_plague,cycle_targets=1,if=active_dot.devouring_plague<=1&dot.devouring_plague.remains<=gcd.max&(!talent.void_eruption||cooldown.void_eruption.remains>=gcd.max*3)||insanity.deficit<=16\n# Cast Void Torrent at very high priority if Voidweaver\nactions.main+=/void_torrent,cycle_targets=1,if=(dot.devouring_plague.ticking||talent.void_eruption&cooldown.void_eruption.up)&talent.entropic_rift&!variable.holding_crash\n# Snipe SWDs with Depth of Shadows to spawn pets. Prefer targets with Devouring Plague on them.\nactions.main+=/shadow_word_death,cycle_targets=1,if=talent.depth_of_shadows&(target.health.pct<=20||buff.deathspeaker.up&talent.deathspeaker)&talent.inescapable_torment\n# Use Mind Blasts if using Inescapable Torment and you are capping charges or it will expire soon. Do not use if pooling Mindblast.\nactions.main+=/mind_blast,cycle_targets=1,if=(cooldown.mind_blast.full_recharge_time<=gcd.max+execute_time||pet.fiend.remains<=execute_time+gcd.max)&pet.fiend.active&talent.inescapable_torment&pet.fiend.remains>=execute_time&active_enemies<=7&(!buff.mind_devourer.up||!talent.mind_devourer)&dot.devouring_plague.remains>execute_time&!variable.pooling_mindblasts\n# High Priority Shadow Word: Death is Mindbender is expiring in less than a gcd plus wiggle room\nactions.main+=/shadow_word_death,cycle_targets=1,if=pet.fiend.remains<=(gcd.max+1)&pet.fiend.active&talent.inescapable_torment&active_enemies<=7\n# 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)\nactions.main+=/void_bolt,cycle_targets=1,if=cooldown.void_bolt.remains<=0.1\n# Spend UFD as a high priority action\nactions.main+=/vampiric_touch,cycle_targets=1,if=buff.unfurling_darkness.up&active_dot.vampiric_touch<=5\n# Do not overcap MSI or MFI during Empowered Surges (Archon).\nactions.main+=/call_action_list,name=empowered_filler,strict=1,if=(buff.mind_spike_insanity.stack>2&talent.mind_spike||buff.mind_flay_insanity.stack>2&!talent.mind_spike)&talent.empowered_surges&!cooldown.void_eruption.up\n### Hyper cringe optimisations that fish for TOF using heals. Set priest.twist_of_fate_heal_rppm= to make this be used.\n## actions.main+=/call_action_list,name=heal_for_tof,if=!buff.twist_of_fate.up&buff.twist_of_fate_can_trigger_on_ally_heal.up&(talent.rhapsody||talent.divine_star||talent.halo)\n# Spend your Insanity on Devouring Plague at will if the fight will end in less than 10s\nactions.main+=/devouring_plague,if=boss&fight_remains<=duration+4\n# 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.\nactions.main+=/devouring_plague,cycle_targets=1,if=(dot.devouring_plague.remains<=gcd.max||variable.dr_force_prio||!talent.distorted_reality&variable.me_force_prio)&(insanity.deficit<=35&talent.distorted_reality||buff.mind_devourer.up&cooldown.mind_blast.up&(cooldown.void_eruption.remains>=3*gcd.max||!talent.void_eruption)&talent.mind_devourer||buff.entropic_rift.up||buff.voidform.up&talent.perfected_form&talent.void_eruption)\n# 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.\nactions.main+=/void_torrent,cycle_targets=1,if=!variable.holding_crash&!talent.entropic_rift&dot.devouring_plague.remains>=2.5\n# Use Shadow Crash as long as you are not holding for adds and Vampiric Touch is within pandemic range\nactions.main+=/shadow_crash,cycle_targets=1,if=dot.vampiric_touch.refreshable&!variable.holding_crash\n# Acquire UFD\nactions.main+=/vampiric_touch,cycle_targets=1,if=refreshable&buff.unfurling_darkness_cd.remains<(execute_time-0.2)&talent.unfurling_darkness&!buff.dark_ascension.up&talent.inner_quietus&active_dot.vampiric_touch<=5\n# Put out Vampiric Touch on enemies that will live at least 12s and Shadow Crash is not available soon\nactions.main+=/vampiric_touch,cycle_targets=1,if=refreshable&target.time_to_die>12&(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)&(!action.shadow_crash.in_flight||!talent.whispering_shadows)\n# Spend Deathspeaker Procs\nactions.main+=/shadow_word_death,cycle_targets=1,if=variable.dots_up&buff.deathspeaker.up\n# Use all charges of Mind Blast if Vampiric Touch and Shadow Word: Pain are active and Mind Devourer is not active or you are prepping Void Eruption\nactions.main+=/mind_blast,cycle_targets=1,if=(!buff.mind_devourer.up||!talent.mind_devourer||cooldown.void_eruption.up&talent.void_eruption)&!variable.pooling_mindblasts\nactions.main+=/call_action_list,name=filler\n\nactions.aoe_variables+=/variable,name=max_vts,op=set,default=12,value=spell_targets.vampiric_touch>?12\nactions.aoe_variables+=/variable,name=is_vt_possible,op=set,value=0,default=1\nactions.aoe_variables+=/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_variables+=/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_variables+=/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_variables+=/variable,name=manual_vts_applied,op=set,value=(active_dot.vampiric_touch+8*!variable.holding_crash)>=variable.max_vts||!variable.is_vt_possible\n\n# TODO: Check VE/DA enter conditions based on dots\nactions.cds+=/potion,if=(buff.voidform.up||buff.power_infusion.up||buff.dark_ascension.up&(boss&fight_remains<=cooldown.power_infusion.remains+15))&(fight_remains>=320||buff.bloodlust.react)||boss&fight_remains<=30\nactions.cds+=/fireblood,if=buff.power_infusion.up||boss&fight_remains<=8\nactions.cds+=/berserking,if=buff.power_infusion.up||boss&fight_remains<=12\nactions.cds+=/blood_fury,if=buff.power_infusion.up||boss&fight_remains<=15\nactions.cds+=/ancestral_call,if=buff.power_infusion.up||boss&fight_remains<=15\n# Sync Power Infusion with Voidform or Dark Ascension\nactions.cds+=/power_infusion,if=buff.voidform.up||buff.dark_ascension.up\n## Use Power Infusion while Voidform or Dark Ascension is active. Chain directly after your own Power Infusion.\n## actions.cds+=/invoke_external_buff,name=power_infusion,if=(buff.voidform.up||buff.dark_ascension.up)&!buff.power_infusion.up\n## actions.cds+=/invoke_external_buff,name=bloodlust,if=buff.power_infusion.up&fight_remains<120||fight_remains<=40\n# Make sure Mindbender is active before popping Dark Ascension unless you have insignificant talent points or too many targets\nactions.cds+=/halo,if=talent.power_surge&(pet.fiend.active&cooldown.fiend.remains>=4&talent.mindbender||!talent.mindbender&!cooldown.fiend.up||active_enemies>2&!talent.inescapable_torment||!talent.dark_ascension)&(cooldown.mind_blast.charges=0||!talent.void_eruption||cooldown.void_eruption.remains>=gcd.max*4)\n# Make sure Mindbender is active before popping Void Eruption and dump charges of Mind Blast before casting\nactions.cds+=/void_eruption,if=(pet.fiend.active&cooldown.fiend.remains>=4||!talent.mindbender&!cooldown.fiend.up||active_enemies>2&!talent.inescapable_torment)&(cooldown.mind_blast.charges=0||time>15)\nactions.cds+=/dark_ascension,if=(pet.fiend.active&cooldown.fiend.remains>=4||!talent.mindbender&!cooldown.fiend.up||active_enemies>2&!talent.inescapable_torment)&(active_dot.devouring_plague>=1||insanity>=(15+5*!talent.minds_eye+5*talent.distorted_reality-pet.fiend.active*6))\nactions.cds+=/call_action_list,name=trinkets\n# Use Desperate Prayer to heal up should Shadow Word: Death or other damage bring you below 75%\nactions.cds+=/desperate_prayer,if=health.pct<=75\n\n### Healing spell action list for proccing Twist of Fate\n## actions.filler+=/call_action_list,name=heal_for_tof,if=!buff.twist_of_fate.up&buff.twist_of_fate_can_trigger_on_ally_heal.up&(talent.rhapsody||talent.divine_star||talent.halo)\n## Use PWS with CR talented to trigger TOF if there are no better alternatives available to do this as we still get insanity for a PWS cast.\n## actions.filler+=/power_word_shield,if=!buff.twist_of_fate.up&buff.twist_of_fate_can_trigger_on_ally_heal.up&talent.crystalline_reflection\n# Consume empowered fillers\nactions.filler+=/call_action_list,name=empowered_filler,strict=1,if=(buff.mind_spike_insanity.up||buff.mind_flay_insanity.up)&dot.devouring_plague.remains>action.mind_spike.cast_time||!talent.mind_spike\n# Cast Vampiric Touch to proc Unfurling Darkness\nactions.filler+=/vampiric_touch,cycle_targets=1,if=talent.unfurling_darkness&buff.unfurling_darkness_cd.remains<(execute_time-0.2)&talent.inner_quietus\nactions.filler+=/shadow_word_death,cycle_targets=1,if=target.health.pct<20||(buff.deathspeaker.up||set_bonus.tier31_2pc)&dot.devouring_plague.ticking\nactions.filler+=/shadow_word_death,cycle_targets=1,if=talent.inescapable_torment&pet.fiend.active\nactions.filler+=/devouring_plague,if=talent.empowered_surges&buff.surge_of_insanity.up||buff.voidform.up&talent.void_eruption\nactions.filler+=/vampiric_touch,cycle_targets=1,if=talent.unfurling_darkness&buff.unfurling_darkness_cd.remains<(execute_time-0.2)\n# Save up to 20s if adds are coming soon.\nactions.filler+=/halo,if=spell_targets>1\n## Using a heal with no damage kickbacks for TOF is damage neutral, so we will do it.\n## actions.filler+=/power_word_life,if=!buff.twist_of_fate.up&buff.twist_of_fate_can_trigger_on_ally_heal.up\nactions.filler+=/call_action_list,name=empowered_filler,strict=1,if=buff.mind_spike_insanity.up||buff.mind_flay_insanity.up\n## actions.filler+=/call_action_list,name=heal_for_tof,if=equipped.rashoks_molten_heart&(active_allies-(10-buff.molten_radiance.value))>=10&buff.molten_radiance.up,line_cd=5\nactions.filler+=/mind_spike,cycle_targets=1\nactions.filler+=/mind_flay,cycle_targets=1,chain=1,interrupt_immediate=1,interrupt_if=ticks>=2,interrupt_global=1\nactions.filler+=/divine_star\n# Use Shadow Crash while moving as a low-priority action when adds will not come in 20 seconds.\nactions.filler+=/shadow_crash,if=!set_bonus.tier31_4pc\n# Use Shadow Word: Death while moving as a low-priority action in execute\nactions.filler+=/shadow_word_death,cycle_targets=1,if=target.health.pct<20\n# Use Shadow Word: Death while moving as a low-priority action\nactions.filler+=/shadow_word_death,cycle_targets=1\n# Use Shadow Word: Pain while moving as a low-priority action with T31 4pc\nactions.filler+=/shadow_word_pain,cycle_targets=1,if=set_bonus.tier31_4pc\n# Use Shadow Word: Pain while moving as a low-priority action without T31 4pc\nactions.filler+=/shadow_word_pain,cycle_targets=1,if=!set_bonus.tier31_4pc\n\nactions.empowered_filler+=/mind_spike_insanity,cycle_targets=1,if=buff.mind_spike_insanity.up\nactions.empowered_filler+=/mind_flay_insanity,cycle_targets=1,if=buff.mind_flay_insanity.up\n\n## Use Halo to acquire Twist of Fate if an ally can be healed for it and it is not currently up.\n## actions.heal_for_tof+=/halo\n## Use Divine Star to acquire Twist of Fate if an ally can be healed for it and it is not currently up.\n## actions.heal_for_tof+=/divine_star\n## Use Holy Nova when Rhapsody is fully stacked to acquire Twist of Fate if an ally can be healed for it and it is not currently up.\n## actions.heal_for_tof+=/holy_nova,if=buff.rhapsody.stack=20&talent.rhapsody\n\nactions.trinkets+=/use_item,use_off_gcd=1,name=aberrant_spellforge,if=gcd.remains>0&buff.aberrant_spellforge.stack<=4\nactions.trinkets+=/use_item,name=spymasters_web,if=(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&fight_remains<=30)&!buff.spymasters_web.up\nactions.trinkets+=/use_items,if=(buff.voidform.up||buff.power_infusion.up||buff.dark_ascension.up||(cooldown.void_eruption.remains>10&trinket.cooldown.duration<=60))||boss&fight_remains<20", ["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.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 3: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 3: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 3: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 3: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 3: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 3: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (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 4: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 4: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 4: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.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.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 4: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 4: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (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 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 5: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\n\nThe import for 'aoe_burst' required some automated changes.\nLine 2: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 2: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 2: Converted 'talent.doomed_bidding' to 'talent.doomed_bidding.enabled' (1x).\nLine 2: Converted 'talent.menacing_magus' to 'talent.menacing_magus.enabled' (1x).\nLine 2: Converted 'talent.rotten_touch' to 'talent.rotten_touch.enabled' (1x).\nLine 3: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\nLine 3: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 3: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\n\nThe import for 'san_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.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.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 4: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 4: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 5: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 5: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 5: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 5: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 5: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 6: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 6: Converted 'talent.army_of_the_dead' to 'talent.army_of_the_dead.enabled' (1x).\nLine 6: Converted 'talent.raise_abomination' to 'talent.raise_abomination.enabled' (1x).\nLine 6: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\n\nThe import for 'san_st' required some automated changes.\nLine 1: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\nLine 2: Converted 'talent.doomed_bidding' to 'talent.doomed_bidding.enabled' (1x).\nLine 2: Converted 'talent.rotten_touch' to 'talent.rotten_touch.enabled' (1x).\nLine 3: Converted 'talent.gift_of_the_sanlayn' to 'talent.gift_of_the_sanlayn.enabled' (1x).\nLine 6: Converted 'talent.gift_of_the_sanlayn' to 'talent.gift_of_the_sanlayn.enabled' (1x).\nLine 6: Converted 'talent.gift_of_the_sanlayn' to 'talent.gift_of_the_sanlayn.enabled' (1x).\nLine 7: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\n\nThe import for 'default' required some automated changes.\nLine 3: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 3: Converted 'talent.unholy_assault' to 'talent.unholy_assault.enabled' (1x).\nLine 4: Converted 'talent.vile_contagion' to 'talent.vile_contagion.enabled' (1x).\nLine 5: Converted 'talent.rotten_touch' to 'talent.rotten_touch.enabled' (1x).\nLine 5: Converted 'talent.rotten_touch' to 'talent.rotten_touch.enabled' (1x).\nLine 5: Converted 'talent.improved_death_coil' to 'talent.improved_death_coil.enabled' (1x).\nLine 5: Converted 'talent.coil_of_devastation' to 'talent.coil_of_devastation.enabled' (1x).\nLine 6: Converted 'talent.improved_death_coil' to 'talent.improved_death_coil.enabled' (1x).\nLine 6: Converted 'talent.frenzied_bloodthirst' to 'talent.frenzied_bloodthirst.enabled' (1x).\nLine 6: Converted 'talent.hungering_thirst' to 'talent.hungering_thirst.enabled' (1x).\nLine 6: Converted 'talent.harbinger_of_doom' to 'talent.harbinger_of_doom.enabled' (1x).\nLine 7: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 8: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 10: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 11: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 12: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 13: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 15: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 17: Converted 'talent.summon_gargoyle' to 'talent.summon_gargoyle.enabled' (1x).\nLine 18: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 18: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 20: Converted 'talent.commander_of_the_dead' to 'talent.commander_of_the_dead.enabled' (1x).\nLine 22: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 23: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 24: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 25: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 30: Converted 'talent.gift_of_the_sanlayn' to 'talent.gift_of_the_sanlayn.enabled' (1x).\nLine 31: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\nLine 32: Converted 'talent.vampiric_strike' to 'talent.vampiric_strike.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.is.mirror_of_fractured_tomorrows' to 'trinket.t1.is.mirror_of_fractured_tomorrows' (1x).\nLine 3: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.is.mirror_of_fractured_tomorrows' to 'trinket.t2.is.mirror_of_fractured_tomorrows' (1x).\nLine 4: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 5: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 5: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 5: Converted 'trinket.1.is.mirror_of_fractured_tomorrows' to 'trinket.t1.is.mirror_of_fractured_tomorrows' (1x).\nLine 5: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 6: Converted 'trinket.2.is.mirror_of_fractured_tomorrows' to 'trinket.t2.is.mirror_of_fractured_tomorrows' (1x).\nLine 6: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 7: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 8: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 9: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 9: Converted 'talent.dark_transformation' to 'talent.dark_transformation.enabled' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 9: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 9: Converted operations in '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' to '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'.\nLine 10: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 10: Converted 'talent.dark_transformation' to 'talent.dark_transformation.enabled' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 10: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 10: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 10: Converted operations in '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' to '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'.\nLine 11: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 11: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 11: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 11: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 11: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 11: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 11: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 11: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (1x).\nLine 11: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 11: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 11: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 11: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 11: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (1x).\nLine 11: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 11: Converted operations in '!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)))' to '!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)))'.\nLine 12: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 12: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.bursting_sores' to 'talent.bursting_sores.enabled' (1x).\n\nThe import for 'cds' required some automated changes.\nLine 1: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 2: Converted 'talent.apocalypse' to 'talent.apocalypse.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.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 5: Converted 'talent.festermight' to 'talent.festermight.enabled' (1x).\nLine 5: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\n\nThe import for 'cds_san' required some automated changes.\nLine 1: Converted 'talent.apocalypse' to 'talent.apocalypse.enabled' (1x).\nLine 1: Converted 'talent.apocalypse' to 'talent.apocalypse.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\nImported 15 action lists.\n", ["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,strict=1,if=!talent.vampiric_strike\n# Racials\nactions+=/arcane_torrent,if=runic_power<20&rune<2\nactions+=/blood_fury,if=(buff.blood_fury.duration+3>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.blood_fury.duration+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\nactions+=/berserking,if=(buff.berserking.duration+3>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.berserking.duration+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\nactions+=/lights_judgment,if=buff.unholy_strength.up&(!talent.festermight||buff.festermight.remains=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||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\nactions+=/arcane_pulse,if=active_enemies>=2||(rune.deficit>=5&runic_power.deficit>=60)\nactions+=/fireblood,if=(buff.fireblood.duration+3>=pet.gargoyle.remains&pet.gargoyle.active)||(!talent.summon_gargoyle||cooldown.summon_gargoyle.remains>60)&(pet.army_ghoul.active&pet.army_ghoul.remains<=buff.fireblood.duration+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\nactions+=/bag_of_tricks,if=active_enemies=1&(buff.unholy_strength.up||boss&fight_remains<5)\n# Shared Cooldowns\nactions+=/potion,if=active_enemies>=1&(!talent.summon_gargoyle||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\n## Use Power Infusion while Gargoyle is up, as well as Apocalypse or with Dark Transformation if Apocalypse or Gargoyle are not talented\n## actions+=/invoke_external_buff,name=power_infusion,if=active_enemies>=1&(pet.gargoyle.active&pet.gargoyle.remains<=22||!talent.summon_gargoyle&talent.army_of_the_dead&(talent.raise_abomination&pet.abomination.active&pet.abomination.remains<18||!talent.raise_abomination&pet.army_ghoul.active&pet.army_ghoul.remains<=18)||!talent.summon_gargoyle&!talent.army_of_the_dead&buff.dark_transformation.up||!talent.summon_gargoyle&buff.dark_transformation.up||!pet.gargoyle.active&cooldown.summon_gargoyle.remains+10>cooldown.invoke_external_buff_power_infusion.duration||active_enemies>=3&(buff.dark_transformation.up||death_and_decay.ticking))\nactions+=/army_of_the_dead,if=(talent.commander_of_the_dead&cooldown.dark_transformation.remains<5||!talent.commander_of_the_dead&active_enemies>=1)||boss&fight_remains<35\nactions+=/raise_abomination\nactions+=/summon_gargoyle,use_off_gcd=1,if=(buff.commander_of_the_dead.up||!talent.commander_of_the_dead&active_enemies>=1)||boss&fight_remains<25\nactions+=/antimagic_shell,if=death_knight.ams_absorb_percent>0&runic_power<30&rune<2\nactions+=/call_action_list,name=cds_aoe_san,strict=1,if=talent.vampiric_strike&active_enemies>=2\nactions+=/call_action_list,name=cds_aoe,strict=1,if=!talent.vampiric_strike&active_enemies>=2\nactions+=/call_action_list,name=cds_san,strict=1,if=talent.vampiric_strike&active_enemies=1\nactions+=/call_action_list,name=cds,strict=1,if=!talent.vampiric_strike&active_enemies=1\nactions+=/call_action_list,name=cleave,strict=1,if=active_enemies=2\nactions+=/call_action_list,name=aoe_setup,if=active_enemies>=3&!death_and_decay.ticking&cooldown.death_and_decay.remains<10\nactions+=/call_action_list,name=aoe_burst,strict=1,if=active_enemies>=3&(death_and_decay.ticking||buff.death_and_decay.up&death_knight.fwounded_targets>=(cycle_enemies*0.5))\nactions+=/call_action_list,name=aoe,if=active_enemies>=3&!death_and_decay.ticking\nactions+=/run_action_list,name=san_fishing,if=active_enemies=1&talent.gift_of_the_sanlayn&!cooldown.dark_transformation.ready&!buff.gift_of_the_sanlayn.up&buff.essence_of_the_blood_queen.remains=1&buff.death_and_decay.up&talent.bursting_sores&cooldown.apocalypse.remains>variable.apoc_timing\nactions.aoe+=/death_coil,if=!variable.pooling_runic_power&active_enemies=1&cooldown.apocalypse.remains>gcd||buff.vampiric_strike.up&dot.virulent_plague.ticking\n\n# AoE Burst\nactions.aoe_burst+=/festering_strike,if=buff.festering_scythe.up\nactions.aoe_burst+=/death_coil,if=!buff.vampiric_strike.react&active_enemies=1||buff.vampiric_strike.up\nactions.aoe_burst+=/death_coil,if=active_enemies=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)\nactions.aoe_setup+=/wound_spender,target_if=debuff.chains_of_ice_trollbane_slow.up\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=!talent.vile_contagion\nactions.aoe_setup+=/festering_strike,cycle_targets=1,if=cooldown.vile_contagion.remains<5||death_knight.fwounded_targets>=cycle_enemies&debuff.festering_wound.stack<=4\nactions.aoe_setup+=/death_coil,if=!variable.pooling_runic_power&buff.sudden_doom.react&active_enemies=1)||boss&fight_remains<20\nactions.cds+=/unholy_assault,if=active_enemies=1&(cooldown.apocalypse.remains=2&buff.dark_transformation.up)||boss&fight_remains<20\nactions.cds+=/apocalypse,if=active_enemies=1||fight_remains<20\nactions.cds+=/outbreak,cycle_targets=1,if=target.time_to_die>dot.virulent_plague.remains&dot.virulent_plague.ticks_remain<5&(dot.virulent_plague.refreshable||talent.superstrain&(dot.frost_fever.refreshable||dot.blood_plague.refreshable))&(!talent.unholy_blight||talent.plaguebringer)&(!talent.raise_abomination||talent.raise_abomination&cooldown.raise_abomination.remains>dot.virulent_plague.ticks_remain*3)\nactions.cds+=/abomination_limb,if=active_enemies=1&!buff.sudden_doom.up&(buff.festermight.up&buff.festermight.stack>8||!talent.festermight)&(pet.apoc_ghoul.remains<5||!talent.apocalypse)&debuff.festering_wound.stack<=2||boss&fight_remains<12\n\n### Non-San'layn AoE Cooldowns\nactions.cds_aoe+=/unholy_assault,cycle_targets=1,if=active_enemies>1&(cooldown.vile_contagion.remains<3||cooldown.vile_contagion.remains>40||!talent.vile_contagion)\nactions.cds_aoe+=/vile_contagion,cycle_targets=1,if=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\nactions.cds_aoe+=/dark_transformation,if=active_enemies>1&(cooldown.vile_contagion.remains>5||!talent.vile_contagion||death_and_decay.ticking||cooldown.death_and_decay.remains<3)\nactions.cds_aoe+=/outbreak,if=dot.virulent_plague.ticks_remain<5&(dot.virulent_plague.refreshable||talent.morbidity&!buff.gift_of_the_sanlayn.up&talent.superstrain&dot.frost_fever.refreshable&dot.blood_plague.refreshable)&(!talent.unholy_blight||talent.unholy_blight&cooldown.dark_transformation.remains)&(!talent.raise_abomination||talent.raise_abomination&cooldown.raise_abomination.remains)\nactions.cds_aoe+=/apocalypse,cycle_targets=1,if=active_enemies>1&rune<=3\nactions.cds_aoe+=/abomination_limb,if=active_enemies>1\n\n# San'layn AoE Cooldowns\nactions.cds_aoe_san+=/dark_transformation,if=active_enemies>1&buff.death_and_decay.up\nactions.cds_aoe_san+=/unholy_assault,cycle_targets=1,if=active_enemies>1&(cooldown.vile_contagion.remains<6||cooldown.vile_contagion.remains>40||!talent.vile_contagion)||boss&fight_remains<20\nactions.cds_aoe_san+=/vile_contagion,cycle_targets=1,if=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\nactions.cds_aoe_san+=/outbreak,if=(dot.virulent_plague.refreshable||talent.morbidity&!buff.gift_of_the_sanlayn.up&talent.superstrain&dot.frost_fever.refreshable&dot.blood_plague.refreshable)&(!talent.unholy_blight||talent.unholy_blight&cooldown.dark_transformation.remains>15%((2*talent.superstrain)+(2*talent.ebon_fever)+(2*talent.plaguebringer)))&(!talent.raise_abomination||talent.raise_abomination&cooldown.raise_abomination.remains>15%((2*talent.superstrain)+(2*talent.ebon_fever)+(2*talent.plaguebringer)))\nactions.cds_aoe_san+=/apocalypse,cycle_targets=1,if=active_enemies>1&rune<=3\nactions.cds_aoe_san+=/abomination_limb,if=active_enemies>1\n\n# San'layn Cooldowns\nactions.cds_san+=/dark_transformation,if=active_enemies>=1&active_enemies=1&(talent.apocalypse&pet.apoc_ghoul.active||!talent.apocalypse)||boss&fight_remains<20\nactions.cds_san+=/unholy_assault,if=active_enemies=1&(buff.dark_transformation.up&buff.dark_transformation.remains<12)||boss&fight_remains<20\nactions.cds_san+=/apocalypse,if=active_enemies=1||fight_remains<20\nactions.cds_san+=/outbreak,cycle_targets=1,if=target.time_to_die>dot.virulent_plague.remains&dot.virulent_plague.ticks_remain<5&(dot.virulent_plague.refreshable||talent.morbidity&buff.infliction_of_sorrow.up&talent.superstrain&dot.frost_fever.refreshable&dot.blood_plague.refreshable)&(!talent.unholy_blight||talent.unholy_blight&cooldown.dark_transformation.remains)&(!talent.raise_abomination||talent.raise_abomination&cooldown.raise_abomination.remains)\nactions.cds_san+=/abomination_limb,if=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\n\n# Cleave\nactions.cleave+=/any_dnd,if=!death_and_decay.ticking\nactions.cleave+=/death_coil,if=!variable.pooling_runic_power\nactions.cleave+=/festering_strike,cycle_targets=1,if=!variable.pop_wounds&debuff.festering_wound.stack<4||buff.festering_scythe.up\nactions.cleave+=/festering_strike,cycle_targets=1,if=cooldown.apocalypse.remains0&runic_power<40\nactions.san_fishing+=/any_dnd,if=!buff.death_and_decay.up&!buff.vampiric_strike.up\nactions.san_fishing+=/death_coil,if=buff.sudden_doom.up&talent.doomed_bidding\nactions.san_fishing+=/soul_reaper,if=target.health.pct<=35&fight_remains>5\nactions.san_fishing+=/death_coil,if=!buff.vampiric_strike.up\nactions.san_fishing+=/wound_spender,if=(debuff.festering_wound.stack>=3-pet.abomination.active&cooldown.apocalypse.remains>variable.apoc_timing)||buff.vampiric_strike.up\nactions.san_fishing+=/festering_strike,if=debuff.festering_wound.stack<3-pet.abomination.active\n\n# Single Target San'layn\nactions.san_st+=/any_dnd,if=!death_and_decay.ticking&talent.unholy_ground&cooldown.dark_transformation.remains<5\nactions.san_st+=/death_coil,if=buff.sudden_doom.up&buff.gift_of_the_sanlayn.remains&(talent.doomed_bidding||talent.rotten_touch)||rune<3&!buff.runic_corruption.up\nactions.san_st+=/wound_spender,if=buff.gift_of_the_sanlayn.up&buff.vampiric_strike.up||talent.gift_of_the_sanlayn&buff.dark_transformation.up&buff.dark_transformation.remains5\nactions.san_st+=/wound_spender,if=buff.vampiric_strike.up&debuff.festering_wound.stack>=1\nactions.san_st+=/festering_strike,if=(debuff.festering_wound.stack=0&cooldown.apocalypse.remainsvariable.apoc_timing)&(debuff.festering_wound.stack>=3-pet.abomination.active||buff.vampiric_strike.up)\nactions.san_st+=/death_coil,if=!variable.pooling_runic_power&debuff.death_rot.remains=1||rune<2)\nactions.san_st+=/wound_spender,if=debuff.festering_wound.stack>4\nactions.san_st+=/death_coil,if=!variable.pooling_runic_power\n\n# Trinkets San'layn\nactions.san_trinkets+=/use_item,name=fyralath_the_dreamrender,if=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&!talent.army_of_the_dead||time>15)\n## actions.san_trinkets+=/do_treacherous_transmitter_task,use_off_gcd=1,if=buff.errant_manaforge_emission.up&buff.dark_transformation.up&buff.errant_manaforge_emission.remains<2||buff.cryptic_instructions.up&buff.dark_transformation.up&buff.cryptic_instructions.remains<2||buff.realigning_nexus_convergence_divergence.up&buff.dark_transformation.up&buff.realigning_nexus_convergence_divergence.remains<2\nactions.san_trinkets+=/use_item,name=treacherous_transmitter,if=(active_enemies>1||active_enemies=1)&cooldown.dark_transformation.remains<10\nactions.san_trinkets+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&(buff.dark_transformation.up&buff.dark_transformation.remains=fight_remains&boss\nactions.san_trinkets+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&(buff.dark_transformation.up&buff.dark_transformation.remains=fight_remains&boss\nactions.san_trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.1.cast_time>0&!buff.gift_of_the_sanlayn.up||!trinket.1.cast_time>0)&(variable.damage_trinket_priority=1||trinket.2.cooldown.remains||!trinket.2.has_cooldown||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination||!talent.summon_gargoyle&talent.army_of_the_dead&(!talent.raise_abomination&cooldown.army_of_the_dead.remains>20||talent.raise_abomination&cooldown.raise_abomination.remains>20)||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination&cooldown.dark_transformation.remains>20||talent.summon_gargoyle&cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15\nactions.san_trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.2.cast_time>0&!buff.gift_of_the_sanlayn.up||!trinket.2.cast_time>0)&(variable.damage_trinket_priority=2||trinket.1.cooldown.remains||!trinket.1.has_cooldown||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination||!talent.summon_gargoyle&talent.army_of_the_dead&(!talent.raise_abomination&cooldown.army_of_the_dead.remains>20||talent.raise_abomination&cooldown.raise_abomination.remains>20)||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination&cooldown.dark_transformation.remains>20||talent.summon_gargoyle&cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15\n\n# Single Taget Non-San'layn\nactions.st+=/soul_reaper,if=target.health.pct<=35&fight_remains>5\nactions.st+=/wound_spender,if=debuff.chains_of_ice_trollbane_slow.up\nactions.st+=/any_dnd,if=talent.unholy_ground&!buff.death_and_decay.up&(pet.apoc_ghoul.active||pet.abomination.active||pet.gargoyle.active)\nactions.st+=/death_coil,if=!variable.pooling_runic_power&variable.spend_rp||boss&fight_remains<10\nactions.st+=/festering_strike,if=debuff.festering_wound.stack<4&(!variable.pop_wounds||buff.festering_scythe.up)\nactions.st+=/wound_spender,if=variable.pop_wounds\nactions.st+=/death_coil,if=!variable.pooling_runic_power\nactions.st+=/wound_spender,if=!variable.pop_wounds&debuff.festering_wound.stack>=4\n\n# Trinkets Non-San'layn\nactions.trinkets+=/use_item,name=fyralath_the_dreamrender,if=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&!talent.army_of_the_dead||time>15)\n## actions.trinkets+=/do_treacherous_transmitter_task,use_off_gcd=1,if=buff.errant_manaforge_emission.up&(pet.apoc_ghoul.active||!talent.apocalypse&buff.dark_transformation.up)||buff.cryptic_instructions.up&(pet.apoc_ghoul.active||!talent.apocalypse&buff.dark_transformation.up)||buff.realigning_nexus_convergence_divergence.up&(pet.apoc_ghoul.active||!talent.apocalypse&buff.dark_transformation.up)\nactions.trinkets+=/use_item,name=treacherous_transmitter,if=(active_enemies>1||active_enemies=1)&cooldown.dark_transformation.remains<10\nactions.trinkets+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&(variable.trinket_priority=1||!trinket.2.has_cooldown||trinket.2.cooldown.remains>20&(!talent.apocalypse&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&!talent.raise_abomination&pet.army_ghoul.active&pet.army_ghoul.remains<=variable.trinket_1_duration&pet.army_ghoul.remains>10||talent.raise_abomination&pet.abomination.active&pet.abomination.remains<=variable.trinket_1_duration&pet.abomination.remains>10||talent.apocalypse&pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=variable.trinket_1_duration+3&pet.apoc_ghoul.remains>5||!talent.raise_abomination&!talent.apocalypse&buff.dark_transformation.up||trinket.2.cooldown.remains)||fight_remains<=variable.trinket_1_duration&boss\nactions.trinkets+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&(variable.trinket_priority=2||!trinket.1.has_cooldown||trinket.1.cooldown.remains>20&(!talent.apocalypse&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&!talent.raise_abomination&pet.army_ghoul.active&pet.army_ghoul.remains<=variable.trinket_2_duration&pet.army_ghoul.remains>10||talent.raise_abomination&pet.abomination.active&pet.abomination.remains<=variable.trinket_2_duration&pet.abomination.remains>10||talent.apocalypse&pet.apoc_ghoul.active&pet.apoc_ghoul.remains<=variable.trinket_2_duration+3&pet.apoc_ghoul.remains>5||!talent.raise_abomination&!talent.apocalypse&buff.dark_transformation.up||trinket.1.cooldown.remains)||fight_remains<=variable.trinket_2_duration&boss\nactions.trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(variable.damage_trinket_priority=1||trinket.2.cooldown.remains||!trinket.2.has_cooldown||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination||!talent.summon_gargoyle&talent.army_of_the_dead&(!talent.raise_abomination&cooldown.army_of_the_dead.remains>20||talent.raise_abomination&cooldown.raise_abomination.remains>20)||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination&cooldown.dark_transformation.remains>20||talent.summon_gargoyle&cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15\nactions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(variable.damage_trinket_priority=2||trinket.1.cooldown.remains||!trinket.1.has_cooldown||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination||!talent.summon_gargoyle&talent.army_of_the_dead&(!talent.raise_abomination&cooldown.army_of_the_dead.remains>20||talent.raise_abomination&cooldown.raise_abomination.remains>20)||!talent.summon_gargoyle&!talent.army_of_the_dead&!talent.raise_abomination&cooldown.dark_transformation.remains>20||talent.summon_gargoyle&cooldown.summon_gargoyle.remains>20&!pet.gargoyle.active)||boss&fight_remains<15", }, ["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_powerrunic_power%variable.breath_rp_cost' to 'runic_powerrunic_power/variable.breath_rp_cost'.\nLine 15: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 15: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 15: Converted 'talent.arctic_assault' to 'talent.arctic_assault.enabled' (1x).\nLine 15: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 16: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 16: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 17: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 18: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 18: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 18: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 18: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 18: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 18: Converted operations in '!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)' to '!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)'.\nLine 19: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 19: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 19: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 19: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 19: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 19: Converted operations in '!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)' to '!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)'.\nLine 20: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 20: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 20: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 20: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 20: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 21: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 21: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 21: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 21: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 21: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 22: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 22: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 22: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 22: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 22: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 22: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 22: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 23: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 23: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 23: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 23: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 23: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 23: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 23: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 24: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 24: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 24: Converted 'talent.wither_away' to 'talent.wither_away.enabled' (1x).\nLine 24: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 25: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 25: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 25: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 25: Converted 'talent.empower_rune_weapon' to 'talent.empower_rune_weapon.enabled' (1x).\nLine 26: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 27: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 28: Converted 'talent.arctic_assault' to 'talent.arctic_assault.enabled' (1x).\nLine 29: Converted 'talent.arctic_assault' to 'talent.arctic_assault.enabled' (1x).\nLine 30: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 30: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 32: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 32: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 32: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 33: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 33: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 34: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 35: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 35: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 38: Converted 'talent.apocalypse_now' to 'talent.apocalypse_now.enabled' (1x).\nLine 38: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 39: Converted 'talent.apocalypse_now' to 'talent.apocalypse_now.enabled' (1x).\nLine 39: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 39: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 39: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 40: Converted 'talent.apocalypse_now' to 'talent.apocalypse_now.enabled' (1x).\nLine 40: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 41: Converted 'talent.apocalypse_now' to 'talent.apocalypse_now.enabled' (1x).\nLine 41: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 41: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 41: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 45: Converted 'talent.enduring_strength' to 'talent.enduring_strength.enabled' (1x).\nLine 45: Converted 'talent.the_long_winter' to 'talent.the_long_winter.enabled' (1x).\nLine 45: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 52: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 53: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 54: Converted 'talent.cold_heart' to 'talent.cold_heart.enabled' (1x).\nLine 54: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 54: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 54: Converted 'talent.avalanche' to 'talent.avalanche.enabled' (1x).\nLine 54: Converted 'talent.arctic_assault' to 'talent.arctic_assault.enabled' (1x).\nLine 56: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'precombat' required some automated changes.\nLine 1: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 1: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 1: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 1: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 1: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 1: Converted operations in 'trinket.t1.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t1.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%%trinket.t1.cooldown.duration=0))' to 'trinket.t1.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t1.cooldown.duration%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%trinket.t1.cooldown.duration=0))'.\nLine 2: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 2: Converted 'talent.pillar_of_frost' to 'talent.pillar_of_frost.enabled' (1x).\nLine 2: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 2: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 2: Converted operations in 'trinket.t2.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t2.cooldown.duration%%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%%trinket.t2.cooldown.duration=0))' to 'trinket.t2.has_use_buff&(talent.pillar_of_frost.enabled&!talent.breath_of_sindragosa.enabled&(trinket.t2.cooldown.duration%cooldown.pillar_of_frost.duration=0)||talent.breath_of_sindragosa.enabled&(cooldown.breath_of_sindragosa.duration%trinket.t2.cooldown.duration=0))'.\nLine 3: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 3: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_buff.mastery' (1x).\nLine 3: Converted 'trinket.1.has_buff.mastery' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_buff.versatility' (1x).\nLine 3: Converted 'trinket.1.has_buff.versatility' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_buff.haste' (1x).\nLine 3: Converted 'trinket.1.has_buff.haste' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_buff.crit' (1x).\nLine 3: Converted 'trinket.1.has_buff.crit' to 'trinket.t1.has_use_buff' (1x).\nLine 3: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 4: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 4: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_buff.mastery' (1x).\nLine 4: Converted 'trinket.2.has_buff.mastery' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_buff.versatility' (1x).\nLine 4: Converted 'trinket.2.has_buff.versatility' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_buff.haste' (1x).\nLine 4: Converted 'trinket.2.has_buff.haste' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_buff.crit' (1x).\nLine 4: Converted 'trinket.2.has_buff.crit' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 5: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 5: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 5: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 6: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 7: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 7: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 7: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 7: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 7: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 7: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 7: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (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.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 7: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 7: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (1x).\nLine 7: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 7: Converted operations in '!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)))' to '!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)))'.\nLine 8: Converted 'trinket.2.ilvl' to 'trinket.t2.ilvl' (1x).\nLine 8: Converted 'trinket.1.ilvl' to 'trinket.t1.ilvl' (1x).\nLine 9: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 9: Converted 'trinket.1.is.treacherous_transmitter' to 'trinket.t1.is.treacherous_transmitter' (1x).\nLine 10: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 10: Converted 'trinket.2.is.treacherous_transmitter' to 'trinket.t2.is.treacherous_transmitter' (1x).\nLine 11: Converted 'talent.gathering_storm' to 'talent.gathering_storm.enabled' (1x).\nLine 11: Converted 'talent.biting_cold' to 'talent.biting_cold.enabled' (1x).\nLine 13: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 13: Converted 'talent.icebreaker' to 'talent.icebreaker.enabled' (1x).\nLine 13: Converted 'talent.bind_in_darkness' to 'talent.bind_in_darkness.enabled' (1x).\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'aoe' required some automated changes.\nLine 1: Converted 'talent.cleaving_strikes' to 'talent.cleaving_strikes.enabled' (1x).\nLine 2: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 2: Converted 'talent.shattered_frost' to 'talent.shattered_frost.enabled' (1x).\nLine 9: Converted 'talent.breath_of_sindragosa' to 'talent.breath_of_sindragosa.enabled' (1x).\n\nThe import for 'breath' required some automated changes.\nLine 3: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\nLine 3: Converted 'talent.rage_of_the_frozen_champion' to 'talent.rage_of_the_frozen_champion.enabled' (1x).\nLine 7: Converted 'talent.unholy_ground' to 'talent.unholy_ground.enabled' (1x).\nLine 7: Converted 'talent.obliteration' to 'talent.obliteration.enabled' (1x).\n\nThe import for 'obliteration' required some automated changes.\nLine 5: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 5: Converted 'talent.a_feast_of_souls' to 'talent.a_feast_of_souls.enabled' (1x).\nLine 10: Converted 'talent.shattering_blade' to 'talent.shattering_blade.enabled' (1x).\nLine 10: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 10: Converted 'talent.shattered_frost' to 'talent.shattered_frost.enabled' (1x).\nLine 12: Converted 'talent.glacial_advance' to 'talent.glacial_advance.enabled' (1x).\nLine 12: Converted 'talent.shattered_frost' to 'talent.shattered_frost.enabled' (1x).\n\nImported 7 action lists.\n", ["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_planning,value=active_enemies=1\nactions+=/variable,name=adds_remain,value=active_enemies>1\nactions+=/variable,name=sending_cds,value=(variable.st_planning||variable.adds_remain)\nactions+=/variable,name=rime_buffs,value=buff.rime.up&(variable.static_rime_buffs||talent.avalanche&!talent.arctic_assault&debuff.razorice.stack<5)\nactions+=/variable,name=rp_buffs,value=talent.unleashed_frenzy&(buff.unleashed_frenzy.remains10||!talent.obliteration)||!talent.pillar_of_frost&buff.empower_rune_weapon.up||!talent.pillar_of_frost&!talent.empower_rune_weapon||active_enemies>=2&buff.pillar_of_frost.up\n# Formulaic approach to determine the time before these abilities come off cooldown that the simulation should star to pool resources. Capped at 15s in the run_action_list call.\nactions+=/variable,name=true_breath_cooldown,op=setif,value=cooldown.breath_of_sindragosa.remains,value_else=cooldown.pillar_of_frost.remains,condition=cooldown.breath_of_sindragosa.remains>cooldown.pillar_of_frost.remains\nactions+=/variable,name=oblit_pooling_time,op=setif,value=((cooldown.pillar_of_frost.remains_expected+1)%gcd.max)%((rune+1)*((runic_power+5)))*100,value_else=3,condition=runic_power<35&rune<2&cooldown.pillar_of_frost.remains_expected<10\nactions+=/variable,name=breath_pooling_time,op=setif,value=((variable.true_breath_cooldown+1)%gcd.max)%((rune+1)*(runic_power+20))*100,value_else=2,condition=runic_power.deficit>10&variable.true_breath_cooldown<10\nactions+=/variable,name=pooling_runes,value=rune0)&cooldown.pillar_of_frost.remains_expected30)&runic_power<35&cooldown.pillar_of_frost.remains=4)||(!talent.shattered_frost&!talent.shattering_blade&active_enemies>=2)\nactions+=/variable,name=breath_dying,value=runic_powerrunic_power%variable.breath_rp_cost\nactions+=/variable,name=fwf_buffs,value=(buff.pillar_of_frost.remains1||debuff.razorice.stack=5||!death_knight.runeforge.razorice&(!talent.glacial_advance||!talent.avalanche||!talent.arctic_assault)||talent.shattering_blade)\n\n## High Priority Actions Use Power Infusion while Pillar of Frost is up, as well as Breath of Sindragosa or on cooldown if Pillar of Frost and Breath of Sindragosa are not talented\n## actions.high_prio+=/invoke_external_buff,name=power_infusion,if=(buff.pillar_of_frost.up||!talent.pillar_of_frost)&(talent.obliteration||talent.breath_of_sindragosa&buff.breath_of_sindragosa.up||!talent.breath_of_sindragosa&!talent.obliteration)\nactions+=/antimagic_shell,if=runic_power.deficit>40&death_knight.first_ams_castcooldown.antimagic_shell.duration)\n# Trinkets\nactions+=/use_item,use_off_gcd=1,name=treacherous_transmitter,if=cooldown.pillar_of_frost.remains<6&variable.sending_cds&(variable.trinket_1_buffs&variable.trinket_2_buffs||!talent.breath_of_sindragosa||cooldown.breath_of_sindragosa.remains<6)||boss&fight_remains<30\n### When to complete the Tracherous Transmitter task given.\n## actions+=/do_treacherous_transmitter_task,use_off_gcd=1,if=buff.pillar_of_frost.up||fight_remains<15\n# Trinkets The trinket with the highest estimated value, will be used first and paired with Pillar of Frost.\nactions+=/use_item,slot=trinket1,if=!trinket.1.cast_time>0&variable.trinket_1_buffs&!variable.trinket_1_manual&((!variable.trinket_2_buffs&buff.breath_of_sindragosa.up||!talent.breath_of_sindragosa||variable.trinket_2_buffs)&buff.pillar_of_frost.remains>variable.trinket_1_duration%2)&(!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)\nactions+=/use_item,slot=trinket2,if=!trinket.2.cast_time>0&variable.trinket_2_buffs&!variable.trinket_2_manual&((!variable.trinket_1_buffs&buff.breath_of_sindragosa.up||!talent.breath_of_sindragosa||variable.trinket_2_buffs)&buff.pillar_of_frost.remains>variable.trinket_2_duration%2)&(!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)\n# Channeled buff trinkets will be used before cooldowns\nactions+=/use_item,slot=trinket1,use_off_gcd=1,if=trinket.1.cast_time>0&variable.trinket_1_buffs&!variable.trinket_1_manual&!buff.pillar_of_frost.up&(!talent.breath_of_sindragosa||!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.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||variable.trinket_1_duration>=fight_remains&boss\nactions+=/use_item,slot=trinket2,use_off_gcd=1,if=trinket.2.cast_time>0&variable.trinket_2_buffs&!variable.trinket_2_manual&!buff.pillar_of_frost.up&(!talent.breath_of_sindragosa||!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.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||variable.trinket_2_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&!variable.trinket_1_manual&(variable.damage_trinket_priority=1||(!trinket.2.has_cooldown||trinket.2.cooldown.remains))&((trinket.1.cast_time>0&(!talent.breath_of_sindragosa||!buff.breath_of_sindragosa.up||!variable.breath_dying)&!buff.pillar_of_frost.up||!trinket.1.cast_time>0)&(!variable.trinket_2_buffs||cooldown.pillar_of_frost.remains>20)||!talent.pillar_of_frost)||boss&fight_remains<15\nactions+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&(variable.damage_trinket_priority=2||(!trinket.1.has_cooldown||trinket.1.cooldown.remains))&((trinket.2.cast_time>0&(!talent.breath_of_sindragosa||!buff.breath_of_sindragosa.up||!variable.breath_dying)&!buff.pillar_of_frost.up||!trinket.2.cast_time>0)&(!variable.trinket_1_buffs||cooldown.pillar_of_frost.remains>20)||!talent.pillar_of_frost)||boss&fight_remains<15\n# Maintain Frost Fever, Icy Talons and Unleashed Frenzy\nactions+=/howling_blast,if=!dot.frost_fever.ticking&active_enemies>=2&(!talent.breath_of_sindragosa||!buff.breath_of_sindragosa.up)&(!talent.obliteration||talent.wither_away||talent.obliteration&(!cooldown.pillar_of_frost.ready||buff.pillar_of_frost.up&!buff.killing_machine.up))\n\n# Cooldowns\nactions+=/potion,if=(talent.pillar_of_frost&buff.pillar_of_frost.up||!talent.pillar_of_frost&buff.empower_rune_weapon.up||!talent.pillar_of_frost&!talent.empower_rune_weapon||active_enemies>=2&buff.pillar_of_frost.up)||boss&fight_remains<25\nactions+=/abomination_limb,if=talent.obliteration&!buff.pillar_of_frost.up&variable.sending_cds&(!hero_tree.deathbringer||cooldown.reapers_mark.remains<5)||boss&fight_remains<15\nactions+=/abomination_limb,if=!talent.obliteration&variable.sending_cds\nactions+=/remorseless_winter,if=variable.rw_buffs&variable.sending_cds&(!talent.arctic_assault||!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.remains10\nactions+=/chill_streak,if=variable.sending_cds&(!talent.arctic_assault||!buff.pillar_of_frost.up)\nactions+=/empower_rune_weapon,if=talent.obliteration&!talent.breath_of_sindragosa&buff.pillar_of_frost.up||boss&fight_remains<20\nactions+=/empower_rune_weapon,if=buff.breath_of_sindragosa.up&(runic_power<40||runic_power1)\nactions+=/pillar_of_frost,if=!talent.obliteration&!talent.breath_of_sindragosa&variable.sending_cds\nactions+=/breath_of_sindragosa,use_off_gcd=1,if=!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)\nactions+=/reapers_mark,cycle_targets=1,if=(boss||target.time_to_die>13)&debuff.reapers_mark_debuff.down&(buff.pillar_of_frost.up||cooldown.pillar_of_frost.remains>5)\nactions+=/frostwyrms_fury,if=hero_tree.rider_of_the_apocalypse&talent.apocalypse_now&variable.sending_cds&(!talent.breath_of_sindragosa&buff.pillar_of_frost.up||buff.breath_of_sindragosa.up)||boss&fight_remains<20\nactions+=/frostwyrms_fury,if=!talent.apocalypse_now&active_enemies=1&(talent.pillar_of_frost&buff.pillar_of_frost.up&!talent.obliteration||!talent.pillar_of_frost)&(!raid_event.adds.exists||raid_event.adds.in>cooldown.frostwyrms_fury.duration+raid_event.adds.duration)&variable.fwf_buffs||fight_remains<3\nactions+=/frostwyrms_fury,if=!talent.apocalypse_now&active_enemies>=2&(talent.pillar_of_frost&buff.pillar_of_frost.up||raid_event.adds.exists&raid_event.adds.up&raid_event.adds.incooldown.frostwyrms_fury.duration+raid_event.adds.duration)\nactions+=/raise_dead,use_off_gcd=1,if=buff.pillar_of_frost.up\nactions+=/frostscythe,if=!buff.killing_machine.up&!buff.pillar_of_frost.up\nactions+=/any_dnd,if=hero_tree.deathbringer&!buff.death_and_decay.up&variable.st_planning&cooldown.reapers_mark.remains5)||!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&cooldown.pillar_of_frost.remains5||talent.cleaving_strikes&active_enemies>=2)\n\n\n# Racial Abilities\nactions+=/blood_fury,if=variable.cooldown_check\nactions+=/berserking,if=variable.cooldown_check\nactions+=/arcane_pulse,if=variable.cooldown_check\nactions+=/lights_judgment,if=variable.cooldown_check\nactions+=/ancestral_call,if=variable.cooldown_check\nactions+=/fireblood,if=variable.cooldown_check\nactions+=/bag_of_tricks,if=talent.obliteration&!buff.pillar_of_frost.up&buff.unholy_strength.up\nactions+=/bag_of_tricks,if=!talent.obliteration&buff.pillar_of_frost.up&(buff.unholy_strength.up&buff.unholy_strength.remains0\nactions+=/run_action_list,name=obliteration,if=talent.obliteration&buff.pillar_of_frost.up&!buff.breath_of_sindragosa.up\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>=2\nactions+=/call_action_list,name=single_target,strict=1,if=active_enemies=1\n\n\n# Cold Heart\nactions.cold_heart+=/chains_of_ice,if=fight_remains=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))\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&buff.pillar_of_frost.up&buff.cold_heart.stack>=10&(buff.pillar_of_frost.remains15&(buff.cold_heart.stack>=10&buff.unholy_strength.up||buff.cold_heart.stack>=13)\nactions.cold_heart+=/chains_of_ice,if=!talent.obliteration&!death_knight.runeforge.fallen_crusader&buff.cold_heart.stack>=10&!buff.pillar_of_frost.up&cooldown.pillar_of_frost.remains>20\nactions.cold_heart+=/chains_of_ice,if=talent.obliteration&!buff.pillar_of_frost.up&(buff.cold_heart.stack>=14&buff.unholy_strength.up||buff.cold_heart.stack>=19||cooldown.pillar_of_frost.remains<3&buff.cold_heart.stack>=14)\n\n\n# Breath Active Rotation\nactions.breath+=/obliterate,cycle_targets=1,if=buff.killing_machine.stack=2\nactions.breath+=/soul_reaper,if=fight_remains>5&target.time_to_pct_35<5&target.time_to_pct_0>5&runic_power>50\nactions.breath+=/howling_blast,if=(variable.rime_buffs||!buff.killing_machine.up&buff.pillar_of_frost.up&talent.obliteration&!buff.bonegrinder_frost.up)&runic_power>(variable.breath_rime_rp_threshold-(talent.rage_of_the_frozen_champion*6))||!dot.frost_fever.ticking\nactions.breath+=/horn_of_winter,if=rune<2&runic_power.deficit>30&(!buff.empower_rune_weapon.up||runic_power20\nactions.breath+=/remorseless_winter,if=variable.breath_dying\nactions.breath+=/any_dnd,if=!death_and_decay.ticking&(variable.st_planning&talent.unholy_ground&runic_power.deficit>=10&!talent.obliteration||variable.breath_dying)\nactions.breath+=/howling_blast,if=variable.breath_dying\nactions.breath+=/arcane_torrent,if=runic_power<60\nactions.breath+=/howling_blast,if=buff.rime.up\n\n\n# Obliteration Active Rotation\nactions.obliteration+=/obliterate,cycle_targets=1,if=buff.killing_machine.up&(buff.exterminate.up||fight_remains5&target.time_to_pct_35<5&target.time_to_pct_0>5&rune>2\nactions.obliteration+=/howling_blast,cycle_targets=1,if=!buff.killing_machine.up&(!dot.frost_fever.ticking)\nactions.obliteration+=/glacial_advance,cycle_targets=1,if=(variable.ga_priority||debuff.razorice.stack<5)&(!death_knight.runeforge.razorice&(debuff.razorice.stack<5||debuff.razorice.remains1))\nactions.obliteration+=/frost_strike,cycle_targets=1,if=(rune<2||variable.rp_buffs||debuff.razorice.stack=5&talent.shattering_blade)&!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1||talent.shattered_frost)\nactions.obliteration+=/howling_blast,if=buff.rime.up\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!variable.pooling_runic_power&(!talent.glacial_advance||active_enemies=1||talent.shattered_frost)\nactions.obliteration+=/glacial_advance,cycle_targets=1,if=!variable.pooling_runic_power&variable.ga_priority\nactions.obliteration+=/frost_strike,cycle_targets=1,if=!variable.pooling_runic_power\nactions.obliteration+=/horn_of_winter,if=rune<3\nactions.obliteration+=/arcane_torrent,if=rune<1&runic_power<30\nactions.obliteration+=/howling_blast,if=!buff.killing_machine.up\n\n\n# AoE Action List\nactions.aoe+=/obliterate,if=buff.killing_machine.up&talent.cleaving_strikes&buff.death_and_decay.up\nactions.aoe+=/frost_strike,cycle_targets=1,if=!variable.pooling_runic_power&debuff.razorice.stack=5&talent.shattering_blade&(talent.shattered_frost||active_enemies<4)\nactions.aoe+=/howling_blast,cycle_targets=1,if=!dot.frost_fever.ticking\nactions.aoe+=/howling_blast,if=buff.rime.up\nactions.aoe+=/obliterate,if=buff.killing_machine.stack>0\nactions.aoe+=/glacial_advance,cycle_targets=1,if=!variable.pooling_runic_power&(variable.ga_priority||debuff.razorice.stack<5)\nactions.aoe+=/frost_strike,cycle_targets=1,if=!variable.pooling_runic_power\nactions.aoe+=/obliterate\nactions.aoe+=/horn_of_winter,if=rune<2&runic_power.deficit>25&(!talent.breath_of_sindragosa||variable.true_breath_cooldown>cooldown.horn_of_winter.duration-15)\nactions.aoe+=/arcane_torrent,if=runic_power.deficit>25\n\n\n# Single Target Rotation\nactions.single_target+=/frost_strike,if=talent.a_feast_of_souls&debuff.razorice.stack=5&talent.shattering_blade&buff.a_feast_of_souls.up\nactions.single_target+=/obliterate,if=buff.killing_machine.stack=2||buff.exterminate.up\nactions.single_target+=/frost_strike,if=(debuff.razorice.stack=5&talent.shattering_blade)||(rune<2&!talent.icebreaker)\nactions.single_target+=/howling_blast,if=variable.rime_buffs&talent.icebreaker\nactions.single_target+=/obliterate,if=buff.killing_machine.up&!variable.pooling_runes\nactions.single_target+=/soul_reaper,if=fight_remains>5&target.time_to_pct_35<5&target.time_to_pct_0>5&rune>2\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power&(variable.rp_buffs||(!talent.shattering_blade&runic_power.deficit<20))\nactions.single_target+=/howling_blast,if=buff.rime.up&(!talent.breath_of_sindragosa||talent.rage_of_the_frozen_champion||cooldown.breath_of_sindragosa.remains)\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power&!(main_hand.2h||talent.shattering_blade)\nactions.single_target+=/obliterate,if=!variable.pooling_runes&main_hand.2h\nactions.single_target+=/frost_strike,if=!variable.pooling_runic_power\nactions.single_target+=/obliterate,if=!variable.pooling_runes\nactions.single_target+=/howling_blast,if=!dot.frost_fever.ticking\nactions.single_target+=/horn_of_winter,if=rune<2&runic_power.deficit>25&(!talent.breath_of_sindragosa||variable.true_breath_cooldown>cooldown.horn_of_winter.duration-15)\nactions.single_target+=/arcane_torrent,if=!talent.breath_of_sindragosa&runic_power.deficit>20", ["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 ) = 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_speakers_accretion,if=(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)\nactions+=/use_item,name=imperfect_ascendancy_serum,if=cooldown.evocation.ready||cooldown.arcane_surge.ready||fight_remains<20\nactions+=/use_item,name=treacherous_transmitter,if=(cooldown.evocation.remains<7&cooldown.evocation.remains)||buff.siphon_storm.remains>15||fight_remains<20\n## actions+=/do_treacherous_transmitter_task,use_off_gcd=1,if=buff.siphon_storm.up||fight_remains<20||(buff.cryptic_instructions.remains35)\nactions+=/use_item,name=mad_queens_mandate,if=!variable.steroid_trinket_equipped||buff.siphon_storm.down\nactions+=/use_item,name=fearbreakers_echo,if=!variable.steroid_trinket_equipped||buff.siphon_storm.down\nactions+=/use_item,name=mereldars_toll,if=!variable.steroid_trinket_equipped||buff.siphon_storm.down\nactions+=/variable,name=opener,op=set,if=debuff.touch_of_the_magi.up&variable.opener,value=0\nactions+=/arcane_barrage,if=fight_remains<2\n# Enter cooldowns, then action list depending on your hero talent choices\nactions+=/call_action_list,name=cd_opener,if=variable.opener\n## actions+=/call_action_list,name=sunfury_aoe,if=talent.spellfire_spheres&variable.aoe_list\n## actions+=/call_action_list,name=spellslinger_aoe,if=!talent.spellfire_spheres&variable.aoe_list\nactions+=/call_action_list,name=sunfury,strict=1,if=talent.spellfire_spheres\nactions+=/call_action_list,name=spellslinger,strict=1,if=!talent.spellfire_spheres\nactions+=/arcane_barrage\n\n# 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\nactions.cd_opener+=/touch_of_the_magi,use_off_gcd=1,if=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)\n##actions.cd_opener+=/wait,sec=0.05,if=prev_gcd.1.arcane_surge&time-action.touch_of_the_magi.last_used<0.015,line_cd=15\nactions.cd_opener+=/arcane_blast,if=buff.presence_of_mind.up\n# Use Orb for Charges on the opener if you have High Voltage as the Missiles will generate the remaining Charge you need\nactions.cd_opener+=/arcane_orb,if=talent.high_voltage\n# Barrage before Evocation if Tempo will expire\nactions.cd_opener+=/arcane_barrage,if=buff.arcane_tempo.up&cooldown.evocation.ready&buff.arcane_tempo.remainsgcd.remains&buff.aether_attunement.down,interrupt_immediate=1,interrupt_global=1,chain=1,line_cd=30\nactions.cd_opener+=/arcane_surge,if=cooldown.touch_of_the_magi.remains<(action.arcane_surge.execute_time+(gcd.max*(buff.arcane_charge.stack=4)))\n\n\n# With Shifting Shards we can use Shifting Power whenever basically favoring cooldowns slightly, without it though we want to use it outside of cooldowns\nactions.spellslinger+=/shifting_power,if=(((((action.arcane_orb.charges=talent.charged_orb)&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&(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)\n# 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\nactions.spellslinger+=/cancel_buff,name=presence_of_mind,use_off_gcd=1,if=prev_gcd.1.arcane_blast&buff.presence_of_mind.stack=1\nactions.spellslinger+=/presence_of_mind,if=debuff.touch_of_the_magi.remains<=gcd.max&buff.nether_precision.up&active_enemiesgcd.max*6)\n# AOE conditions for Barrage allow for Orb to enable Barrage when Nether Precision is up, Aether Attunement with High Voltage\nactions.spellslinger+=/arcane_barrage,if=((buff.arcane_charge.stack=4&buff.nether_precision.up&active_enemies>1&(cooldown.arcane_orb.remains0)&cooldown.touch_of_the_magi.remains>gcd.max*6)||(buff.arcane_charge.stack=4&talent.reverberate&active_enemies>2)||(buff.aether_attunement.up&talent.high_voltage&buff.clearcasting.react&buff.arcane_charge.stack>1&((target.health.pct<35&active_enemies=2)||active_enemies>2)))&talent.arcing_cleave\n# 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\nactions.spellslinger+=/arcane_missiles,if=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.remainsgcd.remains&buff.aether_attunement.down,interrupt_immediate=1,interrupt_global=1,chain=1\nactions.spellslinger+=/arcane_orb,if=buff.arcane_charge.stack<((5-active_enemies)=4\nactions.spellslinger+=/arcane_blast\nactions.spellslinger+=/arcane_barrage\n\n# 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\nactions.spellslinger_aoe+=/supernova,if=buff.unerring_proficiency.stack=30\nactions.spellslinger_aoe+=/shifting_power,if=((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)\nactions.spellslinger_aoe+=/arcane_orb,if=buff.arcane_charge.stack<3\nactions.spellslinger_aoe+=/arcane_blast,if=((debuff.magis_spark_arcane_blast.up||buff.leydrinker.up)&!prev_gcd.1.arcane_blast)\n# Clearcasting is exclusively spent on Arcane Missiles in AOE and always interrupted after the global cooldown ends except for Aether Attunement\nactions.spellslinger_aoe+=/arcane_barrage,if=buff.aether_attunement.up&talent.high_voltage&buff.clearcasting.up&buff.arcane_charge.stack>1\nactions.spellslinger_aoe+=/arcane_missiles,if=buff.clearcasting.up&((talent.high_voltage&buff.arcane_charge.stack<4)||buff.nether_precision.down),interrupt_if=tick_time>gcd.remains&buff.aether_attunement.down,interrupt_immediate=1,interrupt_global=1,chain=1\n# Only use Presence of Mind at low charges, use these to get to 4 Charges quicker\nactions.spellslinger_aoe+=/presence_of_mind,if=buff.arcane_charge.stack=3||buff.arcane_charge.stack=2\nactions.spellslinger_aoe+=/arcane_barrage,if=buff.arcane_charge.stack=4\nactions.spellslinger_aoe+=/arcane_explosion,if=(talent.reverberate||buff.arcane_charge.stack<1)\nactions.spellslinger_aoe+=/arcane_blast\nactions.spellslinger_aoe+=/arcane_barrage\n\n# For Sunfury, Shifting Power only when you're not under the effect of any cooldowns\nactions.sunfury+=/shifting_power,if=((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\nactions.sunfury+=/cancel_buff,name=presence_of_mind,use_off_gcd=1,if=(prev_gcd.1.arcane_blast&buff.presence_of_mind.stack=1)||active_enemies<4\nactions.sunfury+=/presence_of_mind,if=debuff.touch_of_the_magi.remains<=gcd.max&buff.nether_precision.up&active_enemies<4\n##actions.sunfury+=/wait,sec=0.05,if=time-action.presence_of_mind.last_used<0.015,line_cd=15\n# 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.\nactions.sunfury+=/arcane_barrage,if=(buff.arcane_charge.stack=4&buff.burden_of_power.down&buff.nether_precision.up&active_enemies>2&((talent.arcane_bombardment&target.health.pct<35)||active_enemies>4)&talent.arcing_cleave&((talent.high_voltage&buff.clearcasting.up)||(cooldown.arcane_orb.remains0)))||(buff.aether_attunement.up&talent.high_voltage&buff.clearcasting.up&buff.arcane_charge.stack>1&active_enemies>2&(target.health.pct<35||!talent.arcane_bombardment||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&buff.clearcasting.down)))\n# Orb if you don't have High Voltage and a Clearcasting in AOE\nactions.sunfury+=/arcane_orb,if=buff.arcane_charge.stack<2&buff.arcane_soul.down&(!talent.high_voltage||buff.clearcasting.down)\n# Soul changes missile priority a bit and allows for clipping Aether Attunement\nactions.sunfury+=/arcane_missiles,if=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,interrupt_global=1,chain=1\n# 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\nactions.sunfury+=/arcane_barrage,if=(buff.intuition.up||buff.aethervision.stack=2||buff.glorious_incandescence.up)&(((target.health.pct<35&talent.arcane_bombardment)||(mana.pct<70&talent.enlightened&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.remainsgcd.remains&buff.aether_attunement.down,interrupt_immediate=1,interrupt_global=1,chain=1\nactions.sunfury+=/presence_of_mind,if=(buff.arcane_charge.stack=3||buff.arcane_charge.stack=2)&active_enemies>=3\n# Explosion to build the first charge if you have none\nactions.sunfury+=/arcane_explosion,if=(talent.reverberate||buff.arcane_charge.stack<1)&active_enemies>=4\nactions.sunfury+=/arcane_blast\nactions.sunfury+=/arcane_barrage\n\n# 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\nactions.sunfury_aoe+=/arcane_barrage,if=(buff.arcane_soul.up&((buff.clearcasting.stack<3)||buff.arcane_soul.remainsgcd.remains&buff.aether_attunement.down,interrupt_immediate=1,interrupt_global=1,chain=1\nactions.sunfury_aoe+=/shifting_power,if=(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\nactions.sunfury_aoe+=/arcane_orb,if=buff.arcane_charge.stack<2&(!talent.high_voltage||!buff.clearcasting.up)\nactions.sunfury_aoe+=/arcane_blast,if=((debuff.magis_spark_arcane_blast.up||buff.burden_of_power.up||buff.leydrinker.up)&!prev_gcd.1.arcane_blast)\nactions.sunfury_aoe+=/arcane_barrage,if=(buff.arcane_charge.stack=4||buff.glorious_incandescence.up||buff.aethervision.stack=2||buff.intuition.up)&(buff.nether_precision.up||buff.clearcasting.down)\nactions.sunfury_aoe+=/arcane_missiles,if=buff.clearcasting.up&(buff.aether_attunement.up||talent.arcane_harmony),interrupt_if=tick_time>gcd.remains&buff.aether_attunement.down,interrupt_immediate=1,interrupt_global=1,chain=1\nactions.sunfury_aoe+=/presence_of_mind,if=buff.arcane_charge.stack=3||buff.arcane_charge.stack=2\nactions.sunfury_aoe+=/arcane_explosion,if=talent.reverberate||buff.arcane_charge.stack<1\nactions.sunfury_aoe+=/arcane_blast\nactions.sunfury_aoe+=/arcane_barrage", }, ["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 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 8: Converted 'trinket.2.has_stat.any_dps' to 'trinket.t2.has_stat.any_dps' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 9: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 9: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 9: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 9: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 9: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 9: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 9: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 9: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 9: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 9: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 9: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration%trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration%trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))' to '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration/trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration/trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))'.\nLine 10: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 11: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\n\nThe import for 'slayer_sweep' required some automated changes.\nLine 11: Converted 'talent.dreadnaught' to 'talent.dreadnaught.enabled' (1x).\nLine 13: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 18: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 2: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 2: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 2: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 3: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 3: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 3: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 6: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 6: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\n\nThe import for 'colossus_sweep' required some automated changes.\nLine 19: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\nLine 21: Converted 'talent.fervor_of_battle' to 'talent.fervor_of_battle.enabled' (1x).\n\nImported 12 action lists.\n", ["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_execute+=/rend,if=dot.rend.remains<=gcd&!talent.bloodletting\nactions.colossus_execute+=/thunderous_roar\nactions.colossus_execute+=/champions_spear\nactions.colossus_execute+=/ravager,if=cooldown.colossus_smash.remains<=gcd\nactions.colossus_execute+=/avatar\nactions.colossus_execute+=/colossus_smash\nactions.colossus_execute+=/warbreaker\nactions.colossus_execute+=/skullsplitter,if=rage<85\nactions.colossus_execute+=/demolish,if=debuff.colossus_smash.up\nactions.colossus_execute+=/mortal_strike,if=debuff.executioners_precision.stack=2&!dot.ravager.remains&(buff.lethal_blows.stack=2||!set_bonus.tww1_4pc&!talent.battlelord)||!talent.executioners_precision\nactions.colossus_execute+=/mortal_strike,if=talent.battlelord&debuff.executioners_precision.stack=2\nactions.colossus_execute+=/overpower,if=talent.battlelord&charges=2&rage<90\nactions.colossus_execute+=/execute,if=rage>=40&talent.executioners_precision\nactions.colossus_execute+=/skullsplitter\nactions.colossus_execute+=/overpower\nactions.colossus_execute+=/bladestorm\nactions.colossus_execute+=/execute\nactions.colossus_execute+=/mortal_strike\n\nactions.colossus_sweep+=/sweeping_strikes\nactions.colossus_sweep+=/rend,if=dot.rend.remains<=gcd&buff.sweeping_strikes.up\nactions.colossus_sweep+=/thunderous_roar\nactions.colossus_sweep+=/champions_spear\nactions.colossus_sweep+=/ravager,if=cooldown.colossus_smash.ready\nactions.colossus_sweep+=/avatar\nactions.colossus_sweep+=/colossus_smash\nactions.colossus_sweep+=/warbreaker\nactions.colossus_sweep+=/mortal_strike,if=buff.sweeping_strikes.up\nactions.colossus_sweep+=/skullsplitter,if=buff.sweeping_strikes.up\nactions.colossus_sweep+=/overpower,if=buff.sweeping_strikes.up\nactions.colossus_sweep+=/demolish,if=buff.sweeping_strikes.up&debuff.colossus_smash.up\nactions.colossus_sweep+=/execute,if=buff.sweeping_strikes.up\nactions.colossus_sweep+=/overpower\nactions.colossus_sweep+=/execute\nactions.colossus_sweep+=/mortal_strike\nactions.colossus_sweep+=/demolish,if=debuff.colossus_smash.up\nactions.colossus_sweep+=/thunder_clap,if=dot.rend.remains<=8&buff.sweeping_strikes.down\nactions.colossus_sweep+=/cleave,if=talent.fervor_of_battle\nactions.colossus_sweep+=/rend,if=dot.rend.remains<=5\nactions.colossus_sweep+=/whirlwind,if=talent.fervor_of_battle\nactions.colossus_sweep+=/slam\n\nactions.colossus_aoe+=/cleave,if=!dot.deep_wounds.remains\nactions.colossus_aoe+=/thunder_clap,if=!dot.rend.remains\nactions.colossus_aoe+=/thunderous_roar\nactions.colossus_aoe+=/avatar\nactions.colossus_aoe+=/sweeping_strikes\nactions.colossus_aoe+=/ravager\nactions.colossus_aoe+=/warbreaker\nactions.colossus_aoe+=/champions_spear\nactions.colossus_aoe+=/colossus_smash\nactions.colossus_aoe+=/cleave\nactions.colossus_aoe+=/bladestorm,if=talent.unhinged||talent.merciless_bonegrinder\nactions.colossus_aoe+=/demolish,if=buff.colossal_might.stack>=6&talent.dreadnaught||buff.colossal_might.stack=10&talent.strength_of_arms\nactions.colossus_aoe+=/overpower,if=talent.dreadnaught\nactions.colossus_aoe+=/mortal_strike,if=buff.sweeping_strikes.up\nactions.colossus_aoe+=/skullsplitter,if=buff.sweeping_strikes.up\nactions.colossus_aoe+=/execute,if=buff.sweeping_strikes.up\nactions.colossus_aoe+=/overpower,if=buff.sweeping_strikes.up\nactions.colossus_aoe+=/thunder_clap\nactions.colossus_aoe+=/mortal_strike\nactions.colossus_aoe+=/overpower\nactions.colossus_aoe+=/skullsplitter\nactions.colossus_aoe+=/execute\nactions.colossus_aoe+=/bladestorm\nactions.colossus_aoe+=/whirlwind\n\nactions.slayer_st+=/rend,if=dot.rend.remains<=gcd\nactions.slayer_st+=/thunderous_roar\nactions.slayer_st+=/champions_spear\nactions.slayer_st+=/avatar,if=cooldown.colossus_smash.remains<=5||debuff.colossus_smash.up\nactions.slayer_st+=/colossus_smash\nactions.slayer_st+=/warbreaker\nactions.slayer_st+=/execute,if=debuff.marked_for_execution.stack=3||buff.juggernaut.remains<=gcd*3&talent.juggernaut||buff.sudden_death.stack=2||buff.sudden_death.remains<=gcd*3\nactions.slayer_st+=/bladestorm,if=(cooldown.colossus_smash.remains>=gcd*4||cooldown.warbreaker.remains>=gcd*4)||debuff.colossus_smash.remains>=gcd*4\nactions.slayer_st+=/overpower,if=buff.opportunist.up||charges=2&talent.fierce_followthrough\nactions.slayer_st+=/mortal_strike\nactions.slayer_st+=/skullsplitter\nactions.slayer_st+=/overpower\nactions.slayer_st+=/rend,if=dot.rend.remains<=gcd*5\nactions.slayer_st+=/cleave\nactions.slayer_st+=/slam\nactions.slayer_st+=/storm_bolt,if=buff.bladestorm.up\n\nactions.slayer_execute+=/sweeping_strikes,if=active_enemies=2\nactions.slayer_execute+=/rend,if=dot.rend.remains<=gcd&!talent.bloodletting\nactions.slayer_execute+=/thunderous_roar\nactions.slayer_execute+=/champions_spear\nactions.slayer_execute+=/avatar,if=cooldown.colossus_smash.remains<=5||debuff.colossus_smash.up\nactions.slayer_execute+=/warbreaker\nactions.slayer_execute+=/colossus_smash\nactions.slayer_execute+=/execute,if=buff.juggernaut.remains<=gcd&talent.juggernaut\nactions.slayer_execute+=/bladestorm,if=debuff.executioners_precision.stack=2&debuff.colossus_smash.remains>4||debuff.executioners_precision.stack=2&cooldown.colossus_smash.remains>15||!talent.executioners_precision\nactions.slayer_execute+=/skullsplitter,if=rage<85\nactions.slayer_execute+=/mortal_strike,if=dot.rend.remains<2||(debuff.executioners_precision.stack=2&buff.lethal_blows.stack=2)\nactions.slayer_execute+=/overpower,if=buff.opportunist.up&rage<80&buff.martial_prowess.stack<2||rage<40&buff.martial_prowess.stack<2&talent.fierce_followthrough\nactions.slayer_execute+=/execute\nactions.slayer_execute+=/overpower\nactions.slayer_execute+=/mortal_strike,if=!talent.executioners_precision\nactions.slayer_execute+=/storm_bolt,if=buff.bladestorm.up\n\nactions.slayer_sweep+=/thunderous_roar\nactions.slayer_sweep+=/sweeping_strikes\nactions.slayer_sweep+=/rend,if=dot.rend.remains<=gcd\nactions.slayer_sweep+=/champions_spear\nactions.slayer_sweep+=/avatar\nactions.slayer_sweep+=/colossus_smash\nactions.slayer_sweep+=/warbreaker\nactions.slayer_sweep+=/skullsplitter,if=buff.sweeping_strikes.up\nactions.slayer_sweep+=/execute,if=debuff.marked_for_execution.stack=3\nactions.slayer_sweep+=/bladestorm\nactions.slayer_sweep+=/overpower,if=talent.dreadnaught||buff.opportunist.up\nactions.slayer_sweep+=/mortal_strike\nactions.slayer_sweep+=/cleave,if=talent.fervor_of_battle\nactions.slayer_sweep+=/execute\nactions.slayer_sweep+=/overpower\nactions.slayer_sweep+=/thunder_clap,if=dot.rend.remains<=8&buff.sweeping_strikes.down\nactions.slayer_sweep+=/rend,if=dot.rend.remains<=5\nactions.slayer_sweep+=/whirlwind,if=talent.fervor_of_battle\nactions.slayer_sweep+=/slam\nactions.slayer_sweep+=/storm_bolt,if=buff.bladestorm.up\n\nactions.slayer_aoe+=/thunder_clap,if=!dot.rend.remains\nactions.slayer_aoe+=/sweeping_strikes\nactions.slayer_aoe+=/thunderous_roar\nactions.slayer_aoe+=/avatar\nactions.slayer_aoe+=/champions_spear\nactions.slayer_aoe+=/warbreaker\nactions.slayer_aoe+=/colossus_smash\nactions.slayer_aoe+=/cleave\nactions.slayer_aoe+=/execute,if=buff.sudden_death.up&buff.imminent_demise.stack<3\nactions.slayer_aoe+=/overpower,if=talent.dreadnaught&buff.sweeping_strikes.up\nactions.slayer_aoe+=/bladestorm\nactions.slayer_aoe+=/skullsplitter,if=buff.sweeping_strikes.up\nactions.slayer_aoe+=/execute,if=buff.sweeping_strikes.up&debuff.executioners_precision.stack<2\nactions.slayer_aoe+=/overpower,if=talent.strength_of_arms&buff.sweeping_strikes.up\nactions.slayer_aoe+=/mortal_strike,if=buff.sweeping_strikes.up&debuff.executioners_precision.stack=2\nactions.slayer_aoe+=/execute,if=debuff.marked_for_execution.up\nactions.slayer_aoe+=/mortal_strike,if=buff.sweeping_strikes.up\nactions.slayer_aoe+=/skullsplitter,if=buff.sweeping_strikes.up\nactions.slayer_aoe+=/overpower\nactions.slayer_aoe+=/thunder_clap\nactions.slayer_aoe+=/mortal_strike,if=debuff.executioners_precision.stack=2\nactions.slayer_aoe+=/execute\nactions.slayer_aoe+=/whirlwind\nactions.slayer_aoe+=/skullsplitter\nactions.slayer_aoe+=/slam\nactions.slayer_aoe+=/storm_bolt,if=buff.bladestorm.up\n\n# Trinkets\n## actions.trinkets+=/do_treacherous_transmitter_task\nactions.trinkets+=/use_item,name=treacherous_transmitter,if=(variable.adds_remain||variable.st_planning)&cooldown.avatar.remains<3\n# Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.\nactions.trinkets+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.avatar.up&trinket.1.cast_time>0||!trinket.1.cast_time>0)&buff.avatar.up&(variable.trinket_2_exclude||!trinket.2.has_cooldown||trinket.2.cooldown.remains||variable.trinket_priority=1)||trinket.1.proc.any_dps.duration>=fight_remains&boss\nactions.trinkets+=/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)&buff.avatar.up&(variable.trinket_1_exclude||!trinket.1.has_cooldown||trinket.1.cooldown.remains||variable.trinket_priority=2)||trinket.2.proc.any_dps.duration>=fight_remains&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.trinkets+=/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)\nactions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.2.cast_time>0&!buff.avatar.up||!trinket.2.cast_time>0)&!variable.trinket_2_manual&(!variable.trinket_2_buffs&(trinket.1.cooldown.remains||!variable.trinket_1_buffs)||(trinket.2.cast_time>0&!buff.avatar.up||!trinket.2.cast_time>0)||cooldown.avatar.remains_expected>20)\nactions.trinkets+=/use_item,slot=main_hand,if=!equipped.fyralath_the_dreamrender&(!variable.trinket_1_buffs||trinket.1.cooldown.remains)&(!variable.trinket_2_buffs||trinket.2.cooldown.remains)\n\n# Variables\nactions.variables+=/variable,name=st_planning,value=active_enemies=1\nactions.variables+=/variable,name=adds_remain,value=active_enemies>1\nactions.variables+=/variable,name=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)||target.health.pct<20", }, ["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=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.burst_of_power.stack<=1&buff.avatar.up&talent.unstoppable_force.enabled)\nactions.generic+=/shield_slam,if=(buff.burst_of_power.stack=2&buff.thunder_blast.stack<=1||buff.violent_outburst.up)||rage<=70&talent.demolish.enabled\nactions.generic+=/execute,if=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\nactions.generic+=/shield_slam\nactions.generic+=/thunder_blast,if=dot.rend.remains<=2&buff.violent_outburst.down\nactions.generic+=/thunder_clap,if=dot.rend.remains<=2&buff.violent_outburst.down\nactions.generic+=/thunder_blast,if=(spell_targets.thunder_clap>1||cooldown.shield_slam.remains&!buff.violent_outburst.up)\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>1||cooldown.shield_slam.remains&!buff.violent_outburst.up)\nactions.generic+=/revenge,if=(rage>=80&target.health.pct>20||buff.revenge.up&target.health.pct<=20&rage<=18&cooldown.shield_slam.remains||buff.revenge.up&target.health.pct>20)||(rage>=80&target.health.pct>35||buff.revenge.up&target.health.pct<=35&rage<=18&cooldown.shield_slam.remains||buff.revenge.up&target.health.pct>35)&talent.massacre.enabled\nactions.generic+=/execute\nactions.generic+=/revenge\nactions.generic+=/thunder_blast,if=(spell_targets.thunder_clap>=1||cooldown.shield_slam.remains&buff.violent_outburst.up)\nactions.generic+=/thunder_clap,if=(spell_targets.thunder_clap>=1||cooldown.shield_slam.remains&buff.violent_outburst.up)\nactions.generic+=/devastate", ["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=4&time<5||holy_power>=3&time>5||holy_power>=2&talent.divine_auxiliary&(cooldown.execution_sentence.remains=0||cooldown.final_reckoning.remains=0))&(!raid_event.adds.up||target.time_to_die>10)\nactions.cooldowns+=/crusade,if=holy_power>=5&time<5||holy_power>=3&time>5\nactions.cooldowns+=/final_reckoning,if=(holy_power>=4&time<8||holy_power>=3&time>=8||holy_power>=2&(talent.divine_auxiliary||talent.radiant_glory))&(cooldown.avenging_wrath.remains>10||cooldown.crusade.remains&(!buff.crusade.up||buff.crusade.stack>=10)||talent.radiant_glory&(buff.avenging_wrath.up||talent.crusade&cooldown.wake_of_ashes.remains40)\n\nactions.finishers+=/variable,name=ds_castable,value=(spell_targets.divine_storm>=2||buff.empyrean_power.up||!talent.final_verdict&talent.tempest_of_the_lightbringer)&!buff.empyrean_legacy.up&!(buff.divine_arbiter.up&buff.divine_arbiter.stack>24)\nactions.finishers+=/hammer_of_light\nactions.finishers+=/divine_hammer,if=holy_power=5\nactions.finishers+=/divine_storm,if=variable.ds_castable&!buff.hammer_of_light_ready.up&(!talent.crusade||cooldown.crusade.remains>gcd*3||buff.crusade.up&buff.crusade.stack<10||talent.radiant_glory)&(!buff.divine_hammer.up||cooldown.divine_hammer.remains>110&holy_power>=4)\nactions.finishers+=/justicars_vengeance,if=(!talent.crusade||cooldown.crusade.remains>gcd*3||buff.crusade.up&buff.crusade.stack<10||talent.radiant_glory)&!buff.hammer_of_light_ready.up&(!buff.divine_hammer.up||cooldown.divine_hammer.remains>110&holy_power>=4)\nactions.finishers+=/templars_verdict,if=(!talent.crusade||cooldown.crusade.remains>gcd*3||buff.crusade.up&buff.crusade.stack<10||talent.radiant_glory)&!buff.hammer_of_light_ready.up&(!buff.divine_hammer.up||cooldown.divine_hammer.remains>110&holy_power>=4)\nactions.finishers+=/variable,name=finished,op=set,value=true\n\nactions.generators+=/hammer_of_light,if=buff.hammer_of_light_free.up\nactions.generators+=/variable,name=finished,op=set,value=false\nactions.generators+=/call_action_list,name=finishers,strict=1,if=holy_power=5||holy_power=4&buff.divine_resonance.up\nactions.generators+=/templar_slash,if=buff.templar_strikes.remains=2&talent.lights_guidance)&(cooldown.avenging_wrath.remains>6||cooldown.crusade.remains>6||talent.radiant_glory)&(!talent.execution_sentence||cooldown.execution_sentence.remains>4||target.time_to_die<8)&(!raid_event.adds.exists||raid_event.adds.in>10||raid_event.adds.up)\nactions.generators+=/divine_toll,if=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||fight_remains<8)\nactions.generators+=/call_action_list,name=finishers,strict=1,if=holy_power>=3&buff.crusade.up&buff.crusade.stack<10&!variable.finished\nactions.generators+=/templar_slash,if=buff.templar_strikes.remains=2\nactions.generators+=/blade_of_justice,if=(holy_power<=3||!talent.holy_blade)&(spell_targets.divine_storm>=2&talent.blade_of_vengeance)\nactions.generators+=/hammer_of_wrath,if=(spell_targets.divine_storm<2||!talent.blessed_champion)&(holy_power<=3||target.health.pct>20||!talent.vanguards_momentum)&(target.health.pct<35&talent.vengeful_wrath||buff.blessing_of_anshe.up)\nactions.generators+=/templar_strike\nactions.generators+=/judgment,if=holy_power<=3||!talent.boundless_judgment\nactions.generators+=/blade_of_justice,if=holy_power<=3||!talent.holy_blade\nactions.generators+=/hammer_of_wrath,if=(spell_targets.divine_storm<2||!talent.blessed_champion)&(holy_power<=3||target.health.pct>20||!talent.vanguards_momentum)\nactions.generators+=/templar_slash\nactions.generators+=/call_action_list,name=finishers,strict=1,if=(target.health.pct<=20||buff.avenging_wrath.up||buff.crusade.up||buff.empyrean_power.up)&!variable.finished\nactions.generators+=/crusader_strike,if=cooldown.crusader_strike.charges_fractional>=1.75&(holy_power<=2||holy_power<=3&cooldown.blade_of_justice.remains>gcd*2||holy_power=4&cooldown.blade_of_justice.remains>gcd*2&cooldown.judgment.remains>gcd*2)\nactions.generators+=/call_action_list,name=finishers,strict=1,if=!variable.finished\nactions.generators+=/hammer_of_wrath,if=holy_power<=3||target.health.pct>20||!talent.vanguards_momentum\nactions.generators+=/crusader_strike\nactions.generators+=/arcane_torrent", ["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&(trinket.t2.cooldown.duration%cooldown.crusade.duration=0||cooldown.crusade.duration%trinket.t2.cooldown.duration=0||trinket.t2.cooldown.duration%cooldown.avenging_wrath.duration=0||cooldown.avenging_wrath.duration%trinket.t2.cooldown.duration=0)'.\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration' (1x).\nLine 6: Converted 'trinket.2.cooldown.duration' to 'trinket.t2.cooldown.duration'.\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 6: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (1x).\nLine 6: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_buff.strength' (1x).\nLine 6: Converted 'trinket.2.has_buff.strength' to 'trinket.t2.has_use_buff' (1x).\nLine 6: Converted 'trinket.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.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 6: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 6: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_buff.strength' (1x).\nLine 6: Converted 'trinket.1.has_buff.strength' to 'trinket.t1.has_use_buff' (1x).\nLine 6: Converted operations in '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration%trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration%trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))' to '!variable.trinket_1_buffs&variable.trinket_2_buffs||variable.trinket_2_buffs&((trinket.t2.cooldown.duration/trinket.t2.buff_duration)*(1.5+trinket.t2.has_use_buff)*(variable.trinket_2_sync))>((trinket.t1.cooldown.duration/trinket.t1.buff_duration)*(1.5+trinket.t1.has_use_buff)*(variable.trinket_1_sync))'.\nThe following auras were used in the action list but were not found in the addon database:\n - crit\n\nThe import for 'cooldowns' required some automated changes.\nLine 4: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 4: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 4: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 4: Converted 'trinket.2.has_cooldown' to 'trinket.t2.has_cooldown' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.proc.any_dps.duration' (1x).\nLine 4: Converted 'trinket.1.proc.any_dps.duration' to 'trinket.t1.buff_duration' (1x).\nLine 5: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 5: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 5: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 5: Converted 'trinket.1.has_cooldown' to 'trinket.t1.has_cooldown' (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.proc.any_dps.duration' to 'trinket.t2.proc.any_dps.duration' (1x).\nLine 5: Converted 'trinket.2.proc.any_dps.duration' to 'trinket.t2.buff_duration' (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.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 7: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 8: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 9: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 9: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 9: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 9: Converted 'talent.executioners_will' to 'talent.executioners_will.enabled' (1x).\nLine 10: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 12: Converted 'talent.divine_auxiliary' to 'talent.divine_auxiliary.enabled' (1x).\nLine 12: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 12: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 12: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\n\nThe import for 'finishers' required some automated changes.\nLine 1: Converted 'talent.final_verdict' to 'talent.final_verdict.enabled' (1x).\nLine 1: Converted 'talent.tempest_of_the_lightbringer' to 'talent.tempest_of_the_lightbringer.enabled' (1x).\nLine 4: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 4: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 5: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 5: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 6: Converted 'talent.crusade' to 'talent.crusade.enabled' (1x).\nLine 6: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\n\nThe import for 'generators' required some automated changes.\nLine 5: Converted 'talent.holy_flames' to 'talent.holy_flames.enabled' (1x).\nLine 6: Converted 'talent.lights_guidance' to 'talent.lights_guidance.enabled' (1x).\nLine 6: Converted 'talent.lights_guidance' to 'talent.lights_guidance.enabled' (1x).\nLine 6: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 6: Converted 'talent.execution_sentence' to 'talent.execution_sentence.enabled' (1x).\nLine 7: Converted 'talent.radiant_glory' to 'talent.radiant_glory.enabled' (1x).\nLine 10: Converted 'talent.holy_blade' to 'talent.holy_blade.enabled' (1x).\nLine 10: Converted 'talent.blade_of_vengeance' to 'talent.blade_of_vengeance.enabled' (1x).\nLine 11: Converted 'talent.blessed_champion' to 'talent.blessed_champion.enabled' (1x).\nLine 11: Converted 'talent.vanguards_momentum' to 'talent.vanguards_momentum.enabled' (1x).\nLine 11: Converted 'talent.vengeful_wrath' to 'talent.vengeful_wrath.enabled' (1x).\nLine 13: Converted 'talent.boundless_judgment' to 'talent.boundless_judgment.enabled' (1x).\nLine 14: Converted 'talent.holy_blade' to 'talent.holy_blade.enabled' (1x).\nLine 15: Converted 'talent.blessed_champion' to 'talent.blessed_champion.enabled' (1x).\nLine 15: Converted 'talent.vanguards_momentum' to 'talent.vanguards_momentum.enabled' (1x).\nLine 20: Converted 'talent.vanguards_momentum' to 'talent.vanguards_momentum.enabled' (1x).\n\nImported 5 action lists.\n", ["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 'talent.shadow_covenant.enabled' (1x).\nLine 75: Converted 'talent.shattered_perceptions' to 'talent.shattered_perceptions.enabled' (1x).\nLine 76: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 76: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 77: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 77: Converted 'talent.shattered_perceptions' to 'talent.shattered_perceptions.enabled' (1x).\nLine 78: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 79: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\nLine 80: Converted 'talent.shadow_covenant' to 'talent.shadow_covenant.enabled' (1x).\n\nThe import for 'long_scov' required some automated changes.\nLine 5: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 10: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\nLine 11: Converted 'talent.shattered_perceptions' to 'talent.shattered_perceptions.enabled' (1x).\nLine 12: Converted 'talent.expiation' to 'talent.expiation.enabled' (1x).\n\nImported 5 action lists.\n", ["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=1\n# Add any fractional charges of mindblast that will recharge in time\nactions+=/variable,name=shadow_spells_duration,op=add,value=action.mind_blast.execute_time,if=((action.mind_blast.charges_fractional>=1&action.mind_blast.charges_fractional<2)&(((1-(action.mind_blast.charges_fractional-1))*action.mind_blast.recharge_time)action.smite.execute_time,value_else=0\n\n# First casts should always be HD prep->covenant->schism->HD dark reprimand\nactions+=/variable,name=next_penance_time,op=set,value=cooldown.shadowfiend.remains+action.shadowfiend.execute_time\n# If we have enough scov duration, add a holy cast to proc twilight equilibrium\nactions+=/variable,name=next_penance_time,op=add,value=gcd.max,if=variable.remaining_te_holy>0\n# Reduce our counting variable\nactions+=/variable,name=remaining_te_holy,op=sub,value=1\nactions+=/variable,name=can_penance,op=set,value=(cooldown.penance.duration-variable.expected_penance_reduction)0\n# Reduce our counting variable\nactions+=/variable,name=remaining_te_holy,op=sub,value=1\n# indgame ette ha W: ren' xecut has n av hattere erception on' av xpiatio\nactions+=/variable,name=next_swd_time,op=add,value=action.mindgames.execute_time,if=((talent.mindgames&talent.shattered_perceptions)||(talent.mindgames&!talent.expiation))&target.health.pct>=20\n# Mind blast is better than SW:D if we aren't in execute\nactions+=/variable,name=next_swd_time,op=add,value=action.mind_blast.execute_time,if=target.health.pct>=20\n# Second mindblast when talented\nactions+=/variable,name=next_swd_time,op=add,value=action.mind_blast.execute_time,if=target.health.pct>=20&talent.dark_indulgence\n# Divine Star and halo are better than SW:D if we aren't in execute and don't have expiation\nactions+=/variable,name=next_swd_time,op=add,value=action.divine_star.execute_time,if=talent.divine_star&target.health.pct>=20&!talent.expiation\nactions+=/variable,name=next_swd_time,op=add,value=action.halo.execute_time,if=talent.halo&target.health.pct>=20&!talent.expiation\nactions+=/variable,name=can_swd,op=set,value=cooldown.shadow_word_death.duration_expected0\n# Reduce our counting variable\nactions+=/variable,name=remaining_te_holy,op=sub,value=1\n# Add SW:D if we're in execute phase\nactions+=/variable,name=next_mind_blast_time,op=add,value=action.shadow_word_death.execute_time,if=target.health.pct<20\n# Add a second SW:D if we have death and madness\nactions+=/variable,name=next_mind_blast_time,op=add,value=action.shadow_word_death.execute_time,if=talent.death_and_madness&target.health.pct<20\n# Add mindgames if we have it talented and don't have expiation\nactions+=/variable,name=next_mind_blast_time,op=add,value=action.mindgames.execute_time,if=talent.mindgames&!talent.expiation\n# 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.\nactions+=/variable,name=can_mind_blast,op=setif,condition=action.mind_blast.charges_fractional>=1,value=((action.mind_blast.max_charges-(action.mind_blast.charges_fractional-1))*action.mind_blast.recharge_time)0\n# Reduce our counting variable\nactions+=/variable,name=remaining_te_holy,op=sub,value=1\n# 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\nactions+=/variable,name=next_mindgames_time,op=add,value=action.shadow_word_death.execute_time,if=target.health.pct<20||(talent.expiation&!talent.shattered_perceptions)\n# Add a second SW:D if we have death and madness\nactions+=/variable,name=next_mindgames_time,op=add,value=action.shadow_word_death.execute_time,if=target.health.pct<20&talent.death_and_madness\n# Mind blast is better than mindgames if we have expiation\nactions+=/variable,name=next_mindgames_time,op=add,value=action.mind_blast.execute_time,if=talent.expiation\n# Second mindblast when talented\nactions+=/variable,name=next_mindgames_time,op=add,value=action.mind_blast.execute_time,if=talent.expiation&talent.dark_indulgence\nactions+=/variable,name=can_mindgames,op=set,value=cooldown.mindgames.duration_expected0\n# Reduce our counting variable\nactions+=/variable,name=remaining_te_holy,op=sub,value=1\n# SW:D is better unless outside of execute phase when expiation is untalented\nactions+=/variable,name=next_divine_star_time,op=add,value=action.shadow_word_death.execute_time,if=target.health.pct<20||talent.expiation\n# Add a second SW:D if we have death and madness\nactions+=/variable,name=next_divine_star_time,op=add,value=action.shadow_word_death.execute_time,if=target.health.pct<20&talent.death_and_madness\n# Mind blast is always better\nactions+=/variable,name=next_divine_star_time,op=add,value=action.mind_blast.execute_time,if=talent.expiation\n# Second mindblast when talented\nactions+=/variable,name=next_divine_star_time,op=add,value=action.mind_blast.execute_time,if=talent.dark_indulgence\n# Mindgames is always better\nactions+=/variable,name=next_divine_star_time,op=add,value=action.mindgames.execute_time,if=talent.mindgames\nactions+=/variable,name=can_divine_star,op=set,value=cooldown.divine_star.duration(0.3*dot.purge_the_wicked.duration))&(!ticking||(refreshable&(!talent.painful_punishment||(talent.painful_punishment&(dot.purge_the_wicked.remains<(cooldown.penance.remains-variable.expected_penance_reduction))))))\nactions+=/shadow_word_pain,if=!talent.purge_the_wicked&(target.time_to_die>(0.3*dot.shadow_word_pain.duration))&(!ticking||(refreshable&(!talent.painful_punishment||(talent.painful_punishment&(dot.shadow_word_pain.remains<(cooldown.penance.remains-variable.expected_penance_reduction))))))\n## actions+=/schism,if=!talent.shadow_covenant\nactions+=/shadow_word_death,if=(!talent.shadow_covenant||variable.can_swd)&target.health.pct<20\nactions+=/mind_blast,if=talent.dark_indulgence&buff.power_of_the_dark_side.down&cooldown.penance.remains(0.5*cooldown.shadow_word_death.duration))\nactions+=/mindgames,if=(!talent.shadow_covenant||variable.can_mindgames)&!talent.shattered_perceptions\nactions+=/halo,if=!talent.shadow_covenant\nactions+=/divine_star,if=(!talent.shadow_covenant||variable.can_divine_star)\n## actions+=/power_word_solace\nactions+=/shadow_word_death,if=(!talent.shadow_covenant||variable.can_swd)&(target.time_to_pct_20>(0.5*cooldown.shadow_word_death.duration))\nactions+=/smite\n\n# Prepare to enter shadow covenant\nactions.scov_prep+=/purge_the_wicked,if=!ticking&(target.time_to_die>(0.3*dot.purge_the_wicked.duration))\nactions.scov_prep+=/power_word_radiance,if=cooldown.shadowfiend.remains(0.3*dot.purge_the_wicked.duration))\n\n# Long Shadow Covenant\nactions.long_scov+=/mindbender\n## actions.long_scov+=/schism\nactions.long_scov+=/halo,if=(!variable.should_te||(variable.should_te&variable.te_shadow))&spell_targets.halo>=3\nactions.long_scov+=/divine_star,if=(!variable.should_te||(variable.should_te&variable.te_shadow))&spell_targets.divine_star>=3\nactions.long_scov+=/purge_the_wicked,if=(!variable.should_te||(variable.should_te&variable.te_holy))&(!ticking||refreshable)&(target.time_to_die>(0.3*dot.purge_the_wicked.duration))\nactions.long_scov+=/shadow_word_death,if=target.health.pct<20&talent.expiation&(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/penance,if=(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/halo,if=(!variable.should_te||(variable.should_te&variable.te_shadow))&spell_targets.halo>=2\nactions.long_scov+=/divine_star,if=(!variable.should_te||(variable.should_te&variable.te_shadow))&spell_targets.divine_star>=2\nactions.long_scov+=/shadow_word_death,if=target.health.pct<20&(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/mind_blast,if=talent.expiation&(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/mindgames,if=talent.shattered_perceptions&(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/shadow_word_death,if=talent.expiation&(!variable.should_te||(variable.should_te&variable.te_shadow))&(target.time_to_pct_20>buff.shadow_covenant.remains)\nactions.long_scov+=/mindgames,if=(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/mind_blast,if=(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/halo,if=(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/divine_star,if=(!variable.should_te||(variable.should_te&variable.te_shadow))\nactions.long_scov+=/shadow_word_death,if=(!variable.should_te||(variable.should_te&variable.te_shadow))&(target.time_to_pct_20>buff.shadow_covenant.remains)\n## actions.long_scov+=/lights_wrath,if=(!variable.should_te||(variable.should_te&variable.te_holy))\nactions.long_scov+=/smite,if=(!variable.should_te||(variable.should_te&variable.te_holy))\n# just in case we run out of shadow spells with the above conditions\nactions.long_scov+=/penance\nactions.long_scov+=/mindgames\nactions.long_scov+=/mind_blast\nactions.long_scov+=/shadow_word_death\nactions.long_scov+=/divine_star\nactions.long_scov+=/halo\nactions.long_scov+=/smite\n\n## Cooldowns\n# Don't use pets during shadow covenant windows, wasting GCDs\nactions.cooldowns+=/shadowfiend,if=!talent.mindbender.enabled&!buff.shadow_covenant.up\nactions.cooldowns+=/mindbender,if=talent.mindbender.enabled&!buff.shadow_covenant.up\n# hold PI to use with shadow covenant if we have it\nactions.cooldowns+=/power_infusion,if=!talent.shadow_covenant.enabled||(talent.shadow_covenant.enabled&(cooldown.shadowfiend.up||buff.shadow_covenant.up))\n# sync potion with PI\nactions.cooldowns+=/potion,if=buff.power_infusion.up\n# sync trinkets with PI\nactions.cooldowns+=/use_items,if=buff.power_infusion.up||cooldown.power_infusion.remains>=cooldown", ["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||time35)&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||time35)&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?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.remains0)\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.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\n# Cast Lava burst to consume Primordial Wave proc. Wait for Lava Surge proc if possible.\nactions.aoe+=/lava_burst,cycle_targets=1,if=dot.flame_shock.remains>2&buff.primordial_wave.up\n# *{Fire} Use Lava Surge proc to buff with Master of the Elements.\nactions.aoe+=/lava_burst,cycle_targets=1,if=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\n# 2t\nactions.aoe+=/elemental_blast,cycle_targets=1,if=spell_targets.chain_lightning=2&(maelstrom>variable.mael_cap-30||cooldown.primordial_wave.remains=6||buff.tempest.up)&talent.surge_of_power.enabled)\n# Activate Surge of Power if next global is Primordial wave. Respect Echoes of Great Sundering.\nactions.aoe+=/earthquake,if=cooldown.primordial_wave.remainsvariable.mael_cap-30)&(buff.echoes_of_great_sundering_es.up||buff.echoes_of_great_sundering_eb.up||!talent.echoes_of_great_sundering.enabled)\n# Spend to buff your follow-up Stormkeeper with Surge of Power on 6+ targets. Respect Echoes of Great Sundering.\nactions.aoe+=/earthquake,if=(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)\n# Use the talents you selected. Spread Lightning Rod to as many targets as possible.\nactions.aoe+=/elemental_blast,cycle_targets=1,if=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)\n# Use the talents you selected. Spread Lightning Rod to as many targets as possible.\nactions.aoe+=/earth_shock,cycle_targets=1,if=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)\n# Use Icefury for Fusion of Elements proc.\nactions.aoe+=/icefury,if=talent.fusion_of_elements.enabled&!(buff.fusion_of_elements_nature.up||buff.fusion_of_elements_fire.up)\n# *{Fire} Proc Master of the Elements outside Ascendance.\nactions.aoe+=/lava_burst,cycle_targets=1,if=dot.flame_shock.remains>2&talent.master_of_the_elements.enabled&!buff.master_of_the_elements.up&!buff.ascendance.up&talent.fire_elemental.enabled\nactions.aoe+=/chain_lightning\nactions.aoe+=/flame_shock,moving=1,cycle_targets=1,if=refreshable\nactions.aoe+=/frost_shock,moving=1\n\nactions.single_target+=/fire_elemental\nactions.single_target+=/storm_elemental\n# Just use Stormkeeper.\nactions.single_target+=/stormkeeper\n# Use Primordial Wave as much as possible.\nactions.single_target+=/primordial_wave,if=!buff.surge_of_power.up\nactions.single_target+=/ancestral_swiftness\nactions.single_target+=/ascendance,if=fight_remains>cooldown||buff.spymasters_web.up||!(variable.spymaster_in_1st||variable.spymaster_in_2nd)\n# Surge of Power is strong and should be used. ??\nactions.single_target+=/tempest,if=buff.surge_of_power.up\nactions.single_target+=/lightning_bolt,if=buff.surge_of_power.up\n# Dont waste Storm Frenzy (minimal gain).\nactions.single_target+=/tempest,if=buff.storm_frenzy.stack=2&!talent.surge_of_power.enabled\nactions.single_target+=/lightning_bolt,if=buff.storm_frenzy.stack=2&!talent.surge_of_power.enabled\n# Use LMT to apply Flame Shock.\nactions.single_target+=/liquid_magma_totem,if=dot.flame_shock.refreshable&!buff.master_of_the_elements.up\n# Manually refresh Flame shock if better options are not talented.\nactions.single_target+=/flame_shock,if=dot.flame_shock.refreshable&!buff.surge_of_power.up&!buff.master_of_the_elements.up&!talent.primordial_wave.enabled&!talent.liquid_magma_totem.enabled\n# Spend if close to overcaping. Respect Echoes of Great Sundering.\nactions.single_target+=/earthquake,if=(buff.echoes_of_great_sundering_es.up||buff.echoes_of_great_sundering_eb.up)&(maelstrom>variable.mael_cap-15||fight_remains<5)\nactions.single_target+=/elemental_blast,if=maelstrom>variable.mael_cap-15||fight_remains<5\nactions.single_target+=/earth_shock,if=maelstrom>variable.mael_cap-15||fight_remains<5\n# Just spend if not talented into Surge of Power.\nactions.single_target+=/earthquake,if=(buff.echoes_of_great_sundering_es.up||buff.echoes_of_great_sundering_eb.up)&!talent.surge_of_power.enabled\nactions.single_target+=/elemental_blast,if=!talent.surge_of_power.enabled\nactions.single_target+=/earth_shock,if=!talent.surge_of_power.enabled\n# Use Icefury to proc Fusion of Elements.\nactions.single_target+=/icefury,if=!(buff.fusion_of_elements_nature.up||buff.fusion_of_elements_fire.up)\n# Use Lava Burst to proc Master of the Elements.\nactions.single_target+=/lava_burst,cycle_targets=1,if=dot.flame_shock.remains>2&!buff.master_of_the_elements.up\nactions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&buff.lava_surge.up\n# Spend to activate Surge of Power buff for Tempest or Stormkeeper.\nactions.single_target+=/earthquake,if=(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\nactions.single_target+=/elemental_blast,if=(buff.tempest.up||buff.stormkeeper.up)&talent.surge_of_power.enabled\nactions.single_target+=/earth_shock,if=(buff.tempest.up||buff.stormkeeper.up)&talent.surge_of_power.enabled\nactions.single_target+=/tempest\n# Filler spell. Always available. Always the bottom line.\nactions.single_target+=/lightning_bolt\nactions.single_target+=/flame_shock,moving=1,cycle_targets=1=refreshable\nactions.single_target+=/flame_shock,moving=1\n# Frost Shock is our movement filler.\nactions.single_target+=/frost_shock,moving=1", ["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 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 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 6: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\nLine 7: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\n\nThe import for 'st' required some automated changes.\nLine 3: Converted 'talent.steady_focus' to 'talent.steady_focus.enabled' (1x).\nLine 6: Converted 'talent.multishot' to 'talent.multishot.enabled' (1x).\nLine 7: Converted 'talent.volley' to 'talent.volley.enabled' (1x).\nLine 8: Converted 'talent.black_arrow' to 'talent.black_arrow.enabled' (1x).\nLine 8: Converted 'talent.readiness' to 'talent.readiness.enabled' (1x).\nLine 9: Converted 'talent.lunar_storm' to 'talent.lunar_storm.enabled' (1x).\nLine 9: Converted 'talent.readiness' to 'talent.readiness.enabled' (1x).\nLine 14: Converted 'talent.symphonic_arsenal' to 'talent.symphonic_arsenal.enabled' (1x).\nLine 14: Converted 'talent.small_game_hunter' to 'talent.small_game_hunter.enabled' (1x).\n\nThe import for 'trinkets' required some automated changes.\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.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\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.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.1.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.2.cooldown.ready' to 'trinket.t2.cooldown.ready' (1x).\nLine 4: Converted 'trinket.2.cooldown.ready' to 'trinket.t2.cooldown.ready'.\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.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 4: Converted 'trinket.1.cast_time' to 'trinket.t1.cast_time' (1x).\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains' (1x).\nLine 4: Converted 'trinket.2.cooldown.remains' to 'trinket.t2.cooldown.remains'.\nLine 4: Converted operations in 'trinket.t1.has_use_buff&(variable.sync_ready&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||!variable.sync_ready&(variable.trinket_1_stronger&(variable.sync_remains>trinket.t1.cooldown.duration%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-5fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration%3||trinket.t1.cooldown.durationfight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||trinket.t2.cooldown.remains>20))||boss&fight_remains<25&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)' to 'trinket.t1.has_use_buff&(variable.sync_ready&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)||!variable.sync_ready&(variable.trinket_1_stronger&(variable.sync_remains>trinket.t1.cooldown.duration/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-5fight_remains)||variable.trinket_2_stronger&(trinket.t2.cooldown.remains&(trinket.t2.cooldown.remains-5=20||trinket.t2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t1.cooldown.duration/3||trinket.t1.cooldown.durationfight_remains)))||trinket.t2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||trinket.t2.cooldown.remains>20))||boss&fight_remains<25&(variable.trinket_1_stronger||trinket.t2.cooldown.remains)'.\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (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.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.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.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.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.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.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.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.1.cooldown.ready' to 'trinket.t1.cooldown.ready' (1x).\nLine 5: Converted 'trinket.1.cooldown.ready' to 'trinket.t1.cooldown.ready'.\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration' (1x).\nLine 5: Converted 'trinket.1.cooldown.duration' to 'trinket.t1.cooldown.duration'.\nLine 5: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 5: Converted 'trinket.2.cast_time' to 'trinket.t2.cast_time' (1x).\nLine 5: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.1.has_use_buff' to 'trinket.t1.has_use_buff' (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.1.cooldown.remains' to 'trinket.t1.cooldown.remains' (1x).\nLine 5: Converted 'trinket.1.cooldown.remains' to 'trinket.t1.cooldown.remains'.\nLine 5: Converted operations in 'trinket.t2.has_use_buff&(variable.sync_ready&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||!variable.sync_ready&(variable.trinket_2_stronger&(variable.sync_remains>trinket.t2.cooldown.duration%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-5fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration%3||trinket.t2.cooldown.durationfight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||trinket.t1.cooldown.remains>20))||boss&fight_remains<25&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)' to 'trinket.t2.has_use_buff&(variable.sync_ready&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)||!variable.sync_ready&(variable.trinket_2_stronger&(variable.sync_remains>trinket.t2.cooldown.duration/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-5fight_remains)||variable.trinket_1_stronger&(trinket.t1.cooldown.remains&(trinket.t1.cooldown.remains-5=20||trinket.t1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.t2.cooldown.duration/3||trinket.t2.cooldown.durationfight_remains)))||trinket.t1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||trinket.t1.cooldown.remains>20))||boss&fight_remains<25&(variable.trinket_2_stronger||trinket.t1.cooldown.remains)'.\n\nImported 6 action lists.\n", ["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.duration20\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_pct20\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.remains1||buff.salvo.up\nactions.st+=/explosive_shot,if=active_enemies>1&buff.trick_shots.down\n# TODO: figure out why this is such a big gain for aoe builds in ST\nactions.st+=/trueshot,if=variable.trueshot_ready&talent.multishot\n# Trigger Salvo if Volley isn't being used to trigger it.\nactions.st+=/multishot,if=buff.salvo.up&!talent.volley\n# As a Dark Ranger with Readiness, Aimed Shot over Rapid Fire in Trueshot to get more Deathblows.\nactions.st+=/aimed_shot,cycle_targets=1,if=talent.black_arrow&talent.readiness&buff.trueshot.up\n# 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.\nactions.st+=/rapid_fire,if=!talent.lunar_storm||(!cooldown.lunar_storm.remains||cooldown.lunar_storm.remains>8||(action.wailing_arrow.ready&talent.readiness)||buff.trueshot.up)\n# With Wailing Arrow and Aimed Shot, target enemies without Serpent Sting or the enemy with the lowest remaining Serpent Sting.\nactions.st+=/wailing_arrow,cycle_targets=1\nactions.st+=/aimed_shot,cycle_targets=1\nactions.st+=/black_arrow\nactions.st+=/kill_shot\nactions.st+=/multishot,if=buff.precise_shot.up&active_enemies>1&(talent.symphonic_arsenal||talent.small_game_hunter)\nactions.st+=/arcane_shot,if=buff.precise_shot.up\nactions.st+=/trueshot,if=variable.trueshot_ready\nactions.st+=/volley\nactions.st+=/explosive_shot\nactions.st+=/steady_shot\n\nactions.trickshots+=/black_arrow,if=buff.trick_shots.remains>execute_time&buff.razor_fragments.up\nactions.trickshots+=/steady_shot,if=talent.steady_focus&buff.steady_focus.remainsexecute_time\nactions.trickshots+=/kill_shot,if=buff.razor_fragments.up\nactions.trickshots+=/trueshot,if=variable.trueshot_ready\nactions.trickshots+=/barrage,if=talent.rapid_fire_barrage&buff.trick_shots.remains>execute_time\n# 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.\nactions.trickshots+=/rapid_fire,if=buff.trick_shots.remains>execute_time&(!talent.lunar_storm||(!cooldown.lunar_storm.remains||cooldown.lunar_storm.remains>5||(action.wailing_arrow.ready&talent.readiness)||buff.trueshot.up))\n# With Wailing Arrow and Aimed Shot, target enemies without Serpent Sting or the enemy with the lowest remaining Serpent Sting.\nactions.trickshots+=/wailing_arrow,cycle_targets=1\nactions.trickshots+=/aimed_shot,cycle_targets=1,if=buff.trick_shots.remains>execute_time&buff.precise_shots.down\nactions.trickshots+=/multishot,if=buff.precise_shots.up||buff.trick_shots.down\nactions.trickshots+=/bag_of_tricks,if=buff.trueshot.down\nactions.trickshots+=/steady_shot\n\n# True if effects that are desirable to sync a trinket buff with are ready.\nactions.trinkets+=/variable,name=sync_ready,value=variable.trueshot_ready\n# True if effecs that are desirable to sync a trinket buff with are active.\nactions.trinkets+=/variable,name=sync_active,value=buff.trueshot.up\n# Time until the effects that are desirable to sync a trinket buff with will be ready.\nactions.trinkets+=/variable,name=sync_remains,value=cooldown.trueshot.remains_guess\n# Uses buff effect trinkets with cooldowns and is willing to delay usage up to half the trinket cooldown if it won't lose a usage in the fight. Fills in downtime with weaker buff effects if they won't also be saved for later cooldowns (happens if it won't delay over half the trinket cooldown and a stronger trinket won't be up in time) or damage effects if they won't inferfere with any buff effect usage. Intended to be slot-agnostic so that any order of the same trinket pair should result in the same usage.\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=trinket.1.has_use_buff&(variable.sync_ready&(variable.trinket_1_stronger||trinket.2.cooldown.remains)||!variable.sync_ready&(variable.trinket_1_stronger&(variable.sync_remains>trinket.1.cooldown.duration%3&fight_remains>trinket.1.cooldown.duration+20||trinket.2.has_use_buff&trinket.2.cooldown.remains>variable.sync_remains-15&trinket.2.cooldown.remains-5fight_remains)||variable.trinket_2_stronger&(trinket.2.cooldown.remains&(trinket.2.cooldown.remains-5=20||trinket.2.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.1.cooldown.duration%3||trinket.1.cooldown.durationfight_remains)))||trinket.2.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||trinket.2.cooldown.remains>20))||boss&fight_remains<25&(variable.trinket_1_stronger||trinket.2.cooldown.remains)\nactions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=trinket.2.has_use_buff&(variable.sync_ready&(variable.trinket_2_stronger||trinket.1.cooldown.remains)||!variable.sync_ready&(variable.trinket_2_stronger&(variable.sync_remains>trinket.2.cooldown.duration%3&fight_remains>trinket.2.cooldown.duration+20||trinket.1.has_use_buff&trinket.1.cooldown.remains>variable.sync_remains-15&trinket.1.cooldown.remains-5fight_remains)||variable.trinket_1_stronger&(trinket.1.cooldown.remains&(trinket.1.cooldown.remains-5=20||trinket.1.cooldown.remains-5>=variable.sync_remains&(variable.sync_remains>trinket.2.cooldown.duration%3||trinket.2.cooldown.durationfight_remains)))||trinket.1.cooldown.ready&variable.sync_remains>20&variable.sync_remains20||trinket.1.cooldown.remains>20))||boss&fight_remains<25&(variable.trinket_2_stronger||trinket.1.cooldown.remains)", }, ["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*4time_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&remains50\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&!buff.doom_winds.up)||boss&(fight_remains%150<=5)'.\nLine 10: Converted operations in '(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||boss&(fight_remains%%120<=5)' to '(!buff.ascendance.up&!buff.feral_spirit.up&!buff.doom_winds.up)||boss&(fight_remains%120<=5)'.\nLine 11: Converted 'trinket.1.has_use_buff' to 'trinket.t1.has_use_buff' (1x).\nLine 12: Converted 'trinket.2.has_use_buff' to 'trinket.t2.has_use_buff' (1x).\nLine 13: Converted operations in '(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))' to '(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))'.\nLine 14: Converted operations in '(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))' to '(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))'.\nLine 15: Converted operations in '(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))' to '(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))'.\nLine 16: Converted operations in '(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))' to '(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))'.\nThe following auras were used in the action list but were not found in the addon database:\n - any\n\nThe import for 'precombat' required some automated changes.\nLine 4: Converted 'trinket.1.is.algethar_puzzle_box' to 'trinket.t1.is.algethar_puzzle_box' (1x).\nLine 4: Converted 'trinket.1.is.manic_grieftorch' to 'trinket.t1.is.manic_grieftorch' (1x).\nLine 4: Converted 'trinket.1.is.elementium_pocket_anvil' to 'trinket.t1.is.elementium_pocket_anvil' (1x).\nLine 4: Converted 'trinket.1.is.beacon_to_the_beyond' to 'trinket.t1.is.beacon_to_the_beyond' (1x).\nLine 5: Converted 'trinket.2.is.algethar_puzzle_box' to 'trinket.t2.is.algethar_puzzle_box' (1x).\nLine 5: Converted 'trinket.2.is.manic_grieftorch' to 'trinket.t2.is.manic_grieftorch' (1x).\nLine 5: Converted 'trinket.2.is.elementium_pocket_anvil' to 'trinket.t2.is.elementium_pocket_anvil' (1x).\nLine 5: Converted 'trinket.2.is.beacon_to_the_beyond' to 'trinket.t2.is.beacon_to_the_beyond' (1x).\nLine 6: Converted operations in '((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)' to '((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)'.\n\nThe import for 'single_totemic' required some automated changes.\nLine 2: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 2: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\nLine 3: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 3: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\n\nThe import for 'aoe_totemic' required some automated changes.\nLine 2: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 2: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\n\nThe import for 'aoe' required some automated changes.\nLine 2: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 2: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\nLine 3: Converted 'talent.ascendance' to 'talent.ascendance.enabled' (1x).\nLine 3: Converted 'talent.thorims_invocation' to 'talent.thorims_invocation.enabled' (1x).\n\nImported 7 action lists.\n", ["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+=/fireblood,if=(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))\nactions+=/ancestral_call,if=(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))\n## actions+=/invoke_external_buff,name=power_infusion,if=(buff.ascendance.up||buff.feral_spirit.up||buff.doom_winds.up||(fight_remains%%120<=20)||(variable.min_talented_cd_remains>=120)||(!talent.ascendance.enabled&!talent.feral_spirit.enabled&!talent.doom_winds.enabled))\nactions+=/call_action_list,name=single,strict=1,if=active_enemies=1&!talent.surging_totem.enabled\nactions+=/call_action_list,name=single_totemic,strict=1,if=active_enemies=1&talent.surging_totem.enabled\nactions+=/call_action_list,name=aoe,strict=1,if=active_enemies>1&!toggle.funnel&!talent.surging_totem.enabled\nactions+=/call_action_list,name=aoe_totemic,strict=1,if=active_enemies>1&!toggle.funnel&talent.surging_totem.enabled\nactions+=/call_action_list,name=funnel,strict=1,if=active_enemies>1&toggle.funnel\n\nactions.single+=/feral_spirit,if=talent.elemental_spirits.enabled\nactions.single+=/windstrike,if=talent.thorims_invocation.enabled&buff.maelstrom_weapon.stack>0&ti_lightning_bolt&!talent.elemental_spirits.enabled\nactions.single+=/primordial_wave,if=!dot.flame_shock.ticking&talent.molten_assault.enabled\nactions.single+=/lava_lash,if=talent.lashing_flames.enabled&debuff.lashing_flames.down\nactions.single+=/stormstrike,if=buff.maelstrom_weapon.stack<2&cooldown.ascendance.remains=0\nactions.single+=/feral_spirit\n# [Hekili] Avoid delaying Ascendance due to Thorim's Invocation\nactions.single+=/tempest,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_lightning_bolt\nactions.single+=/lightning_bolt,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_lightning_bolt\nactions.single+=/ascendance,if=dot.flame_shock.ticking&ti_lightning_bolt&active_enemies=1&buff.maelstrom_weapon.stack>=2\nactions.single+=/tempest,if=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)\nactions.single+=/elemental_blast,if=buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&talent.elemental_spirits.enabled&feral_spirit.active>=6&(charges_fractional>=1.8||buff.ascendance.up)\nactions.single+=/windstrike,if=talent.thorims_invocation.enabled&buff.maelstrom_weapon.stack>0&ti_lightning_bolt&charges=max_charges\nactions.single+=/doom_winds,if=talent.elemental_spirits.enabled&talent.ascendance.enabled&buff.maelstrom_weapon.stack>=2\nactions.single+=/windstrike,if=talent.thorims_invocation.enabled&buff.maelstrom_weapon.up&ti_lightning_bolt\nactions.single+=/flame_shock,if=!ticking&talent.ashen_catalyst.enabled\nactions.single+=/lightning_bolt,if=buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&buff.primordial_wave.up\nactions.single+=/tempest,if=(!talent.overflowing_maelstrom.enabled&buff.maelstrom_weapon.stack>=5)||(buff.maelstrom_weapon.stack>=10-2*talent.elemental_spirits.enabled)\nactions.single+=/primordial_wave,if=!talent.deeply_rooted_elements.enabled\nactions.single+=/elemental_blast,if=buff.maelstrom_weapon.stack>=8&feral_spirit.active>=4&(!buff.ascendance.up||charges_fractional>=1.8)\nactions.single+=/lightning_bolt,if=buff.maelstrom_weapon.stack>=8+2*talent.legacy_of_the_frost_witch.enabled\nactions.single+=/lightning_bolt,if=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)\nactions.single+=/flame_shock,if=buff.voltaic_blaze.up&talent.elemental_spirits.enabled&!talent.witch_doctors_ancestry.enabled\nactions.single+=/lightning_bolt,if=buff.arc_discharge.up&talent.deeply_rooted_elements.enabled\nactions.single+=/lava_lash,if=buff.hot_hand.up||(buff.ashen_catalyst.stack=buff.ashen_catalyst.max_stack)\nactions.single+=/stormstrike,if=buff.doom_winds.up||(talent.stormblast.enabled&buff.stormsurge.up&charges=max_charges)\nactions.single+=/lava_lash,if=talent.lashing_flames.enabled&!buff.doom_winds.up\nactions.single+=/flame_shock,if=buff.voltaic_blaze.up&talent.elemental_spirits.enabled&!buff.doom_winds.up\nactions.single+=/crash_lightning,if=talent.unrelenting_storms.enabled&talent.elemental_spirits.enabled&!talent.deeply_rooted_elements.enabled\nactions.single+=/ice_strike,if=talent.elemental_assault.enabled&talent.swirling_maelstrom.enabled&talent.witch_doctors_ancestry.enabled\nactions.single+=/stormstrike\nactions.single+=/lightning_bolt,if=buff.maelstrom_weapon.stack>=5&talent.ascendance.enabled&!talent.legacy_of_the_frost_witch.enabled\nactions.single+=/crash_lightning,if=talent.unrelenting_storms.enabled\nactions.single+=/flame_shock,if=buff.voltaic_blaze.up\nactions.single+=/sundering,if=!talent.elemental_spirits.enabled\nactions.single+=/frost_shock,if=buff.hailstorm.up&buff.ice_strike.up&talent.swirling_maelstrom.enabled&talent.ascendance.enabled\nactions.single+=/elemental_blast,if=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\nactions.single+=/crash_lightning,if=talent.alpha_wolf.enabled&feral_spirit.active&alpha_wolf_min_remains=0\nactions.single+=/flame_shock,if=!ticking&!talent.tempest.enabled\nactions.single+=/doom_winds,if=talent.elemental_spirits.enabled\nactions.single+=/lava_lash,if=talent.elemental_assault.enabled&talent.tempest.enabled&talent.molten_assault.enabled&talent.deeply_rooted_elements.enabled&dot.flame_shock.ticking\nactions.single+=/ice_strike,if=talent.elemental_assault.enabled&talent.swirling_maelstrom.enabled\nactions.single+=/lightning_bolt,if=buff.arc_discharge.up\nactions.single+=/crash_lightning,if=talent.unrelenting_storms.enabled\nactions.single+=/lava_lash,if=talent.elemental_assault.enabled&talent.tempest.enabled&talent.molten_assault.enabled&dot.flame_shock.ticking\nactions.single+=/frost_shock,if=buff.hailstorm.up&buff.ice_strike.up&talent.swirling_maelstrom.enabled&talent.tempest.enabled\nactions.single+=/flame_shock,if=!ticking\nactions.single+=/lava_lash,if=talent.lashing_flames.enabled\nactions.single+=/ice_strike,if=!buff.ice_strike.up\nactions.single+=/frost_shock,if=buff.hailstorm.up\nactions.single+=/crash_lightning,if=talent.converging_storms.enabled\nactions.single+=/lava_lash\nactions.single+=/ice_strike\nactions.single+=/windstrike\nactions.single+=/stormstrike\nactions.single+=/sundering\nactions.single+=/frost_shock\nactions.single+=/crash_lightning\nactions.single+=/fire_nova,if=active_dot.flame_shock\nactions.single+=/earth_elemental\nactions.single+=/flame_shock,if=settings.filler_shock\n\nactions.single_totemic+=/surging_totem\n# [Hekili] Avoid delaying Ascendance due to Thorim's Invocation\nactions.single_totemic+=/tempest,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_lightning_bolt\nactions.single_totemic+=/lightning_bolt,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_lightning_bolt\nactions.single_totemic+=/ascendance,if=ti_lightning_bolt&pet.surging_totem.remains>4&(buff.totemic_rebound.stack>=3||buff.maelstrom_weapon.up)\nactions.single_totemic+=/doom_winds,if=!talent.elemental_spirits.enabled&buff.legacy_of_the_frost_witch.up\nactions.single_totemic+=/sundering,if=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\nactions.single_totemic+=/crash_lightning,if=talent.unrelenting_storms.enabled&talent.alpha_wolf.enabled&alpha_wolf_min_remains=0&buff.earthen_weapon.stack>=8\nactions.single_totemic+=/windstrike,if=talent.thorims_invocation.enabled&buff.maelstrom_weapon.stack>0&ti_lightning_bolt&!talent.elemental_spirits.enabled\nactions.single_totemic+=/sundering,if=buff.legacy_of_the_frost_witch.up&cooldown.ascendance.remains>=10&pet.surging_totem.active&buff.totemic_rebound.stack>=3&!buff.ascendance.up\nactions.single_totemic+=/primordial_wave,if=!dot.flame_shock.ticking&talent.molten_assault.enabled\nactions.single_totemic+=/feral_spirit\nactions.single_totemic+=/elemental_blast,if=buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&talent.elemental_spirits.enabled&feral_spirit.active>=6&(charges_fractional>=1.8||buff.ascendance.up)\nactions.single_totemic+=/flame_shock,if=buff.voltaic_blaze.up&buff.whirling_earth.up\nactions.single_totemic+=/crash_lightning,if=talent.unrelenting_storms.enabled&talent.alpha_wolf.enabled&alpha_wolf_min_remains=0\nactions.single_totemic+=/flame_shock,if=!ticking&talent.lashing_flames.enabled\nactions.single_totemic+=/lava_lash,if=buff.hot_hand.up&!talent.legacy_of_the_frost_witch.enabled\nactions.single_totemic+=/elemental_blast,if=buff.maelstrom_weapon.stack>=5&charges=max_charges\nactions.single_totemic+=/lightning_bolt,if=buff.maelstrom_weapon.stack>=8&buff.primordial_wave.up&(!buff.splintered_elements.up||fight_remains<=12)\nactions.single_totemic+=/elemental_blast,if=buff.maelstrom_weapon.stack>=8&(feral_spirit.active>=2||!talent.elemental_spirits.enabled)\nactions.single_totemic+=/lava_burst,if=!talent.thorims_invocation.enabled&buff.maelstrom_weapon.stack>=5\nactions.single_totemic+=/primordial_wave\nactions.single_totemic+=/elemental_blast,if=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)\nactions.single_totemic+=/elemental_blast,if=talent.ascendance.enabled&(buff.maelstrom_weapon.stack>=10||(buff.maelstrom_weapon.stack>=5&buff.whirling_air.up&!buff.legacy_of_the_frost_witch.up))\nactions.single_totemic+=/lightning_bolt,if=talent.ascendance.enabled&(buff.maelstrom_weapon.stack>=10||(buff.maelstrom_weapon.stack>=5&buff.whirling_air.up&!buff.legacy_of_the_frost_witch.up))\nactions.single_totemic+=/lava_lash,if=buff.hot_hand.up&talent.molten_assault.enabled&pet.searing_totem.active\nactions.single_totemic+=/windstrike\nactions.single_totemic+=/stormstrike\nactions.single_totemic+=/lava_lash,if=talent.molten_assault.enabled\nactions.single_totemic+=/crash_lightning,if=talent.unrelenting_storms.enabled\nactions.single_totemic+=/lightning_bolt,if=buff.maelstrom_weapon.stack>=5&talent.ascendance.enabled\nactions.single_totemic+=/ice_strike,if=!buff.ice_strike.up\nactions.single_totemic+=/frost_shock,if=buff.hailstorm.up&pet.searing_totem.active\nactions.single_totemic+=/lava_lash\nactions.single_totemic+=/elemental_blast,if=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))\nactions.single_totemic+=/doom_winds,if=talent.elemental_spirits.enabled\nactions.single_totemic+=/flame_shock,if=!ticking&!talent.voltaic_blaze.enabled\nactions.single_totemic+=/frost_shock,if=buff.hailstorm.up\nactions.single_totemic+=/crash_lightning,if=talent.converging_storms.enabled\nactions.single_totemic+=/frost_shock\nactions.single_totemic+=/crash_lightning\nactions.single_totemic+=/fire_nova,if=active_dot.flame_shock\nactions.single_totemic+=/earth_elemental\nactions.single_totemic+=/flame_shock,if=!talent.voltaic_blaze.enabled\n\nactions.aoe+=/feral_spirit,if=talent.elemental_spirits.enabled||talent.alpha_wolf.enabled\n# [Hekili] Avoid delaying Ascendance due to Thorim's Invocation\nactions.aoe+=/tempest,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_chain_lightning\nactions.aoe+=/chain_lightning,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_chain_lightning\nactions.aoe+=/ascendance,if=dot.flame_shock.ticking&(cooldown.lava_lash.remains||active_dot.flame_shock>=active_enemies||active_dot.flame_shock=6)&ti_chain_lightning\nactions.aoe+=/tempest,cycle_targets=1,if=!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))\nactions.aoe+=/windstrike,cycle_targets=1,if=talent.thorims_invocation.enabled&buff.maelstrom_weapon.stack>0&ti_chain_lightning\nactions.aoe+=/crash_lightning,if=talent.crashing_storms.enabled&((talent.unruly_winds.enabled&active_enemies>=10)||active_enemies>=15)\nactions.aoe+=/lightning_bolt,cycle_targets=1,if=(!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))\nactions.aoe+=/flame_shock,if=buff.voltaic_blaze.up&buff.maelstrom_weapon.stack<=8\nactions.aoe+=/lava_lash,if=talent.molten_assault.enabled&(talent.primordial_wave.enabled||talent.fire_nova.enabled)&dot.flame_shock.ticking&(active_dot.flame_shock=5\nactions.aoe+=/elemental_blast,cycle_targets=1,if=(!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)\nactions.aoe+=/chain_lightning,cycle_targets=1,if=(buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&!talent.raging_maelstrom.enabled)||(buff.maelstrom_weapon.stack>=7)\nactions.aoe+=/feral_spirit\nactions.aoe+=/doom_winds,if=ti_chain_lightning&(buff.legacy_of_the_frost_witch.up||!talent.legacy_of_the_frost_witch.enabled)\nactions.aoe+=/crash_lightning,if=(buff.doom_winds.up&active_enemies>=4)||!buff.crash_lightning.up||(talent.alpha_wolf.enabled&feral_spirit.active&alpha_wolf_min_remains=0)\nactions.aoe+=/sundering,if=buff.doom_winds.up||talent.earthsurge.enabled\nactions.aoe+=/fire_nova,if=active_dot.flame_shock=6||(active_dot.flame_shock>=4&active_dot.flame_shock>=cycle_enemies)\nactions.aoe+=/stormstrike,if=talent.stormblast.enabled&talent.stormflurry.enabled\nactions.aoe+=/flame_shock,if=buff.voltaic_blaze.up\nactions.aoe+=/lava_lash,cycle_targets=1,if=talent.lashing_flames.enabled\nactions.aoe+=/lava_lash,if=talent.molten_assault.enabled&dot.flame_shock.ticking\nactions.aoe+=/ice_strike,if=talent.hailstorm.enabled&!buff.ice_strike.up\nactions.aoe+=/frost_shock,if=talent.hailstorm.enabled&buff.hailstorm.up\nactions.aoe+=/sundering\nactions.aoe+=/flame_shock,if=talent.molten_assault.enabled&!ticking\nactions.aoe+=/flame_shock,cycle_targets=1,if=refreshable&(talent.fire_nova.enabled||talent.primordial_wave.enabled)&(active_dot.flame_shock=3\nactions.aoe+=/stormstrike,if=buff.crash_lightning.up&(talent.deeply_rooted_elements.enabled||buff.converging_storms.stack=buff.converging_storms.max_stack)\nactions.aoe+=/crash_lightning,if=talent.crashing_storms.enabled&buff.cl_crash_lightning.up&active_enemies>=4\nactions.aoe+=/windstrike\nactions.aoe+=/stormstrike\nactions.aoe+=/ice_strike\nactions.aoe+=/lava_lash\nactions.aoe+=/crash_lightning\nactions.aoe+=/fire_nova,if=active_dot.flame_shock>=2\nactions.aoe+=/elemental_blast,cycle_targets=1,if=(!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)\nactions.aoe+=/chain_lightning,cycle_targets=1,if=buff.maelstrom_weapon.stack>=5\nactions.aoe+=/flame_shock,if=!ticking\nactions.aoe+=/frost_shock,if=!talent.hailstorm.enabled\n\nactions.aoe_totemic+=/surging_totem\n# [Hekili] Avoid delaying Ascendance due to Thorim's Invocation\nactions.aoe_totemic+=/chain_lightning,if=cast_time=0&talent.ascendance&cooldown.ascendance.remains<2*gcd&talent.thorims_invocation&!ti_chain_lightning\nactions.aoe_totemic+=/ascendance,if=ti_chain_lightning\nactions.aoe_totemic+=/sundering,if=buff.ascendance.up&pet.surging_totem.active&talent.earthsurge.enabled&(buff.legacy_of_the_frost_witch.up||!talent.legacy_of_the_frost_witch.enabled)\nactions.aoe_totemic+=/crash_lightning,if=talent.crashing_storms.enabled&(active_enemies>=15-5*talent.unruly_winds.enabled)\nactions.aoe_totemic+=/lightning_bolt,if=((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))\nactions.aoe_totemic+=/doom_winds,if=!talent.elemental_spirits.enabled&(buff.legacy_of_the_frost_witch.up||!talent.legacy_of_the_frost_witch.enabled)\nactions.aoe_totemic+=/lava_lash,if=talent.molten_assault.enabled&(talent.primordial_wave.enabled||talent.fire_nova.enabled)&dot.flame_shock.ticking&active_dot.flame_shock=2)))&buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&(!talent.crashing_storms.enabled||active_enemies<=3)\nactions.aoe_totemic+=/chain_lightning,if=buff.maelstrom_weapon.stack>=10\nactions.aoe_totemic+=/feral_spirit\nactions.aoe_totemic+=/doom_winds,if=buff.legacy_of_the_frost_witch.up||!talent.legacy_of_the_frost_witch.enabled\nactions.aoe_totemic+=/crash_lightning,if=buff.doom_winds.up||!buff.crash_lightning.up||(talent.alpha_wolf.enabled&feral_spirit.active&alpha_wolf_min_remains=0)\nactions.aoe_totemic+=/sundering,if=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\nactions.aoe_totemic+=/fire_nova,if=active_dot.flame_shock=6||(active_dot.flame_shock>=4&active_dot.flame_shock>=cycle_enemies)\nactions.aoe_totemic+=/flame_shock,if=buff.voltaic_blaze.up\nactions.aoe_totemic+=/lava_lash,cycle_targets=1,if=talent.lashing_flames.enabled\nactions.aoe_totemic+=/lava_lash,if=talent.molten_assault.enabled&dot.flame_shock.ticking\nactions.aoe_totemic+=/ice_strike,if=talent.hailstorm.enabled&!buff.ice_strike.up\nactions.aoe_totemic+=/frost_shock,if=talent.hailstorm.enabled&buff.hailstorm.up\nactions.aoe_totemic+=/sundering,if=(buff.legacy_of_the_frost_witch.up||!talent.legacy_of_the_frost_witch.enabled)&pet.surging_totem.active\nactions.aoe_totemic+=/flame_shock,if=talent.molten_assault.enabled&!ticking\nactions.aoe_totemic+=/flame_shock,cycle_targets=1,if=refreshable&(talent.fire_nova.enabled||talent.primordial_wave.enabled)&(active_dot.flame_shock=3\nactions.aoe_totemic+=/stormstrike,if=buff.crash_lightning.up&(talent.deeply_rooted_elements.enabled||buff.converging_storms.stack=buff.converging_storms.max_stack)\nactions.aoe_totemic+=/crash_lightning,if=talent.crashing_storms.enabled&buff.cl_crash_lightning.up&active_enemies>=4\nactions.aoe_totemic+=/windstrike\nactions.aoe_totemic+=/stormstrike\nactions.aoe_totemic+=/ice_strike\nactions.aoe_totemic+=/lava_lash\nactions.aoe_totemic+=/crash_lightning\nactions.aoe_totemic+=/fire_nova,if=active_dot.flame_shock>=2\nactions.aoe_totemic+=/elemental_blast,cycle_targets=1,if=(!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)\nactions.aoe_totemic+=/chain_lightning,cycle_targets=1,if=buff.maelstrom_weapon.stack>=5\nactions.aoe_totemic+=/flame_shock,if=!ticking\n\nactions.funnel+=/feral_spirit,if=talent.elemental_spirits.enabled\nactions.funnel+=/surging_totem\nactions.funnel+=/ascendance\nactions.funnel+=/windstrike,if=(talent.thorims_invocation.enabled&buff.maelstrom_weapon.stack>0)||buff.converging_storms.stack=buff.converging_storms.max_stack\nactions.funnel+=/tempest,if=buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack||(buff.maelstrom_weapon.stack>=5&(tempest_mael_count>30||buff.awakening_storms.stack=2))\nactions.funnel+=/lightning_bolt,if=(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)\nactions.funnel+=/elemental_blast,if=buff.maelstrom_weapon.stack>=5&talent.elemental_spirits.enabled&feral_spirit.active>=4\nactions.funnel+=/lightning_bolt,if=talent.supercharge.enabled&buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&(variable.expected_lb_funnel>variable.expected_cl_funnel)\nactions.funnel+=/chain_lightning,if=(talent.supercharge.enabled&buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack)||buff.arc_discharge.up&buff.maelstrom_weapon.stack>=5\nactions.funnel+=/lava_lash,if=(talent.molten_assault.enabled&dot.flame_shock.ticking&(active_dot.flame_shockbuff.crackling_surge.stack)&buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack\nactions.funnel+=/lightning_bolt,if=buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack&(variable.expected_lb_funnel>variable.expected_cl_funnel)\nactions.funnel+=/chain_lightning,if=buff.maelstrom_weapon.stack=buff.maelstrom_weapon.max_stack\nactions.funnel+=/crash_lightning,if=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=4&active_dot.flame_shock>=active_enemies)\nactions.funnel+=/ice_strike,if=talent.hailstorm.enabled&!buff.ice_strike.up\nactions.funnel+=/frost_shock,if=talent.hailstorm.enabled&buff.hailstorm.up\nactions.funnel+=/sundering\nactions.funnel+=/flame_shock,if=talent.molten_assault.enabled&!ticking\nactions.funnel+=/flame_shock,cycle_targets=1,if=refreshable&(talent.fire_nova.enabled||talent.primordial_wave.enabled)&(active_dot.flame_shock=3\nactions.funnel+=/stormstrike,if=buff.crash_lightning.up&talent.deeply_rooted_elements.enabled\nactions.funnel+=/crash_lightning,if=talent.crashing_storms.enabled&buff.cl_crash_lightning.up&active_enemies>=4\nactions.funnel+=/windstrike\nactions.funnel+=/stormstrike\nactions.funnel+=/ice_strike\nactions.funnel+=/lava_lash\nactions.funnel+=/crash_lightning\nactions.funnel+=/fire_nova,if=active_dot.flame_shock>=2\nactions.funnel+=/elemental_blast,if=(!talent.elemental_spirits.enabled||(talent.elemental_spirits.enabled&(charges=max_charges||buff.feral_spirit.up)))&buff.maelstrom_weapon.stack>=5\nactions.funnel+=/lava_burst,if=(buff.molten_weapon.stack>buff.crackling_surge.stack)&buff.maelstrom_weapon.stack>=5\nactions.funnel+=/lightning_bolt,if=buff.maelstrom_weapon.stack>=5&(variable.expected_lb_funnel>variable.expected_cl_funnel)\nactions.funnel+=/chain_lightning,if=buff.maelstrom_weapon.stack>=5\nactions.funnel+=/flame_shock,if=!ticking\nactions.funnel+=/frost_shock,if=!talent.hailstorm.enabled", }, ["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_potential.up&active_enemies<3&(buff.incarnation.up||buff.berserk_bear.up)&refreshable)\nactions.bear+=/raze,if=variable.if_build=1&buff.vicious_cycle_maul.stack=3&active_enemies>1&!talent.ravage.enabled\nactions.bear+=/mangle,if=buff.gore.up&active_enemies<11||buff.incarnation_guardian_of_ursoc.up&buff.feline_potential_counter.stack<6&talent.wildpower_surge.enabled\nactions.bear+=/raze,if=variable.if_build=0&(active_enemies>1||(buff.tooth_and_claw.up)&active_enemies>1||buff.vicious_cycle_maul.stack=3&active_enemies>1)\nactions.bear+=/shred,if=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\nactions.bear+=/rake,if=cooldown.rage_of_the_sleeper.remains<=52&buff.feline_potential_counter.stack=6&!buff.cat_form.up&active_enemies<3&talent.fluid_form.enabled\nactions.bear+=/mangle,if=buff.cat_form.up&talent.fluid_form.enabled\nactions.bear+=/maul,if=variable.if_build=1&(((buff.tooth_and_claw.stack>1||buff.tooth_and_claw.remains<1+gcd)&active_enemies<=5&!talent.raze.enabled)||((buff.tooth_and_claw.stack>1||buff.tooth_and_claw.remains<1+gcd)&active_enemies=1&talent.raze.enabled)||((buff.tooth_and_claw.stack>1||buff.tooth_and_claw.remains<1+gcd)&active_enemies<=5&!talent.raze.enabled))\nactions.bear+=/maul,if=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))\nactions.bear+=/maul,if=(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\nactions.bear+=/thrash_bear,if=active_enemies>=5\nactions.bear+=/mangle,if=(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)\nactions.bear+=/thrash_bear,if=active_enemies>1\nactions.bear+=/pulverize,cycle_targets=1\nactions.bear+=/thrash_bear\nactions.bear+=/moonfire,if=buff.galactic_guardian.up&buff.bear_form.up&talent.boundless_moonlight.enabled\nactions.bear+=/rake,if=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\nactions.bear+=/shred,if=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\nactions.bear+=/rip,if=buff.cat_form.up&!dot.rip.ticking&active_enemies<3&variable.ripweaving=1\nactions.bear+=/ferocious_bite,if=dot.rip.ticking&combo_points>4&active_enemies<3&variable.ripweaving=1\nactions.bear+=/starsurge,if=talent.starsurge.enabled&rage<20\nactions.bear+=/swipe_bear,if=(talent.lunar_insight.enabled&active_enemies>4)||!talent.lunar_insight.enabled||talent.lunar_insight.enabled&active_enemies<2\nactions.bear+=/moonfire,if=(talent.lunar_insight.enabled&active_enemies>1)&buff.bear_form.up\n\nactions.mitigation=ironfur,if=tanking&!variable.if_build&incoming_damage_5s>ironfur_damage_threshold&buff.ironfur.remains<3*haste&buff.ironfur.stack<5\nactions.mitigation+=/regrowth,if=health.pct<65\nactions.mitigation+=/renewal,if=health.pct<65\nactions.mitigation+=/frenzied_regeneration,if=tanking&health.pct<65\nactions.mitigation+=/barkskin,if=tanking&health.pct<75&incoming_damage_5s>0.1*health.max\nactions.mitigation+=/survival_instincts,if=buff.survival_instincts.down&buff.barkskin.down&health.pct<60&incoming_damage_5s>0.25*health.max", }, ["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_winters_chill\nactions.aoe_ss+=/flurry,if=remaining_winters_chill=0\nactions.aoe_ss+=/frostbolt\nactions.aoe_ss+=/call_action_list,name=movement\n\nactions.cds+=/use_item,name=treacherous_transmitter,if=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)\n## actions.cds+=/do_treacherous_transmitter_task,if=fight_remains<18||(buff.cryptic_instructions.remains=32)&(buff.icy_veins.remains>15||trinket.treacherous_transmitter.cooldown.remains>50)\nactions.cds+=/use_item,name=imperfect_ascendancy_serum,if=buff.icy_veins.remains>15||boss&fight_remains<20\nactions.cds+=/use_item,name=burst_of_knowledge,if=buff.icy_veins.remains>15||boss&fight_remains<20\nactions.cds+=/potion,if=boss&fight_remains<35||buff.icy_veins.remains>9&(fight_remains>315||cooldown.icy_veins.remains+12>fight_remains)\nactions.cds+=/icy_veins,if=buff.icy_veins.remains9&buff.icy_veins.remains<15||boss&fight_remains<15\nactions.cds+=/fireblood\nactions.cds+=/ancestral_call\n\nactions.cleave_ff+=/comet_storm,if=prev_gcd.1.flurry\nactions.cleave_ff+=/frostfire_bolt,if=talent.deaths_chill&buff.icy_veins.remains>9&(buff.deaths_chill.stack<6||buff.deaths_chill.stack=6&!action.frostfire_bolt.in_flight)\nactions.cleave_ff+=/freeze,if=freezable&prev_gcd.1.glacial_spike\nactions.cleave_ff+=/ice_nova,if=freezable&prev_gcd.1.glacial_spike&remaining_winters_chill=0&debuff.winters_chill.down&!prev_off_gcd.freeze\nactions.cleave_ff+=/flurry,if=remaining_winters_chill=0&debuff.winters_chill.down&(prev_gcd.1.glacial_spike||buff.icicles.stack>=3)&!prev_off_gcd.freeze\nactions.cleave_ff+=/flurry,cycle_targets=1,if=prev_gcd.1.glacial_spike&!prev_off_gcd.freeze\nactions.cleave_ff+=/glacial_spike,if=buff.icicles.stacks=5\nactions.cleave_ff+=/ray_of_frost,cycle_targets=1,if=remaining_winters_chill\nactions.cleave_ff+=/frostfire_bolt,if=buff.frostfire_empowerment.up&!buff.excess_frost.up&!buff.excess_fire.up\nactions.cleave_ff+=/frozen_orb,if=!buff.fingers_of_frost.up\nactions.cleave_ff+=/shifting_power,if=cooldown.icy_veins.remains>10&cooldown.frozen_orb.remains>10&(!talent.comet_storm||cooldown.comet_storm.remains>10)&(!talent.ray_of_frost||cooldown.ray_of_frost.remains>10)&(fight_remains+10>cooldown.icy_veins.remains)\nactions.cleave_ff+=/ice_lance,cycle_targets=1,if=buff.fingers_of_frost.up&!prev_gcd.1.glacial_spike||remaining_winters_chill&!variable.boltspam\nactions.cleave_ff+=/frostfire_bolt\nactions.cleave_ff+=/call_action_list,name=movement\n\nactions.cleave_ss+=/comet_storm,if=prev_gcd.1.flurry&(buff.icy_veins.down)\nactions.cleave_ss+=/freeze,if=freezable&prev_gcd.1.glacial_spike\nactions.cleave_ss+=/flurry,if=remaining_winters_chill=0&debuff.winters_chill.down&(prev_gcd.1.frostbolt||prev_gcd.1.glacial_spike)\nactions.cleave_ss+=/flurry,cycle_targets=1,if=prev_gcd.1.glacial_spike\nactions.cleave_ss+=/ice_nova,if=freezable&!prev_off_gcd.freeze&prev_gcd.1.glacial_spike&remaining_winters_chill=0&debuff.winters_chill.down\nactions.cleave_ss+=/frozen_orb,if=(cooldown.icy_veins.remains>22||buff.icy_veins.up)\nactions.cleave_ss+=/shifting_power,if=cooldown.icy_veins.remains>10&!cooldown.flurry.ready&(buff.icy_veins.down||buff.icy_veins.remains>10)&(fight_remains+10>cooldown.icy_veins.remains)\nactions.cleave_ss+=/glacial_spike,if=buff.icicles.stack=5&(cooldown.flurry.ready||remaining_winters_chill||freezable&cooldown.ice_nova.ready&!buff.fingers_of_frost.up)\nactions.cleave_ss+=/ray_of_frost,if=remaining_winters_chill&buff.icy_veins.down\nactions.cleave_ss+=/frostbolt,if=talent.deaths_chill&buff.icy_veins.remains>9&(buff.deaths_chill.stack<(8+4*talent.slick_ice)||buff.deaths_chill.stack=(8+4*talent.slick_ice)&!action.frostbolt.in_flight)\nactions.cleave_ss+=/ice_lance,if=buff.fingers_of_frost.up&!prev_gcd.1.glacial_spike||!variable.boltspam&remaining_winters_chill\nactions.cleave_ss+=/frostbolt\nactions.cleave_ss+=/call_action_list,name=movement\n\nactions.movement+=/any_blink,if=movement.distance>10\nactions.movement+=/ice_floes,if=buff.ice_floes.down\nactions.movement+=/ice_nova\nactions.movement+=/cone_of_cold,if=!talent.coldest_snap&active_enemies>=2\nactions.movement+=/arcane_explosion,if=mana.pct>30&active_enemies>=2\nactions.movement+=/fire_blast\nactions.movement+=/ice_lance\n\nactions.st_ff+=/comet_storm,if=prev_gcd.1.flurry\nactions.st_ff+=/flurry,if=variable.boltspam&buff.icicles.stack<5&remaining_winters_chill=0\nactions.st_ff+=/flurry,if=!variable.boltspam&buff.icicles.stack<5&remaining_winters_chill=0&debuff.winters_chill.down&(prev_gcd.1.frostfire_bolt||prev_gcd.1.glacial_spike)\nactions.st_ff+=/ice_lance,if=variable.boltspam&buff.excess_fire.up&!buff.brain_freeze.up\nactions.st_ff+=/glacial_spike,if=buff.icicles.stack=5\nactions.st_ff+=/ray_of_frost,if=remaining_winters_chill&(!variable.boltspam||buff.icy_veins.remains<15)\nactions.st_ff+=/frozen_orb,if=variable.boltspam&buff.icy_veins.down||!variable.boltspam&!buff.fingers_of_frost.up\nactions.st_ff+=/shifting_power,if=(buff.icy_veins.down||!variable.boltspam)&cooldown.icy_veins.remains>10&cooldown.frozen_orb.remains>10&(!talent.comet_storm||cooldown.comet_storm.remains>10)&(!talent.ray_of_frost||cooldown.ray_of_frost.remains>10)&(fight_remains+10>cooldown.icy_veins.remains)\nactions.st_ff+=/ice_lance,if=!variable.boltspam&(buff.fingers_of_frost.up&!prev_gcd.1.glacial_spike||remaining_winters_chill)\nactions.st_ff+=/frostfire_bolt\nactions.st_ff+=/call_action_list,name=movement\n\nactions.st_ss+=/comet_storm,if=prev_gcd.1.flurry&buff.icy_veins.down\nactions.st_ss+=/flurry,if=remaining_winters_chill=0&debuff.winters_chill.down&(prev_gcd.1.frostbolt||prev_gcd.1.glacial_spike)\nactions.st_ss+=/frozen_orb,if=(cooldown.icy_veins.remains>22||buff.icy_veins.up)\nactions.st_ss+=/glacial_spike,if=buff.icicles.stack=5&(cooldown.flurry.ready||remaining_winters_chill||cooldown.flurry.remains0)\nactions.st_ss+=/ray_of_frost,if=variable.boltspam&remaining_winters_chill&buff.icy_veins.down\nactions.st_ss+=/ray_of_frost,if=!variable.boltspam&remaining_winters_chill=1\nactions.st_ss+=/shifting_power,if=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)\nactions.st_ss+=/frostbolt,if=variable.boltspam&buff.icy_veins.remains>9&buff.deaths_chill.stack<8\nactions.st_ss+=/ice_lance,if=variable.boltspam&(remaining_winters_chill=2||remaining_winters_chill&cooldown.flurry.ready)\nactions.st_ss+=/ice_lance,if=!variable.boltspam&(buff.fingers_of_frost.up&!prev_gcd.1.glacial_spike||remaining_winters_chill)\nactions.st_ss+=/frostbolt\nactions.st_ss+=/call_action_list,name=movement", ["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