local DescandingPowerTypes = { 0, 2, 3} -- 0 = "MANA" -- 1 = "RAGE" -- 2 = "FOCUS" -- 3 = "ENERGY" -- 4 = "COMBO_POINTS" -- 5 = "RUNES" -- 6 = "RUNIC_POWER" -- 7 = "SOUL_SHARDS" -- 8 = "ECLIPSE" -- 9 = "HOLY_POWER" local function PowerTypeAscending() PowerTypeID, PowerTypeName = UnitPowerType("player") for _,p in pairs(DescandingPowerTypes) do if p == PowerTypeID then if DEBUG then print("Debug: Class has ascending power!") end Return = true end end Return = false end local function AutoHidePlayerFrame(self,event, ...) if ( UnitHealth("player") < UnitHealthMax("player") * 0.95 ) or ( PowerTypeAscending() and UnitPower("player", "Mana") < UnitPowerMax("player", "SPELL_POWER_MANA") * 0.95 ) or ( TargetFrame:IsShown() ) or ( UnitAffectingCombat("player") ) or ( CharacterFrame:IsShown() ) then PlayerFrame:Show() else PlayerFrame:Hide() end end local iPlayerFrame = CreateFrame("Frame", "iPlayerFrame", UIParent, "SecureHandlerStateTemplate") iPlayerFrame:RegisterEvent("PLAYER_LOGIN") iPlayerFrame:RegisterEvent("PLAYER_TARGET_CHANGED") iPlayerFrame:RegisterEvent("UNIT_HEALTH") iPlayerFrame:RegisterEvent("UNIT_SPELLCAST_START") iPlayerFrame:RegisterEvent("PLAYER_REGEN_DISABLED") iPlayerFrame:RegisterEvent("PLAYER_REGEN_ENABLED") iPlayerFrame:RegisterEvent("UNIT_MAXPOWER") iPlayerFrame:RegisterEvent("UNIT_MODEL_CHANGED") iPlayerFrame:SetScript("OnEvent", AutoHidePlayerFrame) CharacterModelFrame:SetScript("OnShow", AutoHidePlayerFrame) CharacterModelFrame:SetScript("OnHide", AutoHidePlayerFrame) TargetFrame:SetScript("OnShow", AutoHidePlayerFrame) TargetFrame:SetScript("OnHide", AutoHidePlayerFrame)