--UNIT_AURA:player UNIT_POWER_UPDATE:player function(e, ...) if e == "UNIT_AURA" then if aura_env.UnitBuffC("Ignore Pain") then local expTime = math.floor((select(6, aura_env.UnitBuffC("Ignore Pain")) * 100)) local ctime = math.floor((GetTime() * 100)) if ctime + 1200 == expTime then aura_env.absorb = select(16, aura_env.UnitBuffC("Ignore Pain")) end end elseif e == "UNIT_POWER_UPDATE" then local rage = UnitPower("player") local time = GetTime() if rage < 40 then aura_env.region:Hide() return false elseif rage >= 40 and rage < 90 and not aura_env.UnitBuffC("player", "Ignore Pain") then aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) aura_env.region:SetOffset(128, 200) aura_env.region:SetGlow(true) aura_env.region:Color(1, 1, 1, 1) aura_env.region:Show() return true elseif rage >= 40 and rage < 90 and aura_env.UnitBuffC("player", "Ignore Pain") then local absorb = select(16, aura_env.UnitBuffC("player", "Ignore Pain")) or 0 local expTime = select(6, aura_env.UnitBuffC("player", "Ignore Pain")) or 0 if absorb > 0 and expTime > 0 then if expTime - time <= 3 then aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) aura_env.region:SetOffset(128, 200) aura_env.region:SetGlow(false) aura_env.region:Color(1, 1, 1, 1) aura_env.region:Show() return true elseif absorb <= 0.2 * aura_env.absorb then aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) aura_env.region:SetOffset(128, 200) aura_env.region:SetGlow(false) aura_env.region:Color(1, 1, 1, 1) aura_env.region:Show() return true else aura_env.region:Hide() return false end end elseif rage >= 90 and not aura_env.UnitBuffC("player", "Shield Block") then aura_env.region:SetIcon(GetSpellTexture("Shield Block")) aura_env.region:SetOffset(-128, 200) aura_env.region:SetGlow(false) aura_env.region:Color(1, 1, 1, 0.33) aura_env.region:Show() return true elseif rage >= 90 and aura_env.UnitBuffC("player", "Shield Block") then aura_env.region:SetIcon(GetSpellTexture("Ignore Pain")) aura_env.region:SetOffset(128, 200) aura_env.region:SetGlow(false) aura_env.region:Color(1, 1, 1, 0.5) aura_env.region:Show() return true else aura_env.region:Hide()() return false end end end --INIT aura_env.absorb = 0 aura_env.UnitBuffC = function(unit, spell) for i = 1, 40 do local name = UnitBuff(unit, i) if name then if name == spell then return UnitBuff(unit, i) end else return nil end end end