StarSignData.lua 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. local StarSignData = class("StarSignData", require("DataBase"))
  2. function StarSignData:ctor()
  3. self.activeList = {}
  4. self.currScore = 0
  5. self.nextLevelScore = 0
  6. self.lastLevelScore = 0
  7. self.target = 0
  8. self.light = false
  9. self.activeCount = 0
  10. end
  11. function StarSignData:InitData(data)
  12. end
  13. function StarSignData:SendStarInfoReq()
  14. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_COMPETITION_STAR_INFO_REQ)
  15. end
  16. function StarSignData:RegisterNetEvents()
  17. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_COMPETITION_STAR_DIVINE_ACK,self.OnStarRewardChange,self)
  18. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_COMPETITION_STAR_CLOSE_REWARD_ACK,self.OnStarRewardRefresh,self)
  19. ManagerContainer.NetManager:NetRegister(ProtoMsgId.SC_COMPETITION_STAR_INFO_ACK,self.OnStarRewardInitInfo,self)
  20. end
  21. function StarSignData:GetStarTargetData()
  22. return self.target or 0
  23. end
  24. function StarSignData:OnStarRewardInitInfo(data)
  25. local stars = data.stars
  26. if stars then
  27. self.activeList = {}
  28. self.activeCount = #stars
  29. for i = 1, #stars do
  30. local tempData = stars[i]
  31. self.activeList[tempData] = tempData
  32. end
  33. end
  34. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.STAR_SIGN_INIT)
  35. end
  36. function StarSignData:OnStarRewardRefresh(data)
  37. self.activeList = {}
  38. self.activeCount = 0
  39. if data.reward_list and #data.reward_list > 0 then
  40. local rewards = {}
  41. for key, value in pairs(data.reward_list) do
  42. table.insert(rewards,{cfgId = value.key, num = value.value})
  43. end
  44. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPOPGot,{rewards = rewards})
  45. end
  46. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.STAR_SIGN_INIT)
  47. end
  48. function StarSignData:GetStarActiveCount()
  49. return self.activeCount or 0
  50. end
  51. function StarSignData:GetStarActiveListData()
  52. return self.activeList or nil
  53. end
  54. function StarSignData:GetStarActiveLightData()
  55. return self.light or false
  56. end
  57. function StarSignData:OnStarRewardChange(data)
  58. local stars = data.stars
  59. if stars then
  60. self.activeList = {}
  61. self.activeCount = #stars
  62. for i = 1, #stars do
  63. local tempdata = stars[i]
  64. self.activeList[tempdata] = tempdata
  65. end
  66. end
  67. self.target = data.star
  68. self.light = data.light
  69. ManagerContainer.LuaEventMgr:Dispatch(UIEventNames.STAR_SIGN_CHANGE)
  70. end
  71. function StarSignData:Clear()
  72. self.activeList = nil
  73. self.currScore = nil
  74. self.nextLevelScore = nil
  75. self.lastLevelScore = nil
  76. self.target = nil
  77. self.light = nil
  78. self.activeCount = nil
  79. end
  80. function StarSignData:Destroy()
  81. if self.Clear then
  82. self:Clear()
  83. end
  84. self:UnRegisterNetEvents()
  85. end
  86. function StarSignData:UnRegisterNetEvents()
  87. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_COMPETITION_STAR_DIVINE_ACK)
  88. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_COMPETITION_STAR_CLOSE_REWARD_ACK)
  89. ManagerContainer.NetManager:UnRegisterPbIdCallback(ProtoMsgId.SC_COMPETITION_STAR_INFO_ACK)
  90. end
  91. return StarSignData