Ralphiuss, After checking the code for your rotation I have a few suggestions.
For Gloves and Trinket use I suggest this code.
Code:
-- Check Trinket Cooldown info
local _, Cooldown, Ready = GetInventoryItemCooldown("player",10)
-- Check Cooldown and Combat status
if Cooldown == 0 and
Ready == 1 and
UnitChannelInfo("player") == nil and
UnitAffectingCombat("player") ~= nil
then
UseInventoryItem(10)
return true
end
This is mainly because I've seen my gauntlets just fire for no apparent reason this makes sure that doesn't happen. Now the second thing with this rotation is you are using TV code like this.
Code:
local holyPower = UnitPower("player", 9)
local divinePurpose = PQR_UnitBuffID("player", 86172)
if holyPower >= 3 or divinePurpose ~= nil then
return true
end
Because of DP Procs vs HoPo they should be split up so you can give one priority over the other. I would suggest breaking them up and using.
Code:
local divinePurpose = PQR_UnitBuffID("player", 86172)
if divinePurpose ~= nil then
return true
end
and
Code:
local holyPower = UnitPower("player", 9)
if holyPower >= 3 then
return true
end
This allows you to make sure a TV from DP is used before 3 HP TV and you can squeeze Exorcism procs before a TVHP as they should be used first. On top of that consecration in your rotation and divine plea are bad unless you have control over it. You don't want them to be used in a rotation you want them used when you have a gap in your rotation dead time with nothing to do. The only way I have been able to figure this out is a lot of calculations based on when your higher priority ability is coming off CD to avoid clashing with higher DPE abilities.
For encounter code, I'm not sure about your guild but for me on Heroic I stay out for 2 Ultra hot phases so I have to have a way to avoid hitting that button. I'd suggest adding a skip key for that.
Code:
local altDown = IsAltKeyDown()
local sDivineShield = UnitBuffID("player", 642)
if altDown == nil then
local spellHourOfTwilight = GetSpellInfo(109417)
local channelSpell, _, _, _, _, endTime = UnitCastingInfo("boss1")
if channelSpell ~= nil and channelSpell == spellHourOfTwilight then
local finishTime = endTime/1000 - GetTime()
if finishTime < 1 and sDivineShield == nil then
return true
end
end
end
You have some code I grabbed, like the CD's code works better then a macro so I'm all down for that. Some good code I'm still trying to determine the Zealotry rotation and if I like that or just the logic I use to handle it. Your DPS is about 3K behind mine but 3K can be accounted for by DP procs or Gurthalak procs.
Solid work either way just my $0.02 worth
PS
Add the encounters to your Zealotry rotation or you could end up dead for not pressing your button
