源战役客户端
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

268 righe
8.8 KiB

4 settimane fa
  1. --[[@------------------------------------------------------------------
  2. @description:
  3. @author:HWR
  4. ----------------------------------------------------------------------]]
  5. require("game.proto.104.Require104")
  6. require("game.treasureHouse.TreasureHouseModel")
  7. require("game.treasureHouse.TreasureHouseConst")
  8. require("game.treasureHouse.TreasureHouseView")
  9. require("game.treasureHouse.TreasureHouseRewardView")
  10. require("game.treasureHouse.TreasureHouseRewardItem")
  11. require("game.treasureHouse.TreasureHouseTaskItem")
  12. require("game.treasureHouse.TreasureHouseItem")
  13. require("game.treasureHouse.TreasureHouseRecordItem")
  14. require("game.treasureHouse.TreasureHouseResultItem")
  15. require("game.treasureHouse.TreasureHouseResultView")
  16. TreasureHouseController = TreasureHouseController or BaseClass(BaseController)
  17. function TreasureHouseController:__init()
  18. TreasureHouseController.Instance = self
  19. self.model = TreasureHouseModel:getInstance()
  20. self:InitEvent()
  21. self:registerAllProtocals()
  22. end
  23. function TreasureHouseController:getInstance()
  24. if TreasureHouseController.Instance == nil then
  25. TreasureHouseController.New()
  26. end
  27. return TreasureHouseController.Instance
  28. end
  29. function TreasureHouseController:InitEvent()
  30. local function onRequestHandler(...)
  31. local args = {...}
  32. if args[1] == 10401 or args[1] == 10404 or args[1] == 10405 then
  33. self:SendFmtToGame(args[1], "c", args[2])
  34. elseif args[1] == 10402 then
  35. self:SendFmtToGame(args[1], "h", args[2])
  36. else
  37. self:SendFmtToGame(args[1])
  38. end
  39. end
  40. self.model:Bind(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, onRequestHandler)
  41. local onGameStartHandler = function ()
  42. self.model:Fire(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, 10400)
  43. self.model:Fire(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, 10403)
  44. end
  45. self:Bind(EventName.GAME_START, onGameStartHandler)
  46. local function on_open_treasure_house_view( ... )
  47. if not self.treasure_house_view then
  48. self.treasure_house_view = TreasureHouseView.New()
  49. end
  50. self.treasure_house_view:Open()
  51. end
  52. self.model:Bind(TreasureHouseConst.OPEN_TREASURE_HOUSE_VIEW, on_open_treasure_house_view)
  53. local function on_open_treasure_house_reward_view( ... )
  54. if not self.treasure_house_reward_view then
  55. self.treasure_house_reward_view = TreasureHouseRewardView.New()
  56. end
  57. self.treasure_house_reward_view:Open()
  58. end
  59. self.model:Bind(TreasureHouseConst.OPEN_TREASURE_HOUSE_REWARD_VIEW, on_open_treasure_house_reward_view)
  60. local function on_update_red( ... )
  61. local function call_back( ... )
  62. local bool = self.model:IsTreasureHouseNeedRed()
  63. GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS,10400,bool)
  64. end
  65. TimeManager.GetInstance():StartTime("TreasureHouseController:on_update_red", 0.5, call_back)
  66. end
  67. self.model:Bind(TreasureHouseConst.UPDATE_TREASURE_HOUSE_RED, on_update_red)
  68. local function open_result_view(data)
  69. if self.treasure_house_result_view == nil then
  70. self.treasure_house_result_view = TreasureHouseResultView.New()
  71. end
  72. if self.treasure_house_result_view:HasOpen() then
  73. self.treasure_house_result_view:UpdateView(data)
  74. else
  75. self.treasure_house_result_view:Open(data)
  76. end
  77. end
  78. self.model:Bind(TreasureHouseConst.OPEN_TREASURE_HOUSE_RESULT_VIEW,open_result_view)
  79. end
  80. function TreasureHouseController:registerAllProtocals()
  81. self:RegisterProtocal(10400,"handle10400")--珍宝阁期数轮次等综合信息查询
  82. self:RegisterProtocal(10401,"handle10401")--抽取奖励
  83. self:RegisterProtocal(10402,"handle10402")--领取次数保底奖励
  84. self:RegisterProtocal(10403,"handle10403")--抽奖券任务进度
  85. self:RegisterProtocal(10404,"handle10404")--抽奖券任务领取
  86. self:RegisterProtocal(10405,"handle10405")--抽奖券购买
  87. self:RegisterProtocal(10406,"handle10406")--抽奖传闻记录查询
  88. self:RegisterProtocal(10407,"handle10407")--抽奖传闻记录新增推送
  89. end
  90. -- ########## 珍宝阁期数轮次等综合信息查询 ############
  91. -- protocol=10400
  92. -- {
  93. -- c2s{
  94. -- }
  95. -- s2c{
  96. -- curr_period:int8 // 期数
  97. -- curr_round:int8 // 当前所处的次数保底轮次阶段
  98. -- curr_count:int8 // 当前轮次抽取次数
  99. -- award_round:int8 // 该期数尚未领取完奖励的轮次
  100. -- count_awards:array{ // 最后领取的轮次奖励(领取后再刷新下一轮)
  101. -- count:int8 // 累计次数档位
  102. -- stage:int8 // 状态(0未达成 1未领取 2已领取)
  103. -- }
  104. -- }
  105. -- }
  106. function TreasureHouseController:handle10400()
  107. local vo = SCMD10400.New(true)
  108. -- print("HWR:TreasureHouseController [start:79] vo:", vo)
  109. -- PrintTable(vo)
  110. -- print("HWR:TreasureHouseController [end]")
  111. self.model:SetTreasureHouseBaseInfo(vo)
  112. self.model:Fire(TreasureHouseConst.UPDATE_TREASURE_HOUSE_RED)
  113. end
  114. -- ########## 抽取奖励 ############
  115. -- protocol=10401
  116. -- {
  117. -- c2s{
  118. -- count:int8 // 抽取次数(1、10)
  119. -- }
  120. -- s2c{
  121. -- errcode:int32 // 错误码
  122. -- award_list:array{ // 抽取到的奖励列表
  123. -- award_id:int32 // 奖励id
  124. -- }
  125. -- }
  126. -- }
  127. function TreasureHouseController:handle10401()
  128. local vo = SCMD10401.New(true)
  129. if vo.errcode == 1 then
  130. self.model:Fire(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, 10400)
  131. local data = {}
  132. data.award = {}
  133. data.col_num = 5
  134. data.pool_type = TableSize(vo.award_list)
  135. local goods_vo
  136. local cfg = Config.Treasurehouseitems
  137. for k, v in pairs(vo.award_list) do
  138. local awards = stringtotable(cfg[v.award_id].awards)
  139. data.award[#data.award+1] = {awards[1][1], awards[1][2], awards[1][3], is_rare = cfg[v.award_id].is_rare }
  140. end
  141. -- GlobalEventSystem:Fire(EventName.OPEN_COM_AWARD_RESULT_VIEW, data)
  142. self.model:Fire(TreasureHouseConst.OPEN_TREASURE_HOUSE_RESULT_VIEW, data)
  143. else
  144. ErrorCodeShow(vo.errcode)
  145. end
  146. -- print("HWR:TreasureHouseController [start:106] vo:", vo)
  147. -- PrintTable(vo)
  148. -- print("HWR:TreasureHouseController [end]")
  149. end
  150. -- ########## 领取次数保底奖励 ############
  151. -- protocol=10402
  152. -- {
  153. -- c2s{
  154. -- count:int8 // 需要领取的对应次数
  155. -- }
  156. -- s2c{
  157. -- errcode:int32 // 错误码
  158. -- }
  159. -- }
  160. function TreasureHouseController:handle10402()
  161. local vo = SCMD10402.New(true)
  162. if vo.errcode == 1 then
  163. self.model:Fire(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, 10400)
  164. Message.show("领取奖励成功", "success")
  165. else
  166. ErrorCodeShow(vo.errcode)
  167. end
  168. -- print("HWR:TreasureHouseController [start:128] vo:", vo)
  169. -- PrintTable(vo)
  170. -- print("HWR:TreasureHouseController [end]")
  171. end
  172. -- ########## 抽奖券任务进度 ############
  173. -- protocol=10403
  174. -- {
  175. -- c2s{
  176. -- }
  177. -- s2c{
  178. -- task_list:array{ // 任务列表
  179. -- id:int8 // 任务id
  180. -- times:int8 // 已完成次数
  181. -- state:int8 // 当前状态(0未完成 1未领取 2已领取)
  182. -- }
  183. -- }
  184. -- }
  185. function TreasureHouseController:handle10403()
  186. local vo = SCMD10403.New(true)
  187. -- print("HWR:TreasureHouseController [start:149] vo:", vo)
  188. -- PrintTable(vo)
  189. -- print("HWR:TreasureHouseController [end]")
  190. self.model:SetTreasureHouseTaskInfo(vo)
  191. self.model:Fire(TreasureHouseConst.UPDATE_TREASURE_HOUSE_RED)
  192. end
  193. -- ########## 抽奖券任务领取 ############
  194. -- protocol=10404
  195. -- {
  196. -- c2s{
  197. -- id:int8 // 任务id
  198. -- }
  199. -- s2c{
  200. -- errcode:int32 // 错误码
  201. -- }
  202. -- }
  203. function TreasureHouseController:handle10404()
  204. local vo = SCMD10404.New(true)
  205. -- print("HWR:TreasureHouseController [start:170] vo:", vo)
  206. -- PrintTable(vo)
  207. -- print("HWR:TreasureHouseController [end]")
  208. if vo.errcode == 1 then
  209. self.model:Fire(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, 10403)
  210. Message.show("领取任务奖励成功", "success")
  211. else
  212. ErrorCodeShow(vo.errcode)
  213. end
  214. end
  215. -- ########## 抽奖券购买 ############
  216. -- protocol=10405
  217. -- {
  218. -- c2s{
  219. -- id:int8 // 任务id
  220. -- }
  221. -- s2c{
  222. -- errcode:int32 // 错误码
  223. -- }
  224. -- }
  225. function TreasureHouseController:handle10405()
  226. local vo = SCMD10405.New(true)
  227. -- print("HWR:TreasureHouseController [start:194] vo:", vo)
  228. -- PrintTable(vo)
  229. -- print("HWR:TreasureHouseController [end]")
  230. if vo.errcode == 1 then
  231. self.model:Fire(TreasureHouseConst.REQ_TREASURE_HOUSE_SCMD, 10403)
  232. Message.show("领取任务奖励成功", "success")
  233. else
  234. ErrorCodeShow(vo.errcode)
  235. end
  236. end
  237. function TreasureHouseController:handle10406( )
  238. local vo = SCMD10406.New(true)
  239. -- print("HWR:TreasureHouseController [start:224] vo:", vo)
  240. -- PrintTable(vo)
  241. -- print("HWR:TreasureHouseController [end]")
  242. self.model:SetTreasureHouseRecordInfo(vo.list)
  243. end
  244. function TreasureHouseController:handle10407( )
  245. local vo = SCMD10407.New(true)
  246. self.model:AddTreasureHouseRecordInfo(vo.list)
  247. end