JustPaste.it

Kyrian Arcane Mage APL, WoW Shadowlands 9.0.2 by Theamara

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/arcane_intellect
actions.precombat+=/arcane_familiar
actions.precombat+=/conjure_mana_gem
actions.precombat+=/variable,name=am_spam,op=reset,default=0
actions.precombat+=/variable,name=evo_pct,op=reset,default=15
actions.precombat+=/variable,name=prepull_evo,default=-1,op=set,if=variable.prepull_evo=-1,value=1*(runeforge.siphon_storm&active_enemies>1+1*!covenant.necrolord)
actions.precombat+=/variable,name=have_opened,op=set,value=0+1*(active_enemies>2|variable.prepull_evo=1|variable.am_spam=1)
actions.precombat+=/variable,name=final_burn,op=set,value=0
actions.precombat+=/variable,name=rs_max_delay_for_totm,op=reset,default=20
actions.precombat+=/variable,name=rs_max_delay_for_rop,op=reset,default=5
actions.precombat+=/variable,name=rs_max_delay_for_ap,op=reset,default=5
actions.precombat+=/variable,name=ap_max_delay_for_totm,op=reset,default=10
actions.precombat+=/variable,name=rop_max_delay_for_totm,op=reset,default=20
actions.precombat+=/variable,name=totm_max_delay_for_ap,default=-1,op=set,if=variable.totm_max_delay_for_ap=-1,value=5+10*(covenant.night_fae|(conduit.arcane_prodigy&active_enemies<3))
actions.precombat+=/variable,name=totm_max_delay_for_rop,op=reset,default=20
actions.precombat+=/variable,name=barrage_mana_pct,default=-1,op=set,if=variable.barrage_mana_pct=-1,value=((80-(20*covenant.night_fae))-(mastery_value*100))
actions.precombat+=/variable,name=ap_minimum_mana_pct,op=reset,default=15
actions.precombat+=/variable,name=harmony_cap,op=reset,default=12
actions.precombat+=/variable,name=max_traveltime,op=reset,default=0
actions.precombat+=/variable,name=inverted_opener,default=-1,op=set,if=variable.inverted_opener=-1,value=1*(talent.rune_of_power&(talent.arcane_echo|!covenant.kyrian)&(!covenant.necrolord|active_enemies=1|runeforge.siphon_storm))
actions.precombat+=/variable,name=ap_on_use,op=set,value=equipped.macabre_sheet_music|equipped.gladiators_badge|equipped.gladiators_medallion|equipped.darkmoon_deck_putrescence|equipped.inscrutable_quantum_device|equipped.soulletting_ruby|equipped.sunblood_amethyst|equipped.wakeners_frond|equipped.flame_of_battle
actions.precombat+=/snapshot_stats
actions.precombat+=/mirror_image
actions.precombat+=/frostbolt,if=!variable.prepull_evo=1&runeforge.disciplinary_command
actions.precombat+=/evocation,if=variable.prepull_evo=1

