mage="T23_Mage_Frost"
source=default
spec=frost
level=120
race=dwarf
role=spell
position=ranged_back
talents=1013033

# Default consumables
potion=unbridled_fury
flask=greater_flask_of_endless_fathoms
food=abyssalfried_rissole
augmentation=battle_scarred

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/arcane_intellect
actions.precombat+=/variable,name=il_if_gaming,default=0,op=reset
actions.precombat+=/summon_water_elemental
actions.precombat+=/snapshot_stats
actions.precombat+=/use_item,name=azsharas_font_of_power
actions.precombat+=/mirror_image
actions.precombat+=/potion
actions.precombat+=/frostbolt

# Executed every time the actor is available.
actions=counterspell
# If the mage has FoF after casting instant Flurry, we can delay the Ice Lance and use other high priority action, if available.
actions+=/ice_lance,if=prev_gcd.1.flurry&!buff.fingers_of_frost.react
actions+=/call_action_list,name=cooldowns
# The target threshold isn't exact. Between 3-5 targets, the differences between the ST and AoE action lists are rather small. However, Freezing Rain prefers using AoE action list sooner as it benefits greatly from the high priority Blizzard action.
actions+=/call_action_list,name=aoe,if=active_enemies>3&talent.freezing_rain.enabled|active_enemies>4
actions+=/call_action_list,name=single

# With Freezing Rain, it's better to prioritize using Frozen Orb when both FO and Blizzard are off cooldown. Without Freezing Rain, the converse is true although the difference is miniscule until very high target counts.
actions.aoe=frozen_orb
actions.aoe+=/blizzard
actions.aoe+=/call_action_list,name=essences
actions.aoe+=/comet_storm
actions.aoe+=/ice_nova
# Simplified Flurry conditions from the ST action list. Since the mage is generating far less Brain Freeze charges, the exact condition here isn't all that important.
actions.aoe+=/flurry,if=prev_gcd.1.ebonbolt|buff.brain_freeze.react&(prev_gcd.1.frostbolt&(buff.icicles.stack<4|!talent.glacial_spike.enabled)|prev_gcd.1.glacial_spike)
actions.aoe+=/ice_lance,if=buff.fingers_of_frost.react
# The mage will generally be generating a lot of FoF charges when using the AoE action list. Trying to delay Ray of Frost until there are no FoF charges and no active Frozen Orbs would lead to it not being used at all.
actions.aoe+=/ray_of_frost
actions.aoe+=/ebonbolt
actions.aoe+=/glacial_spike
# Using Cone of Cold is mostly DPS neutral with the AoE target thresholds. It only becomes decent gain with roughly 7 or more targets.
actions.aoe+=/cone_of_cold
actions.aoe+=/use_item,name=tidestorm_codex,if=buff.icy_veins.down&buff.rune_of_power.down
actions.aoe+=/use_item,effect_name=cyclotronic_blast,if=buff.icy_veins.down&buff.rune_of_power.down
actions.aoe+=/frostbolt
actions.aoe+=/call_action_list,name=movement
actions.aoe+=/ice_lance

actions.cooldowns=guardian_of_azeroth
actions.cooldowns+=/icy_veins
actions.cooldowns+=/mirror_image
# Rune of Power is always used with Frozen Orb. Any leftover charges at the end of the fight should be used, ideally if the boss doesn't die in the middle of the Rune buff.
actions.cooldowns+=/rune_of_power,if=buff.rune_of_power.down&(prev_gcd.1.frozen_orb|target.time_to_die>10+cast_time&target.time_to_die<20)
# On single target fights, the cooldown of Rune of Power is lower than the cooldown of Frozen Orb, this gives extra Rune of Power charges that should be used with active talents, if possible.
actions.cooldowns+=/call_action_list,name=talent_rop,if=talent.rune_of_power.enabled&active_enemies=1&cooldown.rune_of_power.full_recharge_time<cooldown.frozen_orb.remains
actions.cooldowns+=/potion,if=prev_gcd.1.icy_veins|target.time_to_die<30
actions.cooldowns+=/use_item,name=balefire_branch,if=!talent.glacial_spike.enabled|buff.brain_freeze.react&prev_gcd.1.glacial_spike
actions.cooldowns+=/use_items
actions.cooldowns+=/blood_fury
actions.cooldowns+=/berserking
actions.cooldowns+=/lights_judgment
actions.cooldowns+=/fireblood
actions.cooldowns+=/ancestral_call
actions.cooldowns+=/bag_of_tricks

