actions.precombat+=/arcane_intellect actions.precombat+=/arcane_familiar actions.precombat+=/conjure_mana_gem ## actions.precombat+=/variable,name=aoe_target_count,op=reset,default=3 ## actions.precombat+=/variable,name=conserve_mana,op=set,value=0 actions.precombat+=/variable,name=opener_min_mana,op=setif,condition=talent.arcane_harmony,value=225000,value_else=200000 actions.precombat+=/variable,name=steroid_trinket_equipped,op=set,value=equipped.gladiators_badge|equipped.irideus_fragment|equipped.erupting_spear_fragment|equipped.spoils_of_neltharus|equipped.tome_of_unstable_power|equipped.timebreaching_talon|equipped.horn_of_valor actions.precombat+=/variable,name=talon_dbluse,op=set,value=equipped.timebreaching_talon&equipped.irideus_fragment actions.precombat+=/mirror_image actions.precombat+=/arcane_blast,if=!talent.siphon_storm actions.precombat+=/evocation,if=talent.siphon_storm # Executed every time the actor is available. actions=counterspell actions+=/potion,if=cooldown.arcane_surge.ready # This is a backup measure in case you fail to pre-evocate with Siphon Storm. actions+=/evocation,if=talent.siphon_storm&time<10&cooldown.arcane_surge.remains<5 actions+=/time_warp,if=talent.temporal_warp&buff.exhaustion.up&(cooldown.arcane_surge.ready|fight_remains<=40|buff.arcane_surge.up&fight_remains<=80) actions+=/lights_judgment,if=buff.arcane_surge.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down actions+=/bag_of_tricks,if=buff.arcane_surge.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down actions+=/berserking,if=(prev_gcd.1.arcane_surge&!(buff.temporal_warp.up&buff.bloodlust.up))|(buff.arcane_surge.up&debuff.touch_of_the_magi.up) actions+=/blood_fury,if=prev_gcd.1.arcane_surge actions+=/fireblood,if=prev_gcd.1.arcane_surge actions+=/ancestral_call,if=prev_gcd.1.arcane_surge ## Not supported by the addon; cannot control if another player grants Power Infusion. ## actions+=/invoke_external_buff,name=power_infusion,if=!talent.radiant_spark&prev_gcd.1.arcane_surge actions+=/use_items,if=((prev_gcd.1.arcane_surge&!set_bonus.tier30_4pc)|(prev_gcd.2.arcane_surge&debuff.touch_of_the_magi.up&set_bonus.tier30_4pc))|(active_enemies>=variable.aoe_target_count&cooldown.arcane_surge.ready&prev_gcd.1.nether_tempest) ## TODO: actions+=/use_item,name=tinker_breath_of_neltharion,if=cooldown.arcane_surge.remains&buff.rune_of_power.down&buff.arcane_surge.down&debuff.touch_of_the_magi.down actions+=/use_item,name=conjured_chillglobe,if=mana.pct>65&(!variable.steroid_trinket_equipped|cooldown.arcane_surge.remains>20) actions+=/use_item,name=darkmoon_deck_rime,if=!variable.steroid_trinket_equipped|cooldown.arcane_surge.remains>20 actions+=/use_item,name=darkmoon_deck_dance,if=!variable.steroid_trinket_equipped|cooldown.arcane_surge.remains>20 actions+=/use_item,name=darkmoon_deck_inferno,if=!variable.steroid_trinket_equipped|cooldown.arcane_surge.remains>20 actions+=/use_item,name=desperate_invokers_codex,if=!variable.steroid_trinket_equipped|cooldown.arcane_surge.remains>20 actions+=/use_item,name=iceblood_deathsnare,if=!variable.steroid_trinket_equipped|cooldown.arcane_surge.remains>20 ## actions+=/variable,name=aoe_spark_phase,op=set,value=1,if=active_enemies>=variable.aoe_target_count&(action.arcane_orb.charges>0|buff.arcane_charge.stack>=3)&(!talent.rune_of_power|cooldown.rune_of_power.ready)&cooldown.radiant_spark.ready&cooldown.touch_of_the_magi.remains<=(gcd.max*2) ## actions+=/variable,name=aoe_spark_phase,op=set,value=0,if=variable.aoe_spark_phase&debuff.radiant_spark_vulnerability.down&dot.radiant_spark.remains<7&cooldown.radiant_spark.remains ## actions+=/variable,name=spark_phase,op=set,value=1,if=buff.arcane_charge.stack>=3&active_enemies=3&cooldown.rune_of_power.ready&active_enemies=95&!talent.siphon_storm ## actions+=/cancel_action,if=action.evocation.channeling&(mana.pct>fight_remains*4)&!(fight_remains>10&cooldown.arcane_surge.remains<1) actions+=/arcane_barrage,if=fight_remains<2 actions+=/evocation,if=buff.rune_of_power.down&buff.arcane_surge.down&debuff.touch_of_the_magi.down&((mana.pct<10&((cooldown.touch_of_the_magi.remains<15&set_bonus.tier30_4pc)|cooldown.touch_of_the_magi.remains<25&!set_bonus.tier30_4pc))|((cooldown.touch_of_the_magi.remains<10&set_bonus.tier30_4pc)|cooldown.touch_of_the_magi.remains<20&!set_bonus.tier30_4pc))&mana.pct45)&((cooldown.touch_of_the_magi.remains20)&set_bonus.tier30_4pc&active_enemies30&(cooldown.radiant_spark.ready|dot.radiant_spark.remains|debuff.radiant_spark_vulnerability.up)&(cooldown.touch_of_the_magi.remains<=(gcd.max*3)|debuff.touch_of_the_magi.up)&set_bonus.tier30_4pc&active_enemies=variable.aoe_target_count actions+=/call_action_list,name=touch_phase,strict=1,if=debuff.touch_of_the_magi.up&active_enemies=variable.aoe_target_count) actions+=/call_action_list,name=aoe_rotation,strict=1,if=active_enemies>=variable.aoe_target_count actions+=/call_action_list,name=t30_rotation,strict=1,if=set_bonus.tier30_4pc actions+=/call_action_list,name=rotation actions.aoe_rotation+=/arcane_orb,if=buff.arcane_charge.stack<2&cooldown.touch_of_the_magi.remains>18 actions.aoe_rotation+=/shifting_power,if=(!talent.evocation|cooldown.evocation.remains>12)&(!talent.arcane_surge|cooldown.arcane_surge.remains>12)&(!talent.touch_of_the_magi|cooldown.touch_of_the_magi.remains>12)&buff.arcane_surge.down actions.aoe_rotation+=/ice_nova,if=buff.arcane_surge.down actions.aoe_rotation+=/nether_tempest,if=(refreshable|!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.arcane_surge.down actions.aoe_rotation+=/arcane_missiles,if=buff.clearcasting.react&talent.arcane_harmony&talent.rune_of_power&cooldown.rune_of_power.remains<(gcd.max*2) actions.aoe_rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack|mana.pct<10 actions.aoe_rotation+=/arcane_explosion actions.aoe_spark_phase=cancel_buff,name=presence_of_mind,if=prev_gcd.1.arcane_blast&cooldown.arcane_surge.remains>75 actions.aoe_spark_phase+=/rune_of_power,if=cooldown.arcane_surge.remains<75&cooldown.arcane_surge.remains>30 actions.aoe_spark_phase+=/radiant_spark actions.aoe_spark_phase+=/use_item,name=timebreaching_talon,if=cooldown.arcane_surge.remains<=(gcd.max*2)&(!variable.talon_dbluse|!buff.bloodlust.up) actions.aoe_spark_phase+=/arcane_explosion,if=buff.arcane_charge.stack>=3&prev_gcd.1.radiant_spark actions.aoe_spark_phase+=/arcane_orb,if=buff.arcane_charge.stack<3,line_cd=15 actions.aoe_spark_phase+=/nether_tempest,if=talent.arcane_echo,line_cd=15 actions.aoe_spark_phase+=/arcane_surge ## actions.aoe_spark_phase+=/wait,sec=0.05,if=cooldown.arcane_surge.remains>75&prev_gcd.1.arcane_blast&!talent.presence_of_mind,line_cd=15 ## actions.aoe_spark_phase+=/wait,sec=0.05,if=prev_gcd.1.arcane_surge,line_cd=15 ## actions.aoe_spark_phase+=/wait,sec=0.05,if=cooldown.arcane_surge.remains<75&debuff.radiant_spark_vulnerability.stack=3&!talent.presence_of_mind,line_cd=15 actions.aoe_spark_phase+=/arcane_barrage,if=cooldown.arcane_surge.remains<75&debuff.radiant_spark_vulnerability.stack=4 actions.aoe_spark_phase+=/arcane_barrage,if=(debuff.radiant_spark_vulnerability.stack=2&cooldown.arcane_surge.remains>75)|(debuff.radiant_spark_vulnerability.stack=1&cooldown.arcane_surge.remains<75) actions.aoe_spark_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage actions.aoe_spark_phase+=/presence_of_mind actions.aoe_spark_phase+=/arcane_blast,if=debuff.radiant_spark_vulnerability.stack=2|debuff.radiant_spark_vulnerability.stack=3 actions.aoe_spark_phase+=/arcane_barrage,if=(debuff.radiant_spark_vulnerability.stack=4&buff.arcane_surge.up)|(debuff.radiant_spark_vulnerability.stack=3&buff.arcane_surge.down) ## actions.aoe_touch_phase+=/variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana actions.aoe_touch_phase+=/meteor actions.aoe_touch_phase+=/arcane_barrage,if=talent.arcane_bombardment&target.health.pct<35&debuff.touch_of_the_magi.remains<=gcd.max actions.aoe_touch_phase+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&active_enemies>=variable.aoe_target_count&cooldown.arcane_orb.remains<=execute_time actions.aoe_touch_phase+=/arcane_missiles,if=buff.clearcasting.react&(talent.arcane_echo&(talent.arcane_harmony|talent.orb_barrage)),chain=1 actions.aoe_touch_phase+=/arcane_missiles,if=buff.clearcasting.stack>1&talent.conjure_mana_gem&cooldown.use_mana_gem.ready&(talent.arcane_echo&(talent.arcane_harmony|talent.orb_barrage)),chain=1 actions.aoe_touch_phase+=/arcane_orb,if=buff.arcane_charge.stack<2 actions.aoe_touch_phase+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.aoe_touch_phase+=/arcane_explosion actions.rop_phase=rune_of_power actions.rop_phase+=/arcane_blast,if=prev_gcd.1.rune_of_power actions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.2.rune_of_power actions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.3.rune_of_power actions.rop_phase+=/arcane_surge actions.rop_phase+=/arcane_blast,if=prev_gcd.1.arcane_blast&prev_gcd.4.rune_of_power actions.rop_phase+=/nether_tempest,if=talent.arcane_echo&active_dot.nether_tempest=0 actions.rop_phase+=/meteor actions.rop_phase+=/arcane_barrage actions.rop_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage actions.rotation+=/arcane_orb,if=buff.arcane_charge.stack<3&(buff.bloodlust.down|mana.pct>70|cooldown.touch_of_the_magi.remains>30) actions.rotation+=/shifting_power,if=(!talent.evocation|cooldown.evocation.remains>12)&(!talent.arcane_surge|cooldown.arcane_surge.remains>12)&(!talent.touch_of_the_magi|cooldown.touch_of_the_magi.remains>12)&buff.arcane_surge.down&fight_remains>15 actions.rotation+=/presence_of_mind,if=buff.arcane_charge.stack<3&target.health.pct<35&talent.arcane_bombardment actions.rotation+=/arcane_blast,if=buff.presence_of_mind.up&target.health.pct<35&talent.arcane_bombardment&buff.arcane_charge.stack<3 actions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.clearcasting.stack=buff.clearcasting.max_stack actions.rotation+=/nether_tempest,if=(refreshable|!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(((buff.temporal_warp.up|mana.pct<10|!talent.shifting_power)&buff.arcane_surge.down)|equipped.neltharions_call_to_chaos)&fight_remains>=12 actions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<50&!talent.evocation&fight_remains>20 actions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<70&variable.conserve_mana&buff.bloodlust.up&cooldown.touch_of_the_magi.remains>5&fight_remains>20 actions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.concentration.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.rotation+=/arcane_blast,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.nether_precision.up actions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<60&variable.conserve_mana&(!talent.rune_of_power|cooldown.rune_of_power.remains>5)&cooldown.touch_of_the_magi.remains>10&cooldown.evocation.remains>40&fight_remains>20 actions.rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.nether_precision.down,interrupt_if=gcd.remains=0&mana.pct>30&buff.nether_precision.up&!talent.arcane_harmony actions.rotation+=/arcane_blast actions.rotation+=/arcane_barrage actions.spark_phase+=/nether_tempest,if=!ticking&variable.opener&buff.bloodlust.up,line_cd=45 actions.spark_phase+=/rune_of_power actions.spark_phase+=/arcane_blast,if=variable.opener&cooldown.arcane_surge.ready&buff.bloodlust.up&mana>=variable.opener_min_mana&buff.rune_of_power.remains>gcd.max*4 actions.spark_phase+=/arcane_missiles,if=variable.opener&buff.bloodlust.up&buff.clearcasting.react&buff.clearcasting.stack>=2&cooldown.radiant_spark.remains<5&buff.nether_precision.down,chain=1 actions.spark_phase+=/arcane_missiles,if=talent.arcane_harmony&buff.arcane_harmony.stack<15&((variable.opener&buff.bloodlust.up)|buff.clearcasting.react&cooldown.radiant_spark.remains<5)&cooldown.arcane_surge.remains<30,chain=1 actions.spark_phase+=/radiant_spark actions.spark_phase+=/use_item,name=timebreaching_talon,if=cooldown.arcane_surge.remains<=(gcd.max*3) ## actions.spark_phase+=/invoke_external_buff,name=power_infusion,if=prev_gcd.1.radiant_spark&cooldown.arcane_surge.remains<=(gcd.max*3) actions.spark_phase+=/nether_tempest,if=active_dot.nether_tempest=0&((prev_gcd.4.radiant_spark&cooldown.arcane_surge.remains<=execute_time)|prev_gcd.5.radiant_spark) actions.spark_phase+=/arcane_surge,if=(!talent.nether_tempest&prev_gcd.4.radiant_spark)|prev_gcd.1.nether_tempest actions.spark_phase+=/meteor,if=(talent.nether_tempest&prev_gcd.6.radiant_spark)|(!talent.nether_tempest&prev_gcd.5.radiant_spark) actions.spark_phase+=/arcane_blast,if=cast_time>=gcd&execute_time=35)&(talent.nether_tempest&prev_gcd.6.radiant_spark|!talent.nether_tempest&prev_gcd.5.radiant_spark)&!talent.meteor ## actions.spark_phase+=/wait,sec=0.05,if=!talent.meteor&(talent.nether_tempest&prev_gcd.6.radiant_spark)|(!talent.nether_tempest&prev_gcd.5.radiant_spark),line_cd=15 actions.spark_phase+=/arcane_barrage,if=debuff.radiant_spark_vulnerability.stack=4 actions.spark_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage&(action.arcane_barrage.in_flight_remains<=0.2|gcd.remains<=0.2) actions.spark_phase+=/arcane_blast actions.spark_phase+=/arcane_barrage actions.standard_cooldowns+=/arcane_surge,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.standard_cooldowns+=/nether_tempest,line_cd=5,if=prev_gcd.1.arcane_surge&talent.arcane_echo actions.standard_cooldowns+=/meteor,if=buff.arcane_surge.up&cooldown.touch_of_the_magi.ready actions.standard_cooldowns+=/arcane_barrage,if=buff.arcane_surge.up&cooldown.touch_of_the_magi.ready actions.standard_cooldowns+=/rune_of_power,if=cooldown.touch_of_the_magi.remains<=(gcd.max*2)&buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.standard_cooldowns+=/meteor,if=cooldown.touch_of_the_magi.remains<=(gcd.max*2)&buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.standard_cooldowns+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage actions.t30_burst_phase+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage ## actions.t30_burst_phase+=/variable,name=conserve_mana,op=set,value=1 actions.t30_burst_phase+=/arcane_orb,if=!debuff.radiant_spark_vulnerability.up&cooldown.radiant_spark.ready&buff.arcane_charge.stack=gcd.max)) actions.t30_burst_phase+=/arcane_missiles,if=buff.clearcasting.react&!debuff.radiant_spark_vulnerability.up&cooldown.radiant_spark.ready&(buff.nether_precision.down|buff.nether_precision.remains22 ## actions.t30_burst_phase+=/wait,sec=0.05,if=prev_gcd.1.arcane_surge,line_cd=15 actions.t30_burst_phase+=/arcane_barrage,if=prev_gcd.1.arcane_surge actions.t30_burst_phase+=/meteor,if=debuff.radiant_spark_vulnerability.stack=3 actions.t30_burst_phase+=/arcane_blast,if=(debuff.radiant_spark_vulnerability.stack>0&debuff.radiant_spark_vulnerability.stack<4)|(cast_time30&buff.nether_precision.up actions.t30_burst_phase+=/arcane_blast ## actions.t30_mini+=/variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana actions.t30_mini+=/radiant_spark actions.t30_mini+=/nether_tempest,if=active_dot.nether_tempest=0&(prev_gcd.1.radiant_spark|prev_gcd.1.shifting_power) actions.t30_mini+=/meteor,if=debuff.radiant_spark_vulnerability.stack=0 actions.t30_mini+=/arcane_barrage,line_cd=5,if=prev_gcd.1.meteor|(prev_gcd.1.nether_tempest&(prev_gcd.2.radiant_spark|prev_gcd.3.radiant_spark)) actions.t30_mini+=/touch_of_the_magi,use_off_gcd=1,if=prev_gcd.1.arcane_barrage&(action.arcane_barrage.in_flight_remains<=0.2|gcd.remains<=0.2) actions.t30_mini+=/arcane_blast,if=((debuff.radiant_spark_vulnerability.stack>0&debuff.radiant_spark_vulnerability.stack<4)|(cast_timeexecute_time|!talent.presence_of_mind),chain=1,interrupt_if=gcd.remains=0&mana.pct>30&buff.nether_precision.up actions.t30_mini+=/arcane_blast actions.t30_mini+=/arcane_barrage actions.t30_rotation+=/arcane_orb,if=buff.arcane_charge.stack<3&(buff.bloodlust.down|mana.pct>70) actions.t30_rotation+=/shifting_power,if=buff.arcane_surge.down&cooldown.arcane_surge.remains>45&set_bonus.tier30_4pc actions.t30_rotation+=/rune_of_power actions.t30_rotation+=/presence_of_mind,if=buff.arcane_charge.stack<3&target.health.pct<35&talent.arcane_bombardment actions.t30_rotation+=/arcane_blast,if=buff.presence_of_mind.up&target.health.pct<35&talent.arcane_bombardment&buff.arcane_charge.stack<3 actions.t30_rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.clearcasting.stack=buff.clearcasting.max_stack actions.t30_rotation+=/nether_tempest,if=(refreshable|!ticking)&buff.arcane_charge.stack=buff.arcane_charge.max_stack&(((buff.temporal_warp.up|mana.pct<10|!talent.shifting_power)&buff.arcane_surge.down)|equipped.neltharions_call_to_chaos)&fight_remains>=12 actions.t30_rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<50&!talent.evocation&fight_remains>20 actions.t30_rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<70&variable.conserve_mana&buff.bloodlust.up&cooldown.touch_of_the_magi.remains>5&fight_remains>20 actions.t30_rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.concentration.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.t30_rotation+=/arcane_blast,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&buff.nether_precision.up actions.t30_rotation+=/arcane_barrage,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&mana.pct<60&variable.conserve_mana&(!talent.rune_of_power|cooldown.rune_of_power.remains>5)&cooldown.touch_of_the_magi.remains>10&cooldown.evocation.remains>40&fight_remains>20 actions.t30_rotation+=/arcane_missiles,if=buff.clearcasting.react&buff.nether_precision.down,interrupt_if=gcd.remains=0&buff.nether_precision.up&(mana.pct>30&cooldown.rune_of_power.remains>30|mana.pct>70) actions.t30_rotation+=/arcane_blast actions.t30_rotation+=/arcane_barrage ## actions.touch_phase+=/variable,name=conserve_mana,op=set,if=debuff.touch_of_the_magi.remains>9,value=1-variable.conserve_mana actions.touch_phase+=/meteor actions.touch_phase+=/presence_of_mind,if=(debuff.touch_of_the_magi.remains<=gcd.max|buff.rune_of_power.remains<=gcd.max) actions.touch_phase+=/arcane_blast,if=buff.presence_of_mind.up&buff.arcane_charge.stack=buff.arcane_charge.max_stack actions.touch_phase+=/arcane_barrage,if=(buff.arcane_harmony.up|(talent.arcane_bombardment&target.health.pct<35))&debuff.touch_of_the_magi.remains<=gcd.max actions.touch_phase+=/arcane_missiles,if=buff.clearcasting.stack>1&talent.conjure_mana_gem&cooldown.use_mana_gem.ready,chain=1 actions.touch_phase+=/arcane_blast,if=buff.nether_precision.up actions.touch_phase+=/arcane_missiles,if=buff.clearcasting.react&(debuff.touch_of_the_magi.remains>execute_time|!talent.presence_of_mind),chain=1,interrupt_if=gcd.remains=0&mana.pct>30&buff.nether_precision.up actions.touch_phase+=/arcane_blast actions.touch_phase+=/arcane_barrage