XUiPanelGradeUpgrade = XClass(nil, "XUiPanelGradeUpgrade") function XUiPanelGradeUpgrade:Ctor(ui, rootUi, parent) ---@type XCharacterAgency local ag = XMVCA:GetAgency(ModuleId.XCharacter) self.CharacterAgency = ag self.RootUi = rootUi self.Parent = parent self.GameObject = ui.gameObject self.Transform = ui.transform self:InitAutoScript() self.Grading = { Recruit = 1, --新兵 RecruitStar = 1, --新兵最大等级 Picked = 2, --精锐 PickedStar = 3, --精锐最大等级 MainForce = 3, --主力 MainForceStar = 6, --主力最大等级 Ace = 3, --王牌 AceStar = 9, --王牌最大等级 TheChosen = 4, --天选 TheChosenStar = 13, --天选最大等级 } self.OldStar = { self.ImgOldStar1A, self.ImgOldStar2A, self.ImgOldStar3A, self.ImgOldStar4A } self.OldOnStar = { self.ImgOldOnStar1A, self.ImgOldOnStar2A, self.ImgOldOnStar3A, self.ImgOldOnStar4A } self.CurStar = { self.ImgCurStar1A, self.ImgCurStar2A, self.ImgCurStar3A, self.ImgCurStar4A } self.CurOnStar = { self.ImgCurOnStar1A, self.ImgCurOnStar2A, self.ImgCurOnStar3A, self.ImgCurOnStar4A } end -- auto -- Automatic generation of code, forbid to edit function XUiPanelGradeUpgrade:InitAutoScript() self:AutoInitUi() self:AutoAddListener() end function XUiPanelGradeUpgrade:AutoInitUi() self.RImgCharacterIcon = self.Transform:Find("BgImage/RImgCharacterIcon"):GetComponent("RawImage") self.TxtName = self.Transform:Find("BgImage/RImgCharacterIcon/TxtName"):GetComponent("Text") self.BtnDarkBg = self.Transform:Find("BtnDarkBg"):GetComponent("Button") self.PanelCharAttack = self.Transform:Find("BgImage/Properties/PanelCharAttack") self.TxtOldBattlePower = self.Transform:FindTransform("TxtOldBattlePower"):GetComponent("Text") self.TxtCurBattlePower = self.Transform:FindTransform("TxtCurBattlePower"):GetComponent("Text") self.TxtOldAttack = self.Transform:Find("BgImage/Properties/PanelCharAttack/TxtOldAttack"):GetComponent("Text") self.TxtCurAttack = self.Transform:Find("BgImage/Properties/PanelCharAttack/TxtCurAttack"):GetComponent("Text") self.PanelCharLife = self.Transform:Find("BgImage/Properties/PanelCharLife") self.TxtOldLife = self.Transform:Find("BgImage/Properties/PanelCharLife/TxtOldLife"):GetComponent("Text") self.TxtCurLife = self.Transform:Find("BgImage/Properties/PanelCharLife/TxtCurLife"):GetComponent("Text") self.PanelCharDefense = self.Transform:Find("BgImage/Properties/PanelCharDefense") self.TxtOldDefense = self.Transform:Find("BgImage/Properties/PanelCharDefense/TxtOldDefense"):GetComponent("Text") self.TxtCurDefense = self.Transform:Find("BgImage/Properties/PanelCharDefense/TxtCurDefense"):GetComponent("Text") self.PanelCharCrit = self.Transform:Find("BgImage/Properties/PanelCharCrit") self.TxtOldCrit = self.Transform:Find("BgImage/Properties/PanelCharCrit/TxtOldCrit"):GetComponent("Text") self.TxtCurCrit = self.Transform:Find("BgImage/Properties/PanelCharCrit/TxtCurCrit"):GetComponent("Text") self.PanelGradeB = self.Transform:Find("BgImage/PanelGrade") self.RImgOldIconTitleA = self.Transform:Find("BgImage/PanelGrade/RImgOldIconTitle"):GetComponent("RawImage") self.RImgCurIconTitleA = self.Transform:Find("BgImage/PanelGrade/RImgCurIconTitle"):GetComponent("RawImage") self.PanelOldStarGoupA = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup") self.ImgOldStar1A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star1/ImgOldStar1"):GetComponent("Image") self.ImgOldOnStar1A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star1/ImgOldOnStar1"):GetComponent("Image") self.ImgOldStar2A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star2/ImgOldStar2"):GetComponent("Image") self.ImgOldOnStar2A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star2/ImgOldOnStar2"):GetComponent("Image") self.ImgOldStar3A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star3/ImgOldStar3"):GetComponent("Image") self.ImgOldOnStar3A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star3/ImgOldOnStar3"):GetComponent("Image") self.ImgOldStar4A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star4/ImgOldStar4"):GetComponent("Image") self.ImgOldOnStar4A = self.Transform:Find("BgImage/PanelGrade/PanelOldStarGoup/Star4/ImgOldOnStar4"):GetComponent("Image") self.PanelCurStarGoupA = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup") self.ImgCurStar1A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star1/ImgCurStar1"):GetComponent("Image") self.ImgCurOnStar1A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star1/ImgCurOnStar1"):GetComponent("Image") self.ImgCurStar2A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star2/ImgCurStar2"):GetComponent("Image") self.ImgCurOnStar2A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star2/ImgCurOnStar2"):GetComponent("Image") self.ImgCurStar3A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star3/ImgCurStar3"):GetComponent("Image") self.ImgCurOnStar3A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star3/ImgCurOnStar3"):GetComponent("Image") self.ImgCurStar4A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star4/ImgCurStar4"):GetComponent("Image") self.ImgCurOnStar4A = self.Transform:Find("BgImage/PanelGrade/PanelCurStarGoup/Star4/ImgCurOnStar4"):GetComponent("Image") end function XUiPanelGradeUpgrade:RegisterClickEvent(uiNode, func) if func == nil then XLog.Error("XUiPanelGradeUpgrade:RegisterClickEvent函数参数错误:参数func不能为空") return end if type(func) ~= "function" then XLog.Error("XUiPanelGradeUpgrade:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func)) end local listener = function(...) func(self, ...) end CsXUiHelper.RegisterClickEvent(uiNode, listener) end function XUiPanelGradeUpgrade:AutoAddListener() self:RegisterClickEvent(self.BtnDarkBg, self.OnBtnDarkBgClick) end -- auto function XUiPanelGradeUpgrade:OnBtnDarkBgClick() self.Parent.GradeUpgradeDisable:PlayTimelineAnimation(function() self:HideLevelInfo() end) end function XUiPanelGradeUpgrade:ShowLevelInfo(characterId) local character = XDataCenter.CharacterManager.GetCharacter(characterId) self.IsShow = true self.GameObject:SetActive(true) self:CurCharUpgradeInfo(character) CS.XAudioManager.PlaySound(XSoundManager.UiBasicsMusic.Success) -- 成功 end function XUiPanelGradeUpgrade:HideLevelInfo() self.IsShow = false if self.GameObject:Exist() then self.GameObject:SetActive(false) end end function XUiPanelGradeUpgrade:OldCharUpgradeInfo(character) self.TxtOldBattlePower.text = self.CharacterAgency:GetCharacterHaveRobotAbilityById(character.Id) self.TxtOldAttack.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.AttackNormal]) or 0) self.TxtOldLife.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.Life]) or 0) self.TxtOldDefense.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.DefenseNormal]) or 0) self.TxtOldCrit.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.Crit]) or 0) self:UpdateGradeIcon(character, self.OldStar, self.OldOnStar, self.RImgOldIconTitleA, true) end function XUiPanelGradeUpgrade:CurCharUpgradeInfo(character) self.TxtCurBattlePower.text = self.CharacterAgency:GetCharacterHaveRobotAbilityById(character.Id) self.TxtCurAttack.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.AttackNormal]) or 0) self.TxtCurLife.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.Life]) or 0) self.TxtCurDefense.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.DefenseNormal]) or 0) self.TxtCurCrit.text = XMath.ToMinInt(FixToDouble(character.Attribs[XNpcAttribType.Crit]) or 0) self.TxtName.text = character.Name self.RImgCharacterIcon:SetRawImage(XDataCenter.CharacterManager.GetCharBigHeadIcon(character.Id)) self:UpdateGradeIcon(character, self.CurStar, self.CurOnStar, self.RImgCurIconTitleA, false) end -- 刷新星星界面 function XUiPanelGradeUpgrade:UpdateStarInfo(index, onIndex, starGoup, starOnGoup) for i = 1, 4 do starGoup[i].transform.parent.gameObject:SetActive(true) starGoup[i].gameObject:SetActive(false) starOnGoup[i].gameObject:SetActive(false) end if onIndex > 4 then --封号特殊处理 for i = 1, #starOnGoup do starOnGoup[i].gameObject:SetActive(true) end return end if index < 4 then for i = index + 1, 4 do starGoup[i].transform.parent.gameObject:SetActive(false) end end for i = 1, index do starGoup[i].gameObject:SetActive(true) end for i = 1, onIndex do starOnGoup[i].gameObject:SetActive(true) end end -- 判断当前显示界面信息 function XUiPanelGradeUpgrade:UpdateGradeIcon(character, starGoup, starOnGoup, rImgIcon, isOld) local charGradeTemplates = XCharacterConfigs.GetGradeTemplates(character.Id, character.Grade) rImgIcon:SetRawImage(charGradeTemplates.GradeBigIcon) self:UpdateStarSprite(charGradeTemplates.NoStar, charGradeTemplates.Star, isOld) if character.Grade == self.Grading.TheChosenStar then self:UpdateStarInfo(self.Grading.TheChosen, character.Grade - self.Grading.AceStar, starGoup, starOnGoup) return end if character.Grade > self.Grading.AceStar then self:UpdateStarInfo(self.Grading.TheChosen, character.Grade - self.Grading.AceStar, starGoup, starOnGoup) return end if character.Grade > self.Grading.MainForceStar then self:UpdateStarInfo(self.Grading.Ace, character.Grade - self.Grading.MainForceStar, starGoup, starOnGoup) return end if character.Grade > self.Grading.PickedStar then self:UpdateStarInfo(self.Grading.MainForce, character.Grade - self.Grading.PickedStar, starGoup, starOnGoup) return end if character.Grade > self.Grading.RecruitStar then self:UpdateStarInfo(self.Grading.Picked, character.Grade - self.Grading.RecruitStar, starGoup, starOnGoup) return end if character.Grade <= self.Grading.RecruitStar then self:UpdateStarInfo(self.Grading.Recruit, character.Grade, starGoup, starOnGoup) return end end function XUiPanelGradeUpgrade:UpdateStarSprite(starSprite, onStarSprite, isOld) if isOld then for i = 1, #self.OldStar do self.RootUi:SetUiSprite(self.OldStar[i], starSprite) self.RootUi:SetUiSprite(self.OldOnStar[i], onStarSprite) end else for i = 1, #self.CurStar do self.RootUi:SetUiSprite(self.CurStar[i], starSprite) self.RootUi:SetUiSprite(self.CurOnStar[i], onStarSprite) end end end