SInce there was no Unholy spec in the maxdps files i have been working on my own custom rotation.
Its posted below in the codebox. If you have time please try it out and leave comments on what to improve on it.
Code: Select all
function(_, timeShift, currentSpell, gcd, talents)
local _SoulReaper = 130736;
local _VirulentPlague = 191587;
local _Outbreak = 77575;
local _DarkTransformation = 63560;
local _FesteringStrike = 85948;
local _FesteringWound = 197147;
local _Castigator = 207305;
local _Apocalypse = 220143;
local _ScourgeStrike = 55090;
local _ClawingShadows = 207311;
local _DeathCoil = 47541;
local _ShadowInfusion = 198943;
local _ScourgeofWorlds = 191747;
local _DeathandDecay = 43265;
local _Defile = 152280;
local _Epidemic = 207317;
local _ArmyoftheDead = 42650;
local _PortaltotheUnderworld = 191637;
local _ArmiesoftheDamned = 191731;
local _SummonGargoyle = 49206;
local _Heroism = 32182;
local _Bloodlust = 2825;
local _TimeWarp = 80353;
local _DarkArbiter = 207349;
local _AntiMagicShell = 48707;
local _SpellEater = 207321;
local _Necrosis = 207346;
local _EbonFever = 207269;
local _ArcaneTorrent = 28730;
local _SuddenDoom = 49530;
local _DeathStrike = 49998;
--Get runic power and runes
local runic = UnitPower('player', SPELL_POWER_RUNIC_POWER);
local runicMax = UnitPowerMax('player',SPELL_POWER_RUNIC_POWER);
local count = 0;
local cd = 0;
local time = GetTime();
for i = 1, 10 do
local start, duration, runeReady = GetRuneCooldown(i);
if start and start > 0 then
local rcd = duration + start - time;
if cd == 0 or cd > rcd then
cd = rcd;
end
end
if runeReady then
count = count + 1;
end
end
--Get wounds on target.
local _, _, _, charges = UnitAura('target', 'Festering Wound', nil, 'PLAYER||HARMFUL');
if charges == nil then
charges = 0;
end
--Check if Necrosis is active
if MaxDps:Aura(_Necrosis, timeShift)
then
-- If more then 2 wounds
if charges > 2 then
return _ScourgeStrike;
end
end
--Check if Plague is on
if not MaxDps:TargetAura(_VirulentPlague, timeShift)
then
return _Outbreak;
end
--Army of the dead ready
if MaxDps:SpellAvailable(_ArmyoftheDead , timeShift) then
return _ArmyoftheDead;
end
--Gargoyle ready
if MaxDps:SpellAvailable(_SummonGargoyle , timeShift) then
return _SummonGargoyle;
end
--Dark transformation ready
if MaxDps:SpellAvailable(_DarkTransformation , timeShift) then
return _DarkTransformation ;
end
-- If less then 3 charges use festering wound
if charges < 4 then
if count >=2 then
return _FesteringStrike;
end
end
--Check for use of apocalypse and soulreaper.
if MaxDps:SpellAvailable(_Apocalypse , timeShift) then
if MaxDps:SpellAvailable(_SoulReaper, timeShift) then
if charges >= 3 then
return _SoulReaper;
end
end
if charges <=4 then
if count >= 2 then
return _FesteringStrike;
end
end
if charges >= 6 then
return _Apocalypse;
end
end
if MaxDps:SpellAvailable(_SoulReaper, timeShift) then
if charges >= 3 then
return _SoulReaper;
end
end
--Check to run other and stuff
if count <= 2 then
if MaxDps:SpellAvailable(_DeathandDecay , timeShift) then
return _DeathandDecay;
end
if MaxDps:SpellAvailable(_DeathStrike , timeShift) then
if runic > 85 then
return _DeathStrike;
end
end
end
--Check power and run DeathCoil
if runic > 50 then
return _DeathCoil;
end
end