PGRData/Resources/Scripts/XUi/XUiCharacter/XUiPanelCharQuality.lua
2022-12-26 14:06:01 +05:30

443 lines
No EOL
25 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

XUiPanelCharQuality = XClass(nil, "XUiPanelCharQuality")
local INTERAL = 100
local LOOP_NUM = 20
function XUiPanelCharQuality:Ctor(ui, parent)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self.Parent = parent
self:InitAutoScript()
self:InitIcon()
self.CharQualityUpgrade = XUiPanelQualityUpgrade.New(self.PanelQualityUpgrade, self)
self.ChangeTime = 0.01
self.ShowIndex = 0
self.IsShow = true
self.FxUiKeJinHua = CS.XGame.ClientConfig:GetString("FxUiKeJinHua")
self.FxUiJihuo = CS.XGame.ClientConfig:GetString("FxUiJihuo")
self.ImgClick = {
[1] = self.ImgClick1,
[2] = self.ImgClick2,
[3] = self.ImgClick3,
[4] = self.ImgClick4,
[5] = self.ImgClick5,
[6] = self.ImgClick6,
[7] = self.ImgClick7,
[8] = self.ImgClick8,
[9] = self.ImgClick9,
[10] = self.ImgClick10
}
self.TxtWaferName = {
[1] = self.TxtWaferName1,
[2] = self.TxtWaferName2,
[3] = self.TxtWaferName3,
[4] = self.TxtWaferName4,
[5] = self.TxtWaferName5,
[6] = self.TxtWaferName6,
[7] = self.TxtWaferName7,
[8] = self.TxtWaferName8,
[9] = self.TxtWaferName9,
[10] = self.TxtWaferName10
}
self.PanelHint = {
[1] = self.PanelHint1,
[2] = self.PanelHint2,
[3] = self.PanelHint3,
[4] = self.PanelHint4,
[5] = self.PanelHint5,
[6] = self.PanelHint6,
[7] = self.PanelHint7,
[8] = self.PanelHint8,
[9] = self.PanelHint9,
[10] = self.PanelHint10,
}
self:InitClickEvent()
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiPanelCharQuality:InitAutoScript()
self:AutoInitUi()
XTool.InitUiObject(self)
self:AutoAddListener()
end
function XUiPanelCharQuality:AutoInitUi()
self.PanelQualityUpgrade = self.Transform:Find("PanelQualityUpgrade")
self.PanelQuality = self.Transform:Find("PanelQuality")
self.PanelItems = self.Transform:Find("PanelQuality/PanelInfo/PanelItems")
self.ImgLine1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine1"):GetComponent("Image")
self.ImgLine2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine2"):GetComponent("Image")
self.ImgLine3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine3"):GetComponent("Image")
self.ImgLine4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine4"):GetComponent("Image")
self.ImgLine5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine5"):GetComponent("Image")
self.ImgLine6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine6"):GetComponent("Image")
self.ImgLine7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine7"):GetComponent("Image")
self.ImgLine8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine8"):GetComponent("Image")
self.ImgLine9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine9"):GetComponent("Image")
self.ImgLine10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/Bg/ImgLine10"):GetComponent("Image")
self.PanelWaferIcon = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon")
self.ImgLine1A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/ImgLine1"):GetComponent("Image")
self.ImgWaferColour1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/ImgWaferColour1"):GetComponent("Image")
self.ImgSelect1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/ImgSelect1"):GetComponent("Image")
self.ImgWaferon1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/ImgWaferon1"):GetComponent("Image")
self.TxtWaferName1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/TxtWaferName1"):GetComponent("Text")
self.ImgClick1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/ImgClick1"):GetComponent("Image")
self.PanelHint1 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon1/PanelHint1")
self.ImgLine2A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/ImgLine2"):GetComponent("Image")
self.ImgWaferColour2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/ImgWaferColour2"):GetComponent("Image")
self.ImgSelect2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/ImgSelect2"):GetComponent("Image")
self.ImgWaferon2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/ImgWaferon2"):GetComponent("Image")
self.TxtWaferName2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/TxtWaferName2"):GetComponent("Text")
self.ImgClick2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/ImgClick2"):GetComponent("Image")
self.PanelHint2 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon2/PanelHint2")
self.ImgLine3A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/ImgLine3"):GetComponent("Image")
self.ImgWaferColour3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/ImgWaferColour3"):GetComponent("Image")
self.ImgSelect3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/ImgSelect3"):GetComponent("Image")
self.ImgWaferon3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/ImgWaferon3"):GetComponent("Image")
self.TxtWaferName3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/TxtWaferName3"):GetComponent("Text")
self.ImgClick3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/ImgClick3"):GetComponent("Image")
self.PanelHint3 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon3/PanelHint3")
self.ImgLine4A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/ImgLine4"):GetComponent("Image")
self.ImgWaferColour4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/ImgWaferColour4"):GetComponent("Image")
self.ImgSelect4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/ImgSelect4"):GetComponent("Image")
self.ImgWaferon4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/ImgWaferon4"):GetComponent("Image")
self.TxtWaferName4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/TxtWaferName4"):GetComponent("Text")
self.ImgClick4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/ImgClick4"):GetComponent("Image")
self.PanelHint4 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon4/PanelHint4")
self.ImgLine5A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/ImgLine5"):GetComponent("Image")
self.ImgWaferColour5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/ImgWaferColour5"):GetComponent("Image")
self.ImgSelect5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/ImgSelect5"):GetComponent("Image")
self.ImgWaferon5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/ImgWaferon5"):GetComponent("Image")
self.TxtWaferName5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/TxtWaferName5"):GetComponent("Text")
self.ImgClick5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/ImgClick5"):GetComponent("Image")
self.PanelHint5 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon5/PanelHint5")
self.ImgLine6A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/ImgLine6"):GetComponent("Image")
self.ImgWaferColour6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/ImgWaferColour6"):GetComponent("Image")
self.ImgSelect6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/ImgSelect6"):GetComponent("Image")
self.ImgWaferon6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/ImgWaferon6"):GetComponent("Image")
self.TxtWaferName6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/TxtWaferName6"):GetComponent("Text")
self.ImgClick6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/ImgClick6"):GetComponent("Image")
self.PanelHint6 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon6/PanelHint6")
self.ImgLine7A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/ImgLine7"):GetComponent("Image")
self.ImgWaferColour7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/ImgWaferColour7"):GetComponent("Image")
self.ImgSelect7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/ImgSelect7"):GetComponent("Image")
self.ImgWaferon7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/ImgWaferon7"):GetComponent("Image")
self.TxtWaferName7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/TxtWaferName7"):GetComponent("Text")
self.ImgClick7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/ImgClick7"):GetComponent("Image")
self.PanelHint7 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon7/PanelHint7")
self.ImgLine8A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/ImgLine8"):GetComponent("Image")
self.ImgWaferColour8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/ImgWaferColour8"):GetComponent("Image")
self.ImgSelect8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/ImgSelect8"):GetComponent("Image")
self.ImgWaferon8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/ImgWaferon8"):GetComponent("Image")
self.TxtWaferName8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/TxtWaferName8"):GetComponent("Text")
self.ImgClick8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/ImgClick8"):GetComponent("Image")
self.PanelHint8 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon8/PanelHint8")
self.ImgLine9A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/ImgLine9"):GetComponent("Image")
self.ImgWaferColour9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/ImgWaferColour9"):GetComponent("Image")
self.ImgSelect9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/ImgSelect9"):GetComponent("Image")
self.ImgWaferon9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/ImgWaferon9"):GetComponent("Image")
self.TxtWaferName9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/TxtWaferName9"):GetComponent("Text")
self.ImgClick9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/ImgClick9"):GetComponent("Image")
self.PanelHint9 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon9/PanelHint9")
self.ImgLine10A = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/ImgLine10"):GetComponent("Image")
self.ImgWaferColour10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/ImgWaferColour10"):GetComponent("Image")
self.ImgSelect10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/ImgSelect10"):GetComponent("Image")
self.ImgWaferon10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/ImgWaferon10"):GetComponent("Image")
self.TxtWaferName10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/TxtWaferName10"):GetComponent("Text")
self.ImgClick10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/ImgClick10"):GetComponent("Image")
self.PanelHint10 = self.Transform:Find("PanelQuality/PanelInfo/PanelItems/PanelWaferIcon/WaferIcon10/PanelHint10")
self.BtnPreview = self.Transform:Find("PanelQuality/PanelInfo/BtnPreview"):GetComponent("Button")
self.RImgQuality = self.Transform:Find("PanelQuality/PanelInfo/WaferCircuit/RImgQuality"):GetComponent("RawImage")
self.RImgQualityMax = self.Transform:Find("PanelQuality/PanelInfo/WaferCircuit/RImgQualityMax"):GetComponent("RawImage")
self.BtnAdvanced = self.Transform:Find("PanelQuality/PanelInfo/BtnAdvanced"):GetComponent("Button")
self.RImgQualityBefore = self.Transform:Find("PanelQuality/PanelInfo/BtnAdvanced/RImgQualityBefore"):GetComponent("RawImage")
self.RImgQualityAfter = self.Transform:Find("PanelQuality/PanelInfo/BtnAdvanced/RImgQualityAfter"):GetComponent("RawImage")
self.PanelCountMoney = self.Transform:Find("PanelQuality/PanelInfo/BtnAdvanced/PanelCountMoney")
self.TxtConditionCountMoney = self.Transform:Find("PanelQuality/PanelInfo/BtnAdvanced/PanelCountMoney/TxtConditionCountMoney"):GetComponent("Text")
self.BtnMoneyTip = self.Transform:Find("PanelQuality/PanelInfo/BtnAdvanced/PanelCountMoney/BtnMoneyTip"):GetComponent("Button")
self.PanelCondition = self.Transform:Find("PanelQuality/PanelCondition")
self.ImgPromoteQulityMax = self.Transform:Find("PanelQuality/PanelCondition/ImgPromoteQulityMax"):GetComponent("Image")
self.TxtConditionCountMoneyA = self.Transform:Find("PanelQuality/PanelCondition/ImgPromoteQulityMax/TxtConditionCountMoney"):GetComponent("Text")
self.PanelCountIten = self.Transform:Find("PanelQuality/PanelCondition/PanelCountIten")
self.RImgIconSuipian = self.Transform:Find("PanelQuality/PanelCondition/PanelCountIten/RImgIconSuipian"):GetComponent("RawImage")
self.TxtConditionCountItem = self.Transform:Find("PanelQuality/PanelCondition/PanelCountIten/TxtConditionCountItem"):GetComponent("Text")
self.BtnItemTip = self.Transform:Find("PanelQuality/PanelCondition/PanelCountIten/BtnItemTip"):GetComponent("Button")
self.BtnActive = self.Transform:Find("PanelQuality/PanelCondition/BtnActive"):GetComponent("Button")
end
function XUiPanelCharQuality:RegisterClickEvent(uiNode, func)
if func == nil then
XLog.Error("XUiPanelCharQuality:RegisterClickEvent函数参数错误参数func不能为空")
return
end
if type(func) ~= "function" then
XLog.Error("XUiPanelCharQuality:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
end
local listener = function(...)
func(self, ...)
end
CsXUiHelper.RegisterClickEvent(uiNode, listener)
end
function XUiPanelCharQuality:AutoAddListener()
self:RegisterClickEvent(self.BtnPreview, self.OnBtnPreviewClick)
self:RegisterClickEvent(self.BtnAdvanced, self.OnBtnAdvancedClick)
self:RegisterClickEvent(self.BtnMoneyTip, self.OnBtnMoneyTipClick)
self:RegisterClickEvent(self.BtnItemTip, self.OnBtnItemTipClick)
self:RegisterClickEvent(self.BtnActive, self.OnBtnActiveClick)
end
-- auto
function XUiPanelCharQuality:OnBtnPreviewClick()
local characterId = self.CharacterId
if XDataCenter.CharacterManager.IsMaxQualityById(characterId) then
return
end
XLuaUiManager.Open("UiPanelQualityPreview", characterId)
end
function XUiPanelCharQuality:OnBtnItemTipClick()
XLuaUiManager.Open("UiTip", XDataCenter.ItemManager.GetItem(XCharacterConfigs.GetCharacterItemId(self.CharacterId)))
end
function XUiPanelCharQuality:OnBtnMoneyTipClick()
local character = XDataCenter.CharacterManager.GetCharacter(self.CharacterId)
local characterType = XCharacterConfigs.GetCharacterType(self.CharacterId)
XLuaUiManager.Open("UiTip", XDataCenter.ItemManager.GetItem(XCharacterConfigs.GetPromoteItemId(characterType, character.Quality)))
end
function XUiPanelCharQuality:OnBtnActiveClick()
self:UpdateStarCount()
end
function XUiPanelCharQuality:OnBtnAdvancedClick()
local characterId = self.CharacterId
local character = XDataCenter.CharacterManager.GetCharacter(characterId)
self.CharQualityUpgrade:OldCharUpgradeInfo(character)
if character.Star == XCharacterConfigs.MAX_QUALITY_STAR then
XDataCenter.CharacterManager.PromoteQuality(character, function()
CS.XAudioManager.PlaySound(XSoundManager.UiBasicsMusic.UiCharacter_QualityUp)
self.QualityUpgradeEnable:PlayTimelineAnimation()
self.CharQualityUpgrade:ShowLevelInfo(characterId)
self:InitStarAttrInfo()
self:UpdateStar()
end)
end
end
function XUiPanelCharQuality:InitClickEvent()
local characterId = self.CharacterId
local character = XDataCenter.CharacterManager.GetCharacter(characterId)
self.AnimationState = {}
for i = 1, 10 do
self:RegisterClickEvent(self.ImgClick[i],
function()
self.TxtWaferName[i].gameObject:SetActive(true)
local attribs = XCharacterConfigs.GetCharStarAttribs(characterId, character.Quality, i - 1)
for k, v in pairs(attribs) do
local value = FixToDouble(v)
if value > 0 then
self.TxtWaferName[i].text = string.format("%s+%s", XAttribManager.GetAttribNameByIndex(k), string.format("%.2f", value))
break
end
end
CS.XTimerManager.Add(
function(timer)
if not self.GameObject:Exist() then
CS.XTimerManager.Remove(timer.Id)
return
end
-- if timer.Count < 10 then
-- self.TxtWaferName[i].color.a = timer.Count*25
-- else
-- self.TxtWaferName[i].color.a = (20-timer.Count)*25
-- end
if timer.Count == 20 then
self.TxtWaferName[i].gameObject:SetActive(false)
CS.XTimerManager.Remove(timer.Id)
end
end,
INTERAL,
LOOP_NUM
)
end
)
end
end
function XUiPanelCharQuality:ShowPanel(characterId)
self.IsShow = true
self.GameObject:SetActive(true)
self.QualityQiehuan:PlayTimelineAnimation()
self.CharacterId = characterId or self.CharacterId
self.CharQualityUpgrade:HideLevelInfo()
self:InitStarAttrInfo()
self:UpdateStar()
end
function XUiPanelCharQuality:HidePanel()
self.IsShow = false
self.GameObject:SetActive(false)
end
function XUiPanelCharQuality:InitIcon()
self.StarIcon = {}
self.StarAttr = {}
self.SelectIcon = {}
self.Line = {}
self.StarColour = {}
for i = 1, XCharacterConfigs.MAX_QUALITY_STAR do
self.StarColour[i] = self["ImgWaferColour" .. i]
self.StarIcon[i] = self["ImgWaferon" .. i]
self.StarAttr[i] = self["TxtWaferName" .. i]
self.SelectIcon[i] = self["ImgSelect" .. i]
self.Line[i] = self["ImgLine" .. i]
end
end
function XUiPanelCharQuality:ClearAttrs()
for i = 1, XCharacterConfigs.MAX_QUALITY_STAR do
self.StarAttr[i].text = ""
end
end
function XUiPanelCharQuality:UpdateStar()
local character = XDataCenter.CharacterManager.GetCharacter(self.CharacterId)
local maxStar = XCharacterConfigs.MAX_QUALITY_STAR
local isMaxStar = character.Star == maxStar
local isMaxQuality = XDataCenter.CharacterManager.IsMaxQuality(character)
local qualityIcon = XCharacterConfigs.GetCharQualityIcon(character.Quality)
self.ImgPromoteQulityMax.gameObject:SetActive(isMaxQuality)
self.RImgQuality.gameObject:SetActive(not isMaxQuality and not isMaxStar)
self.RImgQualityMax.gameObject:SetActive(isMaxQuality)
if isMaxQuality then
self:ClearAttrs()
self.BtnAdvanced.gameObject:SetActive(false)
self.PanelCondition.gameObject:SetActive(false)
self.PanelWaferIcon.gameObject:SetActive(false)
self.RImgQualityMax:SetRawImage(qualityIcon)
return
else
self.RImgQuality:SetRawImage(qualityIcon)
self.PanelWaferIcon.gameObject:SetActive(true)
end
self:UpdateStarAttrInfo(character.Star)
for i = 1, character.Star do
self.StarIcon[i].gameObject:SetActive(true)
self.Line[i].gameObject:SetActive(true)
self.StarColour[i].gameObject:SetActive(false)
end
for i = maxStar, character.Star + 1, -1 do
self.StarIcon[i].gameObject:SetActive(false)
self.Line[i].gameObject:SetActive(false)
self.StarColour[i].gameObject:SetActive(true)
end
local characterType = XCharacterConfigs.GetCharacterType(self.CharacterId)
if isMaxStar then
self.PanelCountIten.gameObject:SetActive(false)
self.PanelCountMoney.gameObject:SetActive(true)
self.BtnAdvanced.gameObject:SetActive(true)
self.PanelCondition.gameObject:SetActive(true)
self.RImgQualityBefore:SetRawImage(XCharacterConfigs.GetCharQualityIcon(character.Quality))
self.RImgQualityAfter:SetRawImage(XCharacterConfigs.GetCharQualityIcon(character.Quality + 1))
self.BtnActive.gameObject:SetActive(false)
self.ImgPromoteQulityMax.gameObject:SetActive(true)
self.PanelWaferIcon.gameObject:SetActive(false)
local itemId = XCharacterConfigs.GetPromoteItemId(characterType, character.Quality)
local useCoin = XCharacterConfigs.GetPromoteUseCoin(characterType, character.Quality)
-- self.TxtConditionCountMoney.text = XDataCenter.ItemManager.GetItemName(itemId) .. useCoin
-- 运营要求 数字在前 单位在后
self.TxtConditionCountMoney.text = useCoin .. " " .. XDataCenter.ItemManager.GetItemName(itemId)
else
self.PanelCountIten.gameObject:SetActive(true)
self.PanelCountMoney.gameObject:SetActive(false)
self.BtnActive.gameObject:SetActive(true)
self.BtnAdvanced.gameObject:SetActive(false)
self.PanelCondition.gameObject:SetActive(true)
self.RImgIconSuipian:SetRawImage(XDataCenter.ItemManager.GetItemIcon(XCharacterConfigs.GetCharacterItemId(self.CharacterId)))
self.PanelWaferIcon.gameObject:SetActive(true)
local curItem = XDataCenter.ItemManager.GetItem(XCharacterConfigs.GetCharacterItemId(self.CharacterId))
local itemCount = 0
if curItem ~= nil then
itemCount = curItem.Count
end
self.TxtConditionCountItem.text = itemCount .. "/" .. XCharacterConfigs.GetStarUseCount(characterType, character.Quality, character.Star + 1)
self.ImgPromoteQulityMax.gameObject:SetActive(false)
end
for _, hint in pairs(self.PanelHint) do
hint.gameObject:SetActiveEx(false)
end
end
function XUiPanelCharQuality:UpdateStarCount()
local character = XDataCenter.CharacterManager.GetCharacter(self.CharacterId)
self.CharQualityUpgrade:OldCharUpgradeInfo(character)
local nextActiveStar = character.Star + 1
XDataCenter.CharacterManager.ActivateStar(character, function()
self.StarAttr[nextActiveStar].gameObject:SetActive(false)
self.SelectIcon[nextActiveStar].gameObject:SetActive(false)
self:UpdateStar()
local hint = self.PanelHint[nextActiveStar + 1]
if hint then
hint.gameObject:SetActiveEx(true)
end
CS.XAudioManager.PlaySound(XSoundManager.UiBasicsMusic.UiCharacter_QualityFragments)
end)
end
function XUiPanelCharQuality:UpdateStarAttrInfo(star)
local character = XDataCenter.CharacterManager.GetCharacter(self.CharacterId)
if star < XCharacterConfigs.MAX_QUALITY_STAR then
self.StarAttr[star + 1].gameObject:SetActive(true)
self.SelectIcon[star + 1].gameObject:SetActive(true)
if star ~= 0 then
self.StarAttr[star].gameObject:SetActive(false)
self.SelectIcon[star].gameObject:SetActive(false)
end
local attribs = XCharacterConfigs.GetCharStarAttribs(character.Id, character.Quality, character.Star)
for k, v in pairs(attribs) do
local value = FixToDouble(v)
if value > 0 then
self.StarAttr[star + 1].text = XAttribManager.GetAttribNameByIndex(k) .. "+" .. string.format("%.2f", value)
break
end
end
end
end
function XUiPanelCharQuality:InitStarAttrInfo()
local character = XDataCenter.CharacterManager.GetCharacter(self.CharacterId)
for i = 1, #self.StarAttr do
self.StarAttr[i].gameObject:SetActive(false)
self.SelectIcon[i].gameObject:SetActive(false)
end
local star = character.Star + 1
if self.TxtWaferName[star] then
self.TxtWaferName[star].gameObject:SetActive(true)
end
end