PGRData/Script/matrix/xui/xuiautofightreward/XUiAutoFightReward.lua

121 lines
No EOL
4.2 KiB
Lua

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