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, } --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 }, }, }; -- 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, } 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; 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"], } 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 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"], } 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, ["SHOW_MINIMAP"] = 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, ["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, ["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"] = { }, }, ["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, -- ["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, }; 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_HAPPINESS] = VUHDO_makeFullColor(0, 1, 1, 1, 0, 1, 1, 1), [VUHDO_UNIT_POWER_RUNES] = 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 ); 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, }, ["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, }, ["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, }, ["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), ["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, ["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_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