# Executed every time the actor is available.
actions=counterspell
actions+=/variable,name=have_opened,op=set,value=1,if=variable.have_opened=0&prev_gcd.1.evocation&!(runeforge.siphon_storm|runeforge.temporal_warp)
actions+=/variable,name=have_opened,op=set,value=1,if=variable.have_opened=0&buff.arcane_power.down&cooldown.arcane_power.remains&(runeforge.siphon_storm|runeforge.temporal_warp)
actions+=/variable,name=final_burn,op=set,value=1,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&!buff.rule_of_threes.up&fight_remains<=((mana%action.arcane_blast.cost)*action.arcane_blast.execute_time)
actions+=/use_mana_gem,if=mana.pct<=65
actions+=/potion,if=buff.arcane_power.up
actions+=/time_warp,if=runeforge.temporal_warp&buff.exhaustion.up&(cooldown.arcane_power.ready|fight_remains<=40)
actions+=/lights_judgment,if=buff.arcane_power.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down
actions+=/bag_of_tricks,if=buff.arcane_power.down&buff.rune_of_power.down&debuff.touch_of_the_magi.down
actions+=/berserking,if=buff.arcane_power.up
actions+=/blood_fury,if=buff.arcane_power.up
actions+=/fireblood,if=buff.arcane_power.up
actions+=/ancestral_call,if=buff.arcane_power.up
actions+=/use_items,if=buff.arcane_power.up
actions+=/use_item,effect_name=gladiators_badge,if=buff.arcane_power.up|cooldown.arcane_power.remains>=55&debuff.touch_of_the_magi.up
actions+=/use_item,name=soulletting_ruby,if=cooldown.arcane_power.remains<=3
actions+=/use_item,name=empyreal_ordnance,if=cooldown.arcane_power.remains<=20
actions+=/use_item,name=dreadfire_vessel,if=cooldown.arcane_power.remains>=20|!variable.ap_on_use=1|(time=0&variable.inverted_opener=1&runeforge.siphon_storm)
actions+=/use_item,name=soul_igniter,if=cooldown.arcane_power.remains>=20|!variable.ap_on_use=1|(time=0&variable.inverted_opener=1&runeforge.siphon_storm)
actions+=/use_item,name=glyph_of_assimilation,if=cooldown.arcane_power.remains>=20|!variable.ap_on_use=1|(time=0&variable.inverted_opener=1&runeforge.siphon_storm)
actions+=/use_item,name=macabre_sheet_music,if=cooldown.arcane_power.remains<=5&(!variable.inverted_opener=1|time>30)
actions+=/use_item,name=macabre_sheet_music,if=cooldown.arcane_power.remains<=5&variable.inverted_opener=1&buff.rune_of_power.up&buff.rune_of_power.remains<=(10-5*runeforge.siphon_storm)&time<30
actions+=/call_action_list,name=aoe,if=active_enemies>2
actions+=/call_action_list,name=cooldowns
actions+=/call_action_list,name=rotation,if=variable.final_burn=0
actions+=/call_action_list,name=final_burn,if=variable.final_burn=1
actions+=/call_action_list,name=movement

actions.aoe=cancel_action,if=action.evocation.channeling&mana.pct>=95
actions.aoe+=/evocation,if=mana.pct<15&cooldown.touch_of_the_magi.remains<=(execute_time+action.touch_of_the_magi.execute_time)&cooldown.arcane_power.remains<=(execute_time+action.touch_of_the_magi.execute_time+action.arcane_power.execute_time)&buff.rune_of_power.down&buff.arcane_power.down&debuff.touch_of_the_magi.down&!dot.radiant_spark.remains
actions.aoe+=/evocation,if=mana.pct<30&cooldown.rune_of_power.remains<=(execute_time+action.rune_of_power.execute_time)&cooldown.touch_of_the_magi.remains<=(execute_time+action.rune_of_power.execute_time+action.radiant_spark.execute_time)&cooldown.arcane_power.remains>40
actions.aoe+=/arcane_missiles,if=buff.arcane_harmony.stack<variable.harmony_cap&cooldown.touch_of_the_magi.remains<=3
actions.aoe+=/radiant_spark,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.touch_of_the_magi.remains<execute_time&cooldown.arcane_power.remains<=(execute_time+action.touch_of_the_magi.execute_time)&mana.pct>=20
actions.aoe+=/touch_of_the_magi,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.arcane_power.remains<=execute_time&dot.radiant_spark.remains
actions.aoe+=/arcane_power,if=buff.arcane_harmony.stack>=variable.harmony_cap&debuff.touch_of_the_magi.up&buff.rune_of_power.down
actions.aoe+=/rune_of_power,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.touch_of_the_magi.remains<=(execute_time+action.radiant_spark.execute_time)&cooldown.arcane_power.remains>40&mana.pct>=35
actions.aoe+=/radiant_spark,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.touch_of_the_magi.remains<execute_time&buff.rune_of_power.up&cooldown.arcane_power.remains>30
actions.aoe+=/touch_of_the_magi,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.arcane_power.remains>40&buff.rune_of_power.up&dot.radiant_spark.remains
actions.aoe+=/rune_of_power,if=buff.arcane_power.down&cooldown.arcane_power.remains>8&cooldown.arcane_power.remains<40&buff.rune_of_power.down&buff.arcane_power.down
actions.aoe+=/presence_of_mind,if=dot.radiant_spark.remains>6&debuff.touch_of_the_magi.up&active_enemies<=5

