---@class KLOpenServerAthleticsPanel:UIKmlLuaPanelBase
---@field view KLOpenServerAthleticsPanelView
local KLOpenServerAthleticsPanel = class(UIKmlLuaPanelBase)
local this = KLOpenServerAthleticsPanel
function this:AsyncLoadUI()
end
---创建时调用一次
function this:Init()
self.BaseSelectIndex = 0
self.careerId = SL:GetMetaValue(EMetaVarGetKey.JOB)
self.ShowDataRankList = {}---服务器排行数据
---@type cfg_openSerCompetition_rank_column
self.ShowDataRankTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionRankTblGroup[1]---客户端排行数据
self.openSerCompetitionTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl
self.UIOpenServerRankingTemplateList = {}
self.UIPersonChallengeTemplateList = {}
self.ShowDataChallengeTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionChallengeTblGroup[1]---客户端排行数据
self.ShowDataChallengeList = {}---服务器积分数据
self.ChallengeLitmList = {}
self.UIGiftTemplateList = {}
self.ShowDataGiftTbl = {}
self.TradeBtnList = {}
self.TradeBtnList[1] = self.view.BtnRanking
self.TradeBtnList[2] = self.view.BtnChallenge
self.TradeBtnList[3] = self.view.BtnGiftBag
self.BtnSelectIndex = 0
self.TradeBtnSelectIndex = 0
self:InitBtn()
self:InitRankList()
self:InitChallengeList()
self:InitGiftList()
end
function this:InitGiftList()
GUI:DataListInitData(self.view.GiftListDataList, function()
return table.count(self.ShowDataGiftTbl)
end, function()
local item = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsGift/KLOpenServerAthleticsGiftItem", self.view.UIOpenServerRankingDataList, self, nil, true)
if not self.UIGiftTemplateList then
self.UIGiftTemplateList = {}
end
local kmlCtrl = item.view.root
self.UIGiftTemplateList[kmlCtrl] = item
return kmlCtrl
end, function()
end, function(realIndex, kmlCtrl)
local luaIndex = realIndex + 1
local item = self.UIGiftTemplateList[kmlCtrl]
item:UpdateUI(luaIndex, self.ShowDataGiftTbl)
end)
end
function this:GetGiftTblByType(type)
local list = {}
if InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl then
for _, gift in pairs(InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[type].gift) do
if gift[1] == self.careerId or gift[1] == 0 then
for i, id in pairs(gift) do
if i ~= 1 then
local data = SL:GetConfig("cfg_openSerCompetition_gift", id)
table.insert(list, data)
end
end
end
end
end
table.sort(list, function(a, b)
if a.count and b.count then
local buycount1, totalcount1 = InfoManager.countInfo:GetLimitAndTotalCountByKey(a.count)
local buycount2, totalcount2 = InfoManager.countInfo:GetLimitAndTotalCountByKey(b.count)
if buycount1 <= 0 and buycount2 > 0 then
return false
end
if buycount1 > 0 and buycount2 <= 0 then
return true
end
end
return a.id < b.id
end)
return list
end
function this:InitChallengeList()
GUI:DataListInitData(self.view.UIPersonChallengeDataList, function()
return table.count(self.ShowDataChallengeTbl) - 1
end, function()
local item = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsPersonChallenge/KLOpenServerAthleticsPersonChallengeItem", self.view.UIOpenServerRankingDataList, self, nil, true)
if not self.UIPersonChallengeTemplateList then
self.UIPersonChallengeTemplateList = {}
end
local kmlCtrl = item.view.root
self.UIPersonChallengeTemplateList[kmlCtrl] = item
return kmlCtrl
end, function()
end, function(realIndex, kmlCtrl)
local luaIndex = realIndex + 1
local item = self.UIPersonChallengeTemplateList[kmlCtrl]
item:UpdateUI(luaIndex, self.ShowDataChallengeTbl, self.ShowDataChallengeList, self.BtnSelectIndex)
end)
end
function this:InitRankList()
GUI:DataListInitData(self.view.UIOpenServerRankingDataList, function()
return table.count(self.ShowDataRankTbl)
end, function()
local item = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsRanking/KLOpenServerAthleticsRankingItem", self.view.UIOpenServerRankingDataList, self, nil, true)
if not self.UIOpenServerRankingTemplateList then
self.UIOpenServerRankingTemplateList = {}
end
local kmlCtrl = item.view.root
self.UIOpenServerRankingTemplateList[kmlCtrl] = item
return kmlCtrl
end, function()
end, function(realIndex, kmlCtrl)
local Rank = realIndex + 1
local item = self.UIOpenServerRankingTemplateList[kmlCtrl]
item:UpdateUI(Rank, self.ShowDataRankTbl, self.ShowDataRankList, self.BtnSelectIndex)
end)
--GUI:DataListUpdateData(self.view.UIOpenServerRankingDataList)
end
function this:InitBtn()
self.BtnTempList = {}
---@type cfg_openSerCompetition_column
GUI:DataListInitData(self.view.BtnDataList, function()
return table.count(self.openSerCompetitionTbl)
end, function()
end, function()
end, function(realIndex)
local index = realIndex + 1
local BtnInfo = self.openSerCompetitionTbl[index]
local UIOpenServerBtnTemplate = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'UIOpenServerBtnTemplate')
local OnGoing = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'OnGoing')
local Lock = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'Lock')
local Red = GUI:GetChildControl(self.view.BtnDataList, realIndex, 'Red')
local IsLock = false
local IsShow = false
local showCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index].showCondition
local activityCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index].activityCondition
local nextShowCondition = "false"
if InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index + 1] then
nextShowCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index + 1].showCondition
end
if showCondition == "" or ConditionManager.Check4D(showCondition) then
GUI:SetActive(UIOpenServerBtnTemplate, true)
IsShow = true
else
GUI:SetActive(UIOpenServerBtnTemplate, false)
IsShow = false
end
local rankSettlementTime = InfoManager.openServerAthleticsInfo.openSerCompetitionTbl[index].rankSettlementTime - 1
local reRankTime = SL:GetEndTimeStamp(tonumber(rankSettlementTime), 0)
if reRankTime - Time.GetServerTime() >= 0 then
GUI:SetActive(OnGoing, true)
else
GUI:SetActive(OnGoing, false)
end
if activityCondition == "" or ConditionManager.Check4D(activityCondition) then
GUI:SetActive(Lock, false)
IsLock = false
else
GUI:SetActive(Lock, true)
GUI:SetActive(OnGoing, false)
IsLock = true
end
if self.BaseSelectIndex == 0 and not IsLock and IsShow then
self.BaseSelectIndex = BtnInfo.type
end
--[[ if nextShowCondition == "false" or not ConditionManager.Check4D(nextShowCondition) then
GUI:SetActive(OnGoing, true)
end]]
GUI:Button_setTitleText(UIOpenServerBtnTemplate, BtnInfo.name)
local btnData = {
IsLock = IsLock,
index = BtnInfo.type
}
GUI:AddOnClickEvent(UIOpenServerBtnTemplate, self, self.BtnListOnclick, btnData)
local data = {
OnGoing = OnGoing,
Lock = Lock,
UIOpenServerBtnTemplate = UIOpenServerBtnTemplate,
Red = Red
}
self.BtnTempList[BtnInfo.type] = data
end)
end
function this:UpDataRedBtn()
for type, v in pairs(self.BtnTempList) do
if InfoManager.openServerAthleticsInfo:IsShowGiftRedBtn(type) or InfoManager.openServerAthleticsInfo:IsShowPersonAwardRedBtn(type) then
GUI:SetActive(v.Red, true)
else
GUI:SetActive(v.Red, false)
end
end
end
function this:BtnListOnclick(_, data)
local index = data.index
if index == self.BtnSelectIndex then
return
end
if data and data.IsLock == true then
local activityCondition = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[index].activityCondition
local day = ConditionManager.GetConditionParams(activityCondition)
if day and day[1] then
SL:TipMessage("第" .. day[1] .. "天开启", 1, NoticeType.NoticeMid)
end
if day and day[2] and tonumber(day[2]) < SL:GetOpenServerDay() then
---已结束
SL:TipMessage("已结束", 1, NoticeType.NoticeMid)
end
return
end
self.BtnSelectIndex = index
GUI:SetActive(self.view.Red1, false)
GUI:SetActive(self.view.Red2, InfoManager.openServerAthleticsInfo:IsShowPersonAwardRedBtn(self.BtnSelectIndex))
GUI:SetActive(self.view.Red3, InfoManager.openServerAthleticsInfo:IsShowGiftRedBtn(self.BtnSelectIndex))
----变动数据刷新界面
if data and data.index then
self:SelectBtn(index)
if self.TradeBtnSelectIndex == 1 then
local rankGroup = InfoManager.openServerAthleticsInfo:FindRankTblByType(self.BtnSelectIndex)
self.ShowDataRankTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionRankTblGroup[rankGroup]
---竞技排行
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_COMPETITION_RANK_INFO, { type = index })
elseif self.TradeBtnSelectIndex == 2 then
local ChallengeGroup = InfoManager.openServerAthleticsInfo:FindChallengeTblByType(self.BtnSelectIndex)
self.ShowDataChallengeTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionChallengeTblGroup[ChallengeGroup]
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SINGLE_CHALLENGE_INFO, { type = index })
else
self.ShowDataGiftTbl = self:GetGiftTblByType(self.BtnSelectIndex)
GUI:DataListUpdateData(self.view.GiftListDataList)
end
local limitTime = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].challengeLimitTime - 1
local reTime = SL:GetEndTimeStamp(tonumber(limitTime), 0)
if reTime - Time.GetServerTime() >= 0 then
GUI:SetActive(self.view.BtnLimitIcon, true)
else
GUI:SetActive(self.view.BtnLimitIcon, false)
end
end
end
function this:SelectBtn(index)
for i, v in pairs(self.BtnTempList) do
if i == index then
GUI:Image_loadTexture(v.UIOpenServerBtnTemplate, "btn_chosen", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
else
GUI:Image_loadTexture(v.UIOpenServerBtnTemplate, "btn_nochosen", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
end
end
end
---注册UI事件和服务器消息
function this:RegistEvents()
GUI:AddOnClickEvent(self.view.BtnRanking, self, self.TradeBtnListOnclick, 1)
GUI:AddOnClickEvent(self.view.BtnChallenge, self, self.TradeBtnListOnclick, 2)
GUI:AddOnClickEvent(self.view.BtnGiftBag, self, self.TradeBtnListOnclick, 3)
SL:RegisterLUAEvent(LUA_EVENT_COMPETITION_RANK_CHANGE, self.LUA_EVENT_COMPETITION_RANK_CHANGE, self)
SL:RegisterLUAEvent(LUA_EVENT_SINGLE_CHALLENGE_CHANGE, self.LUA_EVENT_SINGLE_CHALLENGE_CHANGE, self)
SL:RegisterLUAEvent(LUA_OPEN_SERVER_GIFT_COUNT_CHANGE, self.LUA_OPEN_SERVER_GIFT_COUNT_CHANGE, self)
GUI:AddOnClickEvent(self.view.PersonLastBtnGo, self, self.PersonLastBtnGoOnclick)
end
function this:PersonLastBtnGoOnclick()
local lastTbl = self.ShowDataChallengeTbl[table.count(self.ShowDataChallengeTbl)]
if lastTbl then
if self.IsGetChallengeState == 0 and self.BtnSelectIndex then
local instruction = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].instruction
GUI:UIPanel_Close("dev/outui/MainActivity/Panel/KLMainActivity/KLMainActivityPanel")
shortcutOutMgr.DO(instruction)
--SL:HideMainPanel()
return
end
if self.IsGetChallengeState == 1 then
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SINGLE_CHALLENGE_AWARD, { id = lastTbl.id })
else
SL:TipMessage(SL:GetConfig('cfg_string', 338).text, 1, NoticeType.NoticeMid)
return
end
end
end
function this:LUA_OPEN_SERVER_GIFT_COUNT_CHANGE(_, key)
if key then
--[[ local pos = 1
for i,v in pairs(self.ShowDataGiftTbl) do
if v.count == key then
pos = i
end
end]]
self.ShowDataGiftTbl = self:GetGiftTblByType(self.BtnSelectIndex)
GUI:DataListUpdateData(self.view.GiftListDataList)
--GUI:SetScrollView_scrollpos(self.view.GiftList,pos)
GUI:SetActive(self.view.Red3, InfoManager.openServerAthleticsInfo:IsShowGiftRedBtn(self.BtnSelectIndex))
self:UpDataRedBtn()
SL:RefreshPanelALLRedStateKmlByCondition("KLUISystemTopPanel")
InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_OpenServerAthletics", InfoManager.openServerAthleticsInfo:IsShowRed())
end
end
---个人排行消息
function this:LUA_EVENT_COMPETITION_RANK_CHANGE(_, type)
if type then
if tonumber(type) ~= self.BtnSelectIndex then
return
end
self.ShowDataRankList = {}
local dataList = InfoManager.openServerAthleticsInfo.RankDataList[type]
for _, v in pairs(dataList.rankInfo) do
self.ShowDataRankList[v.rank] = v
end
local desc = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].desc
local rankLimitData = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].rankLimitData
if dataList.myInfo and dataList.myInfo.myNum ~= 0 and dataList.myInfo.myNum >= rankLimitData then
GUI:Text_setString(self.view.Mintxt, "当前排名: 无")
if dataList.myInfo.rank ~= 0 then
GUI:Text_setString(self.view.Mintxt, "当前排名: " .. dataList.myInfo.rank)
end
GUI:Text_setString(self.view.MidText, desc[1] .. ":" .. dataList.myInfo.myNum)
GUI:Text_setString(self.view.Tiptxt, "(" .. desc[2] .. ")")
else
GUI:Text_setString(self.view.Mintxt, desc[1] .. ":" .. dataList.myInfo.myNum)
GUI:Text_setString(self.view.MidText, "最低上榜条件:" .. rankLimitData)
GUI:Text_setString(self.view.Tiptxt, "(" .. desc[2] .. ")")
end
local rankLimitData = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].rankSettlementTime - 1
local reRankTime = SL:GetEndTimeStamp(tonumber(rankLimitData), 0)
if self.RankTimer then
SL:UnSchedule(self.RankTimer)
end
self.RankTimer = nil
if reRankTime - Time.GetServerTime() >= 0 then
self.RankTimer = SL:Schedule(self.RankTimer, 0, 1, -1, function()
local timeText = reRankTime - Time.GetServerTime()
GUI:Text_setString(self.view.TxtTimePrefix, "排行进行中 " .. GUIUtil.FormatTimeHMSD(timeText // 1000))
if timeText <= 0 then
GUI:Text_setString(self.view.TxtTimePrefix, "排行已产生")
GUI:DataListUpdateData(self.view.UIOpenServerRankingDataList)
GUI:DataListUpdateData(self.view.BtnDataList,_,function()
self:BtnListOnclick(_, { index = self.BaseSelectIndex })
end)
return
end
end)
else
GUI:Text_setString(self.view.TxtTimePrefix, "排行已产生")
end
GUI:DataListUpdateData(self.view.UIOpenServerRankingDataList)
end
end
---积分消息
function this:LUA_EVENT_SINGLE_CHALLENGE_CHANGE(_, type)
if type then
if tonumber(type) ~= self.BtnSelectIndex then
return
end
self.ShowDataChallengeList = {}
local dataList = InfoManager.openServerAthleticsInfo.PersonDataList[type]
self.ShowDataChallengeList = dataList
table.sort(self.ShowDataChallengeTbl, function(a, b)
local isGetA = false
local isGetB = false
local lastTbl = self.ShowDataChallengeTbl[table.count(self.ShowDataChallengeTbl)]
if a.id == lastTbl.id or b.id == lastTbl.id then
return a.id < b.id
end
for key, v in pairs(dataList.challengeAwardInfo) do
if a.id == tonumber(key) then
isGetA = true
end
if b.id == tonumber(key) then
isGetB = true
end
end
if isGetA and not isGetB then
return false
end
if not isGetA and isGetB then
return true
end
return a.id < b.id
end)
GUI:DataListUpdateData(self.view.UIPersonChallengeDataList)
self:ChallengeUpdateUI()
GUI:SetActive(self.view.Red2, InfoManager.openServerAthleticsInfo:IsShowPersonAwardRedBtn(self.BtnSelectIndex))
self:UpDataRedBtn()
InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_OpenServerAthletics", InfoManager.openServerAthleticsInfo:IsShowRed())
end
end
---更改界面显示
function this:TradeBtnListOnclick(_, index)
if index then
if index == self.TradeBtnSelectIndex then
return
end
if self.BtnSelectIndex == 0 then
return
end
self.TradeBtnSelectIndex = index
self:SelectTradeBtn(index)
if index == 1 then
GUI:SetActive(self.view.RankPanel, true)
GUI:SetActive(self.view.PersonPanel, false)
GUI:SetActive(self.view.GiftPanel, false)
local rankGroup = InfoManager.openServerAthleticsInfo:FindRankTblByType(self.BtnSelectIndex)
self.ShowDataRankTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionRankTblGroup[rankGroup]
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_COMPETITION_RANK_INFO, { type = self.BtnSelectIndex })
elseif index == 2 then
GUI:SetActive(self.view.RankPanel, false)
GUI:SetActive(self.view.PersonPanel, true)
GUI:SetActive(self.view.GiftPanel, false)
local ChallengeGroup = InfoManager.openServerAthleticsInfo:FindChallengeTblByType(self.BtnSelectIndex)
self.ShowDataChallengeTbl = InfoManager.openServerAthleticsInfo.openSerCompetitionChallengeTblGroup[ChallengeGroup]
SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SINGLE_CHALLENGE_INFO, { type = self.BtnSelectIndex })
elseif index == 3 then
GUI:SetActive(self.view.RankPanel, false)
GUI:SetActive(self.view.PersonPanel, false)
GUI:SetActive(self.view.GiftPanel, true)
self.ShowDataGiftTbl = self:GetGiftTblByType(self.BtnSelectIndex)
GUI:DataListUpdateData(self.view.GiftListDataList)
end
end
end
function this:ChallengeUpdateUI()
if self.ShowDataChallengeTbl then
self.IsGetChallengeState = 0
self.IsLimitReward = false
local lastTbl = self.ShowDataChallengeTbl[table.count(self.ShowDataChallengeTbl)]
GUI:Text_setString(self.view.PersonLastCount, lastTbl.desc)
GUI:SetActive(self.view.PersonLastFinished, false)
GUI:Text_setString(self.view.PersonLastBtnGo, "去提升")
GUI:SetActive(self.view.Red4, false)
if self.ShowDataChallengeList then
if self.ShowDataChallengeList.num >= lastTbl.typeDemandValue then
GUI:Text_setString(self.view.PersonLastjindu_count, "" .. GUIUtil.GetSampleNumberString(self.ShowDataChallengeList.num) .. "/" .. GUIUtil.GetSampleNumberString(lastTbl.typeDemandValue))
else
GUI:Text_setString(self.view.PersonLastjindu_count, "" .. GUIUtil.GetSampleNumberString(self.ShowDataChallengeList.num) .. "/" .. GUIUtil.GetSampleNumberString(lastTbl.typeDemandValue))
end
if self.ShowDataChallengeList.num >= lastTbl.typeDemandValue then
GUI:SetActive(self.view.Red4, true)
GUI:Text_setString(self.view.PersonLastBtnGo, "可领取")
self.IsGetChallengeState = 1
for key, v in pairs(self.ShowDataChallengeList.challengeAwardInfo) do
if lastTbl.id == tonumber(key) then
GUI:Text_setString(self.view.PersonLastBtnGo, "已领取")
GUI:SetActive(self.view.Red4, false)
self.IsGetChallengeState = 2
self.IsLimitReward = v
end
end
end
end
-------------倒计时-------------------------------------
if self.ChallengeTimer then
SL:UnSchedule(self.ChallengeTimer)
end
self.ChallengeTimer = nil
local limitTime = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[self.BtnSelectIndex].challengeLimitTime - 1
local reTime = SL:GetEndTimeStamp(tonumber(limitTime), 0)
if self.IsLimitReward == true then
GUI:SetActive(self.view.PersonLastEndIcon, false)
else
GUI:SetActive(self.view.PersonLastEndIcon, true)
end
if reTime - Time.GetServerTime() >= 0 then
GUI:SetActive(self.view.BtnLimitIcon, true)
GUI:SetActive(self.view.PersonLastEndIcon, true)
GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_xianshi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
self:ShowTime(reTime)
else
GUI:SetActive(self.view.BtnLimitIcon, false)
GUI:Text_setString(self.view.PersonLastLimitTime, "")
GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_guoqi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
-- GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_guoqi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
end
--------------------------------------------------------------------
local index = 1
for i, v in pairs(lastTbl.challengeReward) do
local itemId = v[1]
local count = v[2]
local data = {
width = "60",
height = "60",
itemid = itemId,
mfixsize = "60,60",
tips = "1",
itemcustomcount = count
}
--[[ if self.ChallengeLitmList[index] then
GUI:Item_UpdataData(self.ChallengeLitmList[index], data)
else
local item = GUI:Item_Create(self.view.layout59, data)
self.ChallengeLitmList[index] = item
end
GUI:AddOnClickEvent(self.ChallengeLitmList[index], self, function()
SL:OpenTips(nil, itemId)
end)]]
if not self.ChallengeLitmList[index] then
self.ChallengeLitmList[index] = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsGetItem/KLOpenServerAthleticsGetItemItem", self.view.layout59, self, nil, true)
end
self.ChallengeLitmList[index]:UpDataItem(data)
if self.IsGetChallengeState == 2 then
self.ChallengeLitmList[index]:SetGet(true)
else
self.ChallengeLitmList[index]:SetGet(false)
end
index = index + 1
end
local limitTimeReward = lastTbl.limitTimeReward
if limitTimeReward then
if table.isNullOrEmpty(limitTimeReward) then
GUI:setVisible(self.view.PersonLastLimitAward, false)
return
end
GUI:setVisible(self.view.PersonLastLimitAward, true)
for i, v in pairs(limitTimeReward) do
if v[1] == self.careerId or v[1] == 0 then
local itemId = v[2]
local count = v[3]
local data = {
width = "55",
height = "55",
itemid = itemId,
mfixsize = "55,55",
tips = "1",
bgtype = "0",
itemcustomcount = count
}
if not self.ChallengeLitmList[index] then
self.ChallengeLitmList[index] = GUI:UIPanel_Open("dev/outui/OpenServerAthletics/Item/KLOpenServerAthleticsGetItem/KLOpenServerAthleticsGetItemItem", self.view.PersonLastLimitAward, self, nil, true)
end
self.ChallengeLitmList[index]:UpDataItem(data)
if self.IsLimitReward then
self.ChallengeLitmList[index]:SetGet(true)
else
self.ChallengeLitmList[index]:SetGet(false)
end
end
end
end
end
end
function this:ShowTime(endTime)
self.ChallengeTimer = SL:Schedule(self.ChallengeTimer, 0, 1, -1, function()
local timeText = endTime - Time.GetServerTime()
GUI:Text_setString(self.view.PersonLastLimitTime, "" .. GUIUtil.FormatTimeHMSD(timeText // 1000) .. "")
if timeText <= 0 then
GUI:Image_loadTexture(self.view.PersonLastEndIcon, "img_kaifujingji_guoqi", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
GUI:Text_setString(self.view.PersonLastLimitTime, "")
--[[ if self.ChallengeTimer then
SL:UnSchedule(self.ChallengeTimer)
end]]
return
end
end)
end
function this:SelectTradeBtn(index)
for i, v in pairs(self.TradeBtnList) do
if i == index then
GUI:Image_loadTexture(v, "btn_green1", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
else
GUI:Image_loadTexture(v, "btn_green2", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
end
end
end
---界面显示时调用一次
function this:Show()
end
---创建或者刷新界面数据时调用
function this:Refresh()
self.BtnSelectIndex = 0
self.TradeBtnSelectIndex = 0
self.lastBtnIndex = 1
GUI:DataListUpdateData(self.view.BtnDataList,_,function()
self:BtnListOnclick(_, { index = self.BaseSelectIndex })
self:TradeBtnListOnclick(_, 1)
self:UpDataRedBtn()
end)
InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_OpenServerAthletics", InfoManager.openServerAthleticsInfo:IsShowRed())
end
function this:Close()
if self.ChallengeTimer then
SL:UnSchedule(self.ChallengeTimer)
end
self.ChallengeTimer = nil
if self.RankTimer then
SL:UnSchedule(self.RankTimer)
end
self.RankTimer = nil
for _, v in pairs(self.ChallengeLitmList) do
GUI:UIPanel_Close(nil,v)
end
end
return this