Quantcast

Mage: Update to SimC Arcane APL as of 2014-06-03.

Johnny C. Lam [06-04-14 - 20:24]
Mage: Update to SimC Arcane APL as of 2014-06-03.

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1517 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
scripts/ovale_mage.lua
scripts/simulationcraft_mage_arcane_t16h.lua
diff --git a/scripts/ovale_mage.lua b/scripts/ovale_mage.lua
index 82d9cd2..66d56c5 100644
--- a/scripts/ovale_mage.lua
+++ b/scripts/ovale_mage.lua
@@ -42,8 +42,14 @@ AddFunction ArcaneAoeActions

 AddFunction ArcaneSingleTargetActions
 {
-	#arcane_barrage,if=buff.alter_time.up&buff.alter_time.remains<2
-	if BuffPresent(alter_time_buff) and BuffRemains(alter_time_buff) < 2 Spell(arcane_barrage)
+	#arcane_barrage,if=buff.alter_time.up&buff.alter_time.remains<action.arcane_blast.cast_time
+	if BuffPresent(alter_time_buff) and BuffRemains(alter_time_buff) < CastTime(arcane_blast) Spell(arcane_barrage)
+	#nether_tempest,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>6
+	if TalentPoints(nether_tempest_talent) and { not target.DebuffPresent(nether_tempest_debuff) or target.DebuffRemains(nether_tempest_debuff) < target.TickTime(nether_tempest_debuff) } and target.TimeToDie() > 6 Spell(nether_tempest)
+	#living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
+	if TalentPoints(living_bomb_talent) and { not target.DebuffPresent(living_bomb_debuff) or target.DebuffRemains(living_bomb_debuff) < target.TickTime(living_bomb_debuff) } and target.TimeToDie() > target.TickTime(living_bomb_debuff) * 3 Spell(living_bomb)
+	#frost_bomb,if=!ticking&target.time_to_die>tick_time*3
+	if TalentPoints(frost_bomb_talent) and not target.DebuffPresent(frost_bomb_debuff) and target.TimeToDie() > target.TickTime(frost_bomb_debuff) * 3 Spell(frost_bomb)
 	#arcane_missiles,if=buff.alter_time.up
 	if BuffPresent(arcane_missiles_buff) and BuffPresent(alter_time_buff) Spell(arcane_missiles)
 	#arcane_blast,if=buff.alter_time.up
@@ -52,12 +58,6 @@ AddFunction ArcaneSingleTargetActions
 	if BuffPresent(profound_magic_buff) and DebuffStacks(arcane_charge_debuff) > 3 and ManaPercent() > 93 Spell(arcane_blast)
 	#arcane_missiles,if=(buff.arcane_missiles.stack=2&cooldown.arcane_power.remains>0)|(buff.arcane_charge.stack>=4&cooldown.arcane_power.remains>8)
 	if BuffPresent(arcane_missiles_buff) and { { BuffStacks(arcane_missiles_buff) == 2 and SpellCooldown(arcane_power) > 0 } or { DebuffStacks(arcane_charge_debuff) >= 4 and SpellCooldown(arcane_power) > 8 } } Spell(arcane_missiles)
-	#nether_tempest,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>6
-	if TalentPoints(nether_tempest_talent) and { not target.DebuffPresent(nether_tempest_debuff) or target.DebuffRemains(nether_tempest_debuff) < target.TickTime(nether_tempest_debuff) } and target.TimeToDie() > 6 Spell(nether_tempest)
-	#living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
-	if TalentPoints(living_bomb_talent) and { not target.DebuffPresent(living_bomb_debuff) or target.DebuffRemains(living_bomb_debuff) < target.TickTime(living_bomb_debuff) } and target.TimeToDie() > target.TickTime(living_bomb_debuff) * 3 Spell(living_bomb)
-	#frost_bomb,if=!ticking&target.time_to_die>tick_time*3
-	if TalentPoints(frost_bomb_talent) and not target.DebuffPresent(frost_bomb_debuff) and target.TimeToDie() > target.TickTime(frost_bomb_debuff) * 3 Spell(frost_bomb)
 	#arcane_barrage,if=buff.arcane_charge.stack>=4&mana.pct<95
 	if DebuffStacks(arcane_charge_debuff) >= 4 and ManaPercent() < 95 Spell(arcane_barrage)
 	#presence_of_mind
@@ -68,8 +68,8 @@ AddFunction ArcaneSingleTargetActions

 AddFunction ArcaneSingleTargetMovingActions
 {
-	#arcane_barrage,if=buff.alter_time.up&buff.alter_time.remains<2
-	if BuffPresent(alter_time_buff) and BuffRemains(alter_time_buff) < 2 Spell(arcane_barrage)
+	#arcane_barrage,if=buff.alter_time.up&buff.alter_time.remains<action.arcane_blast.cast_time
+	if BuffPresent(alter_time_buff) and BuffRemains(alter_time_buff) < CastTime(arcane_blast) Spell(arcane_barrage)
 	#nether_tempest,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>6
 	if TalentPoints(nether_tempest_talent) and { not target.DebuffPresent(nether_tempest_debuff) or target.DebuffRemains(nether_tempest_debuff) < target.TickTime(nether_tempest_debuff) } and target.TimeToDie() > 6 Spell(nether_tempest)
 	#living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
@@ -139,12 +139,13 @@ AddFunction ArcaneDefaultCdActions
 		if BuffExpires(alter_time_buff) and { BuffPresent(arcane_power_buff) or SpellCooldown(arcane_power) > 15 or target.TimeToDie() < 18 } Spell(blood_fury)
 		#berserking,if=buff.alter_time.down&(buff.arcane_power.up|target.time_to_die<18)
 		if BuffExpires(alter_time_buff) and { BuffPresent(arcane_power_buff) or target.TimeToDie() < 18 } Spell(berserking)
-		#jade_serpent_potion,if=buff.alter_time.down&(buff.arcane_power.up|target.time_to_die<50)
-		if BuffExpires(alter_time_buff) and { BuffPresent(arcane_power_buff) or target.TimeToDie() < 50 } UsePotionIntellect()
+		#jade_serpent_potion,if=buff.alter_time.down&((cooldown.alter_time.remains=0&buff.arcane_power.up)|target.time_to_die<50)
+		if BuffExpires(alter_time_buff) and { { not SpellCooldown(alter_time) > 0 and BuffPresent(arcane_power_buff) } or target.TimeToDie() < 50 } UsePotionIntellect()
 		#use_item,slot=hands,sync=alter_time_activate,if=buff.alter_time.down
 		if not SpellCooldown(alter_time_activate) > 0 and BuffExpires(alter_time_buff) UseItemActions()
-		#alter_time,if=buff.alter_time.down&buff.arcane_power.up
+		#alter_time,if=buff.alter_time.down&buff.arcane_power.up&trinket.stat.intellect.cooldown_remains>15
 		if BuffExpires(alter_time_buff) and BuffPresent(arcane_power_buff) Spell(alter_time)
+		#cancel_buff,name=alter_time,if=buff.alter_time.remains<trinket.stat.intellect.cooldown_remains-109
 		#use_item,slot=hands,if=(cooldown.alter_time_activate.remains>45|target.time_to_die<25)&buff.rune_of_power.remains>20
 		if TalentPoints(rune_of_power_talent) and { SpellCooldown(alter_time_activate) > 45 or target.TimeToDie() < 25 } and RuneOfPowerRemains() > 20 UseItemActions()
 		#use_item,slot=hands,if=(cooldown.alter_time_activate.remains>45|target.time_to_die<25)&buff.invokers_energy.remains>20
diff --git a/scripts/simulationcraft_mage_arcane_t16h.lua b/scripts/simulationcraft_mage_arcane_t16h.lua
index c8a1f5c..20584da 100644
--- a/scripts/simulationcraft_mage_arcane_t16h.lua
+++ b/scripts/simulationcraft_mage_arcane_t16h.lua
@@ -29,8 +29,10 @@ AddFunction ArcaneAoeActions

 AddFunction ArcaneSingleTargetActions
 {
-	#arcane_barrage,if=buff.alter_time.up&buff.alter_time.remains<2
-	if BuffPresent(alter_time_buff) and BuffRemains(alter_time_buff) < 2 Spell(arcane_barrage)
+	#arcane_barrage,if=buff.alter_time.up&buff.alter_time.remains<action.arcane_blast.cast_time
+	if BuffPresent(alter_time_buff) and BuffRemains(alter_time_buff) < CastTime(arcane_blast) Spell(arcane_barrage)
+	#living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
+	if { not target.DebuffPresent(living_bomb_debuff) or target.DebuffRemains(living_bomb_debuff) < target.TickTime(living_bomb_debuff) } and target.TimeToDie() > target.TickTime(living_bomb_debuff) * 3 Spell(living_bomb)
 	#arcane_missiles,if=buff.alter_time.up
 	if BuffPresent(alter_time_buff) Spell(arcane_missiles)
 	#arcane_blast,if=buff.alter_time.up
@@ -39,8 +41,6 @@ AddFunction ArcaneSingleTargetActions
 	if BuffPresent(profound_magic_buff) and DebuffStacks(arcane_charge_debuff) > 3 and ManaPercent() > 93 Spell(arcane_blast)
 	#arcane_missiles,if=(buff.arcane_missiles.stack=2&cooldown.arcane_power.remains>0)|(buff.arcane_charge.stack>=4&cooldown.arcane_power.remains>8)
 	if { BuffStacks(arcane_missiles_buff) == 2 and SpellCooldown(arcane_power) > 0 } or { DebuffStacks(arcane_charge_debuff) >= 4 and SpellCooldown(arcane_power) > 8 } Spell(arcane_missiles)
-	#living_bomb,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>tick_time*3
-	if { not target.DebuffPresent(living_bomb_debuff) or target.DebuffRemains(living_bomb_debuff) < target.TickTime(living_bomb_debuff) } and target.TimeToDie() > target.TickTime(living_bomb_debuff) * 3 Spell(living_bomb)
 	#arcane_barrage,if=buff.arcane_charge.stack>=4&mana.pct<95
 	if DebuffStacks(arcane_charge_debuff) >= 4 and ManaPercent() < 95 Spell(arcane_barrage)
 	#presence_of_mind
@@ -76,12 +76,13 @@ AddFunction ArcaneDefaultActions
 	if TimeToBloodlust() > 180 and { { RuneOfPowerRemains() >= SpellData(arcane_power_buff duration) and BuffStacks(arcane_missiles_buff) == 2 and DebuffStacks(arcane_charge_debuff) > 2 } or target.TimeToDie() < SpellData(arcane_power_buff duration) + 5 } Spell(arcane_power)
 	#berserking,if=buff.alter_time.down&(buff.arcane_power.up|target.time_to_die<18)
 	if BuffExpires(alter_time_buff) and { BuffPresent(arcane_power_buff) or target.TimeToDie() < 18 } Spell(berserking)
-	#jade_serpent_potion,if=buff.alter_time.down&(buff.arcane_power.up|target.time_to_die<50)
-	if BuffExpires(alter_time_buff) and { BuffPresent(arcane_power_buff) or target.TimeToDie() < 50 } UsePotionIntellect()
+	#jade_serpent_potion,if=buff.alter_time.down&((cooldown.alter_time.remains=0&buff.arcane_power.up)|target.time_to_die<50)
+	if BuffExpires(alter_time_buff) and { { not SpellCooldown(alter_time) > 0 and BuffPresent(arcane_power_buff) } or target.TimeToDie() < 50 } UsePotionIntellect()
 	#use_item,slot=hands,sync=alter_time_activate,if=buff.alter_time.down
 	if not SpellCooldown(alter_time_activate) > 0 and BuffExpires(alter_time_buff) UseItemActions()
-	#alter_time,if=buff.alter_time.down&buff.arcane_power.up
-	if BuffExpires(alter_time_buff) and BuffPresent(arcane_power_buff) Spell(alter_time)
+	#alter_time,if=buff.alter_time.down&buff.arcane_power.up&trinket.stat.intellect.cooldown_remains>15
+	if BuffExpires(alter_time_buff) and BuffPresent(arcane_power_buff) and { ItemCooldown(Trinket0Slot) + ItemCooldown(Trinket1Slot) } > 15 Spell(alter_time)
+	#cancel_buff,name=alter_time,if=buff.alter_time.remains<trinket.stat.intellect.cooldown_remains-109
 	#use_item,slot=hands,if=(cooldown.alter_time_activate.remains>45|target.time_to_die<25)&buff.rune_of_power.remains>20
 	if { SpellCooldown(alter_time_activate) > 45 or target.TimeToDie() < 25 } and RuneOfPowerRemains() > 20 UseItemActions()
 	#run_action_list,name=aoe,if=active_enemies>=6
@@ -143,6 +144,7 @@ AddIcon mastery=arcane help=main
 # profound_magic_buff
 # rune_of_power
 # time_warp
+# trinket_stat_intellect_buff
 ]]
 	OvaleScripts:RegisterScript("MAGE", name, desc, code, "reference")
 end
\ No newline at end of file