KLOpenServerAthleticsRankingItem.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. ---@class KLOpenServerAthleticsRankingItem:UIKmlLuaPanelBase
  2. ---@field view KLOpenServerAthleticsRankingItemView
  3. local KLOpenServerAthleticsRankingItem = class(UIKmlLuaPanelBase)
  4. local this =KLOpenServerAthleticsRankingItem
  5. ---创建时调用一次
  6. function this:Init()
  7. self.RankItemList={}
  8. self.careerId = SL:GetMetaValue(EMetaVarGetKey.JOB)
  9. end
  10. ---注册UI事件和服务器消息
  11. function this:RegistEvents()
  12. end
  13. ---界面显示时调用一次
  14. function this:Show()
  15. end
  16. function this:UpdateUI(Rank,ShowDataRankTbl,ShowDataRankList,BtnSelectIndex)
  17. local rankNumberBg = self.view.rankNumberBg
  18. local rankNumberText = self.view.rankNumberText
  19. local HeadIcon = self.view.HeadIcon
  20. local PlayerName = self.view.PlayerName
  21. local TextTitle = self.view.TextTitle
  22. local layout23 = self.view.layout23
  23. if Rank <= 3 then
  24. GUI:SetActive(rankNumberBg, true)
  25. GUI:SetActive(rankNumberText, false)
  26. GUI:Image_loadTexture(rankNumberBg, "img_no" .. Rank, "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
  27. else
  28. GUI:SetActive(rankNumberBg, false)
  29. GUI:SetActive(rankNumberText, true)
  30. GUI:Text_setString(rankNumberText, tostring(Rank))
  31. end
  32. GUI:SetActive(HeadIcon,false)
  33. GUI:Text_setString(PlayerName, "")
  34. GUI:Text_setString(TextTitle, "虚位以待")
  35. if ShowDataRankList[Rank] then
  36. GUI:SetActive(HeadIcon,true)
  37. self:SetHeadIconByCareerId(HeadIcon, ShowDataRankList[Rank].job)
  38. local desc = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[BtnSelectIndex].desc
  39. GUI:Text_setString(TextTitle, desc[3]..":<color=#5DE367>"..GUIUtil.GetSampleNumberString(ShowDataRankList[Rank].num).. "</color>")
  40. GUI:Text_setString(PlayerName, ShowDataRankList[Rank].name)
  41. end
  42. for i, v in pairs(ShowDataRankTbl[Rank].rankReward) do
  43. if v[1] == self.careerId or v[1] == 0 then
  44. local itemId = v[2]
  45. local count = v[3]
  46. local data = {
  47. width = "70",
  48. height = "70",
  49. itemid = itemId,
  50. mfixsize = "70,70",
  51. tips = "1",
  52. itemcustomcount = count
  53. }
  54. if self.RankItemList[i]then
  55. GUI:Item_UpdataData(self.RankItemList[i], data)
  56. else
  57. local item = GUI:Item_Create(layout23, data)
  58. self.RankItemList[i] = item
  59. end
  60. GUI:AddOnClickEvent(self.RankItemList[i], self, function()
  61. SL:OpenTips(nil, itemId)
  62. end)
  63. end
  64. end
  65. if self.RankTimer then
  66. SL:UnSchedule(self.RankTimer)
  67. end
  68. self.RankTimer=nil
  69. local rankLimitData = InfoManager.openServerAthleticsInfo.openSerCompetitionTypeTbl[BtnSelectIndex].rankSettlementTime - 1
  70. local reRankTime = SL:GetEndTimeStamp(tonumber(rankLimitData), 0)
  71. if reRankTime - Time.GetServerTime() >= 0 then
  72. self.RankTimer = SL:Schedule(self.RankTimer, 0, 1, -1, function()
  73. local timeText = reRankTime - Time.GetServerTime()
  74. GUI:SetActive(self.view.YU, true)
  75. if timeText <= 0 then
  76. GUI:SetActive(self.view.YU, false)
  77. if self.RankTimer then
  78. SL:UnSchedule(self.RankTimer)
  79. end
  80. return
  81. end
  82. end)
  83. else
  84. GUI:SetActive(self.view.YU, false)
  85. end
  86. end
  87. function this:SetHeadIconByCareerId(HeadIcon, CareerId)
  88. if CareerId == 1 then
  89. GUI:Image_loadTexture(HeadIcon, "11", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
  90. elseif CareerId == 2 then
  91. GUI:Image_loadTexture(HeadIcon, "12", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
  92. elseif CareerId == 3 then
  93. GUI:Image_loadTexture(HeadIcon, "13", "Atlas/QJ5_OpenServerAthleticsPanel.spriteatlas")
  94. end
  95. end
  96. ---创建或者刷新界面数据时调用
  97. function this:Refresh()
  98. end
  99. function this:Close()
  100. if self.RankTimer then
  101. SL:UnSchedule(self.RankTimer)
  102. end
  103. self.RankTimer=nil
  104. end
  105. return this