源战役客户端
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

337 rader
12 KiB

1 månad sedan
  1. require("game.proto.145.Require145")
  2. require("game.equipCollect.EquipCollectModel")
  3. require("game.equipCollect.EquipCollectConst")
  4. require("game.equipCollect.EquipCollectView")--装备大全界面
  5. require("game.equipCollect.EquipCollectEquipItem")--装备大全装备item
  6. require("game.equipCollect.EquipCollectLeftItem")--装备大全左边滚动item
  7. require("game.equipCollect.EquipCollectAttrItem")--装备大全属性item
  8. require("game.equipCollect.EquipCollectTipView")--弹出的装备收集tip
  9. require("game.equipCollect.EquipCollectTipItem")--弹出的装备收集tipItem
  10. require("game.equipCollect.EquipCollectProgressItem")--装备收集界面里面的进度条小点点
  11. require("game.equipCollect.EquipCollectSubView")--装备收集子界面
  12. require("game.equipCollect.EquipCollectMainView")--装备考核主界面
  13. require("game.equipCollect.EquipCollectRightItem")--装备收集右边的item
  14. require("game.equipCollect.EquipCollectTabItem")--右边的页签tab
  15. require("game.equipCollect.EquipExamTaskItem")--装备考核任务的item
  16. require("game.equipCollect.EquipExamTaskTabItem")--装备考核任务的页签item
  17. require("game.equipCollect.EquipExamTaskView")--装备考核任务
  18. require("game.equipCollect.EquipExamBossView")--装备考核boss
  19. require("game.equipCollect.EquipExamBossItem")--装备考核boss页签
  20. require("game.equipCollect.EquipExamBossAwardItem")--装备考核boss奖励
  21. require("game.equipCollect.EquipExamBossRedPacketView")--装备考核boss红包
  22. require("game.equipCollect.EquipExamUpgradeView")--装备考核进阶
  23. require("game.equipCollect.EquipExamUpgradeItem")--装备考核进阶item
  24. require("game.equipCollect.EquipExamUpgradeAttrView")--装备升星总属性界面
  25. require("game.equipCollect.EquipExamUpgradeAttrItem")--装备升星总属性界面item
  26. require("game.equipCollect.EquipCollectSuitTipView")--装备考核弹出来的套装tip
  27. EquipCollectController = EquipCollectController or BaseClass(BaseController)
  28. function EquipCollectController:__init()
  29. EquipCollectController.Instance = self
  30. self.model = EquipCollectModel:getInstance()
  31. self.mainVo = RoleManager.Instance.mainRoleInfo
  32. self:InitEvent()
  33. self:RegisterAllProtocals()
  34. end
  35. function EquipCollectController:InitEvent( )
  36. local function on_open_main_view( show, index, id, sub_id, show_first_effect)
  37. if show then
  38. if not self.EquipCollectMainView then
  39. self.EquipCollectMainView = EquipCollectMainView.New()
  40. end
  41. self.EquipCollectMainView:Open(index, id, sub_id, show_first_effect)
  42. else
  43. if self.EquipCollectMainView and self.EquipCollectMainView:HasOpen() then
  44. self.EquipCollectMainView:Close()
  45. end
  46. end
  47. end
  48. self.model:Bind(EquipCollectConst.OPEN_EC_MAIN_VIEW, on_open_main_view)
  49. local function on_open_tip_view( data )
  50. if self.model:IsCollectSuit() then
  51. if not self.EquipCollectSuitTipView then
  52. self.EquipCollectSuitTipView = EquipCollectSuitTipView.New()
  53. end
  54. if self.EquipCollectSuitTipView:HasOpen() then
  55. self.EquipCollectSuitTipView:ReOpen(data)
  56. else
  57. self.EquipCollectSuitTipView:Open(data)
  58. end
  59. else
  60. if not self.EquipCollectTipView then
  61. self.EquipCollectTipView = EquipCollectTipView.New()
  62. end
  63. if self.EquipCollectTipView:HasOpen() then
  64. self.EquipCollectTipView:ReOpen(data)
  65. else
  66. self.EquipCollectTipView:Open(data)
  67. end
  68. end
  69. end
  70. self.model:Bind(EquipCollectConst.SHOW_EQUIP_COLLECT_TIP, on_open_tip_view)
  71. local function update_red_dot_by_tab_id_func( tab_id )--主要的更新红点方法
  72. if not tab_id then
  73. self.model:IsEquipExamNeedRedAll()
  74. else
  75. self.model:IsEquipExamNeedRed(tab_id)
  76. end
  77. local red_dot = self.model:GetAllEquipExamRedDot()
  78. local bool = false
  79. for i,v in pairs(red_dot) do
  80. if v then
  81. bool = true
  82. break
  83. end
  84. end
  85. -- GlobalEventSystem:Fire(ActivityIconManager.UPDATE_ICON_TIPS,15208,bool)
  86. end
  87. self.model:Bind(EquipCollectConst.UPDATE_EQUIP_COLLECT_RED,update_red_dot_by_tab_id_func)
  88. local function on_open_total_attr_view( )
  89. if not self.EquipExamUpgradeAttrView then
  90. self.EquipExamUpgradeAttrView = EquipExamUpgradeAttrView.New()
  91. end
  92. self.EquipExamUpgradeAttrView:Open()
  93. end
  94. self.model:Bind(EquipCollectConst.OPEN_EC_UPGRADE_ATTR_VIEW, on_open_total_attr_view)
  95. local function on_level_icon_open( level )--等级
  96. if level == Config.Moduleid[145].open_lv then
  97. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15218)
  98. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,14510)
  99. elseif level == Config.Modulesub["145@2"].open_lv then
  100. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT, 14501)
  101. end
  102. end
  103. RoleManager.Instance.mainRoleInfo:Bind(EventName.CHANGE_LEVEL, on_level_icon_open)
  104. local function on_task_icon_open( task_id )--任务
  105. if Config.Moduleid[145].task_id == task_id then
  106. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15218)
  107. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,14510)
  108. end
  109. end
  110. GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST, on_task_icon_open)
  111. local function init_open_day( ... )--开服天数初始化
  112. if GetModuleIsOpen(145) then
  113. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15218)
  114. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,14510)
  115. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT, 14501)
  116. end
  117. end
  118. GlobalEventSystem:Bind(EventName.OPEN_DAY_INIT,init_open_day)
  119. local function onRequestProtocal(...)
  120. local args = {...}
  121. if args[1] == 15220 then
  122. self:SendFmtToGame(args[1], "cc", args[2], args[3])
  123. elseif args[1] == 14512 then
  124. self:SendFmtToGame(args[1], "i", args[2])
  125. elseif args[1] == 14502 then
  126. self:SendFmtToGame(args[1], "ic", args[2], args[3])
  127. else
  128. self:SendFmtToGame(args[1])
  129. end
  130. end
  131. self.model:Bind(EquipCollectConst.REQUEST_SCMD_EVENT, onRequestProtocal)
  132. local onEquipStarRed = function (id, flag)
  133. if id == EquipModel.MainTab.Evolution then
  134. self.model:IsEquipExamNeedRed(EquipCollectConst.TAB_ID.UPGRADE)
  135. end
  136. end
  137. EquipModel:getInstance():Bind(EquipModel.UPDATE_VIEW_RED, onEquipStarRed)
  138. local function onEquipExamBossRedPacketView( show, boss_id, is_open)
  139. if show then
  140. if not self.EquipExamBossRedPacketView then
  141. self.EquipExamBossRedPacketView = EquipExamBossRedPacketView.New()
  142. end
  143. self.EquipExamBossRedPacketView:Open(boss_id, is_open)
  144. else
  145. if self.EquipExamBossRedPacketView and self.EquipExamBossRedPacketView:HasOpen() then
  146. self.EquipExamBossRedPacketView:Close()
  147. end
  148. end
  149. end
  150. self.model:Bind(EquipCollectConst.OPEN_RED_PACKET_VIEW, onEquipExamBossRedPacketView)
  151. end
  152. function EquipCollectController:RegisterAllProtocals( )
  153. self:RegisterProtocal(15218, "Handle15218")--装备收集信息
  154. self:RegisterProtocal(15219, "Handle15219")--装备收集-新增一件收集
  155. self:RegisterProtocal(15220, "Handle15220")--装备收集-激活进度
  156. self:RegisterProtocal(14510, "Handle14510")--装备考核-装备任务-基本信息
  157. self:RegisterProtocal(14511, "Handle14511")--装备考核-装备任务-单条任务-变更主推
  158. self:RegisterProtocal(14512, "Handle14512")--装备考核-装备任务-任务领奖
  159. self:RegisterProtocal(14501, "Handle14501")--装备考核-BOSS首杀-基本信息
  160. self:RegisterProtocal(14502, "Handle14502")--装备考核-BOSS首杀-完成某个首杀-主推
  161. self:RegisterProtocal(14503, "Handle14503")--装备考核-BOSS首杀-领奖
  162. end
  163. -- ############## 装备收集信息 ##############
  164. -- protocol=15218
  165. -- {
  166. -- c2s{
  167. -- }
  168. -- s2c{
  169. -- list:array{
  170. -- type :int8 // 代数
  171. -- sub_type :int8 // 品质
  172. -- equipment_list:array{ //
  173. -- goods_id:int32 // 已收集的装备id
  174. -- }
  175. -- active_progress:int8 // 激活进度
  176. -- }
  177. -- }
  178. -- }
  179. function EquipCollectController:Handle15218( )
  180. local vo = SCMD15218.New(true)
  181. self.model:SetEquipCollectInfo(vo)
  182. if self.model:IsNeedShowTip() then
  183. local data = DeepCopy(self.model:GetEquipCollectNeedShowTipData())
  184. self.model:Fire(EquipCollectConst.SHOW_EQUIP_COLLECT_TIP,data)
  185. end
  186. self.model:Fire(EquipCollectConst.UPDATE_EQUIP_COLLECT_RED, EquipCollectConst.TAB_ID.COLLECT)
  187. end
  188. -- ############## 装备收集-新增一件收集 ##############
  189. -- protocol=15219
  190. -- {
  191. -- c2s{
  192. -- }
  193. -- s2c{
  194. -- type :int8 // 代数
  195. -- sub_type :int8 // 品质
  196. -- goods_id :int32 // 收集的装备id
  197. -- }
  198. -- }
  199. function EquipCollectController:Handle15219( )
  200. local vo = SCMD15219.New(true)
  201. local data = {
  202. id = vo.type,
  203. sub_id = vo.sub_type,
  204. goods_id = vo.goods_id,
  205. }
  206. self.model:SetEquipCollectNeedShowTipData(data)
  207. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15218)
  208. -- self.model:AddOneEquipCollectInfo(vo)
  209. end
  210. -- ############## 装备收集-激活进度 ##############
  211. -- protocol=15220
  212. -- {
  213. -- c2s{
  214. -- type :int8 // 代数
  215. -- sub_type :int8 // 品质
  216. -- }
  217. -- s2c{
  218. -- res :int32 // 错误码
  219. -- type :int8 // 代数
  220. -- sub_type :int8 // 品质
  221. -- active_progress:int8 // 激活进度
  222. -- }
  223. -- }
  224. function EquipCollectController:Handle15220( )
  225. local vo = SCMD15220.New(true)
  226. if vo.res == 1 then
  227. Message.show("激活套装属性成功", "success")
  228. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT,15218)
  229. if vo.type == 1 and vo.sub_type == 1 then
  230. GlobalEventSystem:Fire(EventName.TEST_HELP_STEP,11001)
  231. end
  232. else
  233. ErrorCodeShow(vo.res)
  234. end
  235. end
  236. function EquipCollectController:Handle14510( )
  237. local vo = SCMD14510.New(true)
  238. self.model:SetEquipCollectTaskInfo(vo)
  239. self.model:Fire(EquipCollectConst.UPDATE_EQUIP_COLLECT_RED, EquipCollectConst.TAB_ID.TASK)
  240. end
  241. function EquipCollectController:Handle14511( )
  242. local vo = SCMD14511.New(true)
  243. self.model:SetEquipCollectTaskOneInfo(vo)
  244. self.model:Fire(EquipCollectConst.UPDATE_EQUIP_COLLECT_RED, EquipCollectConst.TAB_ID.TASK)
  245. end
  246. function EquipCollectController:Handle14512( )--会主推14511
  247. local vo = SCMD14512.New(true)
  248. if vo.res == 1 then
  249. Message.show("奖励领取成功")
  250. else
  251. ErrorCodeShow(vo.res)
  252. end
  253. end
  254. --[[############## 装备考核-BOSS首杀-基本信息 ##############
  255. protocol=14501
  256. {
  257. c2s{
  258. }
  259. s2c{
  260. list:array{
  261. boss_id :int32 // BOSS
  262. killer:string //
  263. time:int32 //
  264. self_kill_status:int8 // 0|1|2
  265. server_award_status:int8 // 0|1
  266. }
  267. }
  268. }--]]
  269. function EquipCollectController:Handle14501( )
  270. local vo = SCMD14501.New(true)
  271. -- print('=======Msh:EquipCollectController.lua[277] ===TABLE====')
  272. -- PrintTable(vo)
  273. self.model:SetBossData(vo)
  274. self.model:Fire(EquipCollectConst.UPDATE_BOSS_VIEW)
  275. self.model:Fire(EquipCollectConst.UPDATE_EQUIP_COLLECT_RED, EquipCollectConst.TAB_ID.BOSS)
  276. end
  277. --[[############## 装备考核-BOSS首杀-完成某个首杀-主推 ##############
  278. protocol=14503
  279. {
  280. s2c{
  281. type:int8 // 1|2
  282. boss_id :int32 // BOSS
  283. }
  284. }--]]
  285. function EquipCollectController:Handle14503( )
  286. local vo = SCMD14503.New(true)
  287. -- if self.EquipCollectMainView and self.EquipCollectMainView:HasOpen() then -- 界面正在打开
  288. self.model:Fire(EquipCollectConst.REQUEST_SCMD_EVENT, 14501)
  289. -- end
  290. end
  291. --[[############## 装备考核-BOSS首杀-领奖 ##############
  292. protocol=14502
  293. {
  294. c2s{
  295. boss_id :int32 // BOSS
  296. type:int8 // 1|2
  297. }
  298. s2c{
  299. boss_id :int32 // BOSS
  300. type:int8 // 1|2
  301. res:int32
  302. }
  303. }--]]
  304. function EquipCollectController:Handle14502( )
  305. local vo = SCMD14502.New(true)
  306. -- print('=======Msh:EquipCollectController.lua[329] ===TABLE====')
  307. -- PrintTable(vo)
  308. if vo.res == 1 then
  309. self.model:UpdateBossData(vo)
  310. end
  311. end