Death Knight: Change how the level 75 talent is used for blood DKs.
Johnny C. Lam [05-27-14 - 18:27]
Death Knight: Change how the level 75 talent is used for blood DKs.
Follow Sentry Totem's Guide to Using the Level 75 Talents:
http://sentrytotem.com/classes/dk/guide-using-level-75-talents
git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1497 d5049fe3-3747-40f7-a4b5-f36d6801af5f
diff --git a/scripts/ovale_deathknight.lua b/scripts/ovale_deathknight.lua
index 0949ded..f35ebf6 100644
--- a/scripts/ovale_deathknight.lua
+++ b/scripts/ovale_deathknight.lua
@@ -51,48 +51,125 @@ AddFunction BloodDeathStrikeCondition
IncomingDamage(5) >= MaxHealth() * 0.65
}
-AddFunction BloodSingleTargetActions
+AddFunction BloodSingleTargetLevel75Actions
{
- #death_strike,if=incoming_damage_5s>=health.max*0.65
- if BloodDeathStrikeCondition() Spell(death_strike)
-
- if { Rune(blood) < 2 or Rune(unholy) < 2 or Rune(frost) < 2 } and Spell(outbreak) PlagueLeech()
- BloodApplyDiseases()
-
- #soul_reaper,if=target.health.pct-3*(target.health.pct%target.time_to_die)<=35&blood>=1
- if target.HealthPercent() - 3 * { target.HealthPercent() / target.TimeToDie() } <= 35 and Rune(blood) >= 1 Spell(soul_reaper_blood)
-
- if BuffPresent(crimson_scourge_buff) Spell(blood_boil)
- if Rune(blood) >= 1 and { target.DebuffRemains(frost_fever_debuff) <= 10 or target.DebuffRemains(blood_plague_debuff) <= 10 } Spell(blood_boil)
-
if TalentPoints(blood_tap_talent)
{
- # Try to store one death rune in a blood rune socket.
- if BuffStacks(blood_charge_buff) >= 5 and Rune(blood) < 1 Spell(blood_tap)
- if BuffStacks(blood_charge_buff) >= 10
+ # Don't cap FU rune pairs.
+ if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
+ if BuffStacks(blood_charge_buff) >= 12
{
+ # Spend any FU pairs so we can use Blood Tap twice to reactivate an FU pair as death runes.
if Rune(unholy) >= 1 and Rune(frost) >= 1 Spell(death_strike)
- if Rune(unholy) < 1 or Rune(frost) < 1 Spell(blood_tap)
+ # Blood Tap once to reactivate one F/U death rune.
+ if { Rune(unholy) < 1 and Rune(frost) < 1 } or { RunicPower() >= MaxRunicPower() - 10 } Spell(blood_tap)
}
+ # Use Blood Tap a second time to reactivate another F/U death rune to bank a full FU pair.
+ if BuffStacks(blood_charge_buff) >= 5
+ {
+ if Rune(unholy) >= 1 and Rune(frost) < 1 Spell(blood_tap)
+ if Rune(unholy) < 1 and Rune(frost) >= 1 Spell(blood_tap)
+ }
+ # Don't fully deplete a blood rune or else we may proc a blood rune into a death rune.
if Rune(blood) >= 2 Spell(heart_strike)
+ # Rune Strike to build Blood Charges.
+ Spell(rune_strike)
}
if TalentPoints(runic_empowerment_talent)
{
- if Rune(blood) >= 2 Spell(heart_strike)
+ # Keep F/U runes fully depleted for Runic Empowerment procs.
if Rune(unholy) >= 1 and Rune(frost) >= 1 Spell(death_strike)
+ # Don't fully deplete a blood rune or else we may proc a blood rune into a death rune.
+ if Rune(blood) >= 2 Spell(heart_strike)
+ # Rune Strike to proc Runic Empowerment.
+ Spell(rune_strike)
}
if TalentPoints(runic_corruption_talent)
{
# Try to put one rune of each set on cooldown to benefit from Runic Corruption procs.
+ if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
if Rune(blood) >= 2 Spell(heart_strike)
+ # Rune Strike to proc Runic Corruption.
+ Spell(rune_strike)
+ }
+ if not TalentPoints(blood_tap_talent) and not TalentPoints(runic_empowerment_talent) and not TalentPoints(runic_corruption_talent)
+ {
+ # Bank a pair of FU runes for emergency Death Strike.
+ if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
+ # Use up blood runes to generate runic power.
+ if Rune(blood) >= 1 Spell(heart_strike)
+ # Dump runic power.
+ Spell(rune_strike)
+ }
+}
+
+AddFunction BloodAoeLevel75Actions
+{
+ if TalentPoints(blood_tap_talent)
+ {
+ # Don't cap FU rune pairs.
+ if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
+ if BuffStacks(blood_charge_buff) >= 12
+ {
+ # Spend any FU pairs so we can use Blood Tap twice to reactivate an FU pair as death runes.
+ if Rune(unholy) >= 1 and Rune(frost) >= 1 Spell(death_strike)
+ # Blood Tap once to reactivate one F/U death rune.
+ if { Rune(unholy) < 1 and Rune(frost) < 1 } or { RunicPower() >= MaxRunicPower() - 10 } Spell(blood_tap)
+ }
+ # Use Blood Tap a second time to reactivate another F/U death rune to bank a full FU pair.
+ if BuffStacks(blood_charge_buff) >= 5
+ {
+ if Rune(unholy) >= 1 and Rune(frost) < 1 Spell(blood_tap)
+ if Rune(unholy) < 1 and Rune(frost) >= 1 Spell(blood_tap)
+ }
+ # Don't fully deplete a blood rune or else we may proc a blood rune into a death rune.
+ if Rune(blood) >= 2 Spell(blood_boil)
+ # Rune Strike to build Blood Charges.
+ Spell(rune_strike)
+ }
+ if TalentPoints(runic_empowerment_talent)
+ {
+ # Keep F/U runes fully depleted for Runic Empowerment procs.
+ if Rune(unholy) >= 1 and Rune(frost) >= 1 Spell(death_strike)
+ # Don't fully deplete a blood rune or else we may proc a blood rune into a death rune.
+ if Rune(blood) >= 2 Spell(blood_boil)
+ # Rune Strike to proc Runic Empowerment.
+ Spell(rune_strike)
+ }
+ if TalentPoints(runic_corruption_talent)
+ {
+ # Try to put one rune of each set on cooldown to benefit from Runic Corruption procs.
if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
+ if Rune(blood) >= 2 Spell(blood_boil)
+ # Rune Strike to proc Runic Corruption.
+ Spell(rune_strike)
}
if not TalentPoints(blood_tap_talent) and not TalentPoints(runic_empowerment_talent) and not TalentPoints(runic_corruption_talent)
{
- if Rune(blood) >= 2 Spell(heart_strike)
+ # Bank a pair of FU runes for emergency Death Strike.
+ if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
+ # Use up blood runes to generate runic power.
+ if Rune(blood) >= 1 Spell(blood_boil)
+ # Dump runic power.
+ Spell(rune_strike)
}
+}
+
+AddFunction BloodSingleTargetActions
+{
+ #death_strike,if=incoming_damage_5s>=health.max*0.65
+ if BloodDeathStrikeCondition() Spell(death_strike)
- Spell(rune_strike)
+ if { Rune(blood) < 2 or Rune(unholy) < 2 or Rune(frost) < 2 } and Spell(outbreak) PlagueLeech()
+ BloodApplyDiseases()
+
+ #soul_reaper,if=target.health.pct-3*(target.health.pct%target.time_to_die)<=35&blood>=1
+ if target.HealthPercent() - 3 * { target.HealthPercent() / target.TimeToDie() } <= 35 and Rune(blood) >= 1 Spell(soul_reaper_blood)
+
+ if BuffPresent(crimson_scourge_buff) Spell(blood_boil)
+ if Rune(blood) >= 1 and { target.DebuffRemains(frost_fever_debuff) <= 10 or target.DebuffRemains(blood_plague_debuff) <= 10 } Spell(blood_boil)
+
+ BloodSingleTargetLevel75Actions()
Spell(horn_of_winter)
#death_strike,if=(unholy=2|frost=2)&incoming_damage_5s>=health.max*0.4
@@ -119,34 +196,7 @@ AddFunction BloodAoeActions
}
}
- if TalentPoints(blood_tap_talent)
- {
- # Try to store one death rune in a blood rune socket.
- if BuffStacks(blood_charge_buff) >= 5 and Rune(blood) < 1 Spell(blood_tap)
- if BuffStacks(blood_charge_buff) >= 10
- {
- if Rune(unholy) >= 1 and Rune(frost) >= 1 Spell(death_strike)
- if Rune(unholy) < 1 or Rune(frost) < 1 Spell(blood_tap)
- }
- if Rune(blood) >= 2 Spell(blood_boil)
- }
- if TalentPoints(runic_empowerment_talent)
- {
- if Rune(blood) >= 2 Spell(blood_boil)
- if Rune(unholy) >= 1 and Rune(frost) >= 1 Spell(death_strike)
- }
- if TalentPoints(runic_corruption_talent)
- {
- # Try to put one rune of each set on cooldown to benefit from Runic Corruption procs.
- if Rune(blood) >= 2 Spell(blood_boil)
- if Rune(unholy) >= 2 and Rune(frost) >= 2 Spell(death_strike)
- }
- if not TalentPoints(blood_tap_talent) and not TalentPoints(runic_empowerment_talent) and not TalentPoints(runic_corruption_talent)
- {
- if Rune(blood) >= 2 Spell(blood_boil)
- }
-
- Spell(rune_strike)
+ BloodAoeLevel75Actions()
Spell(horn_of_winter)
#death_strike,if=(unholy=2|frost=2)&incoming_damage_5s>=health.max*0.4
diff --git a/scripts/ovale_deathknight_spells.lua b/scripts/ovale_deathknight_spells.lua
index f1fe464..316364a 100644
--- a/scripts/ovale_deathknight_spells.lua
+++ b/scripts/ovale_deathknight_spells.lua
@@ -68,6 +68,7 @@ Define(death_coil 47541)
SpellInfo(death_coil runicpower=40)
SpellInfo(death_coil runicpower=32 if_spell=sudden_doom)
SpellInfo(death_coil buff_runicpower_none=sudden_doom_buff if_spell=sudden_doom)
+ SpellAddBuff(death_coil blood_charge_buff=2 talent=blood_tap_talent)
Define(death_grip 49576)
SpellInfo(death_grip cd=25)
Define(death_pact 48743)
@@ -91,6 +92,7 @@ Define(frost_strike 49143)
SpellInfo(frost_strike runicpower=35)
SpellInfo(frost_strike runicpower=20 if_spell=improved_frost_presence if_stance=deathknight_frost_presence)
SpellAddBuff(frost_strike killing_machine_buff=0 if_spell=killing_machine)
+ SpellAddBuff(frost_strike blood_charge_buff=2 talent=blood_tap_talent)
Define(glyph_of_dark_simulacrum 63331)
Define(glyph_of_icebound_fortitude 58673)
Define(glyph_of_mind_freeze 58686)
@@ -164,6 +166,7 @@ Define(rime_buff 59052)
Define(roiling_blood_talent 1)
Define(rune_strike 56815)
SpellInfo(rune_strike runicpower=30)
+ SpellAddBuff(rune_strike blood_charge_buff=2 talent=blood_tap_talent)
Define(rune_tap 48982)
SpellInfo(rune_tap blood=1 cd=30)
SpellInfo(rune_tap blood=0 addcd=-10 itemset=T15_tank itemcount=2)