PGRData/Script/matrix/xui/xuilivwarmactivity/XUiLivWarmSoundsActivityTaskGrid.lua

148 lines
6 KiB
Lua
Raw Normal View History

local XUiLivWarmSoundsActivityTaskGrid = XClass(nil, "UiLivWarmSoundsActivityTaskGrid")
function XUiLivWarmSoundsActivityTaskGrid:Ctor(ui)
self.GameObject = ui.gameObject
self.Transform = ui.transform
self:InitAutoScript()
self.RewardPanelList = {}
self.GridCommon.gameObject:SetActive(false)
end
function XUiLivWarmSoundsActivityTaskGrid:Init(rootUi, parent)
self.RootUi = rootUi
self.Parent = parent
end
-- auto
-- Automatic generation of code, forbid to edit
function XUiLivWarmSoundsActivityTaskGrid:InitAutoScript()
self:AutoInitUi()
self:AutoAddListener()
end
function XUiLivWarmSoundsActivityTaskGrid:AutoInitUi()
self.TxtOrder = self.Transform:Find("TxtOrder"):GetComponent("Text")
self.TxtTaskName = self.Transform:Find("TxtTaskName"):GetComponent("Text")
self.PanelRewardContent = self.Transform:Find("PanelRewardContent")
self.GridCommon = self.Transform:Find("PanelRewardContent/GridCommon")
self.RImgIcon = self.Transform:Find("PanelRewardContent/GridCommon/RImgIcon"):GetComponent("RawImage")
self.ImgQuality = self.Transform:Find("PanelRewardContent/GridCommon/ImgQuality"):GetComponent("Image")
self.BtnClick = self.Transform:Find("PanelRewardContent/GridCommon/BtnClick"):GetComponent("Button")
self.TxtCount = self.Transform:Find("PanelRewardContent/GridCommon/TxtCount"):GetComponent("Text")
self.BtnFinish = self.Transform:Find("BtnFinish"):GetComponent("Button")
self.ImgAlreadyFinish = self.Transform:Find("ImgAlreadyFinish"):GetComponent("Image")
self.ImgUnFinish = self.Transform:Find("ImgUnFinish"):GetComponent("Image")
end
function XUiLivWarmSoundsActivityTaskGrid:RegisterClickEvent(uiNode, func)
if func == nil then
XLog.Error("XUiLivWarmSoundsActivityTaskGrid:RegisterClickEvent函数参数错误参数func不能为空")
return
end
if type(func) ~= "function" then
XLog.Error("XUiLivWarmSoundsActivityTaskGrid:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
end
local listener = function(...)
func(self, ...)
end
CsXUiHelper.RegisterClickEvent(uiNode, listener)
end
function XUiLivWarmSoundsActivityTaskGrid:AutoAddListener()
self.AutoCreateListeners = {}
local finishXUiBtn = self.BtnFinish:GetComponent("XUiButton")
if not finishXUiBtn then
XUiHelper.RegisterClickEvent(self, self.BtnFinish, self.OnBtnFinishClick)
else
self.BtnFinish = finishXUiBtn
self.BtnFinish.CallBack = function() self:OnBtnFinishClick() end
end
--local skipXUiBtn = self.BtnSkip:GetComponent("XUiButton")
--if not skipXUiBtn then
-- XUiHelper.RegisterClickEvent(self, self.BtnSkip, self.OnBtnSkipClick)
--else
-- self.BtnSkip = skipXUiBtn
-- self.BtnSkip.CallBack = function() self:OnBtnSkipClick() end
--end
end
function XUiLivWarmSoundsActivityTaskGrid:OnBtnFinishClick()
local weaponCount = 0
local chipCount = 0
for i = 1, #self.RewardPanelList do
local rewardsId = self.RewardPanelList[i].TemplateId
if XDataCenter.EquipManager.IsClassifyEqualByTemplateId(rewardsId, XEquipConfig.Classify.Weapon) then
weaponCount = weaponCount + 1
elseif XDataCenter.EquipManager.IsClassifyEqualByTemplateId(rewardsId, XEquipConfig.Classify.Awareness) then
chipCount = chipCount + 1
end
end
if weaponCount > 0 and XDataCenter.EquipManager.CheckBagCount(weaponCount, XEquipConfig.Classify.Weapon) == false or
chipCount > 0 and XDataCenter.EquipManager.CheckBagCount(chipCount, XEquipConfig.Classify.Awareness) == false then
return
end
XDataCenter.TaskManager.FinishTask(self.Data.Id, function(rewardGoodsList)
XUiManager.OpenUiObtain(rewardGoodsList)
--XEventManager.DispatchEvent(XEventId.EVENT_FUBEN_SIMUCOMBAT_UPDATE)
end)
end
function XUiLivWarmSoundsActivityTaskGrid:OnBtnSkipClick()
if XDataCenter.RoomManager.RoomData ~= nil then
local title = CS.XTextManager.GetText("TipTitle")
local cancelMatchMsg = CS.XTextManager.GetText("OnlineInstanceQuitRoom")
XUiManager.DialogTip(title, cancelMatchMsg, XUiManager.DialogType.Normal, nil, function()
XLuaUiManager.RunMain()
local skipId = XDataCenter.TaskManager.GetTaskTemplate(self.Data.Id).SkipId
XFunctionManager.SkipInterface(skipId)
end)
else
local skipId = XDataCenter.TaskManager.GetTaskTemplate(self.Data.Id).SkipId
XFunctionManager.SkipInterface(skipId)
end
end
function XUiLivWarmSoundsActivityTaskGrid:ResetData(data)
self.Data = data
local config = XDataCenter.TaskManager.GetTaskTemplate(self.Data.Id)
self.tableData = config
self.TxtTaskName.text = config.Title
self.TxtOrder.text = config.Desc
self.RImgIcon:SetRawImage(config.Icon)
self:UpdateProgress(self.Data)
local rewards = XRewardManager.GetRewardList(config.RewardId)
for i = 1, #self.RewardPanelList do
self.RewardPanelList[i]:Refresh()
end
if not rewards then
return
end
for i = 1, #rewards do
local panel = self.RewardPanelList[i]
if not panel then
if #self.RewardPanelList == 0 then
panel = XUiGridCommon.New(self.RootUi, self.GridCommon)
else
local ui = CS.UnityEngine.Object.Instantiate(self.GridCommon)
ui.transform:SetParent(self.GridCommon.parent, false)
panel = XUiGridCommon.New(self.RootUi, ui)
end
table.insert(self.RewardPanelList, panel)
end
panel:Refresh(rewards[i])
end
end
function XUiLivWarmSoundsActivityTaskGrid:UpdateProgress(data)
self.ImgAlreadyFinish.gameObject:SetActive(data.State == XDataCenter.TaskManager.TaskState.Finish)
self.BtnFinish.gameObject:SetActive(data.State == XDataCenter.TaskManager.TaskState.Achieved)
self.ImgUnFinish.gameObject:SetActive(data.State == XDataCenter.TaskManager.TaskState.Active)
end
return XUiLivWarmSoundsActivityTaskGrid