Unholy priority list finished, still needs some code optimizations
Taracque [12-09-14 - 17:59]
Unholy priority list finished, still needs some code optimizations
diff --git a/DKCrutch.lua b/DKCrutch.lua
index d01a9bc..2662199 100755
--- a/DKCrutch.lua
+++ b/DKCrutch.lua
@@ -48,6 +48,7 @@ DKCrutch.SpellList = {
["Blood Charge"] = GetSpellInfo(114851),
["Unholy Blight"] = GetSpellInfo(115989),
["Breath of Sindragosa"] = GetSpellInfo(152279),
+ ["Mark of Sindragosa"] = GetSpellInfo(155166),
-- draenor perks --
-- unholy --
@@ -1122,18 +1123,99 @@ function DKCrutch:AdviseUnholyAbility()
-- Breath of Sindragosa, if runic power > 75
if (DKCrutch.tier7talent == 21209) and (DKCrutch.SpellList["Breath of Sindragosa"]) then
- local dccd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Breath of Sindragosa"]);
- if (dccd) and (dccd <= 1) and (UnitPower("player", 6) > 75) then
+ local bscd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Breath of Sindragosa"]);
+ if (bscd) and (bscd <= 1) and (UnitPower("player", 6) > 75) then
return "Breath of Sindragosa";
end
-
-- If Breath of Sindragosa active focus on RP generation
+ local msName, _, _, _, _, _, msExpiration, msUnitCaster = DKCrutch:hasDeBuff("target", DKCrutch.SpellList["Mark of Sindragosa"], "player");
+ if (msName) and (msExpiration - GetTime() > 0) then
+ if (UnitPower("player", 6) < 88) then
+ local ddcd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Death and Decay"])
+ if (ddcd) and (ddcd <= 1) then
+ return "Death and Decay";
+ end
+ end
+ if (UnitPower("player", 6) < 77) then
+ local fscd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Festering Strike"])
+ if (fscd) and (fscd <= 1) then
+ return "Festering Strike";
+ end
+ end
+ if (UnitPower("player", 6) < 88) then
+ local sscd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Scourge Strike"])
+ if (sscd) and (sscd <= 1) then
+ return "Scourge Strike";
+ end
+ end
+ if (DKCrutch.SpellList["Blood Tap"]) then
+ local name,_,_,count = DKCrutch:hasBuff("player", DKCrutch.SpellList["Blood Charge"])
+ if (count) and (count>=5) and (DKCrutch.depletedCount>0) then
+ return "Blood Tap"
+ end
+ end
+ if (DKCrutch.tier1talent == 19166) and (DKCrutch.SpellList["Plague Leech"]) then
+ if (DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Plague Leech"]) <= 1) then
+ return "Plague Leech";
+ end
+ end
+ cd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Empower Rune Weapon"])
+ if (cd) and (cd <= 1) then
+ return "Empower Rune Weapon"
+ end
+ if (DKCrutch:hasBuff("player", DKCrutch.SpellList["Sudden Doom"])) then
+ return "Death Coil";
+ end
+ end
+ -- start generate runic power for Breath of Sindragosa
+ if (bscd < 7) and (UnitPower("player", 6) < 88) then
+ local ddcd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Death and Decay"])
+ if (ddcd) and (ddcd <= 1) then
+ return "Death and Decay"
+ end
+ local sscd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Scourge Strike"])
+ if (sscd) and (sscd <= 1) then
+ return "Scourge Strike";
+ end
+ local fscd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Festering Strike"])
+ if (fscd) and (fscd <= 1) then
+ return "Festering Strike";
+ end
+ end
+ end
+
+ -- Death and Decay if 2 unholy runes are up
+ if (DKCrutch.SpellList["Death and Decay"]) and (DKCrutch.runesUp[2] >= 2) then
+ local ddcd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Death and Decay"])
+ if (ddcd) and (ddcd <= 1) then
+ return "Death and Decay";
+ end
end
- -- Blood Tap if have at least 10 charges, and have >=32 runic power
+ -- Scourge Strike if 2 unholy runes are up
+ if (DKCrutch.SpellList["Scourge Strike"]) and (DKCrutch.runesUp[2] >= 2) then
+ local sscd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Scourge Strike"])
+ if (sscd) and (sscd <= 1) then
+ return "Scourge Strike";
+ end
+ end
+
+ -- Death coil if Sudden Doom proc, or runic power > 90
+ local dccd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Death Coil"])
+ if (dccd) and (dccd <= 1) and (
+ (
+ (DKCrutch:hasBuff("player", DKCrutch.SpellList["Sudden Doom"])) and
+ (UnitPower("player", 6) >= 30)
+ )
+ or (UnitPower("player", 6) > 90)
+ ) then
+ return "Death Coil"
+ end
+
+ -- Blood Tap if have at least 10 charges, and have >=30 runic power
if (DKCrutch.SpellList["Blood Tap"]) then
local name,_,_,count = DKCrutch:hasBuff("player", DKCrutch.SpellList["Blood Charge"])
- if (count) and (count>10) and (DKCrutch.depletedCount>0) and (UnitPower("player", 6) >= 32) then
+ if (count) and (count>10) and (DKCrutch.depletedCount>0) and (UnitPower("player", 6) >= 30) then
return "Blood Tap"
end
end
@@ -1172,17 +1254,6 @@ function DKCrutch:AdviseUnholyAbility()
end
end
- -- Death coil if Sudden Doom proc, or runic power > 90
- local dccd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Death Coil"])
- if (dccd) and (dccd <= 1) and (
- (
- (DKCrutch:hasBuff("player", DKCrutch.SpellList["Sudden Doom"])) and
- (UnitPower("player", 6) >= 30)
- )
- or (UnitPower("player", 6) > 90)
- ) then
- return "Death Coil"
- end
-- Scourge Strike
if (sscd) and (sscd <= 1) then
@@ -1195,12 +1266,19 @@ function DKCrutch:AdviseUnholyAbility()
end
-- Death Coil
- if (dscd) and (dccd <= 1) and (IsUsableSpell(DKCrutch.SpellList["Death Coil"])) then
+ if (dccd) and (dccd <= 1) and (IsUsableSpell(DKCrutch.SpellList["Death Coil"])) then
if (UnitPower("player", 6) >= 30) then
return "Death Coil"
end
end
-
+
+ -- Plague Leech
+ if (DKCrutch.tier1talent == 19166) and (DKCrutch.SpellList["Plague Leech"]) then
+ if (DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Plague Leech"]) <= 1) then
+ return "Plague Leech";
+ end
+ end
+
-- Empower Rune Weapon
cd = DKCrutch:GetSpellCooldownRemaining(DKCrutch.SpellList["Empower Rune Weapon"])
if (cd) and (cd <= 1) and (DKCrutch.runesUp[2] == 0) then