From f72fb94716170ac46d32638437f1c733c98fd65a Mon Sep 17 00:00:00 2001 From: "Johnny C. Lam" Date: Thu, 8 May 2014 17:26:18 +0000 Subject: [PATCH] Fix order in which rune slots are checked for death runes. git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1398 d5049fe3-3747-40f7-a4b5-f36d6801af5f --- OvaleRunes.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/OvaleRunes.lua b/OvaleRunes.lua index 2b1e5f2..bba6657 100644 --- a/OvaleRunes.lua +++ b/OvaleRunes.lua @@ -65,10 +65,19 @@ local RUNE_SLOTS = { } --[[ - In-game testing shows that death runes are preferred in the order: - Frost death runes > Blood death runes > Unholy death runes + From SimC:sc_death_knight.cpp: + + If explicitly consuming a death rune, any death runes available are preferred in the order: + + frost > blood > unholy. + + If consuming a non-death rune of a given type and that no rune of that type is available, + any death runes available are preferred in the order: + + blood > unholy > frost --]] -local DEATH_RUNE_PRIORITY = { 5, 6, 1, 2, 4, 5 } +local DEATH_RUNE_PRIORITY = { 3, 4, 5, 6, 1, 2 } +local ANY_RUNE_PRIORITY = { 1, 2, 3, 4, 5, 6 } -- Improved Blood Presence increases rune regenerate rate by 20%. local IMPROVED_BLOOD_PRESENCE = 50371 @@ -277,7 +286,8 @@ statePrototype.ConsumeRune = function(state, atTime, name, snapshot) end -- No runes of the right type are active, so look for any active death rune. if not consumedRune then - for _, slot in ipairs(DEATH_RUNE_PRIORITY) do + local deathRunePriority = (runeType == DEATH_RUNE) and DEATH_RUNE_PRIORITY or ANY_RUNE_PRIORITY + for _, slot in ipairs(deathRunePriority) do local rune = state.rune[slot] if rune.type == DEATH_RUNE and rune.active then consumedRune = rune -- 1.7.9.5