-- Constants.lua -- June 2014 local addon, ns = ... local Hekili = _G[ addon ] -- Class Localization ns.getLocalClass = function ( class ) if not ns.player.sex then ns.player.sex = UnitSex( "player" ) end return ns.player.sex == 1 and LOCALIZED_CLASS_NAMES_MALE[ class ] or LOCALIZED_CLASS_NAMES_FEMALE[ class ] end local InverseDirection = { LEFT = "RIGHT", RIGHT = "LEFT", TOP = "BOTTOM", BOTTOM = "TOP" } ns.getInverseDirection = function ( dir ) return InverseDirection[ dir ] or dir end local ClassIDs = {} for i = 1, GetNumClasses() do local _, classTag = GetClassInfo( i ) if classTag then ClassIDs[ classTag ] = i end end ns.getClassID = function( class ) return ClassIDs[ class ] or -1 end local ResourceInfo = { -- health = Enum.PowerType.HealthCost, none = Enum.PowerType.None, mana = Enum.PowerType.Mana, rage = Enum.PowerType.Rage, focus = Enum.PowerType.Focus, energy = Enum.PowerType.Energy, combo_points = Enum.PowerType.ComboPoints, runes = Enum.PowerType.Runes, runic_power = Enum.PowerType.RunicPower, soul_shards = Enum.PowerType.SoulShards, astral_power = Enum.PowerType.LunarPower, holy_power = Enum.PowerType.HolyPower, alternate = Enum.PowerType.Alternate, maelstrom = Enum.PowerType.Maelstrom, chi = Enum.PowerType.Chi, insanity = Enum.PowerType.Insanity, obsolete = Enum.PowerType.Obsolete, obsolete2 = Enum.PowerType.Obsolete2, arcane_charges = Enum.PowerType.ArcaneCharges, fury = Enum.PowerType.Fury, pain = Enum.PowerType.Pain, essence = Enum.PowerType.Essence } local ResourceByID = {} for k, powerType in pairs( ResourceInfo ) do ResourceByID[ powerType ] = k end function ns.GetResourceInfo() return ResourceInfo end function ns.GetResourceID( key ) return ResourceInfo[ key ] end function ns.GetResourceKey( id ) return ResourceByID[ id ] end local passive_regen = { mana = 1, focus = 1, energy = 1, essence = 1 } function ns.ResourceRegenerates( key ) -- Does this resource have a passive gain from waiting? if passive_regen[ key ] then return true end return false end local Specializations = { death_knight_blood = 250, death_knight_frost = 251, death_knight_unholy = 252, druid_balance = 102, druid_feral = 103, druid_guardian = 104, druid_restoration = 105, hunter_beast_mastery = 253, hunter_marksmanship = 254, hunter_survival = 255, mage_arcane = 62, mage_fire = 63, mage_frost = 64, monk_brewmaster = 268, monk_windwalker = 269, monk_mistweaver = 270, paladin_holy = 65, paladin_protection = 66, paladin_retribution = 70, priest_discipline = 256, priest_holy = 257, priest_shadow = 258, rogue_assassination = 259, rogue_outlaw = 260, rogue_subtlety = 261, shaman_elemental = 262, shaman_enhancement = 263, shaman_restoration = 264, warlock_affliction = 265, warlock_demonology = 266, warlock_destruction = 267, warrior_arms = 71, warrior_fury = 72, warrior_protection = 73, demonhunter_havoc = 577, demonhunter_vengeance = 581, evoker_devastation = 1467, evoker_preservation = 1468, } local SpecializationKeys = { [250] = "blood", [251] = "frost", [252] = "unholy", [102] = "balance", [103] = "feral", [104] = "guardian", [105] = "restoration", [253] = "beast_mastery", [254] = "marksmanship", [255] = "survival", [62] = "arcane", [63] = "fire", [64] = "frost", [268] = "brewmaster", [269] = "windwalker", [270] = "mistweaver", [65] = "holy", [66] = "protection", [70] = "retribution", [256] = "discipline", [257] = "holy", [258] = "shadow", [259] = "assassination", [260] = "outlaw", [261] = "subtlety", [262] = "elemental", [263] = "enhancement", [264] = "restoration", [265] = "affliction", [266] = "demonology", [267] = "destruction", [71] = "arms", [72] = "fury", [73] = "protection", [577] = "havoc", [581] = "vengeance", [1467] = "devastation", [1468] = "preservation", [1473] = "augmentation" } ns.getSpecializationKey = function ( id ) return SpecializationKeys[ id ] or "none" end ns.getSpecializationID = function ( index ) return GetSpecializationInfo( index or GetSpecialization() or 0 ) end ns.PvpDummies = { [114840] = 1, -- Orgrimmar [114832] = 1, -- Stormwind [189082] = 1, -- Nowhere [197833] = 1, -- Valdrakken [197834] = 1 -- Healing } ns.FrameStratas = { "BACKGROUND", "LOW", "MEDIUM", "HIGH", "DIALOG", "FULLSCREEN", "FULLSCREEN_DIALOG", "TOOLTIP", BACKGROUND = 1, LOW = 2, MEDIUM = 3, HIGH = 4, DIALOG = 5, FULLSCREEN = 6, FULLSCREEN_DIALOG = 7, TOOLTIP = 8 }