actions.essences=focused_azerite_beam,if=buff.rune_of_power.down|active_enemies>3
actions.essences+=/memory_of_lucid_dreams,if=active_enemies<5&(buff.icicles.stack<=1|!talent.glacial_spike.enabled)&cooldown.frozen_orb.remains>10&!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0
actions.essences+=/blood_of_the_enemy,if=(talent.glacial_spike.enabled&buff.icicles.stack=5&(buff.brain_freeze.react|prev_gcd.1.ebonbolt))|((active_enemies>3|!talent.glacial_spike.enabled)&(prev_gcd.1.frozen_orb|ground_aoe.frozen_orb.remains>5))
actions.essences+=/purifying_blast,if=buff.rune_of_power.down|active_enemies>3
actions.essences+=/ripple_in_space,if=buff.rune_of_power.down|active_enemies>3
actions.essences+=/concentrated_flame,line_cd=6,if=buff.rune_of_power.down
actions.essences+=/reaping_flames,if=buff.rune_of_power.down
actions.essences+=/the_unbound_force,if=buff.reckless_force.up
actions.essences+=/worldvein_resonance,if=buff.rune_of_power.down|active_enemies>3

actions.movement=blink_any,if=movement.distance>10
actions.movement+=/ice_floes,if=buff.ice_floes.down

# In some situations, you can shatter Ice Nova even after already casting Flurry and Ice Lance. Otherwise this action is used when the mage has FoF after casting Flurry, see above.
actions.single=ice_nova,if=cooldown.ice_nova.ready&debuff.winters_chill.up
# Without GS, Ebonbolt is always shattered. With GS, Ebonbolt is shattered if it would waste Brain Freeze charge (i.e. when the mage starts casting Ebonbolt with Brain Freeze active) or when below 4 Icicles (if Ebonbolt is cast when the mage has 4-5 Icicles, it's better to use the Brain Freeze from it on Glacial Spike).
actions.single+=/flurry,if=talent.ebonbolt.enabled&prev_gcd.1.ebonbolt&(!talent.glacial_spike.enabled|buff.icicles.stack<4|buff.brain_freeze.react)
# Glacial Spike is always shattered.
actions.single+=/flurry,if=talent.glacial_spike.enabled&prev_gcd.1.glacial_spike&buff.brain_freeze.react
# Without GS, the mage just tries to shatter as many Frostbolts as possible. With GS, the mage only shatters Frostbolt that would put them at 1-3 Icicle stacks. Difference between shattering Frostbolt with 1-3 Icicles and 1-4 Icicles is small, but 1-3 tends to be better in more situations (the higher GS damage is, the more it leans towards 1-3). Forcing shatter on Frostbolt is still a small gain, so is not caring about FoF. Ice Lance is too weak to warrant delaying Brain Freeze Flurry.
actions.single+=/flurry,if=prev_gcd.1.frostbolt&buff.brain_freeze.react&(!talent.glacial_spike.enabled|buff.icicles.stack<4)
actions.single+=/call_action_list,name=essences
actions.single+=/frozen_orb
# With Freezing Rain and at least 2 targets, Blizzard needs to be used with higher priority to make sure you can fit both instant Blizzards into a single Freezing Rain. Starting with three targets, Blizzard leaves the low priority filler role and is used on cooldown (and just making sure not to waste Brain Freeze charges) with or without Freezing Rain.
actions.single+=/blizzard,if=active_enemies>2|active_enemies>1&cast_time=0&buff.fingers_of_frost.react<2
# Trying to pool charges of FoF for anything isn't worth it. Use them as they come.
actions.single+=/ice_lance,if=buff.fingers_of_frost.react
actions.single+=/comet_storm
actions.single+=/ebonbolt
# Ray of Frost is used after all Fingers of Frost charges have been used and there isn't active Frozen Orb that could generate more. This is only a small gain against multiple targets, as Ray of Frost isn't too impactful.
actions.single+=/ray_of_frost,if=!action.frozen_orb.in_flight&ground_aoe.frozen_orb.remains=0
# Blizzard is used as low priority filler against 2 targets. When using Freezing Rain, it's a medium gain to use the instant Blizzard even against a single target, especially with low mastery.
actions.single+=/blizzard,if=cast_time=0|active_enemies>1
# Glacial Spike is used when there's a Brain Freeze proc active (i.e. only when it can be shattered). This is a small to medium gain in most situations. Low mastery leans towards using it when available. When using Splitting Ice and having another target nearby, it's slightly better to use GS when available, as the second target doesn't benefit from shattering the main target.
actions.single+=/glacial_spike,if=buff.brain_freeze.react|prev_gcd.1.ebonbolt|active_enemies>1&talent.splitting_ice.enabled
actions.single+=/ice_nova
actions.single+=/use_item,name=tidestorm_codex,if=buff.icy_veins.down&buff.rune_of_power.down
actions.single+=/use_item,effect_name=cyclotronic_blast,if=buff.icy_veins.down&buff.rune_of_power.down
actions.single+=/frostbolt
actions.single+=/call_action_list,name=movement
actions.single+=/ice_lance

