local stringFormat = string.format

local XUiPanelQualityPreview = XLuaUiManager.Register(XLuaUi, "UiPanelQualityPreview")

local Show_Part = {
    [1] = XNpcAttribType.Life,
    [2] = XNpcAttribType.AttackNormal,
    [3] = XNpcAttribType.DefenseNormal,
    [4] = XNpcAttribType.Crit,
}

function XUiPanelQualityPreview:OnAwake()
    self:AutoAddListener()
end

function XUiPanelQualityPreview:OnStart(characterId)
    self.CharacterId = characterId
end

function XUiPanelQualityPreview:OnEnable()
    self:RefreshAttrib()
end

function XUiPanelQualityPreview:AutoAddListener()
    self:RegisterClickEvent(self.BtnDarkBg, self.OnBtnDarkBgClick)
end

function XUiPanelQualityPreview:RefreshAttrib()
    local characterId = self.CharacterId
    local curCharacter = XDataCenter.CharacterManager.GetCharacter(self.CharacterId)
    local quality = curCharacter.Quality
    local nextQulity = curCharacter.Quality + 1
    local curAttrib = XCharacterConfigs.GetNpcPromotedAttribByQuality(characterId, quality)
    local nextAttrib = XCharacterConfigs.GetNpcPromotedAttribByQuality(characterId, nextQulity)

    for i = 1, 4 do
        local attribType = Show_Part[i]
        local name = XAttribManager.GetAttribNameByIndex(attribType)
        self["TxtInfoName" .. i].text = CS.XTextManager.GetText("CharQuiltyLevelUp", name)
        self["TxtNormal" .. i].text = stringFormat("%.2f", FixToDouble(curAttrib[attribType]))
        self["TxtLevel" .. i].text = stringFormat("%.2f", FixToDouble(nextAttrib[attribType]))
    end
    self.RImgQuality:SetRawImage(XCharacterConfigs.GetCharQualityIcon(quality))
    self.RImgQuality1:SetRawImage(XCharacterConfigs.GetCharQualityIcon(quality + 1))
end

function XUiPanelQualityPreview:OnBtnDarkBgClick()
    self:Close()
end