local XUiAutoFightReward = XLuaUiManager.Register(XLuaUi, "UiAutoFightReward") local UiCharacter = require("XUi/XUiAutoFightReward/XUiAutoFightRewardCharacter") local tableinsert = table.insert local AnimBegin = "AniAutoFightRewardBegin" local AnimEnd = "AniAutoFightRewardEnd" function XUiAutoFightReward:OnAwake() self:InitAutoScript() self:InitTemplate() end function XUiAutoFightReward:OnStart(cardIds, data) self.CardIds = cardIds self.Data = data local playerLevel = XPlayer.Level self.TxtLv.text = playerLevel self.TxtExp.text = "+" .. data.TeamExp for _, id in pairs(cardIds) do if id > 0 then self:NewCharacter(id, data.CharacterExp) end end for _, reward in pairs(data.Rewards) do self:NewItem(reward) end local playerExp = XPlayer.Exp local playerMaxExp = XPlayerManager.GetMaxExp(XPlayer.Level) local expBefore = playerExp - data.TeamExp self.ImgExpBar.fillAmount = expBefore > 0 and expBefore / playerMaxExp or 0 self.ImgExpBarReward.fillAmount = playerExp / playerMaxExp local beginCallback = function() XLuaUiManager.SetMask(true) end local finishCallBack = function() XLuaUiManager.SetMask(false) end self:PlayAnimation(AnimBegin, finishCallBack, beginCallback) end function XUiAutoFightReward:InitTemplate() self.CharacterContainer = self.PanelCharacters:Find("CharacterContainer") self.CharacterTemplate = self.CharacterContainer:Find("CharacterTemplate") self.ItemContainer = self.PanelItems:Find("ScrollView/Viewport/ItemContainer") self.ItemTemplate = self.ItemContainer:Find("ItemTemplate") end function XUiAutoFightReward:NewCharacter(id, exp) local transform if not self.UiCharacters then transform = self.CharacterTemplate self.UiCharacters = {} else transform = CS.UnityEngine.Object.Instantiate(self.CharacterTemplate, self.CharacterContainer) end local uiCharacter = UiCharacter.New(transform) uiCharacter:SetData(id, exp) tableinsert(self.UiCharacters, uiCharacter) end function XUiAutoFightReward:NewItem(data) local transform if not self.UiItems then transform = self.ItemTemplate self.UiItems = {} else transform = CS.UnityEngine.Object.Instantiate(self.ItemTemplate, self.ItemContainer) end local grid = XUiGridCommon.New(self, transform) grid:Refresh(data) tableinsert(self.UiItems, grid) end -- auto -- Automatic generation of code, forbid to edit function XUiAutoFightReward:InitAutoScript() self:AutoInitUi() self:AutoAddListener() end function XUiAutoFightReward:AutoInitUi() self.BtnClose = self.Transform:Find("SafeAreaContentPane/BtnClose"):GetComponent("Button") self.PanelAutoFightReward = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward") self.PanelCharacters = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCharacters") self.PanelCommander = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCommander") self.TxtLv = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCommander/TxtLv"):GetComponent("Text") self.TxtExp = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCommander/TxtExp"):GetComponent("Text") self.ImgExpBarBg = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCommander/ExpBar/ImgExpBarBg"):GetComponent("Image") self.ImgExpBarReward = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCommander/ExpBar/ImgExpBarReward"):GetComponent("Image") self.ImgExpBar = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelCommander/ExpBar/ImgExpBar"):GetComponent("Image") self.PanelItems = self.Transform:Find("SafeAreaContentPane/PanelAutoFightReward/PanelItems") end function XUiAutoFightReward:AutoAddListener() self:RegisterClickEvent(self.BtnClose, self.OnBtnCloseClick) end -- auto function XUiAutoFightReward:OnBtnCloseClick() self.BtnClose.interactable = false local beginCallback = function() XLuaUiManager.SetMask(true) end local finishCallBack = function() XLuaUiManager.SetMask(false) self:Close() end self:PlayAnimation(AnimEnd, finishCallBack, beginCallback) end