SkillRankActivityData.lua 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. local SkillRankActivityData = class("SkillRankActivityData")
  2. local ProtocalDataNormal = require("ProtocalDataNormal")
  3. local countlimit = 10
  4. function SkillRankActivityData:ctor()
  5. self.rankData = nil
  6. self.type = Enum.RankActivitiesType.Skill
  7. end
  8. function SkillRankActivityData:Clear()
  9. self.rankData = nil
  10. end
  11. function SkillRankActivityData:RegisterNetEvents()
  12. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_RUSH_ACTIVITY_ACK,self.OnSkillActivityAck, self)
  13. end
  14. function SkillRankActivityData:QueryRankActivityData(forceOpenUI)
  15. self.forceOpenUI = forceOpenUI
  16. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_RUSH_ACTIVITY_REQ, {rush_type = self.type})
  17. end
  18. function SkillRankActivityData:OnSkillActivityAck(data)
  19. if data.error ~= Enum.NetErrorCode.ERROR_OK then return end
  20. -- LogHRWarning(Inspect(data))
  21. self.rankData = ProtocalDataNormal.ParseSkillActivityData(data)
  22. self:RefreshRewardRPStatae()
  23. if self.forceOpenUI then
  24. --TODO 打开 冲榜界面
  25. if self.rankData.endTime > 0 then
  26. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIActivityTower, Enum.RankActivitiesType.Skill)
  27. self.forceOpenUI = false
  28. else
  29. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.RANK_ACTIVITY_DISPLAY_NTF, Enum.RankActivitiesType.Skill, false)
  30. end
  31. end
  32. end
  33. function SkillRankActivityData:RefreshRewardRPStatae()
  34. local type = Enum.RankActivitiesType.Skill
  35. local idx = ManagerContainer.DataMgr.RankActivitiesMgr:GetCurRankActivityIdx(type)
  36. local cfgDatas = ManagerContainer.CfgMgr:GetRushListCfgByTypeAndIdx(type, idx)
  37. if not cfgDatas then
  38. ManagerContainer.RedPointSimpleMgr:RPNotify(Enum.RPNotifyType.TowerRankCanReward, false)
  39. return
  40. end
  41. local cfgDatas = ManagerContainer.CfgMgr:GetRushListTargetCfgByTypeAndIdx(type,idx)
  42. countlimit = cfgDatas[1].Rank[1][1]
  43. local stage, endTime = ManagerContainer.DataMgr.RankActivitiesMgr:GetCurRankActivityStageEndTime(Enum.RankActivitiesType.Skill)
  44. local rankRewardState = stage == 2 and self.rankData.selfRank > 0 and not self.rankData.rankReward
  45. local challengeRewardState = self.rankData.selfLevel >= countlimit and not self.rankData.challengReward
  46. ManagerContainer.RedPointSimpleMgr:RPNotify(Enum.RPNotifyType.SkillRankCanReward, rankRewardState or challengeRewardState)
  47. end
  48. function SkillRankActivityData:OnActivityRewardAck(data)
  49. if data.error ~= Enum.NetErrorCode.ERROR_OK then return end
  50. if data.reward_type == 1 then
  51. self.rankData.challengReward = true
  52. elseif data.reward_type == 2 then
  53. self.rankData.rankReward = true
  54. end
  55. self:RefreshRewardRPStatae()
  56. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.RANK_ACTIVITY_REWARD_SUCCESS_NTF, data.reward_type)
  57. CommonUtil.ACKShowRewardList(data.item_list)
  58. end
  59. function SkillRankActivityData:GetCurRankActivityData()
  60. return self.rankData
  61. end
  62. function SkillRankActivityData:SendRewardReq(type)
  63. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_RUSH_ACTIVITY_REWARD_REQ, {reward_type = type, rush_type = self.type})
  64. end
  65. function SkillRankActivityData:QueryRankDatas(page)
  66. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_RUSH_SKILL_ACTIVITY_RANK_REQ, {page = page})
  67. end
  68. function SkillRankActivityData:QuerySkillRankDatasAck(data)
  69. -- LogHRWarning(Inspect(data))
  70. if data.error ~= Enum.NetErrorCode.ERROR_OK then
  71. return
  72. end
  73. if not self.rankData then return end
  74. if data.top_data then
  75. for i = 1,#data.top_data do
  76. local data1 = {}
  77. data1.name = data.top_data[i].name
  78. data1.data = data.top_data[i].data
  79. data1.rank = data.top_data[i].rank
  80. self.rankData.topData[data1.rank] = data1
  81. end
  82. end
  83. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.PET_RANK_QUERY_ACK_REFRESH)
  84. end
  85. function SkillRankActivityData:Destroy()
  86. self:Clear()
  87. end
  88. return SkillRankActivityData