131 lines
No EOL
4.4 KiB
Lua
131 lines
No EOL
4.4 KiB
Lua
---@class XUiGuildWarEntryButton
|
|
local XUiGuildWarEntryButton = XClass(nil, "XUiGuildWarEntryButton")
|
|
|
|
--最大显示奖励数
|
|
local MaxRewardShow = 2
|
|
|
|
function XUiGuildWarEntryButton:Ctor(ui, onClickCb)
|
|
XTool.InitUiObjectByUi(self, ui)
|
|
self.OnClickCb = onClickCb
|
|
self.BtnGuildWarEntry.CallBack = function() self:OnClick() end
|
|
|
|
if self.GridReward then
|
|
self.GridReward.gameObject:SetActiveEx(false)
|
|
end
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:OnEnable()
|
|
self.BtnGuildWarEntry:SetNameByGroup(0, XUiHelper.GetText("GuildWarEntryDate",
|
|
os.date("%m/%d", XDataCenter.GuildWarManager.GetActivityStartTime()),
|
|
os.date("%m/%d", XDataCenter.GuildWarManager.GetActivityEndTime()))
|
|
)
|
|
local cfg = XGuildWarConfig.GetCfgByIdKey(XGuildWarConfig.TableKey.Config, "EntryBgPath")
|
|
if cfg then
|
|
self.BtnGuildWarEntry:SetRawImage(cfg.Value)
|
|
end
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:OnDestroy()
|
|
self:StopEntryBtnListener()
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:StartEntryBtnListener()
|
|
if self.EntryBtnTimeId then return end
|
|
self:Refresh()
|
|
self.EntryBtnTimeId = XScheduleManager.ScheduleForever(
|
|
function()
|
|
self:Refresh()
|
|
end,1000
|
|
)
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:StopEntryBtnListener()
|
|
if not self.EntryBtnTimeId then return end
|
|
XScheduleManager.UnSchedule(self.EntryBtnTimeId)
|
|
self.EntryBtnTimeId = nil
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:Refresh()
|
|
-- 不在活动中, 隐藏按钮
|
|
if not XDataCenter.GuildWarManager.CheckActivityIsInTime() then
|
|
self:StopEntryBtnListener()
|
|
--self.Transform.parent.gameObject:SetActiveEx(false)
|
|
self.Transform.gameObject:SetActiveEx(false)
|
|
return
|
|
end
|
|
local stateText = ""
|
|
local isInRound = XDataCenter.GuildWarManager.CheckRoundIsInTime()
|
|
-- 在当前轮次,显示活动开启中
|
|
if isInRound then
|
|
stateText = XUiHelper.GetText("GuildWarIsOpening")
|
|
self:ShowOpenTag(true)
|
|
self:ShowCloseTag(false)
|
|
self:StopEntryBtnListener()
|
|
|
|
else
|
|
-- 不在当前轮次, 显示到下一轮的时间
|
|
self:ShowOpenTag(false)
|
|
self:ShowCloseTag(true)
|
|
local nextRoundStartTime = XDataCenter.GuildWarManager.GetNextRoundTime()
|
|
-- 没有下一轮, 显示活动关闭
|
|
if not nextRoundStartTime then
|
|
stateText = XUiHelper.GetText("GuildWarClose")
|
|
else
|
|
stateText = XUiHelper.GetText("GuildWarNextRoundTime", nextRoundStartTime)
|
|
end
|
|
end
|
|
self.BtnGuildWarEntry:SetNameByGroup(1, stateText)
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:ShowOpenTag(value)
|
|
self.OpenTag.gameObject:SetActiveEx(value)
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:ShowCloseTag(value)
|
|
self.CloseTag.gameObject:SetActiveEx(value)
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:OnShow()
|
|
local guildWarEntryShow = self:CheckGuildWarCanEnter()
|
|
if guildWarEntryShow then
|
|
--self.Transform.parent.gameObject:SetActiveEx(true)
|
|
self.Transform.gameObject:SetActiveEx(true)
|
|
self:StartEntryBtnListener()
|
|
self.BtnGuildWarEntry:SetNameByGroup(2, XDataCenter.GuildWarManager.GetName())
|
|
--self.BtnGuildWarEntry:ShowReddot(XDataCenter.GuildWarManager.CheckTaskAchieved())
|
|
if self.GridReward and not self.InitRewards then
|
|
local configValues = XGuildWarConfig.GetClientConfigValues("EntryRewardId", "Int")
|
|
local rewardId = configValues and configValues[1]
|
|
if rewardId then
|
|
local rewards = XRewardManager.GetRewardList(rewardId)
|
|
if rewards then
|
|
for i, item in ipairs(rewards) do
|
|
if i > MaxRewardShow then
|
|
break
|
|
end
|
|
local ui = XUiHelper.Instantiate(self.GridReward ,self.RewardList)
|
|
local grid = XUiGridCommon.New(ui)
|
|
grid:Refresh(item)
|
|
grid.GameObject:SetActiveEx(true)
|
|
end
|
|
end
|
|
end
|
|
self.InitRewards = true
|
|
end
|
|
else
|
|
--self.Transform.parent.gameObject:SetActiveEx(false)
|
|
self.Transform.gameObject:SetActiveEx(false)
|
|
end
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:CheckGuildWarCanEnter()
|
|
return XDataCenter.GuildWarManager.CheckActivityIsInTime()
|
|
end
|
|
|
|
function XUiGuildWarEntryButton:OnClick()
|
|
if self.OnClickCb then
|
|
self.OnClickCb()
|
|
end
|
|
end
|
|
|
|
return XUiGuildWarEntryButton |