local addon, ns = ...
local cfg = ns.cfg
local unitFrame = CreateFrame("Frame", nil, UIParent)
unitFrame:SetSize(128, 32)
unitFrame:SetPoint(cfg.player.pos.point, cfg.player.pos.X, cfg.player.pos.Y)
local nameText = unitFrame:CreateFontString(nil, "OVERLAY")
nameText:SetFont(cfg.font.name, 32, "THINOUTLINE")
nameText:SetPoint("LEFT")
nameText:SetText(cfg.hex(cfg.color.class)..cfg.NAME.."|cff9d9d9d lvl:")
local lvlText = unitFrame:CreateFontString(nil, "OVERLAY")
lvlText:SetFont(cfg.font.numbers, 32, "THINOUTLINE")
lvlText:SetPoint("BOTTOMLEFT",nameText,"BOTTOMRIGHT",0,0)
local LEVEL = UnitLevel("player")
lvlText:SetText(cfg.hex(cfg.color.yellow)..LEVEL)
unitFrame:SetWidth(nameText:GetStringWidth()+lvlText:GetStringWidth())
-- SCROLL
local HPPframe = CreateFrame("Frame", nil, unitFrame)
HPPframe:SetSize(110, 26)
HPPframe:SetPoint("TOPLEFT",unitFrame,"BOTTOMRIGHT",16,0)
local scrollFrame = CreateFrame("ScrollFrame",nil,HPPframe)
scrollFrame:SetSize(HPPframe:GetSize())
scrollFrame:SetPoint("CENTER")
local scrollChild = CreateFrame("Frame",nil,scrollFrame)
scrollChild:SetSize(HPPframe:GetSize())
scrollFrame:SetScrollChild(scrollChild)
local bgHPPtext = HPPframe:CreateFontString(nil, "BACKGROUND")
bgHPPtext:SetFont(cfg.font.numbers, 32, "OUTLINE")
bgHPPtext:SetPoint("CENTER")
local overlayHPPtext = scrollChild:CreateFontString(nil, "OVERLAY")
overlayHPPtext:SetFont(cfg.font.numbers, 32, "OUTLINE")
overlayHPPtext:SetPoint("CENTER",bgHPPtext)
--/SCROLL
local playerhp = unitFrame:CreateFontString(nil, "OVERLAY")
playerhp:SetFont(cfg.font.numbers, 20, "THINOUTLINE")
playerhp:SetPoint("TOPLEFT",HPPframe,"BOTTOMLEFT",0,0)
local playermp = unitFrame:CreateFontString(nil, "OVERLAY")
playermp:SetFont(cfg.font.numbers, 22, "THINOUTLINE")
playermp:SetPoint("BOTTOMRIGHT",HPPframe,"BOTTOMLEFT",-8,0)
local playermpp = unitFrame:CreateFontString(nil, "OVERLAY")
playermpp:SetFont(cfg.font.numbers, 20, "THINOUTLINE")
playermpp:SetPoint("TOPRIGHT",playermp,"BOTTOMRIGHT",0,0)
local eventframe = CreateFrame("Frame", nil, UIParent)
eventframe:RegisterEvent("PLAYER_ENTERING_WORLD")
eventframe:RegisterEvent("PLAYER_LEVEL_UP")
eventframe:RegisterEvent("UNIT_HEALTH")
eventframe:RegisterEvent("UNIT_POWER")
eventframe:RegisterEvent("UNIT_POWER_FREQUENT")
eventframe:RegisterEvent("UNIT_MODEL_CHANGED")
--eventframe:RegisterEvent("PLAYER_REGEN_DISABLED")
--eventframe:RegisterEvent("PLAYER_REGEN_ENABLED")
--eventframe:RegisterEvent("PLAYER_DEAD")
--eventframe:RegisterEvent("PLAYER_FLAGS_CHANGED")
--eventframe:RegisterEvent("PLAYER_UNGHOST")
eventframe:SetScript("OnEvent", function(self,event, ...)
print("Event: "..event)
local ppr, ppg, ppb = PlayerFrameManaBar:GetStatusBarColor()
local POWERTYPE = UnitPowerType("player")
if event == ("PLAYER_ENTERING_WORLD") or ("PLAYER_LEVEL_UP") then
local HP = UnitHealth("player")
local HPP = HP / UnitHealthMax("player")
local r,g=math.min(1.5 - (HPP*1.5),1), math.min(1.5*HPP, 1)
playerhp:SetText(cfg.hex(cfg.color.class).."HP|cff9d9d9d: "..cfg.hex(r, g, 0)..(format(cfg.SVal(HP))))
bgHPPtext:SetText(cfg.hex(cfg.color.class)..floor((HPP)*10000)/100 .."|cff9d9d9d%")
overlayHPPtext:SetText(cfg.hex(cfg.color.grey)..floor((HPP)*10000)/100 .."|cff9d9d9d%")
local offset = HPP*scrollChild:GetHeight()
scrollFrame:SetPoint("TOP",0,offset)
scrollFrame:SetVerticalScroll(-offset)
if POWERTYPE == 0 then
local UP = UnitPower("player")
local UPM = UnitPowerMax("player")
local UPP = UP / UPM
playermp:SetText(cfg.hex(ppr, ppg, ppb)..(format(cfg.SVal(UP))).."/"..(format(cfg.SVal(UPM))))
playermpp:SetText(floor((UPP)*10000)/100 .."|cff9d9d9d%")
else
local UP = UnitPower("player")
playermp:SetText(cfg.hex(ppr, ppg, ppb)..(format(cfg.SVal(UP))))
end
end
if event == ("UNIT_HEALTH") then
local HP = UnitHealth("player")
local UHM = UnitHealthMax("player")
local HPP = HP / UHM
local PPGB = 0.3
local PPR = 0.8-0.5*HPP
local r,g=math.min(1.5 - (HPP*1.5),1), math.min(1.5*HPP, 1)
playerhp:SetText(cfg.hex(cfg.color.class).."HP: "..cfg.hex(r, g, 0)..(format(cfg.SVal(HP))))
if HPP <= 0.3 then
PPGB = HPP/2
else
PPGB = 0.3
end
bgHPPtext:SetText(cfg.hex(cfg.color.class)..floor((HPP)*10000)/100 .."|cff9d9d9d%")
overlayHPPtext:SetText(cfg.hex(PPR,PPGB,PPGB)..floor((HPP)*10000)/100 .."|cff9d9d9d%")
local offset = HPP*scrollChild:GetHeight()
scrollFrame:SetPoint("TOP",0,offset)
scrollFrame:SetVerticalScroll(-offset)
end
if POWERTYPE == 0 then
if event == ("UNIT_POWER") or ("UNIT_MODEL_CHANGED") then
local UP = UnitPower("player")
local UPM = UnitPowerMax("player")
local UPP = UP / UPM
playermp:SetHeight(22)
if UPP == 1 then
playermp:SetText(cfg.hex(ppr, ppg, ppb)..(format(cfg.SVal(UP))))
else
playermp:SetText(cfg.hex(ppr, ppg, ppb)..(format(cfg.SVal(UP))).."/"..(format(cfg.SVal(UPM))))
end
playermpp:SetText(cfg.hex(cfg.color.class)..floor((UPP)*10000)/100 .."|cff9d9d9d %")
end
else
if event == ("UNIT_POWER_FREQUENT") or ("UNIT_MODEL_CHANGED") then
local UP = UnitPower("player")
playermp:SetHeight(28)
playermp:SetText(cfg.hex(ppr, ppg, ppb)..(format(cfg.SVal(UP))))
playermpp:SetText""
end
end
end)