PGRData/Script/matrix/xui/xuicharacter/XUiPanelGradeUpgrade.lua
2024-09-01 22:49:41 +02:00

212 lines
No EOL
11 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.

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