Code:
local GUI = {
}
local exeOnLoad = function()
MTSCR.ExeOnLoad()
end
local Voidform = {
--Trinket
{"#trinket1", { "toggle(cooldowns)", "player.buff(voidform).count >= 55", "player.buff(Voidform)", "!player.buff(227390)", "!player.channeling(Void Torrent)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket1", { "toggle(cooldowns)", "player.buff(voidform).count >= 55", "player.buff(Voidform)", "!player.buff(227395)", "!player.channeling(Void Torrent)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket2", { "toggle(cooldowns)", "player.buff(voidform).count >= 55", "player.buff(Voidform)", "!player.buff(227390)", "!player.channeling(Void Torrent)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket2", { "toggle(cooldowns)", "player.buff(voidform).count >= 55", "player.buff(Voidform)", "!player.buff(227395)", "!player.channeling(Void Torrent)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket1", { "toggle(cooldowns)","player.buff(Voidform)", "!player.buff(227390)", "!player.channeling(Void Torrent)", "!player.buff(193223)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket1", { "toggle(cooldowns)","player.buff(Voidform)", "!player.buff(227395)", "!player.channeling(Void Torrent)", "!player.buff(193223)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket2", { "toggle(cooldowns)","player.buff(Voidform)", "!player.buff(227390)", "!player.channeling(Void Torrent)", "!player.buff(193223)" }}, --Eyasu's Mulligan's crit or haste
{"#trinket2", { "toggle(cooldowns)","player.buff(Voidform)", "!player.buff(227395)", "!player.channeling(Void Torrent)", "!player.buff(193223)" }}, --Eyasu's Mulligan's crit or haste
-- Shadowy insight
{"8092", {"player.buff(12443)", "!player.channeling(Void Torrent)", "!player.channeling(8092)"}}, --Used ASAP so no procs are wasted
-- Surrender To Madness Rotation --
--Boss health check -- Activate Surrender to Madness (VOIDFORM)
{"pause", "player.channeling(Void Torrent)"},
{"Power Infusion", {"talent(6, 1)", "player.buff(Voidform)", "player.buff(voidform).count >= 80", "player.buff(193223)", "player.spell(Void Torrent).cooldown <= 20", "!player.channeling(Void Torrent)" }},
{"Power Infusion", {"talent(6, 1)", "player.buff(Voidform)", "player.buff(voidform).count >= 75", "player.insanity <= 40", "player.spell(Void Torrent).cooldown > 0", "!player.buff(47585)", "player.buff(193223)", "!player.channeling(205065)" }}, -- PI last resort
{"Mindbender", {"talent(6, 3)", "!player.channeling(Void Torrent)"}}, -- CD
{"47585", {"player.insanity <= 40", "player.buff(voidform).count >= 100", "!player.channeling(Void Torrent)", "player.spell(32379).charges = 0"}},
{"Void Torrent", {"player.buff(Voidform)", "!talent(6, 1)", "player.spell(Mindbender).cooldown <= 45", "talent(6, 3)", "player.buff(193223)"}}, -- Void Torrent on CD When Bender isn't active
{"Void Torrent", {"player.buff(Voidform)", "talent(6, 1)", "!player.buff(Power Infusion)", "player.buff(193223)"}}, -- Void Torrent on CD StM
{"Void Torrent", {"player.buff(194249)", "!talent(6, 1)", "!player.buff(193223)", "!player.channeling(Void Torrent)"}},
{"Void Torrent", {"player.buff(194249)", "talent(6, 1)", "!player.buff(193223)", "player.buff(194249).count < 10", "player.spell(10060).cooldown >= 4" }},
{"Void Torrent", {"player.buff(Voidform)", "talent(6, 1)", "!player.buff(193223)", "player.buff(voidform).count < 10", "player.buff(Power Infusion)" }},
{"Void Torrent", {"player.buff(Voidform)", "talent(6, 1)", "!player.buff(193223)", "player.buff(voidform).count > 10", "player.spell(Power Infusion).cooldown > 0" }}, -- Void Torrent on CD
{"Shadow Word: Death", {"target.health <= 35", "!player.channeling(Void Torrent)", "player.buff(Voidform)", "player.buff(voidform).count < 35", "!player.channeling(Mind Blast)"}}, -- SW:D Dump below 35
{"Shadow Word: Death", {"target.health <= 35", "!player.channeling(Void Torrent)", "player.spell(32379).charges = 2", "player.buff(Voidform)", "player.insanity <= 60", "!player.channeling(Mind Blast)"}}, -- casting 1 SW:D when 2 charges
{"Shadow Word: Death", {"target.health <= 35", "!player.channeling(Void Torrent)", "player.insanity <= 40", "player.buff(193223)", "player.buff(Voidform)", "!player.channeling(Mind Blast)"}}, -- Keeping up Surrender to madness
{"Void Eruption", {"player.buff(Voidform)", "!player.channeling(Void Torrent)", "!player.channeling(Mind Blast)"}}, --Void Bolt CD (ID fix)
{"Mind Blast", {"player.buff(Voidform)", "!player.channeling(Void Torrent)", "player.spell(228260).cooldown > 0.5"}}, --Voidbolt before Mindblast
{"Shadow Word: Pain", {"!target.debuff(Shadow Word: Pain)", "player.buff(Voidform)", "!player.channeling(Void Torrent)"}}, -- SW:P check
{"Vampiric Touch", {"!target.debuff(Vampiric Touch)", "player.buff(Voidform)", "!player.channeling(Void Torrent)"}}, -- VT check
{"Mind Sear", {"toggle(AOE)", "player.buff(Voidform)", "!player.channeling(Mind Sear)", "!player.channeling(Void Torrent)"}}, -- Replace Mind Flay Filler
--{"Mind Flay", {"player.spell(228260).cooldown > 0", "player.spell(8092).cooldown > 0", "player.buff(Voidform)", "!toggle(AOE)", "player.insanity <= 40", "player.spell(32379).charges = 0", "!player.channeling(Mind Flay)"}}, --Mind Flay filler
--{"Mind Flay", {"player.spell(228260).cooldown > 0", "player.spell(8092).cooldown > 0", "player.buff(Voidform)", "!toggle(AOE)", "!player.insanity <= 40", "!player.channeling(Mind Flay)" }}, --Mind Flay filler
{"Mind Flay", {"player.spell(228260).cooldown > 0", "player.spell(8092).cooldown > 0", "!player.channeling(Mind Flay)", "!player.channeling(Void Torrent)", "!toggle(AOE)", "!player.channeling(Mind Blast)"}},
}
local ST = {
-- Shadowy insight
{"Mind Blast", {"player.buff(12443)", "!player.channeling(Void Torrent)", "!player.channeling(Mind Blast)"}}, --Used ASAP so no procs are wasted
--Start Rotation (NO VOIDFORM)
--{"!Mindbender", {"!player.buff(Voidform)", "talent(6, 3)"}}, -- CD
{"Shadow Word: Death", {"player.moving", "target.health <= 35", "!player.buff(Voidform)"}}, -- keeping up insanity?
{"Shadow Word: Death", {"target.health <= 35", "!player.insanity = 100", "!player.buff(Voidform)"}}, -- keeping up insanity?
{"Void Eruption", { "player.insanity >= 70", "!player.buff(Voidform)"}}, --At 85 cuz of slight DPS increase
{"Shadow Word: Pain", {"!player.buff(Voidform)", "player.insanity >= 70", "target.debuff(Shadow Word: Pain).duration < 8"}}, -- SW:P refresh going into Stm
{"Vampiric Touch", {"!player.buff(Voidform)", "player.insanity >= 70", "target.debuff(Vampiric Touch).duration < 8" }}, -- VT refresh going into Stm
{"Mind Blast", "!player.buff(Voidform)"},
{"Shadow Word: Pain", {"!player.buff(Voidform)", "target.debuff(Shadow Word: Pain).duration < 3" }}, -- SW:P refresh
{"Vampiric Touch", {"!player.buff(Voidform)", "target.debuff(Vampiric Touch).duration < 3" }}, -- VT refresh
{"Mind Sear", {"toggle(AOE)", "!player.buff(Voidform)", "!player.channeling(Mind Sear)"}}, -- Replace Mind Flay Filler
{"Mind Flay", {"player.spell(8092).cooldown > 0", "!player.buff(Voidform)", "!toggle(AOE)", "!player.channeling(Mind Flay)"}}, --Mindlay filler no voidform
{"Mind Blast", "!player.buff(Voidform)"},
}
local inCombat = {
{Voidform, 'player.buff(Voidform)', '!player.channeling(Void Torrent)'},
{ST, '!player.buff(Voidform)'},
--Surrender to madness
{"193223", "player.debuff(206005)"},
-- Interrupts
{"15487", {"toggle(Interrupts)", "player.spell(15487).cooldown = 0", "!player.channeling(Void Torrent)"}},
-- Potions
{"#5512", {"player.health <= 20", "!player.channeling(Void Torrent)"}},
{"#127834", {"player.health <= 20", "!player.channeling(Void Torrent)"}}, -- Ancient Healing Potion
{"#109218", {"player.hashero", "!player.buff(156426)", "!player.channeling(Void Torrent)"}}, --DPS potion Doesn't support Potion of Deadly grace
{"#109218", {"target.boss", "!player.buff(156426)", "target.health <= 20", "!player.channeling(Void Torrent)"}}, --Boss Potion
-- Survival / Movement
{"59544", {"player.health <= 40", "!player.channeling(Void Torrent)"}}, -- Gift of the Naaru
{"17", {"player.health <= 30", "!player.buff(193223)", "!player.channeling(Void Torrent)"}}, --Power Word: Shield
{"17", {"player.moving","!player.buff(194249)", "!target.debuff(Shadow Word: Pain).duration < 3", "!player.buff(193223)", "!player.buff(Voidform)", "!player.channeling(Void Torrent)"}}, --Moving no Voidform
{"17", {"player.moving", "player.buff(Voidform)", "player.spell(228260).cooldown >= 1.0", "!player.buff(193223)", "!player.channeling(Void Torrent)"}}, --Moving Voidform
-- Cooldowns
{"Power Infusion", {"talent(6, 1)", "toggle(cooldowns)", "player.buff(Voidform)", "!player.buff(47585)", "!player.buff(193223)", "!player.channeling(Void Torrent)"}},
{"Shadowfiend", { "!talent(6, 3)", "toggle(cooldowns)", "player.buff(Voidform)", "!player.channeling(Void Torrent)", "player.spell(8092).cooldown > 0", "player.spell(228260).cooldown > 0"}},
{"Mindbender",{"talent(6, 3)", "player.buff(Voidform)", "toggle(cooldowns)", "!player.buff(193223)", "player.buff(voidform).count > 5", "!player.channeling(Void Torrent)"}},
-- Keybinds
-- {"!32375", "keybind(lalt)", "tank.advancedground"}, -- Mass Dispel (Enable if on Dispel Duty)
-- AOE Shift button
--{"Void Eruption", { "player.insanity >= 70", "!player.buff(Voidform)", "keybind(shift)" }},
-- {"Mind Sear", "keybind(shift)"},
}
local outCombat = {
{"17", {"player.movingfor >= 1", "!player.buff(180545)"}, "player"}, -- Body and Soul
}
NeP.Engine.registerRotation(258, '[|cff'..MTSCR.Interface.addonColor..'MTS|r] Priest - Shadow', inCombat, outCombat, exeOnLoad, GUI)