OpenServiceArchangelWelfareInfo.lua 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. ---@class OpenServiceArchangelWelfareInfo
  2. OpenServiceArchangelWelfareInfo = class()
  3. local this = OpenServiceArchangelWelfareInfo
  4. function this:ctor()
  5. end
  6. function this:Init()
  7. self.BossBossRedPoint = false
  8. self.RewardRedPoint = false
  9. self.WelfareTaskConfig = {}
  10. self.awardsGetid = {}
  11. local cfgs = SL:GetConfigTable("cfg_angleBenefitTask")
  12. for i, v in ipairs(cfgs) do
  13. self.WelfareTaskConfig[v.id] = v
  14. end
  15. self.WelfareRewardConfig = SL:GetConfigTable("cfg_angleBenefitReward")
  16. self.IntegralId = self.WelfareRewardConfig[1].rewardPoint[1]
  17. self:InitData()
  18. self:RegistMessages()
  19. end
  20. function this:InitData()
  21. end
  22. function this:RegistMessages()
  23. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_ANGLE_BENEFIT_INFO, self.RES_ANGLE_BENEFIT_INFO, self)
  24. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECEIVE_ANGLE_BENEFIT_REWARD, self.RES_RECEIVE_ANGLE_BENEFIT_REWARD, self)
  25. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_SUBMIT_ANGLE_BENEFIT_TASK, self.RES_SUBMIT_ANGLE_BENEFIT_TASK, self)
  26. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_ANGLE_BENEFIT_TASK_CHANGE, self.RES_ANGLE_BENEFIT_TASK_CHANGE, self)
  27. SL:RegisterLUAEvent(LUA_EVENT_ENTRY_MAP_LOADING_PANEL_CLOSE, self.LUA_EVENT_ENTRY_MAP_LOADING_PANEL_CLOSE, self)
  28. end
  29. function this:LUA_EVENT_ENTRY_MAP_LOADING_PANEL_CLOSE(_, message)
  30. self:TryReqMessageOnce()
  31. end
  32. -- 上进度状态改变:
  33. ---@param message OpenServiceArchangelWelfareProtos.AngelWelfareRewardInfoRes
  34. function this:RES_ANGLE_BENEFIT_INFO(_, message)
  35. self.serverReward = message.serverReward -- 已消耗次数[]
  36. self.awardsGetid = message.awards
  37. self.curgoal = SL:GetBagItemCount(self.IntegralId) -- 个人积分
  38. self.taskInfo = message.taskInfo
  39. self:RedDotCheck()
  40. end
  41. ---@param message number[]
  42. function this:RES_RECEIVE_ANGLE_BENEFIT_REWARD(_, message)
  43. self.awardsGetid = message -- 是否已领取[]
  44. self:RedDotCheck()
  45. end
  46. ---@param message number[]
  47. function this:RES_SUBMIT_ANGLE_BENEFIT_TASK(_, message)
  48. local typeList = {}
  49. if not table.isNullOrEmpty(self.taskInfo) then
  50. for i, v in pairs(self.taskInfo) do
  51. typeList[self.WelfareTaskConfig[tonumber(i)].type] = i
  52. end
  53. end
  54. for i, v in pairs(message) do
  55. if typeList[self.WelfareTaskConfig[tonumber(i)].type] ~= nil then
  56. self.taskInfo[typeList[self.WelfareTaskConfig[tonumber(i)].type]] = nil
  57. self.taskInfo[i] = v
  58. end
  59. end
  60. self.curgoal = SL:GetBagItemCount(self.IntegralId)
  61. self:RedDotCheck()
  62. end
  63. ---@param message number[]
  64. function this:RES_ANGLE_BENEFIT_TASK_CHANGE(_, message)
  65. self.taskInfo = message
  66. self:RedDotCheck()
  67. end
  68. ----@param data GoldFirstKillProtos.ResponseAllServerFirstKillData
  69. function this:RedDotCheck()
  70. if not self.serverReward or not self.awardsGetid then
  71. return
  72. end
  73. self.RedPointState = false
  74. if not table.isNullOrEmpty(self.taskInfo) then
  75. for i, v in pairs(self.taskInfo) do
  76. if v.status == "2" then
  77. self.RedPointState = true
  78. break
  79. end
  80. end
  81. end
  82. if not self.RedPointState then
  83. ---@param v cfg_angleBenefitReward_column
  84. for i, v in pairs(self.WelfareRewardConfig) do
  85. local num = 0
  86. if self.serverReward[tostring(v.id)] then
  87. num = tonumber(self.serverReward[tostring(v.id)])
  88. end
  89. if self.curgoal >= v.rewardPoint[2] and (v.limitNum - num) > 0 then
  90. if not table.getValue(self.awardsGetid, tostring(v.id)) then
  91. self.RedPointState = true
  92. break
  93. end
  94. end
  95. end
  96. end
  97. InfoManager.mainActivityInfo:RefreshMainActivityRedPoint("tog_2", self.RedPointState)
  98. end
  99. function this:TryReqMessageOnce()
  100. if not self.isReqMsg then
  101. self.isReqMsg = true
  102. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_ANGLE_BENEFIT_INFO)
  103. end
  104. end
  105. function this:Reset()
  106. self.isReqMsg = nil
  107. end