137 lines
No EOL
5 KiB
Lua
137 lines
No EOL
5 KiB
Lua
local XUiConsumeActivityLog = XLuaUiManager.Register(XLuaUi, "UiConsumeActivityLog")
|
|
local BtnMaxCount = 2
|
|
local IsInit = {}
|
|
local AnimeNames = {}
|
|
local InitFunctionList = {}
|
|
|
|
function XUiConsumeActivityLog:OnStart(selectIndex)
|
|
---@type ConsumeDrawRuleEntity
|
|
self.ConsumeDrawRule = XDataCenter.AccumulatedConsumeManager.GetConsumeDrawRule()
|
|
self.SelectIndex = selectIndex or 1
|
|
self:RegisterUiEvents()
|
|
InitFunctionList = {
|
|
function()
|
|
self:InitDrawPreview()
|
|
end,
|
|
function()
|
|
self:InitBaseRulePanel()
|
|
end
|
|
}
|
|
IsInit = {false, false}
|
|
AnimeNames = { "QieHuanOne", "QieHuanTwo"}
|
|
self:InitBtnTab()
|
|
end
|
|
|
|
function XUiConsumeActivityLog:InitBtnTab()
|
|
self.TabGroup = self.TabGroup or {}
|
|
for i = 1, BtnMaxCount do
|
|
if not self.TabGroup[i] then
|
|
self.TabGroup[i] = self[string.format("BtnTab%d", i)]
|
|
end
|
|
end
|
|
self.PanelTabTc:Init(self.TabGroup, function(tabIndex) self:OnSelectedTog(tabIndex) end)
|
|
self.PanelTabTc:SelectIndex(self.SelectIndex)
|
|
end
|
|
|
|
function XUiConsumeActivityLog:OnSelectedTog(index)
|
|
for i = 1, BtnMaxCount do
|
|
self[string.format("Panel%d", i)].gameObject:SetActiveEx(false)
|
|
end
|
|
|
|
self[string.format("Panel%d", index)].gameObject:SetActiveEx(true)
|
|
if not IsInit[index] then
|
|
InitFunctionList[index]()
|
|
IsInit[index] = true
|
|
end
|
|
|
|
self:PlayAnimation(AnimeNames[index])
|
|
end
|
|
|
|
function XUiConsumeActivityLog:RegisterUiEvents()
|
|
XUiHelper.RegisterClickEvent(self, self.BtnTanchuangClose, self.OnBtnTanchuangClose)
|
|
XUiHelper.RegisterClickEvent(self, self.BtnClose, self.OnBtnTanchuangClose)
|
|
end
|
|
|
|
function XUiConsumeActivityLog:InitDrawPreview()
|
|
local PanelObj = {}
|
|
PanelObj.Transform = self.Panel1.transform
|
|
XTool.InitUiObject(PanelObj)
|
|
|
|
PanelObj.Txtl01.gameObject:SetActiveEx(false)
|
|
PanelObj.PanelTxtParent.gameObject:SetActiveEx(false)
|
|
PanelObj.Line.gameObject:SetActiveEx(false)
|
|
PanelObj.OrdinaryReward.gameObject:SetActiveEx(false)
|
|
|
|
local rewardTypes = self.ConsumeDrawRule:GetRewardType()
|
|
for i = 1, #rewardTypes do
|
|
local rewardType = rewardTypes[i]
|
|
local rewardTypeConfig = self.ConsumeDrawRule:GetRewardTypeConfig(rewardType)
|
|
-- 标题
|
|
local titleGo = CS.UnityEngine.Object.Instantiate(PanelObj.Txtl01, PanelObj.PanelDisView)
|
|
local titleTxt = titleGo:GetComponent("Text")
|
|
if titleTxt then
|
|
titleTxt.text = rewardTypeConfig.RewardName
|
|
end
|
|
titleGo.gameObject:SetActiveEx(true)
|
|
-- 内容
|
|
local probShowList = self.ConsumeDrawRule:GetProbShow(rewardType)
|
|
for _, probShow in pairs(probShowList) do
|
|
local go = CS.UnityEngine.Object.Instantiate(PanelObj[rewardTypeConfig.PrefabName], PanelObj.PanelDisView)
|
|
local txtUp = XUiHelper.TryGetComponent(go.transform,"TxtUp")
|
|
local tmpObj = {}
|
|
tmpObj.Transform = txtUp.transform
|
|
tmpObj.GameObject = txtUp.gameObject
|
|
XTool.InitUiObject(tmpObj)
|
|
go.gameObject:SetActiveEx(true)
|
|
|
|
if XTool.IsNumberValid(probShow.RewardId) and tmpObj.PanelProCard then
|
|
local rewards = XRewardManager.GetRewardList(probShow.RewardId)
|
|
if not XTool.IsTableEmpty(rewards) then
|
|
for index = 1, #rewards do
|
|
local panelProCard = index == 1 and tmpObj.PanelProCard or XUiHelper.Instantiate(tmpObj.PanelProCard, tmpObj.Transform)
|
|
local panel = XUiGridCommon.New(self.RootUi, panelProCard)
|
|
panel:Refresh(rewards[index])
|
|
end
|
|
end
|
|
end
|
|
tmpObj.TxtName.text = probShow.Name
|
|
tmpObj.TxtProbability.text = probShow.ProbShow
|
|
end
|
|
-- 下划线
|
|
local Line = CS.UnityEngine.Object.Instantiate(PanelObj.Line, PanelObj.PanelDisView)
|
|
Line.gameObject:SetActiveEx(true)
|
|
end
|
|
|
|
XScheduleManager.ScheduleOnce(function()
|
|
CS.UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(PanelObj.PanelDisView);
|
|
end, 0)
|
|
end
|
|
|
|
function XUiConsumeActivityLog:InitBaseRulePanel()
|
|
local baseRules = self.ConsumeDrawRule:GetBaseRules()
|
|
local baseRuleTitles = self.ConsumeDrawRule:GetBaseRuleTitles()
|
|
self:SetRuleData(baseRules, baseRuleTitles, self.Panel2)
|
|
end
|
|
|
|
function XUiConsumeActivityLog:SetRuleData(rules, ruleTitles, panel)
|
|
local PanelObj = {}
|
|
PanelObj.Transform = panel.transform
|
|
XTool.InitUiObject(PanelObj)
|
|
PanelObj.PanelTxt.gameObject:SetActiveEx(false)
|
|
for k, _ in pairs(rules) do
|
|
local go = CS.UnityEngine.Object.Instantiate(PanelObj.PanelTxt, PanelObj.PanelContent)
|
|
local tmpObj = {}
|
|
tmpObj.Transform = go.transform
|
|
tmpObj.GameObject = go.gameObject
|
|
XTool.InitUiObject(tmpObj)
|
|
tmpObj.TxtRuleTittle.text = ruleTitles[k]
|
|
tmpObj.TxtRule.text = rules[k]
|
|
tmpObj.GameObject:SetActiveEx(true)
|
|
end
|
|
end
|
|
|
|
function XUiConsumeActivityLog:OnBtnTanchuangClose()
|
|
self:Close()
|
|
end
|
|
|
|
return XUiConsumeActivityLog |