# With Glacial Spike, Rune of Power should be used right before the Glacial Spike combo (i.e. with 5 Icicles and a Brain Freeze). When Ebonbolt is off cooldown, Rune of Power can also be used just with 5 Icicles.
actions.talent_rop=rune_of_power,if=buff.rune_of_power.down&talent.glacial_spike.enabled&buff.icicles.stack=5&(buff.brain_freeze.react|talent.ebonbolt.enabled&cooldown.ebonbolt.remains<cast_time)
# Without Glacial Spike, Rune of Power should be used before any bigger cooldown (Ebonbolt, Comet Storm, Ray of Frost) or when Rune of Power is about to reach 2 charges.
actions.talent_rop+=/rune_of_power,if=buff.rune_of_power.down&!talent.glacial_spike.enabled&(talent.ebonbolt.enabled&cooldown.ebonbolt.remains<cast_time|talent.comet_storm.enabled&cooldown.comet_storm.remains<cast_time|talent.ray_of_frost.enabled&cooldown.ray_of_frost.remains<cast_time|charges_fractional>1.9)

head=grasping_crown_of_the_deep,id=159252,bonus_id=1587/4819/4775,azerite_powers=170/479/30/13
neck=heart_of_azeroth,id=158075,bonus_id=4929/5814/4936/1566,azerite_level=48
shoulders=brood_cleansers_amice,id=159254,bonus_id=1587/4819/4775,azerite_powers=170/196/31/13
back=loa_exultants_shroud,id=165512,bonus_id=4800/1537
chest=vestments_of_the_afterlife,id=165498,bonus_id=4824/1537/4775,azerite_powers=379/170/30/13
wrists=lever_stabilizing_wristwraps,id=165508,bonus_id=4800/1537
hands=firecallers_handwraps,id=165764,bonus_id=4800/1537
waist=waistcord_of_flowing_silk,id=165504,bonus_id=4800/1537
legs=wavecaller_leggings,id=165506,bonus_id=4800/1537
feet=lightfeather_footpads,id=165502,bonus_id=4800/1537
finger1=band_of_multisided_strikes,id=165565,bonus_id=4800/1537,enchant=pact_of_versatility
finger2=seal_of_the_zandalari_empire,id=165567,bonus_id=4800/1537,enchant=pact_of_versatility
trinket1=crest_of_paku,id=165581,bonus_id=4800/1537
trinket2=incandescent_sliver,id=165571,bonus_id=4800/1537
main_hand=deathspeaker_spire,id=165597,bonus_id=4800/1537,enchant=torrent_of_elements

# Gear Summary
# gear_ilvl=416.93
# gear_stamina=9970
# gear_intellect=7318
# gear_crit_rating=736
# gear_haste_rating=1093
# gear_mastery_rating=770
# gear_versatility_rating=801
# gear_armor=1442
# set_bonus=gift_of_the_loa_2pc=1
