You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1337 lines
28 KiB

-- PriestShadow.lua
-- September 2022
if UnitClassBase( "player" ) ~= "PRIEST" then return end
local addon, ns = ...
local Hekili = _G[ addon ]
local class, state = Hekili.Class, Hekili.State
local spec = Hekili:NewSpecialization( 258 )
spec:RegisterResource( Enum.PowerType.Insanity )
spec:RegisterResource( Enum.PowerType.Mana )
-- Talents
spec:RegisterTalents( {
ancient_madness = { 78350, 341240, 2 }, --
angelic_bulwark = { 78370, 108945, 1 }, --
angelic_feather = { 78398, 121536, 1 }, --
angels_mercy = { 78373, 238100, 1 }, --
apathy = { 78384, 390668, 1 }, --
auspicious_spirits = { 78361, 155271, 1 }, --
binding_heals = { 78373, 368275, 1 }, --
blessed_recovery = { 78415, 390767, 1 }, --
body_and_soul = { 78401, 64129 , 1 }, --
coalescing_shadows = { 78347, 391242, 1 }, --
crystalline_reflection = { 78376, 373457, 2 }, --
damnation = { 78348, 341374, 1 }, --
dark_ascension = { 78351, 391109, 1 }, --
dark_evangelism = { 78354, 391095, 2 }, --
dark_void = { 78344, 263346, 1 }, --
death_and_madness = { 78406, 321291, 1 }, --
deathspeaker = { 78251, 392507, 1 }, --
depth_of_the_shadows = { 78402, 390615, 1 }, --
derangement = { 78255, 391235, 1 }, --
devouring_plague = { 78359, 335467, 1 }, --
dispel_magic = { 78410, 528 , 1 }, --
dispersion = { 78357, 47585 , 1 }, --
divine_star = { 78375, 122121, 1 }, --
dominate_mind = { 78405, 205364, 1 }, --
fiending_dark = { 78338, 391218, 2 }, --
focused_mending = { 78414, 372354, 1 }, --
halo = { 78375, 120644, 1 }, --
harnessed_shadows = { 78341, 391296, 1 }, --
holy_nova = { 78396, 132157, 1 }, --
idol_of_cthun = { 78336, 377349, 1 }, --
idol_of_nzoth = { 78336, 373280, 1 }, --
idol_of_yoggsaron = { 78248, 373273, 1 }, --
idol_of_yshaarj = { 78342, 373310, 1 }, --
improved_fade = { 78381, 390670, 2 }, --
improved_mass_dispel = { 78393, 341167, 1 }, --
insidious_ire = { 78253, 373212, 2 }, --
inspiration = { 78391, 390676, 1 }, --
intangibility = { 78353, 288733, 1 }, --
last_word = { 78346, 263716, 1 }, --
leap_of_faith = { 78411, 73325 , 1 }, --
lights_inspiration = { 78374, 373450, 2 }, --
maddening_touch = { 78339, 391228, 2 }, --
malediction = { 78349, 373221, 2 }, --
manipulation = { 78367, 390996, 2 }, --
masochism = { 78402, 193063, 1 }, --
mass_dispel = { 78394, 32375 , 1 }, --
mastermind = { 78366, 391151, 2 }, --
mental_decay = { 78355, 375994, 1 }, --
mental_fortitude = { 78353, 377065, 1 }, --
mind_control = { 78405, 605 , 1 }, --
mind_devourer = { 78254, 373202, 1 }, --
mind_flay_insanity = { 78251, 391399, 1 }, --
mind_melt = { 78252, 391090, 1 }, --
mind_sear = { 78358, 48045 , 1 }, --
mind_spike = { 78362, 73510 , 1 }, --
mindbender = { 78342, 200174, 1 }, --
mindgames = { 78382, 375901, 1 }, --
misery = { 78344, 238558, 1 }, --
monomania = { 78343, 375767, 2 }, --
move_with_grace = { 78397, 390620, 1 }, --
pain_of_death = { 78365, 391288, 2 }, --
phantasm = { 78249, 108942, 1 }, --
power_infusion = { 78389, 10060 , 1 }, --
power_word_life = { 78371, 373481, 1 }, --
prayer_of_mending = { 78413, 33076 , 1 }, --
psychic_horror = { 78346, 64044 , 1 }, --
psychic_link = { 78364, 199484, 2 }, --
psychic_voice = { 78390, 196704, 1 }, --
puppet_master = { 78340, 377387, 1 }, --
purify_disease = { 78399, 213634, 1 }, --
renew = { 78412, 139 , 1 }, --
rhapsody = { 78395, 390622, 1 }, --
sanlayn = { 78385, 199855, 1 }, --
shackle_undead = { 78388, 9484 , 1 }, --
shadow_crash = { 78250, 205385, 1 }, --
shadow_mend = { 78409, 186263, 1 }, --
shadow_word_death = { 78407, 32379 , 1 }, --
shadowfiend = { 78408, 34433 , 1 }, --
shadowflame_prism = { 78337, 373427, 1 }, --
shadowy_apparitions = { 78360, 341491, 1 }, --
shadowy_insight = { 78356, 375888, 1 }, --
shattered_perceptions = { 78368, 391112, 1 }, --
sheer_terror = { 78403, 390919, 1 }, --
silence = { 78345, 15487 , 1 }, --
spell_warding = { 78415, 390667, 1 }, --
surge_of_darkness = { 78363, 162448, 1 }, --
surge_of_light = { 78372, 109186, 2 }, --
throes_of_pain = { 78404, 377422, 2 }, --
tithe_evasion = { 78383, 373223, 1 }, --
tools_of_the_cloth = { 78416, 377438, 1 }, --
tormented_spirits = { 78361, 391284, 1 }, --
translucent_image = { 78380, 373446, 1 }, --
twins_of_the_sun_priestess = { 78378, 373466, 1 }, --
twist_of_fate = { 78379, 390972, 2 }, --
unfurling_darkness = { 78352, 341273, 1 }, --
unwavering_will = { 78392, 373456, 2 }, --
vampiric_embrace = { 78386, 15286 , 1 }, --
void_eruption = { 78351, 228260, 1 }, --
void_shield = { 78387, 280749, 1 }, --
void_shift = { 78369, 108968, 1 }, --
void_tendrils = { 78403, 108920, 1 }, --
void_torrent = { 78348, 263165, 1 }, --
whispers_of_the_damned = { 78256, 391137, 2 }, --
} )
-- PvP Talents
spec:RegisterPvpTalents( {
cardinal_mending = 5474, -- 328529
catharsis = 5486, -- 391297
delivered_from_evil = 5481, -- 196611
driven_to_madness = 106 , -- 199259
eternal_rest = 5484, -- 322107
mind_trauma = 113 , -- 199445
precognition = 5500, -- 377360
psyfiend = 763 , -- 211522
strength_of_soul = 5477, -- 197535
thoughtsteal = 5381, -- 316262
void_origins = 739 , -- 228630
void_volley = 5447, -- 357711
} )
-- Auras
spec:RegisterAuras( {
apathy = {
id = 390669,
duration = 4,
max_stack = 1
},
body_and_soul = {
id = 65081,
duration = 3,
max_stack = 1
},
coalescing_shadows = {
id = 391243,
duration = 60,
max_stack = 3
},
dark_ascension = {
id = 391109,
duration = 20,
tick_time = 1,
max_stack = 1
},
dark_evangelism = {
id = 391099,
duration = 25,
max_stack = 5
},
death_and_madness = {
id = 322098,
duration = 7,
max_stack = 1
},
deathspeaker = {
id = 392511,
duration = 15,
max_stack = 1
},
depth_of_the_shadows = {
id = 390617,
duration = 15,
max_stack = 50
},
desperate_prayer = {
id = 19236,
duration = 10,
tick_time = 1,
max_stack = 1
},
devouring_plague = {
id = 335467,
duration = 6,
tick_time = 3,
max_stack = 1
},
dispersion = {
id = 47585,
duration = 6,
tick_time = 1,
max_stack = 1
},
dominate_mind = {
id = 205364,
duration = 30,
max_stack = 1
},
echoing_void = {
id = 373281,
duration = 20,
max_stack = 10,
copy = "idol_of_nzoth"
},
enlisted = {
id = 282559,
duration = 3600,
max_stack = 1
},
fade = {
id = 586,
duration = 10,
max_stack = 1
},
focused_will = {
id = 45242,
duration = 8,
max_stack = 1
},
idol_of_yoggsaron = {
id = 373276,
duration = 3600,
max_stack = 50
},
inspiration = {
id = 390677,
duration = 15,
max_stack = 1
},
leap_of_faith = {
id = 73325,
duration = 1.5,
max_stack = 1
},
levitate = {
id = 1706,
duration = 600,
max_stack = 1
},
mind_control = {
id = 605,
duration = 30,
max_stack = 1
},
mind_flay = {
id = 15407,
duration = 4.5,
tick_time = 0.75,
max_stack = 1
},
mind_flay_insanity = { -- TODO: Needs a generator to impact Mind Flay accurately.
id = 391399,
duration = 5,
max_stack = 1
},
mind_melt = {
id = 391092,
duration = 10,
max_stack = 2
},
mind_sear = {
id = 48045,
duration = 3,
tick_time = 1,
max_stack = 1
},
mind_soothe = {
id = 453,
duration = 20,
max_stack = 1
},
mind_spike = {
id = 217673,
duration = 10,
max_stack = 3
},
mind_vision = {
id = 2096,
duration = 60,
max_stack = 1
},
--[[ mindbender = { -- TODO: Need generator for Mindbender totem(?)
id = 200174,
duration = 15,
max_stack = 1
}, ]]
mindgames = {
id = 375901,
duration = 5,
max_stack = 1
},
power_infusion = {
id = 10060,
duration = 20,
max_stack = 1
},
power_word_fortitude = {
id = 21562,
duration = 3600,
max_stack = 1
},
power_word_shield = {
id = 17,
duration = 15,
tick_time = 1,
max_stack = 1
},
prayer_of_mending = {
id = 41635,
duration = 30,
max_stack = 5
},
psychic_horror = {
id = 64044,
duration = 4,
max_stack = 1
},
psychic_scream = {
id = 8122,
duration = 8,
max_stack = 1
},
--[[ psyfiend_199824 = { -- TODO: Generator for Psyfiend totem(?)
id = 199824, 211522,
duration = 12,
max_stack = 1
}, ]]
psyflay = {
id = 199845,
duration = 3600,
max_stack = 1,
},
renew = {
id = 139,
duration = 15,
tick_time = 3,
max_stack = 1
},
shackle_undead = {
id = 9484,
duration = 50,
max_stack = 1
},
shadow_word_pain = {
id = 589,
duration = 16,
tick_time = 2,
max_stack = 1
},
shadowfiend = { -- TODO: Model insanity gain from Improved Shadowfiend (343726)?
id = 34433,
duration = 15,
max_stack = 1
},
shadowform = {
id = 232698,
duration = 3600,
max_stack = 1
},
sign_of_the_emissary = {
id = 225788,
duration = 3600,
max_stack = 1
},
silence = {
id = 15487,
duration = 4,
max_stack = 1
},
surge_of_darkness = {
id = 87160,
duration = 10,
max_stack = 3
},
tools_of_the_cloth = {
id = 390933,
duration = 12,
max_stack = 1
},
unfurling_darkness = {
id = 341282,
duration = 8,
max_stack = 1
},
unfurling_darkness_icd = {
id = 341291,
duration = 15,
max_stack = 1
},
vampiric_embrace = {
id = 15286,
duration = 15,
tick_time = 0.5,
max_stack = 1
},
vampiric_touch = {
id = 34914,
duration = 21,
tick_time = 3,
max_stack = 1
},
voidform = {
id = 194249,
duration = 20,
max_stack = 1
},
void_tendrils = {
id = 108920,
duration = 0.5,
max_stack = 1
},
void_torrent = {
id = 263165,
duration = 3,
tick_time = 1,
max_stack = 1
},
void_torrent_insanity = {
id = 289577,
duration = 3.9,
tick_time = 0.975,
max_stack = 1
},
} )
-- Abilities
spec:RegisterAbilities( {
angelic_feather = {
id = 121536,
cast = 0,
charges = 3,
cooldown = 20,
recharge = 20,
gcd = "spell",
talent = "angelic_feather",
startsCombat = false,
texture = 642580,
handler = function ()
end,
},
damnation = {
id = 341374,
cast = 0,
cooldown = 60,
gcd = "spell",
talent = "damnation",
startsCombat = false,
texture = 236295,
toggle = "cooldowns",
handler = function ()
end,
},
dark_ascension = {
id = 391109,
cast = 1.5,
cooldown = 120,
gcd = "spell",
talent = "dark_ascension",
startsCombat = false,
texture = 1445237,
toggle = "cooldowns",
handler = function ()
end,
},
dark_void = {
id = 263346,
cast = 2,
cooldown = 30,
gcd = "spell",
talent = "dark_void",
startsCombat = false,
texture = 132851,
handler = function ()
end,
},
desperate_prayer = {
id = 19236,
cast = 0,
cooldown = 90,
gcd = "off",
startsCombat = false,
texture = 237550,
toggle = "cooldowns",
handler = function ()
end,
},
devouring_plague = {
id = 335467,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 50,
spendType = "insanity",
talent = "devouring_plague",
startsCombat = false,
texture = 252997,
handler = function ()
end,
},
dispel_magic = {
id = 528,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "dispel_magic",
startsCombat = false,
texture = 136066,
handler = function ()
end,
},
dispersion = {
id = 47585,
cast = 0,
cooldown = 120,
gcd = "spell",
talent = "dispersion",
startsCombat = false,
texture = 237563,
toggle = "cooldowns",
handler = function ()
end,
},
divine_star = {
id = 122121,
cast = 0,
cooldown = 15,
gcd = "spell",
spend = 1250,
spendType = "mana",
talent = "divine_star",
startsCombat = false,
texture = 631519,
handler = function ()
end,
},
dominate_mind = {
id = 205364,
cast = 1.8,
cooldown = 120,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "dominate_mind",
startsCombat = false,
texture = 1386549,
toggle = "cooldowns",
handler = function ()
end,
},
fade = {
id = 586,
cast = 0,
cooldown = 30,
gcd = "off",
startsCombat = false,
texture = 135994,
handler = function ()
end,
},
flash_heal = {
id = 2061,
cast = 1.5,
cooldown = 0,
gcd = "spell",
spend = 0.04,
spendType = "mana",
startsCombat = false,
texture = 135907,
handler = function ()
end,
},
halo = {
id = 120644,
cast = 1.5,
cooldown = 40,
gcd = "spell",
spend = 0.01,
spendType = "mana",
talent = "halo",
startsCombat = false,
texture = 632353,
handler = function ()
end,
},
holy_nova = {
id = 132157,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "holy_nova",
startsCombat = false,
texture = 135922,
handler = function ()
end,
},
leap_of_faith = {
id = 73325,
cast = 0,
cooldown = 90,
gcd = "off",
spend = 0.03,
spendType = "mana",
talent = "leap_of_faith",
startsCombat = false,
texture = 463835,
toggle = "cooldowns",
handler = function ()
end,
},
levitate = {
id = 1706,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.01,
spendType = "mana",
startsCombat = false,
texture = 135928,
handler = function ()
end,
},
mass_dispel = {
id = 32375,
cast = 1.5,
cooldown = 45,
gcd = "spell",
spend = 0.08,
spendType = "mana",
talent = "mass_dispel",
startsCombat = false,
texture = 135739,
handler = function ()
end,
},
mind_blast = {
id = 8092,
cast = 1.5,
charges = 1,
cooldown = 9,
recharge = 9,
gcd = "spell",
spend = 625,
spendType = "mana",
startsCombat = true,
texture = 136224,
handler = function ()
end,
},
mind_control = {
id = 605,
cast = 1.8,
cooldown = 0,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "mind_control",
startsCombat = false,
texture = 136206,
handler = function ()
end,
},
mind_flay = {
id = 15407,
cast = 0,
cooldown = 0,
gcd = "spell",
startsCombat = false,
texture = 136208,
handler = function ()
end,
},
mind_sear = {
id = 48045,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 25,
spendType = "insanity",
talent = "mind_sear",
startsCombat = false,
texture = 237565,
handler = function ()
end,
},
mind_soothe = {
id = 453,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.01,
spendType = "mana",
startsCombat = true,
texture = 135933,
handler = function ()
end,
},
mind_spike = {
id = 73510,
cast = 1.5,
cooldown = 0,
gcd = "spell",
talent = "mind_spike",
startsCombat = false,
texture = 457655,
handler = function ()
end,
},
mind_vision = {
id = 2096,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.01,
spendType = "mana",
startsCombat = true,
texture = 135934,
handler = function ()
end,
},
mindbender = {
id = 200174,
cast = 0,
cooldown = 60,
gcd = "spell",
talent = "mindbender",
startsCombat = false,
texture = 136214,
toggle = "cooldowns",
handler = function ()
end,
},
mindgames = {
id = 375901,
cast = 1.5,
cooldown = 45,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "mindgames",
startsCombat = false,
texture = 3565723,
handler = function ()
end,
},
power_infusion = {
id = 10060,
cast = 0,
cooldown = 120,
gcd = "off",
talent = "power_infusion",
startsCombat = false,
texture = 135939,
toggle = "cooldowns",
handler = function ()
end,
},
power_word_fortitude = {
id = 21562,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.04,
spendType = "mana",
startsCombat = false,
texture = 135987,
handler = function ()
end,
},
power_word_life = {
id = 373481,
cast = 0,
cooldown = 30,
gcd = "spell",
spend = 1250,
spendType = "mana",
talent = "power_word_life",
startsCombat = false,
texture = 4667420,
handler = function ()
end,
},
power_word_shield = {
id = 17,
cast = 0,
cooldown = 7.5,
gcd = "spell",
spend = 0.03,
spendType = "mana",
startsCombat = false,
texture = 135940,
handler = function ()
end,
},
prayer_of_mending = {
id = 33076,
cast = 0,
cooldown = 12,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "prayer_of_mending",
startsCombat = false,
texture = 135944,
handler = function ()
end,
},
psychic_horror = {
id = 64044,
cast = 0,
cooldown = 45,
gcd = "spell",
talent = "psychic_horror",
startsCombat = false,
texture = 237568,
handler = function ()
end,
},
psychic_scream = {
id = 8122,
cast = 0,
cooldown = 45,
gcd = "spell",
spend = 0.01,
spendType = "mana",
startsCombat = true,
texture = 136184,
handler = function ()
end,
},
psyfiend = {
id = 211522,
cast = 0,
cooldown = 45,
gcd = "spell",
pvptalent = "psyfiend",
startsCombat = false,
texture = 537021,
handler = function ()
end,
},
purify_disease = {
id = 213634,
cast = 0,
charges = 1,
cooldown = 8,
recharge = 8,
gcd = "spell",
spend = 0.01,
spendType = "mana",
talent = "purify_disease",
startsCombat = false,
texture = 135935,
handler = function ()
end,
},
renew = {
id = 139,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0.02,
spendType = "mana",
talent = "renew",
startsCombat = false,
texture = 135953,
handler = function ()
end,
},
resurrection = {
id = 2006,
cast = 10,
cooldown = 0,
gcd = "spell",
spend = 0.01,
spendType = "mana",
startsCombat = true,
texture = 135955,
handler = function ()
end,
},
shackle_undead = {
id = 9484,
cast = 1.5,
cooldown = 0,
gcd = "spell",
spend = 0.01,
spendType = "mana",
talent = "shackle_undead",
startsCombat = false,
texture = 136091,
handler = function ()
end,
},
shadow_crash = {
id = 205385,
cast = 0,
cooldown = 30,
gcd = "spell",
talent = "shadow_crash",
startsCombat = false,
texture = 136201,
handler = function ()
end,
},
shadow_mend = {
id = 186263,
cast = 1.5,
cooldown = 15,
gcd = "spell",
spend = 0.04,
spendType = "mana",
talent = "shadow_mend",
startsCombat = false,
texture = 136202,
handler = function ()
end,
},
shadow_word_death = {
id = 32379,
cast = 0,
charges = 1,
cooldown = 20,
recharge = 20,
gcd = "spell",
spend = 1250,
spendType = "mana",
talent = "shadow_word_death",
startsCombat = true,
texture = 136149,
handler = function ()
end,
},
shadow_word_pain = {
id = 589,
cast = 0,
cooldown = 0,
gcd = "spell",
spend = 0,
spendType = "mana",
startsCombat = true,
texture = 136207,
handler = function ()
end,
},
shadowfiend = {
id = 34433,
cast = 0,
cooldown = 180,
gcd = "spell",
talent = "shadowfiend",
startsCombat = true,
texture = 136199,
toggle = "cooldowns",
handler = function ()
end,
},
shadowform = {
id = 232698,
cast = 0,
cooldown = 0,
gcd = "spell",
startsCombat = false,
texture = 136200,
handler = function ()
end,
},
silence = {
id = 15487,
cast = 0,
cooldown = 45,
gcd = "off",
talent = "silence",
startsCombat = false,
texture = 458230,
handler = function ()
end,
},
thoughtsteal = {
id = 316262,
cast = 0,
cooldown = 90,
gcd = "spell",
spend = 0.01,
spendType = "mana",
pvptalent = "thoughtsteal",
startsCombat = false,
texture = 3718862,
toggle = "cooldowns",
handler = function ()
end,
},
vampiric_embrace = {
id = 15286,
cast = 0,
cooldown = 120,
gcd = "spell",
talent = "vampiric_embrace",
startsCombat = false,
texture = 136230,
toggle = "cooldowns",
handler = function ()
end,
},
vampiric_touch = {
id = 34914,
cast = 1.5,
cooldown = 0,
gcd = "spell",
startsCombat = true,
texture = 135978,
handler = function ()
end,
},
void_eruption = {
id = 228260,
cast = 1.5,
cooldown = 120,
gcd = "spell",
talent = "void_eruption",
startsCombat = false,
texture = 1386548,
toggle = "cooldowns",
handler = function ()
end,
},
void_shift = {
id = 108968,
cast = 0,
cooldown = 300,
gcd = "off",
talent = "void_shift",
startsCombat = false,
texture = 537079,
toggle = "cooldowns",
handler = function ()
end,
},
void_tendrils = {
id = 108920,
cast = 0,
cooldown = 60,
gcd = "spell",
spend = 0.01,
spendType = "mana",
talent = "void_tendrils",
startsCombat = false,
texture = 537022,
toggle = "cooldowns",
handler = function ()
end,
},
void_torrent = {
id = 263165,
cast = 0,
cooldown = 60,
gcd = "spell",
talent = "void_torrent",
startsCombat = false,
texture = 1386551,
toggle = "cooldowns",
handler = function ()
end,
},
} )
spec:RegisterPriority( "Shadow", 20220917,
-- Notes
[[
]],
-- Priority
[[
]] )