local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB local UF = E:GetModule("UnitFrames") --Lua functions --WoW API / Variables function UF:Construct_PvPIcon(frame) local PvPIndicator = frame.RaisedElementParent.TextureParent:CreateTexture(nil, "ARTWORK") PvPIndicator:Size(30, 30) PvPIndicator:Point("CENTER", frame, "CENTER") PvPIndicator.Override = UF.UpdateOverridePvP return PvPIndicator end function UF:Configure_PVPIcon(frame) local PvPIndicator = frame.PvPIndicator PvPIndicator:ClearAllPoints() PvPIndicator:Point(frame.db.pvpIcon.anchorPoint, frame.Health, frame.db.pvpIcon.anchorPoint, frame.db.pvpIcon.xOffset, frame.db.pvpIcon.yOffset) local scale = frame.db.pvpIcon.scale or 1 PvPIndicator:Size(30 * scale) if frame.db.pvpIcon.enable and not frame:IsElementEnabled("PvPIndicator") then frame:EnableElement("PvPIndicator") elseif not frame.db.pvpIcon.enable and frame:IsElementEnabled("PvPIndicator") then frame:DisableElement("PvPIndicator") end end function UF:UpdateOverridePvP(event, unit) if unit and self.isNamePlate and unit:sub(1, 9) ~= "nameplate" then local isUnit = self.unit and UnitIsUnit(self.unit, unit) if isUnit then unit = self.unit end end if not unit or self.unit ~= unit then return end local element = self.PvPIndicator if element.PreUpdate then element:PreUpdate() end local status local factionGroup = UnitFactionGroup(unit) if UnitIsPVPFreeForAll(unit) then element:SetTexture("Interface\\TargetingFrame\\UI-PVP-FFA") element:SetTexCoord(0, 0.65625, 0, 0.65625) status = "ffa" elseif factionGroup and UnitIsPVP(unit) then element:SetTexture(E.Media.Textures.PvPIcons) if factionGroup == "Alliance" then element:SetTexCoord(0.545, 0.935, 0.070, 0.940) else element:SetTexCoord(0.100, 0.475, 0.070, 0.940) end status = factionGroup end if status then element:Show() else element:Hide() end if element.PostUpdate then return element:PostUpdate(unit, status) end end