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.

3039 lines
84 KiB

local pairs = pairs;
local _;
VUHDO_GLOBAL_CONFIG = {
["PROFILES_VERSION"] = 1;
};
--
local tHotCfg, tHotSlots;
function VUHDO_fixHotSettings()
tHotSlots = VUHDO_PANEL_SETUP["HOTS"]["SLOTS"];
tHotCfg = VUHDO_PANEL_SETUP["HOTS"]["SLOTCFG"];
for tCnt2 = 1, 10 do
if not tHotCfg["" .. tCnt2]["mine"] and not tHotCfg["" .. tCnt2]["others"] then
if tHotSlots[tCnt2] then
tHotCfg["" .. tCnt2]["mine"] = true;
tHotCfg["" .. tCnt2]["others"] = VUHDO_EXCLUSIVE_HOTS[tHotSlots[tCnt2]];
end
end
end
end
--
local function VUHDO_getVarDescription(aVar)
local tMessage = "";
if aVar == nil then
tMessage = "<nil>";
elseif "boolean" == type(aVar) then
if aVar then
tMessage = "<true>";
else
tMessage = "<false>";
end
elseif "number" == type(aVar) or "string" == type(aVar) then
tMessage = aVar .. " (" .. type(aVar) .. ")";
else
tMessage = "(" .. type(aVar) .. ")";
end
return tMessage;
end
--
local tCreated, tRepaired;
local function _VUHDO_ensureSanity(aName, aValue, aSaneValue)
if aSaneValue ~= nil then
if type(aSaneValue) == "table" then
if aValue ~= nil and type(aValue) == "table" then
for tIndex, _ in pairs(aSaneValue) do
aValue[tIndex] = _VUHDO_ensureSanity(aName, aValue[tIndex], aSaneValue[tIndex]);
end
else
if aValue ~= nil then
tRepaired = tRepaired + 1;
else
tCreated = tCreated + 1;
end
return VUHDO_deepCopyTable(aSaneValue);
end
else
if aValue == nil or type(aValue) ~= type(aSaneValue) then
if (type(aSaneValue) ~= "boolean" or (aValue ~= 1 and aValue ~= 0 and aValue ~= nil))
and (type(aSaneValue) ~= "number" or (aSaneValue ~= 1 and aSaneValue ~= 0)) then
if (aValue ~= nil) then
tRepaired = tRepaired + 1;
else
tCreated = tCreated + 1;
end
return aSaneValue;
end
end
if aValue ~= nil and "string" == type(aValue) then
aValue = strtrim(aValue);
end
end
end
return aValue
end
--
local tRepairedArray;
function VUHDO_ensureSanity(aName, aValue, aSaneValue)
tCreated, tRepaired = 0, 0;
local tSaneValue = VUHDO_decompressIfCompressed(aSaneValue);
tRepairedArray = _VUHDO_ensureSanity(aName, aValue, tSaneValue);
if tCreated + tRepaired > 0 then
VUHDO_Msg("auto model sanity: " .. aName .. ": created " .. tCreated .. ", repaired " .. tRepaired .. " values.");
end
return tRepairedArray;
end
local VUHDO_DEFAULT_MODELS = {
{ VUHDO_ID_GROUP_1, VUHDO_ID_GROUP_2, VUHDO_ID_GROUP_3, VUHDO_ID_GROUP_4, VUHDO_ID_GROUP_5, VUHDO_ID_GROUP_6, VUHDO_ID_GROUP_7, VUHDO_ID_GROUP_8, VUHDO_ID_PETS },
{ VUHDO_ID_PRIVATE_TANKS, VUHDO_ID_BOSSES },
};
local VUHDO_DEFAULT_RANGE_SPELLS = {
["PALADIN"] = VUHDO_SPELL_ID.FLASH_OF_LIGHT,
["SHAMAN"] = VUHDO_SPELL_ID.HEALING_WAVE,
["DRUID"] = VUHDO_SPELL_ID.REJUVENATION,
["PRIEST"] = VUHDO_SPELL_ID.HEAL,
["MONK"] = VUHDO_SPELL_ID.DETOX,
["EVOKER"] = VUHDO_SPELL_ID.LIVING_FLAME,
}
--local VUHDO_DEFAULT_SPELL_ASSIGNMENT = { };
--local VUHDO_DEFAULT_HOSTILE_SPELL_ASSIGNMENT = {};
local VUHDO_DEFAULT_SPELLS_KEYBOARD = {};
local VUHDO_CLASS_DEFAULT_SPELL_ASSIGNMENT = {
["PALADIN"] = {
["1"] = {"", "1", VUHDO_SPELL_ID.FLASH_OF_LIGHT},
["2"] = {"", "2", VUHDO_SPELL_ID.PALA_CLEANSE},
["3"] = {"", "3", "menu"},
["4"] = {"", "4", VUHDO_SPELL_ID.LIGHT_OF_DAWN},
["alt1"] = {"alt-", "1", "target"},
["ctrl1"] = {"ctrl-", "1", VUHDO_SPELL_ID.HOLY_LIGHT},
["ctrl2"] = {"ctrl-", "2", VUHDO_SPELL_ID.HOLY_SHOCK},
["shift1"] = {"shift-", "1", VUHDO_SPELL_ID.HOLY_RADIANCE},
["shift2"] = {"shift-", "2", VUHDO_SPELL_ID.LAY_ON_HANDS},
},
["SHAMAN"] = {
["1"] = {"", "1", VUHDO_SPELL_ID.HEALING_WAVE},
["2"] = {"", "2", VUHDO_SPELL_ID.CHAIN_HEAL},
["3"] = {"", "3", "menu"},
["alt1"] = {"alt-", "1", VUHDO_SPELL_ID.BUFF_EARTH_SHIELD},
["alt2"] = {"alt-", "2", VUHDO_SPELL_ID.GIFT_OF_THE_NAARU},
["alt3"] = {"alt-", "3", "menu"},
["ctrl1"] = {"ctrl-", "1", "target"},
["ctrl2"] = {"ctrl-", "2", "target"},
["ctrl3"] = {"ctrl-", "3", "menu"},
["shift1"] = {"shift-", "1", VUHDO_SPELL_ID.HEALING_WAVE},
["shift2"] = {"shift-", "2", VUHDO_SPELL_ID.CHAIN_HEAL},
["shift3"] = {"shift-", "3", "menu" },
["altctrl1"] = {"alt-ctrl-", "1", VUHDO_SPELL_ID.PURIFY_SPIRIT},
["altctrl2"] = {"alt-ctrl-", "2", VUHDO_SPELL_ID.PURIFY_SPIRIT},
},
["PRIEST"] = {
["1"] = {"", "1", VUHDO_SPELL_ID.FLASH_HEAL},
["2"] = {"", "2", VUHDO_SPELL_ID.HEAL},
["3"] = {"", "3", VUHDO_SPELL_ID.DESPERATE_PRAYER},
["4"] = {"", "4", VUHDO_SPELL_ID.RENEW},
["5"] = {"", "5", VUHDO_SPELL_ID.BINDING_HEAL},
["alt1"] = {"alt-", "1", "target"},
["alt2"] = {"alt-", "2", "focus"},
["alt3"] = {"alt-", "3", VUHDO_SPELL_ID.POWERWORD_SHIELD},
["alt4"] = {"alt-", "4", VUHDO_SPELL_ID.POWERWORD_SHIELD},
["alt5"] = {"alt-", "5", VUHDO_SPELL_ID.POWERWORD_SHIELD},
["ctrl1"] = {"ctrl-", "1", VUHDO_SPELL_ID.PRAYER_OF_HEALING},
["ctrl2"] = {"ctrl-", "2", VUHDO_SPELL_ID.CIRCLE_OF_HEALING},
["ctrl3"] = {"ctrl-", "3", "menu"},
["ctrl4"] = {"ctrl-", "4", VUHDO_SPELL_ID.PRAYER_OF_MENDING},
["ctrl5"] = {"ctrl-", "5", VUHDO_SPELL_ID.PRAYER_OF_MENDING},
["shift2"] = {"shift-", "2", VUHDO_SPELL_ID.PURIFY},
["shift3"] = {"shift-", "3", "menu"},
},
["DRUID"] = {
["1"] = {"", "1", VUHDO_SPELL_ID.HEALING_TOUCH},
["2"] = {"", "2", VUHDO_SPELL_ID.REJUVENATION},
["3"] = {"", "3", "menu"},
["4"] = {"", "4", VUHDO_SPELL_ID.INNERVATE},
["5"] = {"", "5", VUHDO_SPELL_ID.INNERVATE},
["alt1"] = {"alt-", "1", "target"},
["alt2"] = {"alt-", "2", "focus"},
["alt3"] = {"alt-", "3", "menu"},
["ctrl1"] = {"ctrl-", "1", VUHDO_SPELL_ID.REGROWTH},
["ctrl2"] = {"ctrl-", "2", VUHDO_SPELL_ID.LIFEBLOOM},
["ctrl4"] = {"ctrl-", "4", VUHDO_SPELL_ID.TRANQUILITY},
["ctrl5"] = {"ctrl-", "5", VUHDO_SPELL_ID.TRANQUILITY},
["shift2"] = {"shift-", "2", VUHDO_SPELL_ID.NATURES_CURE},
},
["MONK"] = {
["1"] = { "", "1", VUHDO_SPELL_ID.SURGING_MIST },
["2"] = { "", "2", VUHDO_SPELL_ID.ENVELOPING_MIST },
["3"] = { "", "3", "menu"},
["4"] = { "", "4", VUHDO_SPELL_ID.RENEWING_MIST },
["5"] = { "", "5", VUHDO_SPELL_ID.SOOTHING_MIST },
["alt1"] = { "alt-", "1", "target" },
["alt2"] = { "alt-", "2", VUHDO_SPELL_ID.CHI_WAVE },
["ctrl1"] = { "ctrl-", "1", VUHDO_SPELL_ID.DETOX },
["ctrl2"] = { "ctrl-", "2", VUHDO_SPELL_ID.LIFE_COCOON },
["shift1"] = { "shift-", "1", VUHDO_SPELL_ID.UPLIFT },
["shift2"] = { "shift-", "2", VUHDO_SPELL_ID.REVIVAL },
},
["EVOKER"] = {
["1"] = { "", "1", VUHDO_SPELL_ID.LIVING_FLAME },
["2"] = { "", "2", VUHDO_SPELL_ID.EMERALD_BLOSSOM },
["3"] = { "", "3", "menu"},
["4"] = { "", "4", VUHDO_SPELL_ID.ECHO },
["5"] = { "", "5", VUHDO_SPELL_ID.DREAM_BREATH },
["alt1"] = { "alt-", "1", "target" },
["alt2"] = { "alt-", "2", "focus" },
["ctrl1"] = { "ctrl-", "1", VUHDO_SPELL_ID.NATURALIZE },
["ctrl2"] = { "ctrl-", "2", VUHDO_SPELL_ID.CAUTERIZING_FLAME },
["shift1"] = { "shift-", "1", VUHDO_SPELL_ID.ZEPHYR },
["shift2"] = { "shift-", "2", VUHDO_SPELL_ID.DREAM_FLIGHT },
},
};
--
local VUHDO_GLOBAL_DEFAULT_SPELL_ASSIGNMENT = {
["1"] = {"", "1", "target"},
["2"] = {"", "2", "assist"},
["3"] = {"", "3", "focus"},
["4"] = {"", "4", "menu"},
["5"] = {"", "5", "menu"},
};
--
VUHDO_DEFAULT_SPELL_CONFIG = {
["IS_AUTO_FIRE"] = true,
["IS_FIRE_HOT"] = false,
["IS_FIRE_OUT_FIGHT"] = false,
["IS_AUTO_TARGET"] = false,
["IS_CANCEL_CURRENT"] = false,
["IS_FIRE_TRINKET_1"] = false,
["IS_FIRE_TRINKET_2"] = false,
["IS_FIRE_GLOVES"] = false,
["IS_FIRE_CUSTOM_1"] = false,
["FIRE_CUSTOM_1_SPELL"] = "",
["IS_FIRE_CUSTOM_2"] = false,
["FIRE_CUSTOM_2_SPELL"] = "",
["IS_TOOLTIP_INFO"] = false,
["IS_LOAD_HOTS"] = false,
["smartCastModi"] = "all",
["autoBattleRez"] = true,
["custom1Unit"] = "@player",
["custom2Unit"] = "@player",
}
local tDefaultWheelAssignments = {
["1"] = {"", "-w1", ""},
["2"] = {"", "-w2", ""},
["alt1"] = {"ALT-", "-w3", ""},
["alt2"] = {"ALT-", "-w4", ""},
["ctrl1"] = {"CTRL-", "-w5", ""},
["ctrl2"] = {"CTRL-", "-w6", ""},
["shift1"] = {"SHIFT-", "-w7", ""},
["shift2"] = {"SHIFT-", "-w8", ""},
["altctrl1"] = {"ALT-CTRL-", "-w9", ""},
["altctrl2"] = {"ALT-CTRL-", "-w10", ""},
["altshift1"] = {"ALT-SHIFT-", "-w11", ""},
["altshift2"] = {"ALT-SHIFT-", "-w12", ""},
["ctrlshift1"] = {"CTRL-SHIFT-", "-w13", ""},
["ctrlshift2"] = {"CTRL-SHIFT-", "-w14", ""},
["altctrlshift1"] = {"ALT-CTRL-SHIFT-", "-w15", ""},
["altctrlshift2"] = {"ALT-CTRL-SHIFT-", "-w16", ""},
};
--
local function VUHDO_initDefaultKeySpellAssignments()
VUHDO_DEFAULT_SPELLS_KEYBOARD = { };
for tCnt = 1, VUHDO_NUM_KEYBOARD_KEYS do
VUHDO_DEFAULT_SPELLS_KEYBOARD["SPELL" .. tCnt] = "";
end
VUHDO_DEFAULT_SPELLS_KEYBOARD["INTERNAL"] = { };
VUHDO_DEFAULT_SPELLS_KEYBOARD["WHEEL"] = VUHDO_deepCopyTable(tDefaultWheelAssignments);
VUHDO_DEFAULT_SPELLS_KEYBOARD["HOSTILE_WHEEL"] = VUHDO_deepCopyTable(tDefaultWheelAssignments);
end
--
function VUHDO_trimSpellAssignments(anArray)
local tRemove = { };
for tKey, tValue in pairs(anArray) do
if (VUHDO_strempty(tValue[3])) then
tinsert(tRemove, tKey);
end
end
for _, tKey in pairs(tRemove) do
anArray[tKey] = nil;
end
end
--
local function VUHDO_assignDefaultSpells()
local _, tClass = UnitClass("player");
VUHDO_SPELL_ASSIGNMENTS = VUHDO_deepCopyTable(VUHDO_CLASS_DEFAULT_SPELL_ASSIGNMENT[tClass] ~= nil
and VUHDO_CLASS_DEFAULT_SPELL_ASSIGNMENT[tClass] or VUHDO_GLOBAL_DEFAULT_SPELL_ASSIGNMENT);
VUHDO_CLASS_DEFAULT_SPELL_ASSIGNMENT = nil;
VUHDO_GLOBAL_DEFAULT_SPELL_ASSIGNMENT = nil;
end
--
function VUHDO_loadSpellArray()
-- Maus freundlich
if (VUHDO_SPELL_ASSIGNMENTS == nil) then
VUHDO_assignDefaultSpells();
end
VUHDO_SPELL_ASSIGNMENTS = VUHDO_ensureSanity("VUHDO_SPELL_ASSIGNMENTS", VUHDO_SPELL_ASSIGNMENTS, {});
VUHDO_trimSpellAssignments(VUHDO_SPELL_ASSIGNMENTS);
-- Maus gegnerisch
if (VUHDO_HOSTILE_SPELL_ASSIGNMENTS == nil) then
VUHDO_HOSTILE_SPELL_ASSIGNMENTS = { };
end
VUHDO_HOSTILE_SPELL_ASSIGNMENTS = VUHDO_ensureSanity("VUHDO_HOSTILE_SPELL_ASSIGNMENTS", VUHDO_HOSTILE_SPELL_ASSIGNMENTS, {});
VUHDO_trimSpellAssignments(VUHDO_HOSTILE_SPELL_ASSIGNMENTS);
-- Tastatur
VUHDO_initDefaultKeySpellAssignments();
if (VUHDO_SPELLS_KEYBOARD == nil) then
VUHDO_SPELLS_KEYBOARD = VUHDO_deepCopyTable(VUHDO_DEFAULT_SPELLS_KEYBOARD);
end
VUHDO_SPELLS_KEYBOARD = VUHDO_ensureSanity("VUHDO_SPELLS_KEYBOARD", VUHDO_SPELLS_KEYBOARD, VUHDO_DEFAULT_SPELLS_KEYBOARD);
VUHDO_DEFAULT_SPELLS_KEYBOARD = nil;
-- Konfiguration
if (VUHDO_SPELL_CONFIG == nil) then
VUHDO_SPELL_CONFIG = VUHDO_deepCopyTable(VUHDO_DEFAULT_SPELL_CONFIG);
end
VUHDO_SPELL_CONFIG = VUHDO_ensureSanity("VUHDO_SPELL_CONFIG", VUHDO_SPELL_CONFIG, VUHDO_DEFAULT_SPELL_CONFIG);
if (VUHDO_SPELL_LAYOUTS == nil) then
VUHDO_SPELL_LAYOUTS = { };
end
if (VUHDO_SPEC_LAYOUTS == nil) then
VUHDO_SPEC_LAYOUTS = {
["selected"] = "",
["1"] = "",
["2"] = "",
["3"] = "",
["4"] = ""
}
end
VUHDO_DEFAULT_SPELL_CONFIG = nil;
end
--
local function VUHDO_makeFullColorWoOpacity(...)
local tColor = VUHDO_makeFullColor(...);
tColor["useOpacity"] = false;
return tColor;
end
--
local function VUHDO_makeHotColor(...)
local tColor = VUHDO_makeFullColor(...);
tColor["isFullDuration"] = false;
tColor["isClock"] = false;
tColor["countdownMode"] = 1;
tColor["useOpacity"] = false;
tColor["isFadeOut"] = false;
tColor["isFlashWhenLow"] = false;
return tColor;
end
--
local function VUHDO_customDebuffsAddDefaultSettings(aBuffName)
if (VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"] == nil) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"] = { };
end
if (VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName] == nil) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName] = {
["isIcon"] = VUHDO_CONFIG["CUSTOM_DEBUFF"]["isIcon"],
["isColor"] = false,
["animate"] = VUHDO_CONFIG["CUSTOM_DEBUFF"]["animate"],
["timer"] = VUHDO_CONFIG["CUSTOM_DEBUFF"]["timer"],
["isStacks"] = VUHDO_CONFIG["CUSTOM_DEBUFF"]["isStacks"],
["isMine"] = true,
["isOthers"] = true,
["isBarGlow"] = false,
["isIconGlow"] = false,
}
end
if (not VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["isColor"]) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["color"] = nil;
elseif (VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["color"] == nil) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["color"]
= VUHDO_makeFullColor(0.6, 0.3, 0, 1, 0.8, 0.5, 0, 1);
end
if (not VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["isBarGlow"]) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["barGlowColor"] = nil;
elseif (VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["barGlowColor"] == nil) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["barGlowColor"]
= VUHDO_makeFullColor(0.95, 0.95, 0.32, 1, 1, 1, 0, 1);
end
if (not VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["isIconGlow"]) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["iconGlowColor"] = nil;
elseif (VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["iconGlowColor"] == nil) then
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][aBuffName]["iconGlowColor"]
= VUHDO_makeFullColor(0.95, 0.95, 0.32, 1, 1, 1, 0, 1);
end
end
--
local function VUHDO_addCustomSpellIds(aVersion, ...)
if ((VUHDO_CONFIG["CUSTOM_DEBUFF"].version or 0) < aVersion) then
VUHDO_CONFIG["CUSTOM_DEBUFF"].version = aVersion;
local tArg;
for tCnt = 1, select("#", ...) do
tArg = select(tCnt, ...);
if (type(tArg) == "number") then
-- make sure the spell ID is still added as a string
-- otherwise getKeyFromValue look-ups w/ spell ID string fail later
tArg = tostring(tArg);
end
VUHDO_tableUniqueAdd(VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED"], tArg);
end
end
end
--
local function VUHDO_spellTraceAddDefaultSettings(aSpellName)
if (VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"] == nil) then
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"] = { };
end
if (VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][aSpellName] == nil) then
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][aSpellName] = {
["isMine"] = VUHDO_CONFIG["SPELL_TRACE"]["isMine"],
["isOthers"] = VUHDO_CONFIG["SPELL_TRACE"]["isOthers"],
["duration"] = VUHDO_CONFIG["SPELL_TRACE"]["duration"],
["isIncoming"] = VUHDO_CONFIG["SPELL_TRACE"]["isIncoming"],
}
end
end
--
local function VUHDO_addSpellTraceSpellIds(aVersion, ...)
if ((VUHDO_CONFIG["SPELL_TRACE"].version or 0) < aVersion) then
VUHDO_CONFIG["SPELL_TRACE"].version = aVersion;
local tArg;
for tCnt = 1, select("#", ...) do
tArg = select(tCnt, ...);
if (type(tArg) == "number") then
-- make sure the spell ID is still added as a string
-- otherwise getKeyFromValue look-ups w/ spell ID string fail later
tArg = tostring(tArg);
end
VUHDO_tableUniqueAdd(VUHDO_CONFIG["SPELL_TRACE"]["STORED"], tArg);
end
end
end
--
local VUHDO_DEFAULT_CONFIG = {
["VERSION"] = 4,
["SHOW_PANELS"] = true,
["HIDE_PANELS_SOLO"] = false,
["HIDE_PANELS_PARTY"] = false,
["HIDE_PANELS_PET_BATTLE"] = true,
["LOCK_PANELS"] = false,
["LOCK_CLICKS_THROUGH"] = false,
["LOCK_IN_FIGHT"] = true,
["PARSE_COMBAT_LOG"] = true,
["HIDE_EMPTY_BUTTONS"] = false,
["MODE"] = VUHDO_MODE_NEUTRAL,
["EMERGENCY_TRIGGER"] = 100,
["MAX_EMERGENCIES"] = 5,
["SHOW_INCOMING"] = true,
["SHOW_OVERHEAL"] = true,
["SHOW_OWN_INCOMING"] = true,
["SHOW_TEXT_OVERHEAL"] = true,
["SHOW_SHIELD_BAR"] = true,
["SHOW_OVERSHIELD_BAR"] = false,
["SHOW_HEAL_ABSORB_BAR"] = true,
["RANGE_CHECK_DELAY"] = 260,
["SOUND_DEBUFF"] = nil,
["DETECT_DEBUFFS_REMOVABLE_ONLY"] = true,
["DETECT_DEBUFFS_REMOVABLE_ONLY_ICONS"] = true,
["DETECT_DEBUFFS_IGNORE_BY_CLASS"] = true,
["DETECT_DEBUFFS_IGNORE_NO_HARM"] = true,
["DETECT_DEBUFFS_IGNORE_MOVEMENT"] = true,
["DETECT_DEBUFFS_IGNORE_DURATION"] = true,
["SMARTCAST_RESURRECT"] = true,
["SMARTCAST_CLEANSE"] = true,
["SMARTCAST_BUFF"] = false,
["SHOW_PLAYER_TAGS"] = true,
["OMIT_MAIN_TANKS"] = false,
["OMIT_MAIN_ASSIST"] = false,
["OMIT_PLAYER_TARGETS"] = false,
["OMIT_OWN_GROUP"] = false,
["OMIT_FOCUS"] = false,
["OMIT_TARGET"] = false,
["OMIT_SELF"] = false,
["OMIT_DFT_MTS"] = false,
["BLIZZ_UI_HIDE_PLAYER"] = 2,
["BLIZZ_UI_HIDE_PARTY"] = 2,
["BLIZZ_UI_HIDE_TARGET"] = 2,
["BLIZZ_UI_HIDE_PET"] = 2,
["BLIZZ_UI_HIDE_FOCUS"] = 2,
["BLIZZ_UI_HIDE_RAID"] = 2,
["BLIZZ_UI_HIDE_RAID_MGR"] = 2,
["CURRENT_PROFILE"] = "",
["IS_ALWAYS_OVERWRITE_PROFILE"] = false,
["HIDE_EMPTY_PANELS"] = false,
["ON_MOUSE_UP"] = false,
["STANDARD_TOOLTIP"] = false,
["DEBUFF_TOOLTIP"] = true,
["AUTO_PROFILES"] = { },
["RES_ANNOUNCE_TEXT"] = VUHDO_I18N_DEFAULT_RES_ANNOUNCE,
["RES_ANNOUNCE_MASS_TEXT"] = VUHDO_I18N_DEFAULT_RES_ANNOUNCE_MASS,
["RES_IS_SHOW_TEXT"] = false,
["CUSTOM_DEBUFF"] = {
["scale"] = 0.8,
["animate"] = true,
["timer"] = true,
["max_num"] = 3,
["isNoRangeFade"] = false,
["isIcon"] = true,
["isColor"] = false,
["isStacks"] = false,
["isName"] = false,
["isShowOnlyForFriendly"] = false,
["blacklistModi"] = "ALT-CTRL-SHIFT",
["SELECTED"] = "",
["point"] = "TOPRIGHT",
["xAdjust"] = -2,
["yAdjust"] = -34,
["STORED"] = { },
["TIMER_TEXT"] = {
["ANCHOR"] = "BOTTOMRIGHT",
["X_ADJUST"] = 20,
["Y_ADJUST"] = 26,
["SCALE"] = 85,
["FONT"] = "Interface\\AddOns\\VuhDo\\Fonts\\ariblk.ttf",
["COLOR"] = VUHDO_makeFullColor(0, 0, 0, 1, 1, 1, 1, 1),
["USE_SHADOW"] = true,
["USE_OUTLINE"] = false,
["USE_MONO"] = false,
},
["COUNTER_TEXT"] = {
["ANCHOR"] = "TOPLEFT",
["X_ADJUST"] = -10,
["Y_ADJUST"] = -15,
["SCALE"] = 70,
["FONT"] = "Interface\\AddOns\\VuhDo\\Fonts\\ariblk.ttf",
["COLOR"] = VUHDO_makeFullColor(0, 0, 0, 1, 0, 1, 0, 1),
["USE_SHADOW"] = true,
["USE_OUTLINE"] = false,
["USE_MONO"] = false,
},
},
["SPELL_TRACE"] = {
["isMine"] = true,
["isOthers"] = false,
["duration"] = 2,
["showTrailOfLight"] = false,
["SELECTED"] = "",
["STORED"] = { },
["isIncoming"] = false,
["showIncomingFriendly"] = false,
["showIncomingEnemy"] = false,
["showIncomingAll"] = false,
["showIncomingBossOnly"] = false,
},
["THREAT"] = {
["AGGRO_REFRESH_MS"] = 300,
["AGGRO_TEXT_LEFT"] = ">>",
["AGGRO_TEXT_RIGHT"] = "<<",
["AGGRO_USE_TEXT"] = false,
["IS_TANK_MODE"] = false,
},
["CLUSTER"] = {
["REFRESH"] = 180,
["RANGE"] = 30,
["RANGE_JUMP"] = 11,
["BELOW_HEALTH_PERC"] = 85,
["THRESH_FAIR"] = 3,
["THRESH_GOOD"] = 5,
["DISPLAY_SOURCE"] = 2, -- 1=Mine, 2=all
["DISPLAY_DESTINATION"] = 2, -- 1=Party, 2=Raid
["MODE"] = 1, -- 1=radial, 2=chained
["IS_NUMBER"] = true,
["CHAIN_MAX_JUMP"] = 3,
["COOLDOWN_SPELL"] = "",
["CONE_DEGREES"] = 360,
["ARE_TARGETS_RANDOM"] = true,
["TEXT"] = {
["ANCHOR"] = "BOTTOMRIGHT",
["X_ADJUST"] = 40,
["Y_ADJUST"] = 22,
["SCALE"] = 85,
["FONT"] = "Interface\\AddOns\\VuhDo\\Fonts\\ariblk.ttf",
["COLOR"] = VUHDO_makeFullColor(0, 0, 0, 1, 1, 1, 1, 1),
["USE_SHADOW"] = false,
["USE_OUTLINE"] = true,
["USE_MONO"] = false,
},
},
["UPDATE_HOTS_MS"] = 250,
["SCAN_RANGE"] = "2", -- 0=all, 2=100 yards, 3=40 yards
["RANGE_SPELL"] = "",
["RANGE_PESSIMISTIC"] = true,
["IS_SHOW_GCD"] = false,
["IS_SCAN_TALENTS"] = true,
["IS_CLIQUE_COMPAT_MODE"] = false,
["IS_CLIQUE_PASSTHROUGH"] = false,
["DIRECTION"] = {
["enable"] = true,
["isDistanceText"] = false,
["isDeadOnly"] = false,
["isAlways"] = false,
["scale"] = 75,
},
["AOE_ADVISOR"] = {
["knownOnly"] = true,
["subInc"] = true,
["subIncOnlyCastTime"] = true,
["isCooldown"] = true,
["animate"] = true,
["isGroupWise"] = false,
["refresh"] = 800,
["config"] = {
["coh"] = {
["enable"] = true,
["thresh"] = 15000,
},
["poh"] = {
["enable"] = true,
["thresh"] = 20000,
},
["ch"] = {
["enable"] = true,
["thresh"] = 15000,
},
["wg"] = {
["enable"] = true,
["thresh"] = 15000,
},
["tq"] = {
["enable"] = true,
["thresh"] = 15000,
},
["lod"] = {
["enable"] = true,
["thresh"] = 8000,
},
["hr"] = {
["enable"] = false,
["thresh"] = 10000,
},
["cb"] = {
["enable"] = false,
["thresh"] = 10000,
},
},
},
["IS_DC_SHIELD_DISABLED"] = false,
["IS_USE_BUTTON_FACADE"] = false,
["IS_SHARE"] = true,
["IS_READY_CHECK_DISABLED"] = false,
["SHOW_SPELL_TRACE"] = false,
};
local VUHDO_DEFAULT_CU_DE_STORED_SETTINGS = {
["isIcon"] = true,
["isColor"] = false,
-- ["SOUND"] = "",
["animate"] = true,
["timer"] = true,
["isStacks"] = true,
["isAliveTime"] = false,
["isFullDuration"] = false,
["isMine"] = true,
["isOthers"] = true,
["isBarGlow"] = false,
["isIconGlow"] = false,
-- ["color"] = {
-- ["R"] = 0.6,
-- ["G"] = 0.3,
-- ["B"] = 0,
-- ["O"] = 1,
-- ["TR"] = 0.8,
-- ["TG"] = 0.5,
-- ["TB"] = 0,
-- ["TO"] = 1,
-- ["useText"] = true,
-- ["useBackground"] = true,
-- ["useOpacity"] = true,
-- },
};
local VUHDO_DEFAULT_SPELL_TRACE_STORED_SETTINGS = {
["isMine"] = true,
["isOthers"] = false,
["duration"] = 2,
["isIncoming"] = false,
};
VUHDO_DEFAULT_POWER_TYPE_COLORS = {
[VUHDO_UNIT_POWER_MANA] = VUHDO_makeFullColor(0, 0, 1, 1, 0, 0, 1, 1),
[VUHDO_UNIT_POWER_RAGE] = VUHDO_makeFullColor(1, 0, 0, 1, 1, 0, 0, 1),
[VUHDO_UNIT_POWER_FOCUS] = VUHDO_makeFullColor(1, 0.5, 0.25, 1, 1, 0.5, 0.25, 1),
[VUHDO_UNIT_POWER_ENERGY] = VUHDO_makeFullColor(1, 1, 0, 1, 1, 1, 0, 1),
[VUHDO_UNIT_POWER_COMBO_POINTS] = VUHDO_makeFullColor(0, 1, 1, 1, 0, 1, 1, 1),
[VUHDO_UNIT_POWER_RUNIC_POWER] = VUHDO_makeFullColor(0.5, 0.5, 0.5, 1, 0.5, 0.5, 0.5, 1),
[VUHDO_UNIT_POWER_LUNAR_POWER] = VUHDO_makeFullColor(0.87, 0.95, 1, 1, 0.87, 0.95, 1, 1),
[VUHDO_UNIT_POWER_MAELSTROM] = VUHDO_makeFullColor(0.09, 0.56, 1, 1, 0.09, 0.56, 1, 1),
[VUHDO_UNIT_POWER_INSANITY] = VUHDO_makeFullColor(0.15, 0.97, 1, 1, 0.15, 0.97, 1, 1),
[VUHDO_UNIT_POWER_FURY] = VUHDO_makeFullColor(0.54, 0.09, 0.69, 1, 0.54, 0.09, 0.69, 1),
[VUHDO_UNIT_POWER_PAIN] = VUHDO_makeFullColor(0.54, 0.09, 0.69, 1, 0.54, 0.09, 0.69, 1),
};
--
local function VUHDO_convertToTristate(aBoolean, aTrueVal, aFalseVal)
if (aBoolean == nil or aBoolean == false) then
return aFalseVal;
elseif (aBoolean == true) then
return aTrueVal;
else
return aBoolean;
end
end
--
function VUHDO_loadDefaultConfig()
local tClass;
_, tClass = UnitClass("player");
if (VUHDO_CONFIG == nil) then
VUHDO_CONFIG = VUHDO_decompressOrCopy(VUHDO_DEFAULT_CONFIG);
if (VUHDO_DEFAULT_RANGE_SPELLS[tClass] ~= nil) then
VUHDO_CONFIG["RANGE_SPELL"] = VUHDO_DEFAULT_RANGE_SPELLS[tClass];
VUHDO_CONFIG["RANGE_PESSIMISTIC"] = false;
end
end
VUHDO_CONFIG["BLIZZ_UI_HIDE_PLAYER"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_PLAYER"], 3, 2);
VUHDO_CONFIG["BLIZZ_UI_HIDE_PARTY"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_PARTY"], 3, 2);
VUHDO_CONFIG["BLIZZ_UI_HIDE_TARGET"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_TARGET"], 3, 2);
VUHDO_CONFIG["BLIZZ_UI_HIDE_PET"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_PET"], 3, 2);
VUHDO_CONFIG["BLIZZ_UI_HIDE_FOCUS"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_FOCUS"], 3, 2);
VUHDO_CONFIG["BLIZZ_UI_HIDE_RAID"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_RAID"], 3, 2);
VUHDO_CONFIG["BLIZZ_UI_HIDE_RAID_MGR"] = VUHDO_convertToTristate(VUHDO_CONFIG["BLIZZ_UI_HIDE_RAID_MGR"], 3, 2);
VUHDO_CONFIG = VUHDO_ensureSanity("VUHDO_CONFIG", VUHDO_CONFIG, VUHDO_DEFAULT_CONFIG);
VUHDO_DEFAULT_CONFIG = VUHDO_compressAndPackTable(VUHDO_DEFAULT_CONFIG);
if ((VUHDO_CONFIG["VERSION"] or 1) < 4) then
VUHDO_CONFIG["IS_SHARE"] = true;
VUHDO_CONFIG["VERSION"] = 4;
end
-- add relevant custom debuffs for raid bosses
-- 5.x - MoP
-- VUHDO_addCustomSpellIds(20,
--
-- --[[ Heart of Fear ]]
--
-- --Imperial Vizier Zor'lok
-- 122760, --Exhale
-- 123812, --Pheromones of Zeal
-- 122740, --Convert
-- 122706, --Noise Cancelling
-- --Blade Lord Ta'yak
-- 122949, --Unseen Strike
-- 123474, --Overwhelming Assault
-- 124783, --Storm Unleashed
-- 123180, --Wind Step
-- --Garalon
-- 122835, --Pheromones
-- 123081, --Pungency
-- 122774, --Crush (knocked down)
-- 123423, --Weak Points
-- --123120, --Pheromone Trail
-- --Wind Lord Mel'jarak
-- 121881, --Amber Prison
-- 122055, --Residue
-- 122064, --Corrosive Resin
-- --Amber-Shaper Un'sok
-- 121949, --Parasitic Growth
-- 122784, --Reshape Life
-- 122064, --Corrosive Resin
-- --122504, --Burning Amber
-- --Grand Empress Shek'zeer
-- 125390, --Fixate
-- 123707, --Eyes of the Empress
-- 123788, --Cry of Terror
-- 124097, --Sticky Resin
-- 125824, --Trapped!
-- 124777, --Poison Bomb
-- 124821, --Poison-Drenched Armor
-- 124827, --Poison Fumes
-- 124849, --Consuming Terror
-- 124863, --Visions of Demise
-- 123845, --Heart of Fear
-- 123184, --Dissonance Field
-- 125283, --Sha Corruption
-- --Trash
-- 123417, --Dismantled Armor
-- 123422, --Arterial Bleeding
-- 123434, --Gouge Throat
-- 123436, --Riposte
-- 123497, --Gale Force Winds
-- 123180, --Wind Step
-- 123420, --Stunning Strike
-- 125081, --Slam
-- 125490, --Burning Sting
-- 126901, --Mortal Rend
-- 126912, --Grievous Whirl
--
-- --[[ Mogushan Vaults ]]
--
-- -- Trash
-- 118562, --Petrified
-- 116596, --Smoke Bomb
-- 116970, --Sundering Bite
-- 121087, --Curse of Vitality
-- 120670, --Pyroblast
-- 116606, --Troll Rush
-- --The Stone Guard
-- 130395, --Jasper Chains
-- 130774, --Amethyst Pool
-- 116038, --Jasper Petrification
-- 115861, --Cobalt Petrification
-- 116060, --Amethyst Petrification
-- 116281, --Cobalt Mine Blast
-- 125206, --Rend Flesh
-- 116008, --Jade Petrification
-- --Feng The Accursed
-- 131788, --Lightning Lash
-- 116040, --Epicenter
-- 116942, --Flaming Spear
-- 116784, --Wildfire Spark
-- 102464, --Arcane Shock
-- 116417, --Arcane Resonance
-- 116364, --Arcane Velocity
-- 116374, --Lightning Charge
-- 131792, --Shadowburn
-- --Gara'jal the Spiritbinder
-- 122151, --Voodoo doll
-- 117723, --Frail Soul
-- 116260, --Crossed Over
-- 116278, --Soul Sever
-- --The Spirit Kings
-- 117708, --Maddening Shout
-- 118303, --Fixate
-- 118048, --Pillaged
-- 118135, --Pinned Down
-- 118047, --Pillage: Target
-- 118163, --Robbed Blind
-- --Elegon
-- 117878, --Overcharged
-- 117949, --Closed circuit
-- 117945, --Arcing Energy
-- 132222, --Destabilizing Energies
-- --Will of the Emperor
-- 116835, --Devastating Arc
-- 132425, --Stomp
-- 116525, --Focused Assault
-- 116778, --Focused Defense
-- 117485, --Impeding Thrust
-- 116550, --Energizing Smash
-- 116829, --Focused Energy
--
-- --[[ Sha of Anger ]]
--
-- 119626, --Aggressive Behavior
-- 119488, --Unleashed Wrath
-- 119610, --Bitter Thoughts
--
-- --[[ Terrace of Endless Spring ]]
--
-- --Protector Kaolan
-- 117519, --Touch of Sha
-- 111850, --Lightning Prison: Targeted
-- 117436, --Lightning Prison: Stunned
-- 118191, --Corrupted Essence
-- 117986, --Defiled Ground: Stacks
-- 117235, --Purified
-- 117283, --Cleansing Waters
-- 117353, --Overwhelming Corruption
--
-- --Tsulong
-- 122768, --Dread Shadows
-- 122777, --Nightmares
-- 122752, --Shadow Breath
-- 122789, --Sunbeam
-- 123012, --Terrorize
-- 123036, --Fright
-- 122858, --Bathed in Light
--
-- --Lei Shi
-- 123121, --Spray
-- 123705, --Scary Fog
--
-- --Sha of Fear
-- 119414, --Breath of Fear
-- 129147, --Onimous Cackle
-- 119983, --Dread Spray
-- 120669, --Naked and Afraid
-- 75683, --Waterspout
-- 120629, --Huddle in Terror
-- 120394, --Eternal Darkness
-- 129189, --Sha Globe
-- 119086, --Penetrating Bolt
-- 119775 --Reaching Attack
--
-- );
-- VUHDO_addCustomSpellIds(21,
-- -- Jin'rokh
-- 138006,
-- 137399,
-- 138732,
-- 138349,
-- 137371,
-- -- Horridon
-- 136769,
-- 136767,
-- 136708,
-- 136723,
-- 136587,
-- 136710,
-- 136670,
-- 136573,
-- 136512,
-- 136719,
-- 136654,
-- 140946,
-- -- Council of Elders
-- 136922,
-- 137084,
-- 137641,
-- 136878,
-- 136857,
-- 137650,
-- 137359,
-- 137972,
-- 136860,
-- --Tortos
-- 134030,
-- 134920,
-- 136751,
-- 136753,
-- 137633,
-- --Megaera
-- 139822,
-- 134396,
-- 137731,
-- 136892,
-- 139909,
-- 137746,
-- 139843,
-- 139840,
-- 140179,
-- --Ji-Kun
-- 138309,
-- 138319,
-- 140571,
-- 134372,
-- --Durumu the Forgotten
-- 133768,
-- 133767,
-- 136932,
-- 134122,
-- 134123,
-- 134124,
-- 133795,
-- 133597,
-- 133732,
-- 133677,
-- 133738,
-- 133737,
-- 133675,
-- 134626,
-- --Primordius
-- 140546,
-- 136180,
-- 136181,
-- 136182,
-- 136183,
-- 136184,
-- 136185,
-- 136186,
-- 136187,
-- 136050,
-- --Dark Animus
-- 138569,
-- 138659,
-- 138609,
-- 138691,
-- 136962,
-- 138480,
-- --Iron Qon
-- 134647,
-- 136193,
-- 135147,
-- 134691,
-- 135145,
-- 136520,
-- 137669,
-- 137668,
-- 137654,
-- 136577,
-- 136192,
-- --Twin Consorts
-- 137440,
-- 137417,
-- 138306,
-- 137408,
-- 137360,
-- 137375,
-- 136722,
-- --Lei Shen
-- 135695,
-- 136295,
-- 135000,
-- 136543,
-- 134821,
-- 136326,
-- 137176,
-- 136853,
-- 135153,
-- 136914,
-- 135001
-- --Ra-den
-- );
-- Siege of Orgrimmar
-- VUHDO_addCustomSpellIds(22,
-- --Trash
-- 143828,
-- 146452,
-- --Immerseus
-- 143436,
-- 143298,
-- --The Fallen Protectors
-- 143962,
-- 144397,
-- 143009,
-- 143198,
-- 1776,
-- 144365,
-- 144176,
-- 147383,
-- 143424,
-- --Sha of Pride
-- 144358,
-- 144574,
-- --Galakras
-- 147200,
-- 146763,
-- 147705,
-- 147029,
-- --Iron Juggernaut
-- 144459,
-- 144467,
-- 144498,
-- 146325,
-- --Kor'kron Dark Shaman
-- 17153,
-- 144215,
-- 144089,
-- 143993,
-- 144331,
-- 144328,
-- 144089,
-- --General Nazgrim
-- 143494,
-- 143638,
-- 143480,
-- 143882,
-- --Malkorok
-- 142990,
-- 142862,
-- 142861,
-- 143919,
-- --Spoils of Pandaria
-- 145993,
-- 144853,
-- 142524,
-- 146217,
-- 145712,
-- --Thok the Bloodthirsty
-- 143766,
-- 143428,
-- 143445,
-- 143780,
-- 143773,
-- 143800,
-- 143767,
-- 143783,
-- --Siegecrafter Blackfuse
-- 143385,
-- 145444,
-- 143856,
-- 144466,
-- --Paragons of the Klaxxi
-- 142931,
-- 34940,
-- 142315,
-- 142929,
-- 142668,
-- 143974,
-- 143735,
-- 143275,
-- 143278,
-- 143339,
-- 142948,
-- 143702,
-- 143358,
-- 142808
-- --Garrosh Hellscream
-- );
-- 6.0 - Warlords of Draenor - part 1
-- VUHDO_addCustomSpellIds(23,
-- -- [[ Draenor World Bosses ]]
-- -- Drov
-- 175915, -- Acid Breath
-- -- Rukhmar
-- 167615, -- Pierce Armor
-- 167650, -- Loose Quills
-- -- Tarlna
-- 176004, -- Savage Vines
--
-- -- [[ Highmaul ]]
-- -- Brackenspore
-- 163241, -- Rot
-- -- Kargath Bladefist
-- 159250, -- Blade Dance
-- 159947, -- Chain Hurl
-- 162497, -- On The Hunt
-- -- Koragh
-- 162186, -- Expel Magic: Arcane
-- 162185, -- Expel Magic: Fire
-- -- Margok
-- 156225, -- Arcane Wrath
-- 158605, -- Mark Of Chaos
-- 157801, -- Slow
-- 157763, -- Fixate
-- -- Tectus
-- 162346, -- Crystalline Barrage
-- 162370, -- Crystalline Barrage Damage
-- 162892, -- Petrification
-- -- The Butcher
-- 156151, -- Tenderizer
-- -- Twin Ogron
-- 167200, -- Arcane Wound
-- 158241, -- Blaze
-- 163372, -- Arcane Volatility
--
-- -- [[ Blackrock Foundry ]]
-- -- Blackhand
-- 156096, -- Marked for Death
-- 157000, -- Attach Slag Bombs
-- -- Darmac
-- 154960, -- Pinned Down
-- 155061, -- Rend and Tear
-- 154981, -- Conflagration
-- 155030, -- Seared Flesh
-- 155236, -- Crush Armor
-- -- Gruul
-- 155078, -- Overwhelming Blows
-- 155326, -- Petrifying Slam
-- 155506, -- Petrified
-- -- Hansgar and Franzok
-- 157139, -- Shattered Vertebrae
-- -- Kagraz
-- 154932, -- Molten Torrent
-- 163284, -- Rising Flames
-- 154952, -- Fixate
-- 155074, -- Charring Breath
-- -- Kromog
-- 156766, -- Warped Armor
-- -- Oregorger
-- 156297, -- Acid Torrent
-- -- The Blast Furnace
-- 158345, -- Shields Down
-- 155196, -- Fixate
-- 155192, -- Bomb
-- 176121, -- Volatile Fire
-- 175104, -- Melt Armor
-- -- The Iron Maidens
-- 164271, -- Penetrating Shot
-- 156214, -- Convulsive Shadows
-- 156007, -- Impale
-- 158315, -- Dark Hunt
-- 157950, -- Heart Seeker
-- -- Thogar
-- 155921, -- Enkindle
-- 155864, -- Pulse Grenade
-- 159481 -- Delayed Siege Bomb
-- );
-- 6.0 - Warlords of Draenor - part 2
-- VUHDO_addCustomSpellIds(24,
-- -- [[ Highmaul ]]
-- -- Brackenspore
-- -- Kargath Bladefist
-- -- Koragh
-- -- Margok
-- 164004, -- Arcane Wrath: Displacement
-- 164005, -- Arcane Wrath: Fortification
-- 164006, -- Arcane Wrath: Replication
-- 164176, -- Mark of Chaos: Displacement
-- 164178, -- Mark of CHaos: Fortification
-- 164191 -- Mark of Chaos: Replication
-- -- Tectus
-- -- The Butcher
-- -- Twin Ogron
-- );
-- 6.1 - Warlords of Draenor
-- VUHDO_addCustomSpellIds(25,
-- -- [[ Blackrock Foundry ]]
-- -- Blackhand
-- 156743, -- Impaled
-- 156047, -- Slagged
-- -- Darmac
-- -- Gruul
-- -- Hansgar and Franzok
-- -- Kagraz
-- 155049, -- Singe
-- 155277, -- Blazing Radiance
-- -- Kromog
-- -- Oregorger
-- -- The Blast Furnace
-- -- The Iron Maidens
-- 156112 -- Convulsive Shadows
-- -- Thogar
-- );
-- 6.2 - WoD - Hellfire Citadel
-- VUHDO_addCustomSpellIds(26,
-- -- [[ Hellfire Citadel ]]
-- -- Hellfire Assault
-- 156096, -- Marked for Death
-- -- Iron Reaver
-- 182001, -- Unstable Orb
-- -- Kormrok
-- 181306, -- Explosive Burst
-- 181321, -- Fel Touch
-- -- Hellfire High Council
-- 184358, -- Fel Rage
-- -- Killrogg Deadeye
-- 180372, -- Heart Seeker
-- 182159, -- Fel Corruption
-- -- Gorefiend
-- 179978, -- Touch of Doom
-- 179909, -- Shared Fate
-- -- Shadow-Lord Iskar
-- 179202, -- Eye of Anzu
-- 181956, -- Phantasmal Winds
-- 182323, -- Phantasmal Wounds
-- 182173, -- Fel Chakram
-- 181753, -- Fel Bomb
-- 179218, -- Phantasmal Obliteration
-- -- Socrethar the Eternal
-- 182635, -- Reverberating Blow
-- -- Fel Lord Zakuun
-- 181508, -- Seed of Destruction
-- 179620, -- Fel Crystal
-- -- Xhul'horac
-- 186490, -- Chains of Fel
-- 186546, -- Black Hole
-- -- Tyrant Velhari
-- 180128, -- Edict of Condemnation
-- 180526, -- Font of Corruption
-- -- Mannoroth
-- 181099, -- Mark of Doom
-- 181597, -- Mannoroth's Gaze
-- -- Archimonde
-- 185590, -- Desecrate
-- 183864, -- Shadow Blast
-- 183828, -- Death Brand
-- 184931, -- Shackled Torment
--
-- -- [[ Draenor World Bosses ]]
-- -- Supreme Lord Kazzak
-- 187664, -- Fel Breath
-- 187668 -- Mark of Kazzak
-- );
-- 6.2 - WoD - Hellfire Citadel - part 2
-- VUHDO_addCustomSpellIds(30,
-- -- [[ Hellfire Citadel ]]
-- -- Hellfire High Council
-- 184449, -- Mark of the Necromancer Purple
-- 184450, -- Mark of the Necromancer Purple
-- 184676, -- Mark of the Necromancer Purple
-- 185065, -- Mark of the Necromancer Yellow
-- 185066, -- Mark of the Necromancer Red
-- -- Socrethar the Eternal
-- 184124, -- Gift of the Man'ari
-- -- Fel Lord Zakuun
-- 189030, -- Befouled Red
-- 189031, -- Befouled Yellow
-- 189032, -- Befouled Green
-- -- Tyrant Velhari
-- 180164, -- Touch of Harm
-- 180166 -- Touch of Harm
-- );
-- 7.0 - Legion
-- VUHDO_addCustomSpellIds(31,
-- -- [[ Emerald Nightmare ]]
-- -- Nythendra
-- --204504, -- Infested
-- --203045, -- Infested Ground
-- 203096, -- Rot
-- --204463, -- Volatile Rot
-- 203646, -- Burst of Corruption
-- --221028, -- Unstable Decay
-- -- Il'gynoth, Heart of Corruption
-- --212886, -- Nightmare Corruption
-- --215845, -- Dispersed Spores
-- --210099, -- Fixate
-- 209469, -- Touch of Corruption
-- --209471, -- Nightmare Explosion
-- 208697, -- Mind Flay
-- 208929, -- Spew Corruption
-- 215128, -- Cursed Blood
-- -- Erethe Renferal
-- 215307, -- Web of Pain
-- --215460, -- Necrotic Venom
-- --213124, -- Venomous Pool
-- --210850, -- Twisting Shadows
-- 218519, -- Wind Burn
-- 210228, -- Dripping Fangs
-- -- Ursoc
-- 204859, -- Rend Flesh
-- 198006, -- Focused Gaze
-- --198108, -- Momentum
-- --197980, -- Nightmarish Cacophony
-- 205611, -- Miasma
-- -- Dragons of Nightmare
-- 207681, -- Nightmare Bloom
-- --204731, -- Wasting Dread
-- 203787, -- Volatile Infection
-- 204044, -- Shadow Burst
-- --204078, -- Bellowing Roar
-- --214543, -- Collapsing Nightmare
-- -- Cenarius
-- --210279, -- Creeping Nightmares
-- 210315, -- Nightmare Brambles
-- 211507, -- Nightmare Javelin
-- 211471, -- Scorned Touch
-- 216516, -- Ancient Dream
-- -- Xavius
-- 206005, -- Dream Simulacrum
-- --206109, -- Awakening to the Nightmare
-- 208431, -- Descent into Madness
-- --207409, -- Madness
-- 206651, -- Darkening Soul
-- 211802, -- Nightmare Blades
-- --205771, -- Tormenting Fixation
-- 209158, -- Blackening Soul
-- 205612, -- Blackened
-- 210451 -- Bonds of Terror
-- --208385, -- Tainted Discharge
-- --211634 -- The Infinite Dark
-- );
-- 7.1 - Legion - Trial of Valor
-- VUHDO_addCustomSpellIds(32,
-- -- [[ Trial of Valor ]]
-- -- Odyn
-- 227959, -- Storm of Justice
-- 228915, -- Stormforged Spear
-- 228030, -- Expel Light
-- -- Guarm
-- 228228, -- Flame Lick
-- 228250, -- Shadow Lick
-- -- Helya
-- 232450, -- Corrupted Axion
-- 193367, -- Fetid Rot
-- 228519 -- Anchor Slam
-- );
-- 7.1 - Legion - Trial of Valor (part 2)
-- VUHDO_addCustomSpellIds(33,
-- -- [[ Trial of Valor ]]
-- -- Odyn
-- 228918, -- Stormforged Spear
-- 228914, -- Stormforged Spear
-- 228932, -- Stormforged Spear
-- 227811, -- Raging Tempest
-- -- Guarm
-- 228253, -- Shadow Lick
-- -- Helya
-- 232488 -- Dark Hatred
-- );
-- 7.1.5 - Legion - Nighthold
-- VUHDO_addCustomSpellIds(34,
-- -- [[ Nighthold ]]
-- -- Skorpyron
-- 204766, -- Energy Surge
-- 211659, -- Arcane Tether
-- -- Chronomatic Anomaly
-- 206607, -- Chronometric Particles
-- 206609, -- Time Release
-- 206615, -- Time Bomb
-- -- Trilliax
-- -- Spellblade Aluriel
-- 212587, -- Mark of Frost
-- -- Tichondrius
-- 206480, -- Carrion Plague
-- 212795, -- Brand of Argus
-- 208230, -- Feast of Blood
-- 216024, -- Volatile Wound
-- 216040, -- Burning Soul
-- -- Krosus
-- -- High Botanist Tel'arn
-- 218502, -- Recursive Strikes
-- 219049, -- Toxic Spores
-- 218424, -- Parasitic Fetter
-- -- Star Augur Etraeus
-- 206585, -- Absolute Zero
-- 206388, -- Felburst
-- 205649, -- Fel Ejection
-- 206965, -- Voidburst
-- 207143, -- Void Ejection
-- -- Grand Magistrix Elisande
-- -- Gul'dan
-- 212568, -- Drain
-- 206883, -- Soul Vortex
-- 206222, -- Bonds of Fel
-- 206221, -- Empowered Bonds of Fel
-- 208802 -- Soul Corrosion
-- );
-- 7.1.5 - Legion - Nighthold (part 2)
-- VUHDO_addCustomSpellIds(35,
-- -- [[ Nighthold ]]
-- -- Chronomatic Anomaly
-- 219964, -- Time Release Green
-- 219965, -- Time Release Yellow
-- 219966 -- Time Release Red
-- -- Trilliax
-- -- Grand Magistrix Elisande
-- );
-- 7.2.5 - Legion - Tomb of Sargeras
-- VUHDO_addCustomSpellIds(36,
-- -- [[ Tomb of Sargeras ]]
-- -- Goroth
-- 231363, -- Burning Armor
-- 230345, -- Crashing Comet
-- 233062, -- Infernal Burning
-- -- Demonic Inquistion
-- -- Atrigan
-- -- Belac
-- -- Harjatan
-- 231998, -- Jagged Abrasion
-- -- Mistress Sassz'ine
-- 230201, -- Burden of Pain
-- 230920, -- Consuming Hunger
-- 230139, -- Hydra Shot
-- 232754, -- Hydra Acid
-- 230276, -- Jaws from the Deep
-- -- Sisters of the Moon
-- -- Huntress Kasparian
-- 236550, -- Discorporate
-- 237561, -- Twilight Glaive
-- -- Priestess Lunaspyre
-- 239264, -- Lunar Fire
-- 236519, -- Moon Burn
-- -- Captain Yathae Moonstrike
-- 233263, -- Embrace of the Eclipse
-- 236596, -- Rapid Shot
-- -- The Desolate Host
-- 236515, -- Shattering Scream
-- 236459, -- Soulbind
-- 235621, -- Spirit Realm
-- 236011, -- Tormented Cries
-- 238442, -- Spear of Anguish
-- 235924, -- Spear of Anguish
-- 236131, -- Wither
-- 236138, -- Wither
-- -- Maiden of Vigilence
-- 235117, -- Unstable Soul
-- -- Fallen Avatar
-- 239739, -- Dark Mark
-- 236494, -- Desolate
-- 242017, -- Black Winds
-- 240728, -- Tainted Essence
-- -- Kil'jaeden
-- 234310, -- Armageddon Rain
-- 245509, -- Felclaws
-- 243624 -- Lingering Wail
-- );
-- 7.3.0 - Legion - Antorus, The Burning Throne
-- VUHDO_addCustomSpellIds(37,
-- -- [[ Antorus, The Burning Throne ]]
-- -- Garothi
-- 246220, -- Fel Bombardment (tank)
-- 244410, -- Decimation
-- 246920, -- Haywire Decimation (M)
---- 246848, -- Luring Destruction (M)
-- -- Felhounds of Sargeras
---- 251445, -- Smouldering
-- 244091, -- Singed
-- 244768, -- Desolate Gaze
-- 248815, -- Enflamed
---- 245098, -- Decay
-- 245024, -- Consumed
-- 244071, -- Weight of Darkness
-- 248819, -- Siphoned
-- 244086, -- Molten Touch
-- 254747, -- Burning Maw
---- 244055, -- Shadowtouched (M)
---- 244054, -- Flametouched (M)
---- 245022, -- Burning Remnant (M)
-- 244517, -- Lingering Flames (M)
-- -- Antoran High Command
---- 244892, -- Exploit Weakness
-- 257974, -- Chaos Pulse
---- 244910, -- Felshield
-- 245121, -- Entropic Blast
-- 253037, -- Demonic Charge
-- 244172, -- Psychic Assault
---- 244388, -- Psychic Scarring
-- 244729, -- Shock Grenade
-- 244748, -- Shocked (M)
-- -- Portal Keeper Hasabel
---- 244016, -- Reality Tear
---- 245118, -- Cloying Shadows
---- 245075, -- Hungering Gloom
---- 245099, -- Mind Fog
-- 244613, -- Everburning Flames
-- 245050, -- Delusions
-- 245040, -- Corrupt
-- 244849, -- Caustic Slime (M)
---- 245075, -- Hungering Gloom (M)
---- 244915, -- Poison Essence
---- 244915, -- Leech Essence
-- 244949, -- Felsilk Wrap
-- 246208, -- Acidic Web
---- 244709, -- Fiery Detonation
-- -- Eonar, the Lifebinder
-- 248332, -- Rain of Fel
---- 248861, -- Spear of Doom
-- 248795, -- Fel Wake
---- 250691, -- Burning Embers (M)
---- 250140, -- Foul Steps (M)
-- 249016, -- Feedback: Targeted (M)
-- 249017, -- Feedback: Arcane Singularity (M)
-- 249014, -- Feedback: Foul Steps (M)
-- 249015, -- Feedback: Burning Embers (M)
-- -- Imonar the Soulhunter
---- 247367, -- Shock Lance
-- 247687, -- Sever
---- 250255, -- Empowered Shock Lance
-- 250006, -- Empowered Pulse
---- 255029, -- Asleep
-- 247552, -- Sleep Canister
---- 247565, -- Slumber Gas
---- 247716, -- Charged Blasts
-- 250224, -- Shocked
-- 247949, -- Shrapnel Blast
-- 247641, -- Stasis Trap
---- 250191, -- Conflagration
---- 254181, -- Seared Skin
---- 248255, -- Infernal Rockets
-- -- Kin�garoth
---- 254919, -- Forging Strike
-- 249535, -- Demolished (M)
-- 246706, -- Demolish
-- 246687, -- Decimation
---- 246840, -- Ruiner
-- -- Varimathras
-- 244094, -- Necrotic Embrace
-- 243961, -- Misery
-- 244042, -- Marked Prey
-- 244005, -- Dark Fissure
---- 243980, -- Torment of Fel
---- 243968, -- Torment of Flames
---- 243977, -- Torment of Frost
---- 243974, -- Torment of Shadows
-- 248732, -- Echoes of Doom (M)
-- -- Coven of Shivarra
---- 253203, -- Shivan Pact
---- 244899, -- Fiery Strike
---- 245518, -- Flashfreeze
-- 253520, -- Fulminating Pulse
---- 253752, -- Sense of Dread
---- 245627, -- Whirling Saber
---- 253697, -- Orb of Frost
---- 252861, -- Storm of Darkness
-- 246763, -- Fury of Golganneth
-- 245586, -- Chilled Blood (healing absorb)
---- 245921, -- Spectral Army
---- 245671, -- Flames of Khaz'goroth
---- 250757, -- Cosmic Glare (M)
-- -- Aggramar
---- 244291, -- Foe Breaker
---- 245990, -- Taeschalach�s Reach
-- 245994, -- Scorching Blaze
---- 246014, -- Searing Tempest
---- 244736, -- Wake of Flame
---- 244912, -- Blazing Eruption
---- 245916, -- Molten Remnants
-- 254452, -- Ravenous Blaze (M)
---- 247079, -- Empowered Flame Rend
---- 255062, -- Empowered Searing Tempest
---- 255060, -- Empowered Foe Breaker
---- 255528, -- Searing Binding
-- -- Argus the Unmaker
---- 248499, -- Sweeping Scythe
---- 258039, -- Deadly Scythe
-- 248396, -- Soulblight
---- 253901, -- Strength of Sea
---- 253903, -- Strength of Sky
---- 258647, -- Gift of the Sea
---- 258646, -- Gift of the Sky
---- 255199, -- Avatar of Aggramar
-- 250669, -- Soulburst
---- 255200, -- Aggramar�s Boon
---- 257299, -- Ember of Rage
---- 252729, -- Cosmic Ray
---- 252634, -- Cosmic Smash
---- 257215, -- Titanforged
---- 248167, -- Death Fog
---- 256899, -- Soul Detonation
---- 251815, -- Edge of Obliteration
---- 257299, -- Ember of Rage
---- 258373, -- Grasp (M)
---- 257961, -- Chains of Sargeras (M)
---- 257966, -- Sentence of Sargeras (M)
---- 258026, -- Punishment (M)
---- 258000, -- Shattered Bonds (M)
---- 257930, -- Crushing (M)
---- 257931, -- Sargeras Fear (M)
---- 257869, -- Unleashed (M)
---- 257911, -- Sargeras Rage (M)
-- 251570 -- Soulbomb
-- );
-- -- 8.0.1 - Battle for Azeroth - Uldir
-- VUHDO_addCustomSpellIds(38,
-- -- [[ Uldir ]]
-- -- Taloc
-- 271222, -- Plasma Discharge
-- -- Mother
-- 267821, -- Defense Grid
-- -- Devourer
-- 262313, -- Malodorous Miasma
-- 262314, -- Deadly Disease
-- -- Zek'voz
-- 264219, -- Fixate
-- 265360, -- Roiling Deceit
-- 265662, -- Corruptors Pact
-- -- Vectis
-- 265129, -- Omega Vector
-- 265178, -- Mutagenic Pathogen
-- 265212, -- Gestate
-- -- Zul
-- 273365, -- Dark Revelation
-- 269936, -- Fixate
-- 274358, -- Rupturing Blood
-- 274271, -- Deathwish
-- -- Mythrax
-- 272336, -- Annihilation
-- 272536, -- Imminent Ruin
-- -- G'huun
-- 263334, -- Putrid Blood
-- 263372 -- Power Matrix
-- );
-- -- 8.0.1 - Battle for Azeroth - World Bosses
-- VUHDO_addCustomSpellIds(39,
-- -- [[ World Bosses ]]
-- -- T'zane
-- 261552, -- Terror Wail
-- 261632, -- Consuming Spirits
-- -- Ji'arak
-- 261509, -- Clutch
-- 260908, -- Storm Wing
-- -- Hailstone Construct
-- 274891, -- Glacial Breath
-- -- The Lion's Roar
-- 271246, -- Demolisher Cannon
-- -- Azurethos
-- 274839, -- Azurethos' Fury
-- -- Warbringer Yenajz
-- 274904, -- Reality Tear
-- 274932 -- Endless Abyss
-- -- Dunegorger Kraulok
-- );
-- -- 8.0.1 - Battle for Azeroth - Debuff Absorbs
-- VUHDO_addCustomSpellIds(40,
-- -- [[ The Underrot ]]
-- -- Diseased Lasher
-- 278961, -- Decaying Mind
-- -- [[ Uldir - Vectis ]]
-- 265206 -- Immunosuppression
-- );
-- -- 8.0.1 - Battle for Azeroth - Uldir part 2
-- VUHDO_addCustomSpellIds(41,
-- -- [[ Uldir ]]
-- -- Taloc
-- 275270, -- Fixate
-- -- Mother
-- -- Devourer
-- -- Zek'voz
-- -- Vectis
-- 265127, -- Lingering Infection
-- 267160, -- Omega Vector
-- 267161, -- Omega Vector
-- 267162, -- Omega Vector
-- 267163, -- Omega Vector
-- 267164, -- Omega Vector
-- 267165, -- Omega Vector
-- 267166, -- Omega Vector
-- 267167, -- Omega Vector
-- 267168, -- Omega Vector
-- -- Zul
-- 276020, -- Fixate
-- -- Mythrax
-- -- G'huun
-- 272506 -- Explosive Corruption
-- );
-- -- 8.1 - Battle for Azeroth - Battle of Dazar'alor
-- VUHDO_addCustomSpellIds(42,
-- -- [[ Battle of Dazar'alor ]]
-- -- Champion of the Light
-- -- Grong (Horde & Alliance)
-- 285875, -- Rending Bite
-- 282215, -- Megatomic Seeker Missile
-- 282471, -- Voodoo Blast
-- 285659, -- Apetagonizer Core
-- 286434, -- Necrotic Core
-- -- Jadefire Masters
-- 285632, -- Stalking
-- 286988, -- Searing Embers
-- -- Treasure Guardian Opulence
-- 287072, -- Liquid Gold
-- 283507, -- Volatile Charge
-- 284519, -- Pulse Quickening Toxin
-- -- Conclave of the Chosen
-- 282444, -- Lacerating Claws
-- 286811, -- Akunda's Wrath
-- 282209, -- Mark of Prey
-- -- King Rastakhan
-- 285213, -- Caress of Death
-- 288449, -- Death's Door
-- 284662, -- Seal of Purification
-- 285349, -- Plague of Fire
-- 284781, -- Grevious Axe
-- -- High Tinker Mekkatorque
-- 286480, -- Anti-Tampering Shock
-- 282182, -- Buster Cannon
-- 287757, -- Gigavolt Charge
-- 283411, -- Gigavolt Blast
-- -- Stormwall Blockade
-- 284405, -- Tempting Song
-- 285000, -- Kelp Wrapping
-- 285350, -- Storm's Wail
-- -- Lady Jaina Proudmoore
-- 287365, -- Searing Pitch
-- 288218, -- Broadside
-- 289220, -- Heart of Frost
-- 288038 -- Marked Target
-- );
-- -- 8.1.5 - Battle for Azeroth - Crucible of Storms
-- VUHDO_addCustomSpellIds(43,
-- -- [[ Crucible of Storms ]]
-- -- Restless Cabal
-- 293300, -- Storm Essence
-- 282540, -- Agent of Demise
-- 282432, -- Crushing Doubt
-- 287762, -- Crushing Doubt
-- 131097, -- Crushing Doubt
-- 131098, -- Crushing Doubt
-- 282437, -- Crushing Doubt
-- 282386, -- Aphotic Blast
-- 283524, -- Aphotic Blast
-- 293488, -- Oceanic Essence
-- -- Uu'nat
-- 285345, -- Maddening Eyes of N'zoth
-- 285652, -- Insatiable Torment
-- 295609, -- Insatiable Torment
-- 286770, -- Embrace of the Void
-- 284733, -- Embrace of the Void
-- 283053, -- Embrace of the Void
-- 282738, -- Embrace of the Void
-- 285367 -- Piercing Gaze of N'zoth
-- );
-- --- 8.1.5 - Battle for Azeroth - Crucible of Storms part 2
-- VUHDO_addCustomSpellIds(44,
-- -- [[ Crucible of Storms ]]
-- -- Uu'nat
-- 284722, -- Umbral Shell
-- 286771 -- Umbral Shell
-- );
-- --- 8.2.0 - Battle for Azeroth - Rise of Azshara
-- VUHDO_addCustomSpellIds(45,
-- -- [[ Eternal Palace ]]
-- -- Abyssal Commander
-- -- 294715, -- Toxic Brand
-- -- 294711, -- Frost Mark
-- 295421, -- Overflowing Venom
-- 295348, -- Overflowing Chill
-- 300882, -- Inversion Sickness
-- 300957, -- Inversion Sickness
-- -- Blackwater Behemoth
-- 292127, -- Darkest Depths
-- -- 292133, -- Bioluminescence
-- 292307, -- Gaze from Below
-- 292167, -- Toxic Spine
-- 301494, -- Piercing Barb
-- 298595, -- Glowing Stinger
-- -- Radiance of Aszhara
-- 296737, -- Arcane Bomb
-- 296746, -- Arcane Bomb
-- -- Lady Ashvane
-- 296693, -- Waterlogged
-- 297333, -- Briny Bubble
-- -- Orgozoa
-- 298306, -- Incubation Fluid
-- 295779, -- Aqua Lance
-- -- The Queen's Court
-- 297586, -- Suffering
-- 299914, -- Frenetic Charge
-- 296851, -- Fanatical Verdict
-- 300545, -- Mighty Rupture
-- -- Za'qul
-- 292971, -- Hysteria
-- 292963, -- Dread
-- 293509, -- Manifest Nightmares
-- 298192, -- Dark Beyond
-- -- Queen Azshara
-- -- 298569, -- Drained Soul
-- -- 301078, -- Charged Spear
-- -- 299094, -- Beckon
-- 303828, -- Crushing Depths
-- 303825, -- Crushing Depths
-- 303657, -- Arcane Burst
-- 300492, -- Static Shock
-- 297907 -- Cursed Heart
-- );
-- -- 8.3.0 - Battle for Azeroth - Visions of N'Zoth
-- VUHDO_addCustomSpellIds(46,
-- -- [[ Ny'alotha, The Waking City ]]
-- -- Wrathion
-- 306163, -- Incineration
-- 314347, -- Noxious Choke
-- -- Maut
-- 307806, -- Devour Magic
-- -- The Prophet Skitra
-- 308059, -- Shadow Shock
-- 307950, -- Shred Psyche
-- 308065, -- Shred Psyche
-- -- Dark Inquisitor Xanesh
-- 313198, -- Void-Touched
-- 312406, -- Voidwoken
-- 309569, -- Voidwoken
-- -- Vexiona
-- 307314, -- Encroaching Shadows
-- 307359, -- Despair
-- 310323, -- Desolation
-- -- The Hivemind
-- 313461, -- Corrosion
-- 313129, -- Mindless
-- 313460, -- Nullification
-- -- Ra-den
-- 313227, -- Decaying Wound
-- 310019, -- Charged Bonds
-- 310022, -- Charged Bonds
-- 313077, -- Unstable Nightmare
-- 315252, -- Dread Inferno Fixate
-- 316065, -- Corrupted Existence
-- -- Shad'har the Insatiable
-- 307358, -- Debilitating Spit
-- 307945, -- Umbral Eruption
-- 306929, -- Bubbling Breath
-- 307260, -- Fixate
-- -- Drest'agath
-- 310552, -- Mind Flay
-- 310358, -- Muttering Insanity
-- -- Il'gynoth
-- 275269, -- Fixate
-- 311159, -- Cursed Blood
-- -- Carapice of N'Zoth
-- 307008, -- Breed Madness
-- 306973, -- Madness Bomb
-- 306984, -- Insanity Bomb
-- -- N'Zoth
-- 308885, -- Mind Flay
-- 317112, -- Evoke Anguish
-- 309980, -- Paranoia
-- 316541, -- Paranoia
-- 316542 -- Paranoia
-- );
-- -- 8.3.0 - Battle for Azeroth - Visions of N'Zoth part 2
-- VUHDO_addCustomSpellIds(47,
-- -- [[ Ny'alotha, The Waking City ]]
-- -- Wrathion
-- -- Maut
-- -- The Prophet Skitra
-- -- Dark Inquisitor Xanesh
-- 306311, -- Soul Flay
-- -- Vexiona
-- -- The Hivemind
-- -- Ra-den
-- 306184 -- Unleashed Void
-- -- Shad'har the Insatiable
-- -- Drest'agath
-- -- Il'gynoth
-- -- Carapice of N'Zoth
-- -- N'Zoth
-- );
-- -- 9.0.2 - Shadowlands
-- VUHDO_addCustomSpellIds(48,
-- -- [[ Castle Nathria ]]
-- -- Shriekwing
-- 328897, -- Exsanguinated
-- 342077, -- Echolocation
-- 341684, -- The Blood Lantern
-- 341489, -- Bloodlight
-- -- 340324, -- Sanguine Ichor (ground damage)
-- -- Huntsman Altimor
-- 335111, -- Huntsman's Mark
-- 334971, -- Jagged Claws
-- 334945, -- Vicious Lunge
-- 334852, -- Petrifying Howl
-- -- 334893, -- Stone Shards (ground damage)
-- -- Sun King's Salvation
-- 323402, -- Reflection of Guilt
-- -- 326456, -- Burning Remnants (tank)
-- 328479, -- Eyes on Target
-- -- 325442, -- Vanquished (tank)
-- 326583, -- Crimson Flurry
-- 339251, -- Drained Soul
-- 332871, -- Greater Castigation
-- 338600, -- Cloak of Flames
-- 343026, -- Cloak of Flames
-- 337859, -- Cloak of Flames
-- -- 328579, -- Smoldering Remnants (ground damage)
-- -- Artificer Xy'Mox
-- 328448, -- Dimensional Tear
-- 325236, -- Glyph of Destruction
-- 327902, -- Fixate
-- -- 327414, -- Possesion (mind control)
-- 340860, -- Withering Touch
-- -- Hungering Destroyer
-- 329298, -- Gluttonous Miasma
-- -- Lady Inerva Darkvein
-- -- 325382, -- Warped Desires (tank)
-- 325936, -- Shared Cognition
-- 324983, -- Shared Suffering
-- 332664, -- Concentrated Anima
-- -- 331573, -- Unconscionable Guilt (tank)
-- -- 325713, -- Lingering Anima (ground damage)
-- -- The Council of Blood
-- 330967, -- Fixate
-- -- 346651, -- Drain Essence (tank)
-- 331706, -- Scarlet Letter
-- 331637, -- Dark Recital
-- -- 347350, -- Dancing Fever (dispel, disease)
-- -- Sludgefist
-- 331209, -- Hateful Gaze
-- 342420, -- Chain Them!
-- 342419, -- Chain Them!
-- 335470, -- Chain Slam
-- -- 335361, -- Stonequake (ground damage)
-- -- Stone Legion Generals
-- 333377, -- Wicked Mark
-- -- 334765, -- Heart Rend (dispel, magic)
-- 339690, -- Crystalize
-- -- 342425, -- Stone Fist (tank)
-- 342655, -- Volatile Anima Infusion
-- -- Sire Denathrius
-- 327796, -- Night Hunter
-- 329906, -- Carnage
-- -- 329181, -- Wracking Pain (tank)
-- -- 332585, -- Scorn (tank)
-- 332794, -- Fatal Finesse
-- 327992 -- Desolation (ground damage)
-- );
-- -- 9.0.2 - Shadowlands
-- VUHDO_addCustomSpellIds(49,
-- -- [[ Necrotic Wake ]]
-- 320462, -- Necrotic Bolt
-- 320170, -- Necrotic Bolt
-- -- [[ Theater of Pain ]]
-- 330784, -- Necrotic Bolt
-- 330868, -- Necrotic Bolt Volley
-- -- Death Knight player ability
-- 223929 -- Necrotic Wound
-- );
-- -- 9.0.2 - Shadowlands
-- VUHDO_addCustomSpellIds(50,
-- -- [[ Castle Nathria ]]
-- -- Shriekwing
-- 330713, -- Earsplitting Shriek
-- -- Huntsman Altimor
-- 335304, -- Sinseeker
-- 335112, -- Huntsman's Mark
-- 335113, -- Huntsman's Mark
-- -- Lady Inerva Darkvein
-- 326538, -- Anima Web
-- 324982, -- Shared Suffering
-- -- 340452, -- Change of Heart (tank)
-- -- Artificer Xy'Mox
-- 328468, -- Dimensional Tear
-- 326302, -- Stasis Trap
-- -- The Council of Blood
-- 331636, -- Dark Recital
-- 346651, -- Drain Essence
-- -- Sludgefist
-- 339189, -- Chain Bleed
-- -- Stone Legion Generals
-- 333913, -- Wicked Laceration
-- 334771, -- Heart Hemorrhage
-- 342735, -- Ravenous Feast
-- 342698, -- Volatile Anima Infection
-- -- Sire Denathrius
-- 332797, -- Fatal Finesse (DoT debuff)
-- 335873, -- Rancor (ground damage)
-- 329951 -- Impale
-- -- 332619 -- Shattering Pain (tank)
-- -- 334016 -- Unworthy
-- );
-- -- 9.1.0 - Shadowlands
-- VUHDO_addCustomSpellIds(51,
-- -- [[ Sanctum of Domination ]]
-- -- The Tarragrue
-- 347668, -- Grasp of Death
-- -- Eye of the Jailer
-- 350713, -- Slothful Corruption
-- -- The Nine
-- 350542, -- Fragments of Destiny
-- -- 350184, -- Daschla's Mighty Impact
-- 350109, -- Brynja's Mournful Dirge
-- -- Remnant of Ner'zhul
-- 350073, -- Torment
-- -- 350469, -- Curse of Malevolence
-- -- Soulrender Dormazain
-- 353429, -- Tormented
-- -- Painsmith Raznal
-- -- Guardian of the First Ones
-- 350496, -- Threat Neutralization
-- 352833, -- Disintegration
-- -- 350455, -- Unstable Energy
-- -- Fatescribe Roh-Kalo
-- 353931, -- Twist Fate
-- 350568, -- Call of Eternity
-- -- Kel'Thuzad
-- 354289, -- Necrotic Miasma
-- 348760, -- Frost Blast
-- -- Sylvanas Windrunner
-- 347670, -- Shadow Dagger
-- 347807, -- Barbed Arrow
-- 347607, -- Banshee's Mark
-- 351091, -- Destabilize (heal absorb)
-- 347704 -- Veil of Darkness (heal absorb)
-- );
-- -- 9.2.0 - Shadowlands
-- VUHDO_addCustomSpellIds(52,
-- -- [[ Sepulcher of the First Ones ]]
-- -- Vigilant Guardian
-- 360458, -- Unstable Core
-- 366393, -- Searing Ablation
-- 367571, -- Sear
-- -- Skolex, the Insatiable Ravener
-- -- 359778, -- Ephemera Dust
-- -- 364522, -- Devouring Blood (dispel, magic)
-- 360448, -- Retch
-- 359981, -- Rend
-- 366070, -- Volatile Residue (ground damage)
-- -- Artificer Xy'mox
-- 362882, -- Stasis Trap
-- 362803, -- Glyph Of Relocation
-- 364030, -- Debilitating Ray
-- 365681, -- Massive Blast
-- -- Halondrus the Reclaimer
-- 361309, -- Lightshatter Beam
-- -- 365297, -- Crushing Prism (dispel, magic)
-- 368957, -- Volatile Charges
-- 369207, -- Planetcracker Beam (ground damage)
-- -- Dausegne, the Fallen Oracle
-- -- 361966, -- Infused Strikes (tank)
-- 364289, -- Staggering Barrage
-- 361018, -- Staggering Barrage
-- 361225, -- Encroaching Dominion (ground damage)
-- -- Prototype Pantheon
-- 360259, -- Gloom Bolt
-- -- 360687, -- Runecarvers Deathtouch (dispel, magic)
-- 361067, -- Bastions Ward
-- 362352, -- Pinned
-- 362383, -- Anima Bolt
-- -- Lihuvim, Principal Architect
-- 362622, -- Unstable Mote
-- 363795, -- Deconstructing Energy
-- 364073, -- Degenerate
-- 360869, -- Requisitioned (fixate)
-- -- 360159, -- Unstable Mote (ground damage)
-- -- Anduin Wrynn
-- 365293, -- Befouled Barrier
-- -- 364031, -- Gloom (dispel, magic)
-- 365024, -- Wicked Star
-- 365021, -- Wicked Star
-- 366849, -- Domination Word: Pain
-- -- Lords of Dread
-- 360006, -- Cloud of Carrion
-- 360012, -- Cloud of Carrion
-- 359963, -- Opened Veins
-- -- 360148, -- Bursting Dread (dispel, magic)
-- -- 360241, -- Unsettling Dreams (dispel, magic)
-- 360287, -- Anguishing Strike
-- -- Rygelon
-- 361548, -- Dark Eclipse
-- 362806, -- Dark Eclipse
-- 362081, -- Cosmic Ejection
-- -- 362172, -- Corrupted Wound (tank)
-- 362798, -- Cosmic Radiation (ground damage)
-- 362088, -- Cosmic Irregularity
-- -- The Jailer
-- 365153, -- Dominating Will
-- 359868, -- Shattering Blast
-- -- 362075, -- Domination (mind control)
-- 366132, -- Tyranny
-- 366020, -- Mark Of Tyranny
-- 360282, -- Rune of Damnation
-- 360281, -- Rune of Damnation
-- 365219 -- Chains Of Anguish
-- );
-- 10.0.2 Dragonflight
VUHDO_addCustomSpellIds(53,
-- [[ Vault of the Incarnates ]]
-- Eranog
394917, -- Leaping Flames
370597, -- Kill Order
396023, -- Incinerating Roar
-- Terros
381315, -- Awakened Earth
380487, -- Rock Blast
381595, -- Seismic Assault
382458, -- Resonant Aftermath
391592, -- Infused Fallout
-- The Primal Council
371624, -- Conductive Mark
371836, -- Primal Blizzard
374039, -- Meteor Axes
-- Sennarth the Cold Breath
372044, -- Wrapped in Webs
371976, -- Chilling Blast
372082, -- Enveloping Webs
373048, -- Suffocating Webs
373027, -- Suffocating Webs
-- Dathea Ascended
391686, -- Conductive Mark
-- Kurog Grimtotem
372044, -- Absolute Zero
382563, -- Magma Burst
391696, -- Lethal Current
391019, -- Frigid Torrent
396106, -- Dominance
372517, -- Frozen Solid
391056, -- Enveloping Earth
391055, -- Enveloping Earth
373487, -- Lightning Crash
374623, -- Frost Binds
-- Broodkeeper Diurna
388716, -- Icy Shroud
388717, -- Icy Shroud
388920, -- Frozen Shroud
388918, -- Frozen Shroud
375575, -- Flame Sentry
-- Raszageth
381615, -- Static Charge
399713, -- Fulminating Charge
377467 -- Magnetic Charge
);
local debuffRemovalList = {};
for tIndex, tName in pairs(VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED"]) do
-- I introduced a bug which added some default custom debuffs by spell ID
-- where spell ID was a number and not a string, this causes all sorts of odd
-- bugs in the custom debuff code particularly any getKeyFromValue table lookups
if (type(tName) == "number") then
-- if we encounter a custom debuff stored by an actual number flag this key for removal
debuffRemovalList[tIndex] = tIndex;
else
VUHDO_customDebuffsAddDefaultSettings(tName);
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][tName] = VUHDO_ensureSanity(
"CUSTOM_DEBUFF.STORED_SETTINGS",
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED_SETTINGS"][tName],
VUHDO_DEFAULT_CU_DE_STORED_SETTINGS
);
end
end
-- in Lua removal can't be done in place while perserving order properly
-- so do the removal in a second pass
for tIndex, _ in pairs(debuffRemovalList) do
VUHDO_CONFIG["CUSTOM_DEBUFF"]["STORED"][tIndex] = nil;
end
-- add default spells to track with spell trace
VUHDO_addSpellTraceSpellIds(1,
-- Shaman
1064, -- Chain Heal
-- Priest
34861, -- Holy Word: Sanctify
596, -- Prayer of Healing
194509 -- Power Word: Radiance
);
for tIndex, tName in pairs(VUHDO_CONFIG["SPELL_TRACE"]["STORED"]) do
VUHDO_spellTraceAddDefaultSettings(tName);
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][tName] = VUHDO_ensureSanity(
"SPELL_TRACE.STORED_SETTINGS",
VUHDO_CONFIG["SPELL_TRACE"]["STORED_SETTINGS"][tName],
VUHDO_DEFAULT_SPELL_TRACE_STORED_SETTINGS
);
end
if (VUHDO_POWER_TYPE_COLORS == nil) then
VUHDO_POWER_TYPE_COLORS = VUHDO_decompressOrCopy(VUHDO_DEFAULT_POWER_TYPE_COLORS);
end
VUHDO_POWER_TYPE_COLORS = VUHDO_ensureSanity("VUHDO_POWER_TYPE_COLORS", VUHDO_POWER_TYPE_COLORS, VUHDO_DEFAULT_POWER_TYPE_COLORS);
VUHDO_DEFAULT_POWER_TYPE_COLORS = VUHDO_compressAndPackTable(VUHDO_DEFAULT_POWER_TYPE_COLORS);
end
local VUHDO_DEFAULT_PANEL_SETUP = {
["RAID_ICON_FILTER"] = {
[1] = true,
[2] = true,
[3] = true,
[4] = true,
[5] = true,
[6] = true,
[7] = true,
[8] = true
},
["HOTS"] = {
["radioValue"] = 13,
["iconRadioValue"] = 1,
["stacksRadioValue"] = 2,
["TIMER_TEXT"] = {
["ANCHOR"] = "BOTTOMRIGHT",
["X_ADJUST"] = 25,
["Y_ADJUST"] = 0,
["SCALE"] = 60,
["FONT"] = "Interface\\AddOns\\VuhDo\\Fonts\\ariblk.ttf",
["USE_SHADOW"] = false,
["USE_OUTLINE"] = true,
["USE_MONO"] = false,
},
["COUNTER_TEXT"] = {
["ANCHOR"] = "TOP",
["X_ADJUST"] = -25,
["Y_ADJUST"] = 0,
["SCALE"] = 66,
["FONT"] = "Interface\\AddOns\\VuhDo\\Fonts\\ariblk.ttf",
["USE_SHADOW"] = false,
["USE_OUTLINE"] = true,
["USE_MONO"] = false,
},
["SLOTS"] = {
["firstFlood"] = true,
},
["SLOTCFG"] = {
["firstFlood"] = true,
["1"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["2"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["3"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["4"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["5"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["6"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["7"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["8"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["9"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1 },
["10"] = { ["mine"] = true, ["others"] = false, ["scale"] = 1.5 },
},
["BARS"] = {
["radioValue"] = 1,
["width"] = 25,
},
},
["PANEL_COLOR"] = {
["TEXT"] = {
["TR"] = 1, ["TG"] = 0.82, ["TB"] = 0, ["TO"] = 1,
["useText"] = true,
},
["HEALTH_TEXT"] = {
["useText"] = false,
["TR"] = 1, ["TG"] = 0, ["TB"] = 0, ["TO"] = 1,
},
["BARS"] = {
["R"] = 0.7, ["G"] = 0.7, ["B"] = 0.7, ["O"] = 1,
["useBackground"] = true, ["useOpacity"] = true,
},
["classColorsName"] = false,
},
["BAR_COLORS"] = {
["TARGET"] = {
["TR"] = 1, ["TG"] = 1, ["TB"] = 1, ["TO"] = 1,
["R"] = 0, ["G"] = 1, ["B"] = 0, ["O"] = 1,
["useText"] = true, ["useBackground"] = true, ["useOpacity"] = true,
["modeText"] = 2, -- 1=enemy, 2=solid, 3=class color, 4=gradient
["modeBack"] = 1
},
["IRRELEVANT"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0.4, ["O"] = 0.2,
["TR"] = 1, ["TG"] = 0.82, ["TB"] = 0, ["TO"] = 1,
["useText"] = false, ["useBackground"] = false, ["useOpacity"] = true,
["useClassColor"] = false,
},
["INCOMING"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.33,
["TR"] = 1, ["TG"] = 0.82, ["TB"] = 0, ["TO"] = 1,
["useText"] = false, ["useBackground"] = false, ["useOpacity"] = true,
["useClassColor"] = false,
},
["SHIELD"] = {
["R"] = 0.35, ["G"] = 0.52, ["B"] = 1, ["O"] = 1,
["TR"] = 0.35, ["TG"] = 0.52, ["TB"] = 1, ["TO"] = 1,
["useText"] = false, ["useBackground"] = true, ["useOpacity"] = true,
["useClassColor"] = false,
},
["OVERSHIELD"] = {
["R"] = 0.35, ["G"] = 0.52, ["B"] = 1, ["O"] = 1,
["TR"] = 0.35, ["TG"] = 0.52, ["TB"] = 1, ["TO"] = 1,
["useText"] = false, ["useBackground"] = true, ["useOpacity"] = true,
["useClassColor"] = false,
},
["HEAL_ABSORB"] = {
["R"] = 1, ["G"] = 0.4, ["B"] = 0.4, ["O"] = 1,
["TR"] = 0.35, ["TG"] = 0.52, ["TB"] = 1, ["TO"] = 1,
["useText"] = false, ["useBackground"] = true, ["useOpacity"] = true,
["useClassColor"] = false,
},
["DIRECTION"] = {
["R"] = 1, ["G"] = 0.4, ["B"] = 0.4, ["O"] = 1,
["useBackground"] = true,
},
["EMERGENCY"] = VUHDO_makeFullColor(1, 0, 0, 1, 1, 0.82, 0, 1),
["NO_EMERGENCY"] = VUHDO_makeFullColor(0, 0, 0.4, 1, 1, 0.82, 0, 1),
["OFFLINE"] = VUHDO_makeFullColor(0.298, 0.298, 0.298, 0.21, 0.576, 0.576, 0.576, 0.58),
["DEAD"] = VUHDO_makeFullColor(0.3, 0.3, 0.3, 0.5, 0.5, 0.5, 0.5, 1),
["OUTRANGED"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.25,
["TR"] = 0, ["TG"] = 0, ["TB"] = 0, ["TO"] = 0.5,
["useText"] = false, ["useBackground"] = false, ["useOpacity"] = true,
},
["TAPPED"] = VUHDO_makeFullColor(0.4, 0.4, 0.4, 1, 0.4, 0.4, 0.4, 1),
["TARGET_FRIEND"] = VUHDO_makeFullColor(0, 1, 0, 1, 0, 1, 0, 1),
["TARGET_NEUTRAL"] = VUHDO_makeFullColor(1, 1, 0, 1, 1, 1, 0, 1),
["TARGET_ENEMY"] = VUHDO_makeFullColor(1, 0, 0, 1, 1, 0, 0, 1),
["DEBUFF" .. VUHDO_DEBUFF_TYPE_NONE] = {
["useText"] = false, ["useBackground"] = false, ["useOpacity"] = false,
},
["DEBUFF" .. VUHDO_DEBUFF_TYPE_POISON] = VUHDO_makeFullColor(0, 0.592, 0.8, 1, 0, 1, 0.686, 1),
["DEBUFF" .. VUHDO_DEBUFF_TYPE_DISEASE] = VUHDO_makeFullColor(0.8, 0.4, 0.4, 1, 1, 0, 0, 1),
["DEBUFF" .. VUHDO_DEBUFF_TYPE_CURSE] = VUHDO_makeFullColor(0.7, 0, 0.7, 1, 1, 0, 1, 1),
["DEBUFF" .. VUHDO_DEBUFF_TYPE_MAGIC] = VUHDO_makeFullColor(0.4, 0.4, 0.8, 1, 0.329, 0.957, 1, 1),
["DEBUFF" .. VUHDO_DEBUFF_TYPE_CUSTOM] = VUHDO_makeFullColor(0.6, 0.3, 0, 1, 0.8, 0.5, 0, 1),
["DEBUFF_BAR_GLOW"] = VUHDO_makeFullColor(0.95, 0.95, 0.32, 1, 1, 1, 0, 1),
["DEBUFF_ICON_GLOW"] = VUHDO_makeFullColor(0.95, 0.95, 0.32, 1, 1, 1, 0, 1),
["CHARMED"] = VUHDO_makeFullColor(0.51, 0.082, 0.263, 1, 1, 0.31, 0.31, 1),
["BAR_FRAMES"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.7,
["useBackground"] = true, ["useOpacity"] = true,
},
["OVERHEAL_TEXT"] = {
["TR"] = 0.8, ["TG"] = 1, ["TB"] = 0.8, ["TO"] = 1,
["useText"] = true, ["useOpacity"] = true,
},
["HOTS"] = {
["useColorText"] = true,
["useColorBack"] = true,
["isFadeOut"] = false,
["isFlashWhenLow"] = false,
["showShieldAbsorb"] = true,
["isPumpDivineAegis"] = false,
["WARNING"] = {
["R"] = 0.5, ["G"] = 0.2, ["B"] = 0.2, ["O"] = 1,
["TR"] = 1, ["TG"] = 0.6, ["TB"] = 0.6, ["TO"] = 1,
["useText"] = true, ["useBackground"] = true,
["lowSecs"] = 3, ["enabled"] = false,
},
},
["HOT1"] = VUHDO_makeHotColor(1, 0.3, 0.3, 1, 1, 0.6, 0.6, 1),
["HOT2"] = VUHDO_makeHotColor(1, 1, 0.3, 1, 1, 1, 0.6, 1),
["HOT3"] = VUHDO_makeHotColor(1, 1, 1, 1, 1, 1, 1, 1),
["HOT4"] = VUHDO_makeHotColor(0.3, 0.3, 1, 1, 0.6, 0.6, 1, 1),
["HOT5"] = VUHDO_makeHotColor(1, 0.3, 1, 1, 1, 0.6, 1, 1),
["HOT6"] = {
["R"] = 1, ["G"] = 1, ["B"] = 1, ["O"] = 0.75,
["useBackground"] = true,
},
["HOT7"] = {
["R"] = 1, ["G"] = 1, ["B"] = 1, ["O"] = 0.75,
["useBackground"] = true,
},
["HOT8"] = {
["R"] = 1, ["G"] = 1, ["B"] = 1, ["O"] = 0.75,
["useBackground"] = true,
},
["HOT9"] = VUHDO_makeHotColor(0.3, 1, 1, 1, 0.6, 1, 1, 1),
["HOT10"] = VUHDO_makeHotColor(0.3, 1, 0.3, 1, 0.6, 1, 0.3, 1),
["HOT_CHARGE_2"] = VUHDO_makeFullColorWoOpacity(1, 1, 0.3, 1, 1, 1, 0.6, 1),
["HOT_CHARGE_3"] = VUHDO_makeFullColorWoOpacity(0.3, 1, 0.3, 1, 0.6, 1, 0.6, 1),
["HOT_CHARGE_4"] = VUHDO_makeFullColorWoOpacity(0.8, 0.8, 0.8, 1, 1, 1, 1, 1),
["useDebuffIcon"] = false,
["useDebuffIconBossOnly"] = true,
["RAID_ICONS"] = {
["enable"] = false,
["filterOnly"] = false,
["1"] = VUHDO_makeFullColorWoOpacity(1, 0.976, 0.305, 1, 0.980, 1, 0.607, 1),
["2"] = VUHDO_makeFullColorWoOpacity(1, 0.513, 0.039, 1, 1, 0.827, 0.419, 1),
["3"] = VUHDO_makeFullColorWoOpacity(0.788, 0.290, 0.8, 1, 1, 0.674, 0.921, 1),
["4"] = VUHDO_makeFullColorWoOpacity(0, 0.8, 0.015, 1, 0.698, 1, 0.698, 1),
["5"] = VUHDO_makeFullColorWoOpacity(0.466, 0.717, 0.8, 1, 0.725, 0.870, 1, 1),
["6"] = VUHDO_makeFullColorWoOpacity(0.121, 0.690, 0.972, 1, 0.662, 0.831, 1, 1),
["7"] = VUHDO_makeFullColorWoOpacity(0.8, 0.184, 0.129, 1, 1, 0.627, 0.619, 1),
["8"] = VUHDO_makeFullColorWoOpacity(0.847, 0.866, 0.890, 1, 0.231, 0.231, 0.231, 1),
},
["CLUSTER_FAIR"] = VUHDO_makeFullColorWoOpacity(0.8, 0.8, 0, 1, 1, 1, 0, 1),
["CLUSTER_GOOD"] = VUHDO_makeFullColorWoOpacity(0, 0.8, 0, 1, 0, 1, 0, 1),
["GCD_BAR"] = {
["R"] = 0.4, ["G"] = 0.4, ["B"] = 0.4, ["O"] = 0.5,
["useBackground"] = true,
},
["LIFE_LEFT"] = {
["LOW"] = {
["R"] = 1, ["G"] = 0, ["B"] = 0, ["O"] = 1,
["useBackground"] = true,
},
["FAIR"] = {
["R"] = 1, ["G"] = 1, ["B"] = 0, ["O"] = 1,
["useBackground"] = true,
},
["GOOD"] = {
["R"] = 0, ["G"] = 1, ["B"] = 0, ["O"] = 1,
["useBackground"] = true,
},
},
["THREAT"] = {
["HIGH"] = {
["R"] = 1, ["G"] = 0, ["B"] = 1, ["O"] = 1,
["useBackground"] = true,
},
["LOW"] = {
["R"] = 0, ["G"] = 1, ["B"] = 1, ["O"] = 1,
["useBackground"] = true,
},
},
}, -- BAR_COLORS
};
--
local VUHDO_DEFAULT_PER_PANEL_SETUP = {
["HOTS"] = {
["size"] = 40,
},
["MODEL"] = {
["ordering"] = VUHDO_ORDERING_STRICT,
["sort"] = VUHDO_SORT_RAID_UNITID,
["isReverse"] = false,
},
--[[
["POSITION"] = {
["x"] = 100,
["y"] = 668,
["relativePoint"] = "BOTTOMLEFT",
["orientation"] = "TOPLEFT",
["growth"] = "TOPLEFT",
["width"] = 200,
["height"] = 200,
["scale"] = 1,
};
]]--
["SCALING"] = {
["columnSpacing"] = 5,
["rowSpacing"] = 2,
["borderGapX"] = 5,
["borderGapY"] = 5,
["barWidth"] = 80,
["barHeight"] = 40,
["showHeaders"] = true,
["headerHeight"] = 12,
["headerWidth"] = 100,
["headerSpacing"] = 5,
["manaBarHeight"] = 6,
["sideLeftWidth"] = 6,
["sideRightWidth"] = 6,
["maxColumnsWhenStructured"] = 10,
["maxRowsWhenLoose"] = 5,
["ommitEmptyWhenStructured"] = true,
["isPlayerOnTop"] = true,
["showTarget"] = false,
["targetSpacing"] = 3,
["targetWidth"] = 30,
["showTot"] = false,
["totSpacing"] = 3,
["totWidth"] = 30,
["targetOrientation"] = 1;
["isTarClassColText"] = true,
["isTarClassColBack"] = false,
["arrangeHorizontal"] = false,
["alignBottom"] = false,
["scale"] = 1,
["isDamFlash"] = true,
["damFlashFactor"] = 0.75,
},
["LIFE_TEXT"] = {
["show"] = true,
["mode"] = VUHDO_LT_MODE_PERCENT,
["position"] = VUHDO_LT_POS_ABOVE,
["verbose"] = false,
["hideIrrelevant"] = false,
["showTotalHp"] = false;
},
["ID_TEXT"] = {
["showName"] = true,
["showNickname"] = false,
["showClass"] = false,
["showTags"] = true,
["showPetOwners"] = true,
["position"] = "CENTER+CENTER",
["xAdjust"] = 0.000001,
["yAdjust"] = 0.000001,
},
["PANEL_COLOR"] = {
["barTexture"] = "VuhDo - Polished Wood",
["BACK"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.35,
["useBackground"] = true, ["useOpacity"] = true,
},
["BORDER"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.46,
["useBackground"] = true, ["useOpacity"] = true,
["file"] = "Interface\\Tooltips\\UI-Tooltip-Border",
["edgeSize"] = 8,
["insets"] = 1,
},
["TEXT"] = {
["useText"] = true, ["useOpacity"] = true,
["textSize"] = 10,
["textSizeLife"] = 8,
["maxChars"] = 0,
["outline"] = false,
["USE_SHADOW"] = true,
["USE_MONO"] = false,
},
["HEADER"] = {
["R"] = 1, ["G"] = 1, ["B"] = 1, ["O"] = 0.4,
["TR"] = 1, ["TG"] = 0.859, ["TB"] = 0.38, ["TO"] = 1,
["useText"] = true, ["useBackground"] = true,
["barTexture"] = "LiteStepLite",
["textSize"] = 10,
},
},
["TOOLTIP"] = {
["show"] = true,
["position"] = 2, -- Standard-Pos
["inFight"] = false,
["showBuffs"] = false,
["x"] = 100,
["y"] = -100,
["point"] = "TOPLEFT",
["relativePoint"] = "TOPLEFT",
["SCALE"] = 1,
["BACKGROUND"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 1,
["useBackground"] = true, ["useOpacity"] = true,
},
["BORDER"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 1,
["useBackground"] = true, ["useOpacity"] = true,
},
},
["RAID_ICON"] = {
["show"] = true,
["scale"] = 1,
["point"] = "TOP",
["xAdjust"] = 0,
["yAdjust"] = -20,
},
["OVERHEAL_TEXT"] = {
["show"] = true,
["scale"] = 1,
["point"] = "LEFT",
["xAdjust"] = 0,
["yAdjust"] = 0,
},
["frameStrata"] = "MEDIUM",
};
--
function VUHDO_loadDefaultPanelSetup()
local tAktPanel;
if not VUHDO_PANEL_SETUP then
VUHDO_PANEL_SETUP = VUHDO_decompressOrCopy(VUHDO_DEFAULT_PANEL_SETUP);
end
for tPanelNum = 1, 10 do -- VUHDO_MAX_PANELS
if not VUHDO_PANEL_SETUP[tPanelNum] then
VUHDO_PANEL_SETUP[tPanelNum] = VUHDO_decompressOrCopy(VUHDO_DEFAULT_PER_PANEL_SETUP);
tAktPanel = VUHDO_PANEL_SETUP[tPanelNum];
tAktPanel["MODEL"]["groups"] = VUHDO_DEFAULT_MODELS[tPanelNum];
if VUHDO_DEFAULT_MODELS[tPanelNum] and VUHDO_ID_PRIVATE_TANKS == VUHDO_DEFAULT_MODELS[tPanelNum][1] then
tAktPanel["SCALING"]["ommitEmptyWhenStructured"] = false;
end
if GetLocale() == "zhCN" or GetLocale() == "zhTW" or GetLocale() == "koKR" then
tAktPanel["PANEL_COLOR"]["TEXT"]["font"] = "";
tAktPanel["PANEL_COLOR"]["HEADER"]["font"] = "";
else
tAktPanel["PANEL_COLOR"]["TEXT"]["font"] = VUHDO_LibSharedMedia:Fetch('font', "Emblem");
tAktPanel["PANEL_COLOR"]["HEADER"]["font"] = VUHDO_LibSharedMedia:Fetch('font', "Emblem");
end
if VUHDO_DEFAULT_MODELS[tPanelNum] and VUHDO_ID_MAINTANKS == VUHDO_DEFAULT_MODELS[tPanelNum][1] then
tAktPanel["PANEL_COLOR"]["TEXT"]["textSize"] = 12;
end
end
end
for tPanelNum = 1, 10 do -- VUHDO_MAX_PANELS
if not VUHDO_PANEL_SETUP[tPanelNum]["POSITION"] and tPanelNum == 1 then
VUHDO_PANEL_SETUP[tPanelNum]["POSITION"] = {
["x"] = 130,
["y"] = 650,
["relativePoint"] = "BOTTOMLEFT",
["orientation"] = "TOPLEFT",
["growth"] = "TOPLEFT",
["width"] = 200,
["height"] = 200,
["scale"] = 1,
};
elseif not VUHDO_PANEL_SETUP[tPanelNum]["POSITION"] and tPanelNum == 2 then
VUHDO_PANEL_SETUP[tPanelNum]["POSITION"] = {
["x"] = 130,
["y"] = 885,
["relativePoint"] = "BOTTOMLEFT",
["orientation"] = "TOPLEFT",
["growth"] = "TOPLEFT",
["width"] = 200,
["height"] = 200,
["scale"] = 1,
};
elseif not VUHDO_PANEL_SETUP[tPanelNum]["POSITION"] then
VUHDO_PANEL_SETUP[tPanelNum]["POSITION"] = {
["x"] = 130 + 75 * tPanelNum,
["y"] = 650 - 75 * tPanelNum,
["relativePoint"] = "BOTTOMLEFT",
["orientation"] = "TOPLEFT",
["growth"] = "TOPLEFT",
["width"] = 200,
["height"] = 200,
["scale"] = 1,
};
end
VUHDO_PANEL_SETUP[tPanelNum] = VUHDO_ensureSanity("VUHDO_PANEL_SETUP[" .. tPanelNum .. "]", VUHDO_PANEL_SETUP[tPanelNum], VUHDO_DEFAULT_PER_PANEL_SETUP);
end
VUHDO_PANEL_SETUP = VUHDO_ensureSanity("VUHDO_PANEL_SETUP", VUHDO_PANEL_SETUP, VUHDO_DEFAULT_PANEL_SETUP);
VUHDO_DEFAULT_PANEL_SETUP = VUHDO_compressAndPackTable(VUHDO_DEFAULT_PANEL_SETUP);
VUHDO_DEFAULT_PER_PANEL_SETUP = VUHDO_compressAndPackTable(VUHDO_DEFAULT_PER_PANEL_SETUP);
VUHDO_fixHotSettings();
end
local VUHDO_DEFAULT_BUFF_CONFIG = {
["VERSION"] = 4,
["SHOW"] = true,
["COMPACT"] = true,
["SHOW_LABEL"] = false,
["BAR_COLORS_TEXT"] = true,
["BAR_COLORS_BACKGROUND"] = true,
["BAR_COLORS_IN_FIGHT"] = false,
["HIDE_CHARGES"] = false,
["REFRESH_SECS"] = 1,
["POSITION"] = {
["x"] = 130,
["y"] = -130,
["point"] = "TOPLEFT",
["relativePoint"] = "TOPLEFT",
},
["SCALE"] = 1,
["PANEL_MAX_BUFFS"] = 5,
["PANEL_BG_COLOR"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.5,
["useBackground"] = true,
},
["PANEL_BORDER_COLOR"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 0.5,
["useBackground"] = true,
},
["SWATCH_BG_COLOR"] = {
["R"] = 0, ["G"] = 0, ["B"] = 0, ["O"] = 1,
["useBackground"] = true,
},
["SWATCH_BORDER_COLOR"] = {
["R"] = 0.8, ["G"] = 0.8, ["B"] = 0.8, ["O"] = 0,
["useBackground"] = true,
},
["REBUFF_AT_PERCENT"] = 25,
["REBUFF_MIN_MINUTES"] = 3,
["HIGHLIGHT_COOLDOWN"] = true,
["WHEEL_SMART_BUFF"] = false,
["SWATCH_COLOR_BUFF_OKAY"] = VUHDO_makeFullColor(0, 0, 0, 1, 0, 0.8, 0, 1),
["SWATCH_COLOR_BUFF_LOW"] = VUHDO_makeFullColor(0, 0, 0, 1, 1, 0.7, 0, 1),
["SWATCH_COLOR_BUFF_OUT"] = VUHDO_makeFullColor(0, 0, 0, 1, 0.8, 0, 0, 1),
["SWATCH_COLOR_BUFF_COOLDOWN"] = VUHDO_makeFullColor(0.3, 0.3, 0.3, 1, 0.6, 0.6, 0.6, 1),
}
VUHDO_DEFAULT_USER_CLASS_COLORS = {
[VUHDO_ID_DRUIDS] = VUHDO_makeFullColor(1, 0.49, 0.04, 1, 1, 0.6, 0.04, 1),
[VUHDO_ID_HUNTERS] = VUHDO_makeFullColor(0.67, 0.83, 0.45, 1, 0.77, 0.93, 0.55, 1),
[VUHDO_ID_MAGES] = VUHDO_makeFullColor(0.41, 0.8, 0.94, 1, 0.51, 0.9, 1, 1),
[VUHDO_ID_PALADINS] = VUHDO_makeFullColor(0.96, 0.55, 0.73, 1, 1, 0.65, 0.83, 1),
[VUHDO_ID_PRIESTS] = VUHDO_makeFullColor(0.9, 0.9, 0.9, 1, 1, 1, 1, 1),
[VUHDO_ID_ROGUES] = VUHDO_makeFullColor(1, 0.96, 0.41, 1, 1, 1, 0.51, 1),
[VUHDO_ID_SHAMANS] = VUHDO_makeFullColor(0.14, 0.35, 1, 1, 0.24, 0.45, 1, 1),
[VUHDO_ID_WARLOCKS] = VUHDO_makeFullColor(0.58, 0.51, 0.79, 1, 0.68, 0.61, 0.89, 1),
[VUHDO_ID_WARRIORS] = VUHDO_makeFullColor(0.78, 0.61, 0.43, 1, 0.88, 0.71, 0.53, 1),
[VUHDO_ID_DEATH_KNIGHT] = VUHDO_makeFullColor(0.77, 0.12, 0.23, 1, 0.87, 0.22, 0.33, 1),
[VUHDO_ID_MONKS] = VUHDO_makeFullColor(0, 1, 0.59, 1, 0, 1, 0.69, 1),
[VUHDO_ID_DEMON_HUNTERS] = VUHDO_makeFullColor(0.54, 0.09, 0.69, 1, 0.64, 0.19, 0.79, 1),
[VUHDO_ID_EVOKERS] = VUHDO_makeFullColor(0.10, 0.48, 0.40, 1, 0.20, 0.58, 0.50, 1),
[VUHDO_ID_PETS] = VUHDO_makeFullColor(0.4, 0.6, 0.4, 1, 0.5, 0.9, 0.5, 1),
["petClassColor"] = false,
}
--
function VUHDO_initClassColors()
if not VUHDO_USER_CLASS_COLORS then
VUHDO_USER_CLASS_COLORS = VUHDO_decompressOrCopy(VUHDO_DEFAULT_USER_CLASS_COLORS);
end
VUHDO_USER_CLASS_COLORS = VUHDO_ensureSanity("VUHDO_USER_CLASS_COLORS", VUHDO_USER_CLASS_COLORS, VUHDO_DEFAULT_USER_CLASS_COLORS);
VUHDO_DEFAULT_USER_CLASS_COLORS = VUHDO_compressAndPackTable(VUHDO_DEFAULT_USER_CLASS_COLORS);
end
--
local function VUHDO_getFirstFreeBuffOrder()
for tCnt = 1, 10000 do
if not VUHDO_tableGetKeyFromValue(VUHDO_BUFF_ORDER, tCnt) then
return tCnt;
end
end
return nil;
end
--
local function VUHDO_fixBuffOrder()
local _, tPlayerClass = UnitClass("player");
local tAllBuffs = VUHDO_CLASS_BUFFS[tPlayerClass];
local tSortArray = {};
-- Order ohne buff?
for tCategName, _ in pairs(VUHDO_BUFF_ORDER) do
if not tAllBuffs[tCategName] then
VUHDO_BUFF_ORDER[tCategName] = nil;
end
end
-- Buffs ohne order?
for tCategName, _ in pairs(tAllBuffs) do
if not VUHDO_BUFF_ORDER[tCategName] then
VUHDO_BUFF_ORDER[tCategName] = VUHDO_getFirstFreeBuffOrder();
end
tinsert(tSortArray, tCategName);
end
table.sort(tSortArray, function(aCateg, anotherCateg) return VUHDO_BUFF_ORDER[aCateg] < VUHDO_BUFF_ORDER[anotherCateg] end);
table.wipe(VUHDO_BUFF_ORDER);
for tIndex, tCateg in ipairs(tSortArray) do
VUHDO_BUFF_ORDER[tCateg] = tIndex;
end
end
--
function VUHDO_initBuffSettings()
if not VUHDO_BUFF_SETTINGS["CONFIG"] then
VUHDO_BUFF_SETTINGS["CONFIG"] = VUHDO_decompressOrCopy(VUHDO_DEFAULT_BUFF_CONFIG);
end
VUHDO_BUFF_SETTINGS["CONFIG"] = VUHDO_ensureSanity("VUHDO_BUFF_SETTINGS.CONFIG", VUHDO_BUFF_SETTINGS["CONFIG"], VUHDO_DEFAULT_BUFF_CONFIG);
VUHDO_DEFAULT_BUFF_CONFIG = VUHDO_compressAndPackTable(VUHDO_DEFAULT_BUFF_CONFIG);
local _, tPlayerClass = UnitClass("player");
for tCategSpec, _ in pairs(VUHDO_CLASS_BUFFS[tPlayerClass]) do
if not VUHDO_BUFF_SETTINGS[tCategSpec] then
VUHDO_BUFF_SETTINGS[tCategSpec] = {
["enabled"] = false,
["missingColor"] = {
["show"] = false,
["R"] = 1, ["G"] = 1, ["B"] = 1, ["O"] = 1,
["TR"] = 1, ["TG"] = 1, ["TB"] = 1, ["TO"] = 1,
["useText"] = true, ["useBackground"] = true, ["useOpacity"] = true,
}
};
end
if not VUHDO_BUFF_SETTINGS[tCategSpec]["filter"] then
VUHDO_BUFF_SETTINGS[tCategSpec]["filter"] = { [VUHDO_ID_ALL] = true };
end
end
VUHDO_fixBuffOrder();
end