actions.aoe+=/arcane_barrage,if=debuff.radiant_spark_vulnerability.stack=4
actions.aoe+=/arcane_blast,if=dot.radiant_spark.remains&debuff.touch_of_the_magi.remains>(variable.max_traveltime+execute_time)&active_enemies<=5&(debuff.radiant_spark_vulnerability.stack=0|debuff.radiant_spark_vulnerability.stack<4)
actions.aoe+=/arcane_explosion,if=dot.radiant_spark.remains&active_enemies>5&(debuff.radiant_spark_vulnerability.stack=0|debuff.radiant_spark_vulnerability.stack<4)

actions.aoe+=/arcane_orb,if=buff.arcane_charge.stack=0
actions.aoe+=/arcane_barrage,if=buff.arcane_charge.stack=4
actions.aoe+=/arcane_missiles,if=buff.clearcasting.up&buff.arcane_harmony.stack<variable.harmony_cap
actions.aoe+=/evocation,if=mana.pct<15
actions.aoe+=/arcane_explosion
actions.aoe+=/arcane_explosion,if=buff.arcane_charge.stack=buff.arcane_charge.max_stack&prev_gcd.1.arcane_barrage
actions.aoe+=/arcane_barrage

actions.cooldowns=cancel_action,if=action.evocation.channeling&mana.pct>=95&(!runeforge.siphon_storm|buff.siphon_storm.stack=buff.siphon_storm.max_stack)
actions.cooldowns+=/evocation,if=mana.pct<15&cooldown.touch_of_the_magi.remains<=(execute_time+action.touch_of_the_magi.execute_time)&cooldown.arcane_power.remains<=(execute_time+action.touch_of_the_magi.execute_time+action.arcane_power.execute_time)&buff.rune_of_power.down&buff.arcane_power.down&debuff.touch_of_the_magi.down&!dot.radiant_spark.remains
actions.cooldowns+=/evocation,if=mana.pct<30&cooldown.rune_of_power.remains<=(execute_time+action.rune_of_power.execute_time)&cooldown.touch_of_the_magi.remains<=(execute_time+action.rune_of_power.execute_time+action.radiant_spark.execute_time)&cooldown.arcane_power.remains>40
actions.cooldowns+=/arcane_missiles,if=buff.arcane_harmony.stack<variable.harmony_cap&cooldown.radiant_spark.remains<=(2+(execute_time+action.radiant_spark.execute_time))&cooldown.touch_of_the_magi.remains<=(2+(execute_time+action.radiant_spark.execute_time+action.touch_of_the_magi.execute_time))&cooldown.arcane_power.remains<=(2+(execute_time+action.radiant_spark.execute_time+action.touch_of_the_magi.execute_time+action.arcane_power.execute_time))
actions.cooldowns+=/arcane_missiles,if=buff.arcane_harmony.stack<variable.harmony_cap&cooldown.rune_of_power.remains<=(2+(execute_time+action.rune_of_power.execute_time))&cooldown.radiant_spark.remains<=(2+(execute_time+action.rune_of_power.execute_time+action.radiant_spark.execute_time))&cooldown.touch_of_the_magi.remains<=(2+(execute_time+action.rune_of_power.execute_time+action.radiant_spark.execute_time+action.touch_of_the_magi.execute_time))&cooldown.arcane_power.remains
actions.cooldowns+=/arcane_missiles,if=buff.arcane_harmony.stack<variable.harmony_cap&cooldown.radiant_spark.remains<=(2+(execute_time+action.radiant_spark.execute_time))&cooldown.arcane_power.remains>=30&cooldown.rune_of_power.remains>=30
actions.cooldowns+=/radiant_spark,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.touch_of_the_magi.remains<execute_time&cooldown.arcane_power.remains<=(execute_time+action.touch_of_the_magi.execute_time)&mana.pct>15
actions.cooldowns+=/touch_of_the_magi,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.arcane_power.remains<=execute_time&dot.radiant_spark.remains
actions.cooldowns+=/arcane_power,if=buff.arcane_harmony.stack>=variable.harmony_cap&debuff.touch_of_the_magi.up&buff.rune_of_power.down
actions.cooldowns+=/rune_of_power,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.touch_of_the_magi.remains<=(execute_time+action.radiant_spark.execute_time)&cooldown.arcane_power.remains>40&mana.pct>=35
actions.cooldowns+=/radiant_spark,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.touch_of_the_magi.remains<execute_time&buff.rune_of_power.up
actions.cooldowns+=/touch_of_the_magi,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.arcane_power.remains>40&buff.rune_of_power.up&dot.radiant_spark.remains
actions.cooldowns+=/rune_of_power,if=cooldown.touch_of_the_magi.remains>10&cooldown.arcane_power.remains>30&buff.arcane_power.down
actions.cooldowns+=/radiant_spark,if=buff.arcane_harmony.stack>=variable.harmony_cap&cooldown.arcane_power.remains>=25&cooldown.rune_of_power.remains>=25&buff.arcane_harmony.stack>=variable.harmony_cap&mana.pct>=15
actions.cooldowns+=/presence_of_mind,if=buff.arcane_charge.stack<4&buff.arcane_charge.stack>0&buff.arcane_power.remains|buff.arcane_charge.stack<4&buff.arcane_charge.stack>0&buff.rune_of_power.remains&debuff.touch_of_the_magi.remains
actions.cooldowns+=/arcane_blast,if=buff.presence_of_mind.stack>0

