63 lines
No EOL
2.7 KiB
Lua
63 lines
No EOL
2.7 KiB
Lua
local XUiMoeWarPreparationRewardGrid = XClass(nil, "XUiMoeWarPreparationRewardGrid")
|
|
|
|
function XUiMoeWarPreparationRewardGrid:Ctor(ui, updatePanelPhasesRewardCb, gearId, rootUi)
|
|
self.GameObject = ui.gameObject
|
|
self.Transform = ui.transform
|
|
XTool.InitUiObject(self)
|
|
|
|
self.RootUi = rootUi
|
|
self.UpdatePanelPhasesRewardCb = updatePanelPhasesRewardCb
|
|
self.GearId = gearId
|
|
self:Init()
|
|
XUiHelper.RegisterClickEvent(self, self.BtnClick, self.OnBtnReceiveClick)
|
|
end
|
|
|
|
function XUiMoeWarPreparationRewardGrid:Init()
|
|
self.TxtCurStage.text = XMoeWarConfig.GetPreparationGearNeedCount(self.GearId)
|
|
local grid = XUiGridCommon.New(self.RootUi, self.GridCommon)
|
|
local rewardId = XMoeWarConfig.GetPreparationGearShowRewardId(self.GearId)
|
|
self.Rewards = rewardId > 0 and XRewardManager.GetRewardList(rewardId) or {}
|
|
if self.Rewards[1] then
|
|
grid:Refresh(self.Rewards[1])
|
|
end
|
|
end
|
|
|
|
function XUiMoeWarPreparationRewardGrid:Refresh()
|
|
local activityId = XMoeWarConfig.GetPreparationActivityIdInTime()
|
|
if not activityId then
|
|
return
|
|
end
|
|
|
|
local preGearId = XMoeWarConfig.GetPreparationActivityPrePreparationGear(activityId, self.GearId)
|
|
local preGearNeedCount = preGearId and XMoeWarConfig.GetPreparationGearNeedCount(preGearId) or 0
|
|
|
|
local isGetReward = XDataCenter.MoeWarManager.IsPreparationGetRewardGears(self.GearId)
|
|
self.PanelFinish.gameObject:SetActiveEx(isGetReward)
|
|
|
|
local needCount = XMoeWarConfig.GetPreparationGearNeedCount(self.GearId) - preGearNeedCount
|
|
local haveCount = XDataCenter.ItemManager.GetCount(XDataCenter.ItemManager.ItemId.MoeWarPreparationItemId)
|
|
haveCount = math.max(haveCount - preGearNeedCount, 0)
|
|
local isCanReward = haveCount >= needCount
|
|
|
|
self.ImgEffect.gameObject:SetActiveEx(not isGetReward and isCanReward)
|
|
end
|
|
|
|
function XUiMoeWarPreparationRewardGrid:OnBtnReceiveClick()
|
|
local isGetReward = XDataCenter.MoeWarManager.IsPreparationGetRewardGears(self.GearId)
|
|
local needCount = XMoeWarConfig.GetPreparationGearNeedCount(self.GearId)
|
|
local haveCount = XDataCenter.ItemManager.GetCount(XDataCenter.ItemManager.ItemId.MoeWarPreparationItemId)
|
|
local isCanReceive = haveCount >= needCount
|
|
|
|
if not isCanReceive then
|
|
local templateId = self.Rewards[1] and self.Rewards[1].TemplateId
|
|
XLuaUiManager.Open("UiTip", templateId)
|
|
elseif (isGetReward) or not XDataCenter.MoeWarManager.CheckRespondItemIsMax() then --已领取的不检查道具是否满了
|
|
XDataCenter.MoeWarManager.RequestMoeWarPreparationGearReward(self.GearId, handler(self, self.Refresh))
|
|
end
|
|
end
|
|
|
|
function XUiMoeWarPreparationRewardGrid:GetGearId()
|
|
return self.GearId
|
|
end
|
|
|
|
return XUiMoeWarPreparationRewardGrid |