actions.final_burn=arcane_barrage,if=buff.arcane_harmony.stack>=variable.harmony_cap&buff.arcane_charge.stack=4
actions.final_burn+=/arcane_missiles,if=buff.clearcasting.react&buff.arcane_harmony.stack<variable.harmony_cap
actions.final_burn+=/arcane_orb
actions.final_burn+=/arcane_blast,if=buff.arcane_charge.stack>1
actions.final_burn+=/arcane_barrage,if=buff.arcane_harmony.stack>0
actions.final_burn+=/arcane_missiles

actions.movement=blink_any,if=movement.distance>=10
actions.movement+=/presence_of_mind
actions.movement+=/arcane_missiles,if=movement.distance<10
actions.movement+=/arcane_orb
actions.movement+=/arcane_barrage
actions.movement+=/fire_blast
actions.movement+=/arcane_explosion

actions.rotation=arcane_orb,if=buff.arcane_charge.stack<2&buff.arcane_power.up
actions.rotation+=/arcane_orb,if=buff.arcane_charge.stack<2&!(cooldown.arcane_power.remains<=10&cooldown.touch_of_the_magi.remains<=10&cooldown.radiant_spark.remains<=5)
actions.rotation+=/arcane_missiles,if=buff.arcane_charge.stack>1&buff.arcane_harmony.stack<variable.harmony_cap
actions.rotation+=/arcane_missiles,if=cooldown.arcane_orb.remains<4&buff.arcane_harmony.stack<variable.harmony_cap

actions.rotation+=/arcane_barrage,if=debuff.radiant_spark_vulnerability.stack=4
actions.rotation+=/arcane_blast,if=dot.radiant_spark.remains&debuff.touch_of_the_magi.remains>(variable.max_traveltime+execute_time)&(debuff.radiant_spark_vulnerability.stack=0|debuff.radiant_spark_vulnerability.stack<4)
actions.rotation+=/arcane_orb,if=dot.radiant_spark.remains>5&debuff.radiant_spark_vulnerability.stack=0&buff.rune_of_power.down
actions.rotation+=/arcane_blast,if=dot.radiant_spark.remains>(variable.max_traveltime+execute_time)&debuff.radiant_spark_vulnerability.stack>0&debuff.radiant_spark_vulnerability.stack<4&buff.rune_of_power.down

actions.rotation+=/arcane_barrage,if=buff.arcane_charge.stack=4&buff.arcane_harmony.stack>=variable.harmony_cap
actions.rotation+=/evocation,if=mana.pct<15
actions.rotation+=/arcane_blast,if=buff.arcane_charge.stack>1
actions.rotation+=/arcane_barrage,if=buff.arcane_harmony.stack>0
actions.rotation+=/arcane_missiles
actions.rotation+=/evocation