源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1504 lines
47 KiB

  1. require("game.mate.MateModel")
  2. require("game.mate.MateConst")
  3. require("game.mate.view.MateBaseView")--羁绊基础容器界面
  4. require("game.mate.view.MateAskView")--邀请羁绊
  5. require("game.mate.view.MateChangeTagView")--改标签备注界面
  6. require("game.mate.view.MateShopView")--羁绊商城界面
  7. require("game.mate.view.MateShopItem")--羁绊商城item
  8. require("game.mate.view.MateFindFriendView")--羁绊征友界面
  9. require("game.mate.view.MateFindFriendItem")--羁绊征友界面
  10. require("game.mate.view.MateFindFriendTip")--羁绊征友tip界面
  11. require("game.mate.view.MateSingleDogView")--羁绊任务界面
  12. require("game.mate.view.MateMyFriendView")--所有羁绊好友主界面
  13. require("game.mate.view.MateFriendItem")--所有羁绊好友主界面子节点
  14. require("game.mate.view.MateFriendInfoView")--单个羁绊好友信息界面
  15. require("game.mate.view.MateFriendShareView")--羁绊分享界面
  16. require("game.mate.view.MateShipView")--羁绊信物
  17. require("game.mate.view.MateSkillItem")--羁绊信物技能子节点
  18. require("game.mate.view.MateAttrItem")--羁绊信物属性子节点
  19. require("game.mate.view.MateFriendSelectTip")--选择羁绊好友
  20. require("game.mate.view.MateRoleItem")--选择羁绊好友子节点
  21. require("game.mate.view.MateAnsView")--回复羁绊
  22. require("game.mate.view.MateChangeTitleView")--改备注称号界面
  23. require("game.mate.view.MateAskBreakTip")--请求解除羁绊
  24. require("game.mate.view.MateMarkView")--羁绊纪念日
  25. require("game.mate.view.MateMarkItem")--羁绊纪念日子节点
  26. require("game.mate.view.MateDailyView")--羁绊日常界面
  27. require("game.mate.view.MateDailyItem")--羁绊日常界面子节点
  28. require("game.mate.view.MateGameAnsView")--回复羁绊游戏
  29. require("game.mate.view.MateGameRewardView")--羁绊奖励预览界面
  30. require("game.mate.view.MateGameRewardItem")--羁绊奖励预览子节点
  31. require("game.mate.view.MateDesignationView")--羁绊头衔
  32. require("game.mate.view.MateDesignationItem")--羁绊头衔子节点
  33. require("game.mate.view.MateAttrItemTwo")--羁绊头衔属性子节点
  34. require("game.mate.view.MateGameResultView")--羁绊游戏结算
  35. require("game.mate.view.MateMusicGameView")
  36. require("game.mate.view.MateMusicItem")
  37. require("game.mate.view.MateMusicTipView")
  38. require("game.mate.view.MateBallGameView")
  39. require("game.mate.view.MateBallTipView")
  40. require("game.mate.view.MateFindFriendTagItem")
  41. require("game.mate.view.MateAdView")--羁绊预告界面
  42. require("game.proto.149.Require149")
  43. MateController = MateController or BaseClass(BaseController, true)
  44. local MateController = MateController
  45. function MateController:__init()
  46. MateController.Instance = self
  47. self.model = MateModel:GetInstance()
  48. self:AddEvents()
  49. self:RegisterAllProtocal()
  50. end
  51. function MateController:__delete()
  52. end
  53. function MateController:RegisterAllProtocal( )
  54. self:RegisterProtocal(14900, 'on14900') --羁绊基础信息
  55. self:RegisterProtocal(14901, 'on14901') --请求羁绊
  56. self:RegisterProtocal(14902, 'on14902') --请求羁绊消息
  57. self:RegisterProtocal(14903, 'on14903') --回应请求羁绊
  58. self:RegisterProtocal(14904, 'on14904') --收到羁绊回应
  59. self:RegisterProtocal(14905, 'on14905') --请求解除羁绊
  60. self:RegisterProtocal(14906, 'on14906') --解除羁绊消息
  61. self:RegisterProtocal(14907, 'on14907') --回应解除羁绊
  62. self:RegisterProtocal(14908, 'on14908') --收到解除羁绊回应
  63. self:RegisterProtocal(14909, 'on14909') --解除羁绊预览
  64. self:RegisterProtocal(14910, 'on14910') --修改羁绊称号
  65. self:RegisterProtocal(14911, 'on14911') --修改羁绊备注
  66. self:RegisterProtocal(14912, 'on14912') --领取纪念日奖励
  67. self:RegisterProtocal(14913, 'on14913') --友谊的小船
  68. self:RegisterProtocal(14914, 'on14914') --强化友谊的小船
  69. self:RegisterProtocal(14915, 'on14915') --称号佩戴
  70. self:RegisterProtocal(14916, 'on14916') --查看他人羁绊
  71. self:RegisterProtocal(14917, 'on14917') --请求羁绊检查
  72. self:RegisterProtocal(14918, 'on14918') --新手奖励领取状态
  73. self:RegisterProtocal(14919, 'on14919') --新手奖励领取
  74. -------------------------
  75. self:RegisterProtocal(14920, 'on14920') --小游戏情况
  76. self:RegisterProtocal(14921, 'on14921') --小游戏邀请他人
  77. self:RegisterProtocal(14922, 'on14922') --小游戏收到邀请
  78. self:RegisterProtocal(14923, 'on14923') --小游戏回应邀请
  79. self:RegisterProtocal(14924, 'on14924') --节奏大师游戏预备开始
  80. self:RegisterProtocal(14925, 'on14925') --节奏大师游戏拍点出现
  81. self:RegisterProtocal(14926, 'on14926') --节奏大师游戏换人
  82. self:RegisterProtocal(14927, 'on14927') --节奏大师点击
  83. self:RegisterProtocal(14928, 'on14928') --节奏大师正确点击广播
  84. self:RegisterProtocal(14929, 'on14929') --节奏大师游戏积分变化
  85. self:RegisterProtocal(14930, 'on14930') --节奏大师结算
  86. self:RegisterProtocal(14932, 'on14932') --收到回应
  87. self:RegisterProtocal(14934, 'on14934') --关闭羁绊游戏
  88. self:RegisterProtocal(14935, 'on14935') --抛接球进入准备界面
  89. self:RegisterProtocal(14936, 'on14936') --抛接球,开球
  90. self:RegisterProtocal(14938, 'on14938') --抛接球球飞行方向
  91. self:RegisterProtocal(14939, 'on14939') --抛接球球结算
  92. self:RegisterProtocal(14940, 'on14940') --准备状态
  93. self:RegisterProtocal(14941, 'on14941') --准备
  94. self:RegisterProtocal(14942, 'on14942') --交友大厅 查看信息
  95. self:RegisterProtocal(14943, 'on14943') --交友大厅 发布交友信息
  96. self:RegisterProtocal(14945, 'on14945') --拍照 发出邀请
  97. self:RegisterProtocal(14946, 'on14946') --拍照 收到的邀请信息
  98. self:RegisterProtocal(14947, 'on14947') --拍照 回应邀请
  99. self:RegisterProtocal(14948, 'on14948') --拍照 活动信息
  100. self:RegisterProtocal(14949, 'on14949') --拍照 准备
  101. self:RegisterProtocal(14950, 'on14950') --拍照 拍照
  102. self:RegisterProtocal(14951, 'on14951') --拍照 结算
  103. self:RegisterProtocal(14952, 'on14952') --拍照 取消游戏
  104. self:RegisterProtocal(14953, 'on14953') --羁绊-日常 日常任务
  105. self:RegisterProtocal(14954, 'on14954') --羁绊-日常 更新任务进度
  106. self:RegisterProtocal(14955, 'on14955') --羁绊-日常 领取任务奖励
  107. end
  108. function MateController:AddEvents()
  109. local function BaseRequest( )
  110. self.model:Fire(MateConst.REQ_BASIC_INFO)
  111. self.model:Fire(MateConst.REQ_CONNECT_MESSAGE)
  112. self.model:Fire(MateConst.REQ_CUT_CONNECT_MESSAGE)
  113. self.model:Fire(MateConst.REQ_SHIP_INFO)
  114. self.model:Fire(MateConst.REQ_GAME_INFO)
  115. self.model:Fire(MateConst.REQ_GAME_INVITE_LIST)
  116. -- self.model:Fire(MateConst.PROTO_CCMD_EVENT,14953)
  117. end
  118. local function chnage_day_func(type)
  119. if type == SettingModel.CHANGE_DAY.HOUR_0 then -- 跨0点
  120. local function delay_method( )
  121. self.model:Fire(MateConst.PROTO_CCMD_EVENT,14953)--0点刷新任务
  122. ShopModel:getInstance():Fire(ShopModel.GET_GOODS_LIST, ShopType.MATE) --其他地方购买走商城,需要请求协议
  123. end
  124. setTimeout(delay_method, 5)
  125. end
  126. end
  127. GlobalEventSystem:Bind(EventName.CHANE_DAY, chnage_day_func)
  128. local function CheckTaskCall( )
  129. if self.bind_task_init_id then
  130. TaskModel:getInstance():UnBind(self.bind_task_init_id)
  131. self.bind_task_init_id = nil
  132. end
  133. if self.model:IsFinishAllMarriageTask( 3 ) then
  134. --所有任务已完成,再也不需要监听
  135. elseif self.need_task_check then
  136. local function TASK_LIST_INIT( )
  137. if self.need_task_check then
  138. self:CheckTaskRed( )
  139. if self.model:IsFinishAllMarriageTask( 3 ) then
  140. --所有任务已完成,再也不需要监听
  141. self.need_task_check = false
  142. if self.bind_task_init_id then
  143. TaskModel:getInstance():UnBind(self.bind_task_init_id)
  144. self.bind_task_init_id = nil
  145. end
  146. end
  147. end
  148. end
  149. TASK_LIST_INIT()
  150. self.bind_task_init_id = TaskModel:getInstance():Bind(TaskEvent.TASK_LIST_INIT, TASK_LIST_INIT)
  151. end
  152. end
  153. local function on_game_start()
  154. self.need_task_check = true -- 是否需要检查任务标记,所有任务完成后就不要再检查了
  155. self.model:Reset()
  156. -------------------------
  157. local function delay( )
  158. if GetModuleIsOpen( 149 ) then
  159. BaseRequest()
  160. end
  161. if GetModuleIsOpen( 149,1 ) then
  162. --羁绊任务
  163. CheckTaskCall()
  164. end
  165. -- if GetModuleIsOpen( 149,2 ) then
  166. --羁绊预告
  167. -- end
  168. end
  169. setTimeout(delay,2)
  170. self.model:Fire(MateConst.REQ_MATE_AD_AWARD_STATUS)
  171. end
  172. GlobalEventSystem:Bind(EventName.GAME_START, on_game_start)
  173. local function onLevelChange( level )
  174. local need_lv = self.model:GetOpenNeed()
  175. if level == need_lv then
  176. BaseRequest()
  177. end
  178. if level == GetModuleOpenLevel( 149,1) then
  179. --羁绊任务
  180. CheckTaskCall()
  181. end
  182. -- 羁绊功能预告
  183. -- 不再升级自动弹出
  184. -- if level == GetModuleOpenLevel(149) then
  185. -- self:ShowMateAdView(true, false, true)
  186. -- end
  187. end
  188. RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange)
  189. local function UPDATE_TICKETS_STATE( )
  190. if GetModuleIsOpen( 149 ) then
  191. self:CheckRed()
  192. end
  193. end
  194. SocialityModel.getInstance():Bind(SocialityModel.UPDATE_TICKETS_STATE, UPDATE_TICKETS_STATE)
  195. local function ANS_FINISHED_TASK_LIST(flag)
  196. -- 羁绊预告界面开启判断
  197. if Config.Modulesub["149@2"].task_id == flag and (not self.have_show_mate_ad_view) then
  198. self.have_show_mate_ad_view = true
  199. self:ShowMateAdView(true, true, true)
  200. end
  201. for k,v in pairs(MateConst.SingleDogTask) do
  202. if v == flag then
  203. local function delay_call( )
  204. self:CheckRed( )
  205. end
  206. setTimeout(delay_call,2)
  207. return
  208. end
  209. end
  210. end
  211. GlobalEventSystem:Bind(TaskEvent.ANS_FINISHED_TASK_LIST, ANS_FINISHED_TASK_LIST)
  212. local function update_mate_red()
  213. self:CheckRed( )
  214. end
  215. self.model:Bind(MateConst.UPDATE_MATE_RED, update_mate_red)
  216. local function OPEN_BASE_VIEW( show_type, other_data, close_auto_task )
  217. if other_data == "close" then
  218. if self.matebaseview then
  219. self.matebaseview:Close()
  220. end
  221. return
  222. end
  223. -------------------------
  224. if not self.matebaseview then
  225. self.matebaseview = MateBaseView.New()
  226. end
  227. self.matebaseview:Open(show_type, other_data, close_auto_task)
  228. end
  229. self.model:Bind(MateConst.OPEN_BASE_VIEW, OPEN_BASE_VIEW)
  230. local function OPEN_FIND_FRIEND_TIP( str,is_close )
  231. --征友tip
  232. if is_close then
  233. if self.matefindfriendtip then
  234. self.matefindfriendtip:Close()
  235. end
  236. return
  237. end
  238. if not self.matefindfriendtip then
  239. self.matefindfriendtip = MateFindFriendTip.New()
  240. self.matefindfriendtip:Open( str )
  241. end
  242. end
  243. self.model:Bind(MateConst.OPEN_FIND_FRIEND_TIP, OPEN_FIND_FRIEND_TIP)
  244. local function OPEN_FRIENDINFO_VIEW( role_id,look_info )
  245. if not role_id and not look_info then return end
  246. if not self.matefriendinfoview then
  247. self.matefriendinfoview = MateFriendInfoView.New()
  248. self.matefriendinfoview:Open(role_id,look_info)
  249. end
  250. end
  251. self.model:Bind(MateConst.OPEN_FRIENDINFO_VIEW,OPEN_FRIENDINFO_VIEW)
  252. local function OPEN_FRIEND_SHARE_VIEW( look_info )
  253. if not look_info then return end
  254. if not self.matefriendshareview then
  255. self.matefriendshareview = MateFriendShareView.New()
  256. self.matefriendshareview:Open(look_info)
  257. end
  258. end
  259. self.model:Bind(MateConst.OPEN_FRIEND_SHARE_VIEW,OPEN_FRIEND_SHARE_VIEW)
  260. local function OPEN_CHANGETAG_VIEW( role_id )
  261. if not role_id then return end
  262. if not self.matechangetagview then
  263. self.matechangetagview = MateChangeTagView.New()
  264. self.matechangetagview:Open(role_id)
  265. end
  266. end
  267. self.model:Bind(MateConst.OPEN_CHANGETAG_VIEW,OPEN_CHANGETAG_VIEW)
  268. local function OPEN_SELECT_FRIEND_VIEW( friend_list,tag,call_select,cur_select )
  269. friend_list = friend_list or {}
  270. if not self.matefriendselecttip then
  271. self.matefriendselecttip = MateFriendSelectTip.New()
  272. self.matefriendselecttip:SetData(friend_list,tag,call_select,cur_select)
  273. self.matefriendselecttip:Open()
  274. end
  275. end
  276. self.model:Bind(MateConst.OPEN_SELECT_FRIEND_VIEW,OPEN_SELECT_FRIEND_VIEW)
  277. local function OPEN_ASK_MATE_VIEW( role_id, role_info )
  278. if not self.mateaskview then
  279. self.mateaskview = MateAskView.New()
  280. self.mateaskview:Open(role_id,role_info)
  281. end
  282. end
  283. self.model:Bind(MateConst.OPEN_ASK_MATE_VIEW,OPEN_ASK_MATE_VIEW)
  284. local function CLOSE_ASK_MATE_VIEW()
  285. if self.mateaskview and self.mateaskview:HasOpen() then
  286. self.mateaskview:Close()
  287. end
  288. end
  289. self.model:Bind(MateConst.CLOSE_ASK_MATE_VIEW,CLOSE_ASK_MATE_VIEW)
  290. local function OPEN_ANS_MATE_VIEW( role_id )
  291. if not role_id then return end
  292. if not self.mateansview then
  293. self.mateansview = MateAnsView.New()
  294. self.mateansview:Open(role_id)
  295. end
  296. end
  297. self.model:Bind(MateConst.OPEN_ANS_MATE_VIEW,OPEN_ANS_MATE_VIEW)
  298. local function OPEN_CHANGETITLE_VIEW( role_id )
  299. if not role_id then return end
  300. if not self.matechangetitleview then
  301. self.matechangetitleview = MateChangeTitleView.New()
  302. self.matechangetitleview:Open(role_id)
  303. end
  304. end
  305. self.model:Bind(MateConst.OPEN_CHANGETITLE_VIEW,OPEN_CHANGETITLE_VIEW)
  306. local function OPEN_MATEAD_VIEW(use_close_anim, use_close_timer)
  307. self:ShowMateAdView(true, use_close_anim, use_close_timer)
  308. end
  309. self.model:Bind(MateConst.OPEN_MATEAD_VIEW, OPEN_MATEAD_VIEW)
  310. local function OPEN_ANS_BREAK_VIEW( role_id )
  311. if not role_id then return end
  312. --[[local function call_yes( )
  313. self.model:Fire(MateConst.REQ_RESPOND_CUT_CONNECT, role_id, 1)
  314. end
  315. local function call_no( )
  316. self.model:Fire(MateConst.REQ_RESPOND_CUT_CONNECT, role_id, 2)
  317. end--]]
  318. -- local basic = self.model:GetBasicByRoleId( role_id )
  319. -- if not basic then return end
  320. -- local str = string.format(MateConst.AnsBreakTip, basic.name)
  321. -- Alert.show(str, Alert.Type.Two, call_yes, call_no, '同意', '拒绝')
  322. self.model:Fire(MateConst.OPEN_ASK_BREAK_VIEW, role_id, true)
  323. end
  324. self.model:Bind(MateConst.OPEN_ANS_BREAK_VIEW,OPEN_ANS_BREAK_VIEW)
  325. local function OPEN_ASK_BREAK_VIEW( role_id,is_ans )
  326. if not role_id then return end
  327. if not self.mateaskbreaktip then
  328. self.mateaskbreaktip = MateAskBreakTip.New()
  329. self.mateaskbreaktip:Open(role_id,is_ans)
  330. end
  331. end
  332. self.model:Bind(MateConst.OPEN_ASK_BREAK_VIEW,OPEN_ASK_BREAK_VIEW)
  333. local function OPEN_MARK_VIEW( role_id )
  334. if not role_id then return end
  335. if not self.matemarkview then
  336. self.matemarkview = MateMarkView.New()
  337. self.matemarkview:Open(role_id)
  338. end
  339. end
  340. self.model:Bind(MateConst.OPEN_MARK_VIEW,OPEN_MARK_VIEW)
  341. local function OPEN_GAME_ANS_VIEW( role_id,type_id )
  342. if TableSize(self.model:GetInviteInfo()) == 0 then
  343. self.model:CheckInviteDot( )
  344. return
  345. end
  346. if not self.mategameansview then
  347. self.mategameansview = MateGameAnsView.New()
  348. self.mategameansview:Open(role_id,type_id)
  349. end
  350. end
  351. self.model:Bind(MateConst.OPEN_GAME_ANS_VIEW,OPEN_GAME_ANS_VIEW)
  352. local function OPEN_GAME_ANS_LIST( )
  353. if not self.mategameanslisttip then
  354. self.mategameanslisttip = MateFriendSelectTip.New()
  355. end
  356. self.mategameanslisttip:SetSpecialStr("邀请游戏","没有人邀请你做游戏哦~","请选择一个参与~")
  357. -------------------------
  358. local friend_list = self.model:GetInviteInfo()
  359. local need_list = {}
  360. for k,v in pairs(friend_list) do
  361. if v.type == 2 then
  362. table.insert( need_list, v )
  363. end
  364. end
  365. local function call_select( role_id,type_id )
  366. self.model:Fire(MateConst.OPEN_GAME_ANS_VIEW,role_id,type_id)
  367. end
  368. self.mategameanslisttip:SetData(need_list,"game_ans",call_select,0)
  369. -------------------------
  370. self.mategameanslisttip:Open()
  371. end
  372. self.model:Bind(MateConst.OPEN_GAME_ANS_LIST,OPEN_GAME_ANS_LIST)
  373. local function OPEN_MUSIC_VIEW( )
  374. if not self.matemusicgameview then
  375. self.matemusicgameview = MateMusicGameView.New()
  376. self.matemusicgameview:Open()
  377. end
  378. -------------------------
  379. local data = CookieWrapper.Instance:GetCookie(CookieLevelType.Common,CookieKey.MATE_GAME_TIP_SHOW_TAG)
  380. if data and data[RoleManager.Instance.mainRoleInfo.role_id] and data[RoleManager.Instance.mainRoleInfo.role_id][MateConst.GameActId.Music] then
  381. else
  382. self.model:Fire(MateConst.OPEN_MUSIC_TIP_VIEW)
  383. end
  384. end
  385. self.model:Bind(MateConst.OPEN_MUSIC_VIEW, OPEN_MUSIC_VIEW)
  386. local function OPEN_BALL_VIEW( )
  387. if not self.mateballgameview then
  388. self.mateballgameview = MateBallGameView.New()
  389. self.mateballgameview:Open()
  390. end
  391. -------------------------
  392. local data = CookieWrapper.Instance:GetCookie(CookieLevelType.Common,CookieKey.MATE_GAME_TIP_SHOW_TAG)
  393. if data and data[RoleManager.Instance.mainRoleInfo.role_id] and data[RoleManager.Instance.mainRoleInfo.role_id][MateConst.GameActId.Ball] then
  394. else
  395. self.model:Fire(MateConst.OPEN_BALL_TIP_VIEW)
  396. end
  397. end
  398. self.model:Bind(MateConst.OPEN_BALL_VIEW, OPEN_BALL_VIEW)
  399. local function OPEN_MUSIC_TIP_VIEW( )
  400. if not self.matemusictipview then
  401. self.matemusictipview = MateMusicTipView.New()
  402. self.matemusictipview:Open()
  403. end
  404. end
  405. self.model:Bind(MateConst.OPEN_MUSIC_TIP_VIEW, OPEN_MUSIC_TIP_VIEW)
  406. local function OPEN_BALL_TIP_VIEW( )
  407. if not self.mateballtipview then
  408. self.mateballtipview = MateBallTipView.New()
  409. self.mateballtipview:Open()
  410. end
  411. end
  412. self.model:Bind(MateConst.OPEN_BALL_TIP_VIEW, OPEN_BALL_TIP_VIEW)
  413. local function OPEN_GAME_REWARD_VIEW( )
  414. if not self.mategamerewardview then
  415. self.mategamerewardview = MateGameRewardView.New()
  416. self.mategamerewardview:Open()
  417. end
  418. end
  419. self.model:Bind(MateConst.OPEN_GAME_REWARD_VIEW,OPEN_GAME_REWARD_VIEW)
  420. local function OPEN_ASK_PHOTO_VIEW( )
  421. if self.model:IsNoMateFriend() then
  422. Message.show("先结交一位羁绊好友吧~")
  423. return
  424. end
  425. if not self.mateaskphotoview then
  426. self.mateaskphotoview = MateAskPhotoView.New()
  427. self.mateaskphotoview:Open()
  428. end
  429. end
  430. self.model:Bind(MateConst.OPEN_ASK_PHOTO_VIEW,OPEN_ASK_PHOTO_VIEW)
  431. --羁绊基础信息
  432. local function REQ_BASIC_INFO()
  433. self:SendFmtToGame(14900)
  434. end
  435. self.model:Bind(MateConst.REQ_BASIC_INFO, REQ_BASIC_INFO)
  436. --请求羁绊
  437. local function REQ_TRY_TO_CONNECT( role_id )
  438. if role_id then
  439. self:SendFmtToGame( 14901, "l", role_id )
  440. end
  441. end
  442. self.model:Bind(MateConst.REQ_TRY_TO_CONNECT, REQ_TRY_TO_CONNECT)
  443. --请求羁绊消息
  444. local function REQ_CONNECT_MESSAGE( )
  445. self:SendFmtToGame(14902)
  446. end
  447. self.model:Bind(MateConst.REQ_CONNECT_MESSAGE, REQ_CONNECT_MESSAGE)
  448. --回应请求羁绊
  449. local function REQ_RESPOND_CONNECT( role_id, op_type )
  450. --1答应 2拒绝
  451. if role_id and op_type then
  452. self:SendFmtToGame(14903, "lc", role_id, op_type)
  453. end
  454. end
  455. self.model:Bind(MateConst.REQ_RESPOND_CONNECT, REQ_RESPOND_CONNECT)
  456. --请求解除羁绊
  457. local function REQ_CUT_CONNECT( role_id, op_type )
  458. --1协议|2强制
  459. if role_id and op_type then
  460. self:SendFmtToGame(14905, "lc", role_id, op_type)
  461. end
  462. end
  463. self.model:Bind(MateConst.REQ_CUT_CONNECT, REQ_CUT_CONNECT)
  464. --解除羁绊消息
  465. local function REQ_CUT_CONNECT_MESSAGE( )
  466. self:SendFmtToGame(14906)
  467. end
  468. self.model:Bind(MateConst.REQ_CUT_CONNECT_MESSAGE, REQ_CUT_CONNECT_MESSAGE)
  469. --回应解除羁绊
  470. local function REQ_RESPOND_CUT_CONNECT( role_id, op_type )
  471. --1答应 2拒绝
  472. if role_id and op_type then
  473. self:SendFmtToGame(14907, "lc", role_id, op_type)
  474. end
  475. end
  476. self.model:Bind(MateConst.REQ_RESPOND_CUT_CONNECT, REQ_RESPOND_CUT_CONNECT)
  477. --解除羁绊预览
  478. local function REQ_LOOK_BREAK_AWARD( role_id )
  479. if role_id then
  480. self:SendFmtToGame(14909, "l", role_id)
  481. end
  482. end
  483. self.model:Bind(MateConst.REQ_LOOK_BREAK_AWARD, REQ_LOOK_BREAK_AWARD)
  484. --修改羁绊称号
  485. local function REQ_CHANGE_FRIEND_NAME( role_id, name )
  486. if role_id and name then
  487. self:SendFmtToGame(14910, "ls", role_id, name)
  488. end
  489. end
  490. self.model:Bind(MateConst.REQ_CHANGE_FRIEND_NAME, REQ_CHANGE_FRIEND_NAME)
  491. --修改羁绊备注
  492. local function REQ_CHANGE_TAG( role_id, remarks_id )
  493. if role_id and remarks_id then
  494. self:SendFmtToGame(14911, "lc", role_id, remarks_id)
  495. end
  496. end
  497. self.model:Bind(MateConst.REQ_CHANGE_TAG, REQ_CHANGE_TAG)
  498. -- 领取纪念日奖励
  499. local function REQ_GET_MARK_REWARD( role_id, day )
  500. if role_id and day then
  501. self:SendFmtToGame(14912, "lh", role_id, day )
  502. end
  503. end
  504. self.model:Bind(MateConst.REQ_GET_MARK_REWARD,REQ_GET_MARK_REWARD)
  505. --友谊的小船
  506. local function REQ_SHIP_INFO( )
  507. self:SendFmtToGame(14913)
  508. end
  509. self.model:Bind(MateConst.REQ_SHIP_INFO,REQ_SHIP_INFO)
  510. --强化友谊的小船
  511. local function REQ_UPGRADE_SHIP( )
  512. self:SendFmtToGame(14914)
  513. end
  514. self.model:Bind(MateConst.REQ_UPGRADE_SHIP,REQ_UPGRADE_SHIP)
  515. --佩戴羁绊称号
  516. local function REQ_DRESS_TITLE( role_id,op_type )
  517. -- 1佩戴|2取消
  518. if role_id and op_type then
  519. self:SendFmtToGame(14915,"lc", role_id,op_type)
  520. end
  521. end
  522. self.model:Bind(MateConst.REQ_DRESS_TITLE,REQ_DRESS_TITLE)
  523. --查看他人羁绊
  524. local function REQ_LOOK_OTHER_MATE( id_1,id_2 )
  525. if id_1 and id_2 then
  526. self:SendFmtToGame(14916,"ll",id_1,id_2)
  527. end
  528. end
  529. self.model:Bind(MateConst.REQ_LOOK_OTHER_MATE,REQ_LOOK_OTHER_MATE)
  530. local function REQ_CHECK_BIND_MATE( role_id )
  531. if role_id then
  532. self:SendFmtToGame(14917,"l",role_id)
  533. end
  534. end
  535. self.model:Bind(MateConst.REQ_CHECK_BIND_MATE, REQ_CHECK_BIND_MATE)
  536. --新手奖励领取状态
  537. local function REQ_MATE_AD_AWARD_STATUS( )
  538. self:SendFmtToGame(14918)
  539. end
  540. self.model:Bind(MateConst.REQ_MATE_AD_AWARD_STATUS, REQ_MATE_AD_AWARD_STATUS)
  541. --新手奖励领取
  542. local function REQ_GET_MATE_AD_AWARD( )
  543. self:SendFmtToGame(14919)
  544. end
  545. self.model:Bind(MateConst.REQ_GET_MATE_AD_AWARD, REQ_GET_MATE_AD_AWARD)
  546. --小游戏情况
  547. local function REQ_GAME_INFO( )
  548. self:SendFmtToGame(14920)
  549. end
  550. self.model:Bind(MateConst.REQ_GAME_INFO,REQ_GAME_INFO)
  551. --小游戏邀请他人
  552. local function REQ_INVITE_ROLE( role_id,act_id )
  553. if role_id and act_id then
  554. self:SendFmtToGame(14921,"lc",role_id,act_id)
  555. end
  556. end
  557. self.model:Bind(MateConst.REQ_INVITE_ROLE,REQ_INVITE_ROLE)
  558. --小游戏邀请他人
  559. local function REQ_GAME_INVITE_LIST( )
  560. self:SendFmtToGame(14922)
  561. end
  562. self.model:Bind(MateConst.REQ_GAME_INVITE_LIST,REQ_GAME_INVITE_LIST)
  563. --小游戏回应邀请
  564. local function REQ_RESPOND_INVITE(act_id,role_id,op_type)
  565. --op_type 1同意|2拒绝
  566. if act_id and role_id and op_type then
  567. self:SendFmtToGame(14923,"clc",act_id,role_id,op_type)
  568. end
  569. end
  570. self.model:Bind(MateConst.REQ_RESPOND_INVITE,REQ_RESPOND_INVITE)
  571. local function MUSIC_CLICK_DOT( id,role_id )
  572. self:SendFmtToGame(14927,"hl",id,role_id)
  573. end
  574. self.model:Bind(MateConst.MUSIC_CLICK_DOT,MUSIC_CLICK_DOT)
  575. --小游戏取消邀请
  576. local function REQ_CANCEL_INVITE()
  577. self:SendFmtToGame(14931)
  578. end
  579. self.model:Bind(MateConst.REQ_CANCEL_INVITE,REQ_CANCEL_INVITE)
  580. ----游戏请求结束
  581. local function REQ_GAME_OVER( role_id )
  582. self:SendFmtToGame(14933,"l",role_id)
  583. end
  584. self.model:Bind(MateConst.REQ_GAME_OVER,REQ_GAME_OVER)
  585. --抛接球,开球
  586. local function BALL_START_BALL( )
  587. local data = self.model:GetBallInfo()
  588. if not data then return end
  589. local my_role_id = RoleManager.Instance.mainRoleInfo.role_id
  590. local role_id = data[1].role_id == my_role_id and data[2].role_id or data[1].role_id
  591. self:SendFmtToGame(14936,"l",role_id)
  592. end
  593. self.model:Bind(MateConst.BALL_START_BALL,BALL_START_BALL)
  594. --抛接球,击球
  595. local function BALL_KICK_BALL( )
  596. local data = self.model:GetBallInfo()
  597. if not data then return end
  598. local my_role_id = RoleManager.Instance.mainRoleInfo.role_id
  599. local role_id = data[1].role_id == my_role_id and data[2].role_id or data[1].role_id
  600. self:SendFmtToGame(14937,"l",role_id)
  601. end
  602. self.model:Bind(MateConst.BALL_KICK_BALL,BALL_KICK_BALL)
  603. --游戏准备状态列表
  604. local function REQ_GAME_WAIT_STATUS( role_id )
  605. self:SendFmtToGame(14940, "l", role_id)
  606. end
  607. self.model:Bind(MateConst.REQ_GAME_WAIT_STATUS, REQ_GAME_WAIT_STATUS)
  608. --游戏准备
  609. local function REQ_GAME_WAIT_READY( role_id )
  610. self:SendFmtToGame(14941, "l", role_id)
  611. end
  612. self.model:Bind(MateConst.REQ_GAME_WAIT_READY, REQ_GAME_WAIT_READY)
  613. -- 交友大厅 查看信息
  614. local function REQ_FIND_FRIEND_DATA( )
  615. self:SendFmtToGame(14942)
  616. end
  617. self.model:Bind(MateConst.REQ_FIND_FRIEND_DATA, REQ_FIND_FRIEND_DATA)
  618. -- 交友大厅 发布交友信息
  619. local function REQ_PUBLISH_FIND_FRIEND( msg, type_id )
  620. if (not msg) or (not type_id) then
  621. return
  622. end
  623. self:SendFmtToGame(14943, "sc", msg, type_id)
  624. end
  625. self.model:Bind(MateConst.REQ_PUBLISH_FIND_FRIEND, REQ_PUBLISH_FIND_FRIEND)
  626. local function UPDATE_FLOWER_NUM( role_id,week_charm,intimacy )
  627. self.model:ChangeFriendInfo("intimacy",role_id,intimacy)
  628. self.model:Fire(MateConst.ANS_BASIC_INFO)
  629. end
  630. SocialityModel:getInstance():Bind(SocialityModel.UPDATE_FLOWER_NUM,UPDATE_FLOWER_NUM)
  631. local function onSendCmdFunc( ... )
  632. local args_list = {...}
  633. if args_list[1] == 14947 or args_list[1] == 14949 then
  634. self:SendFmtToGame(args_list[1], "lcc", args_list[2], args_list[3], args_list[4])
  635. elseif args_list[1] == 14952 then
  636. self:SendFmtToGame(args_list[1], "l", args_list[2])
  637. elseif args_list[1] == 14955 then
  638. self:SendFmtToGame(args_list[1], "l", args_list[2])
  639. elseif args_list[1] == 14956 then
  640. self:SendFmtToGame(args_list[1], "cl", args_list[2],args_list[3])
  641. else
  642. self:SendFmtToGame(args_list[1])
  643. end
  644. end
  645. self.model:Bind(MateConst.PROTO_CCMD_EVENT, onSendCmdFunc)
  646. local function update_goods_list_by_type( type )
  647. if type == ShopType.MATE then
  648. self:CheckRed(true)
  649. end
  650. end
  651. ShopModel:getInstance():Bind(ShopModel.ANS_GET_GOODS_LIST, update_goods_list_by_type)
  652. local function update_goods_list_by_type_2( )
  653. self:CheckRed(true)
  654. end
  655. ShopModel:getInstance():Bind(ShopModel.UPDATE_GOODS_LIST, update_goods_list_by_type_2)
  656. --监听特殊货币变化
  657. local on_special_score_change = function()
  658. self:CheckRed(true)
  659. end
  660. GoodsModel:getInstance():Bind(GoodsModel.UPDATE_SPECIAL_SCORE, on_special_score_change)
  661. end
  662. --羁绊基础信息
  663. function MateController:on14900( )
  664. local scmd = SCMD14900.New(true)
  665. self.model:SetBasicInfo( scmd.lists )
  666. self:CheckRed()
  667. self.model:Fire(MateConst.ANS_BASIC_INFO)
  668. --刷新羁绊基础信息后要请求一下任务列表
  669. self.model:Fire(MateConst.PROTO_CCMD_EVENT,14953)
  670. -- SocialityModel.getInstance().only_request_mate_flag = true
  671. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  672. end
  673. --请求羁绊
  674. function MateController:on14901( )
  675. local scmd = SCMD14901.New(true)
  676. if scmd.code == 1 then
  677. Message.show("请求成功,请耐心等待对方回复~")
  678. self.model:Fire(MateConst.ANS_TRY_TO_CONNECT)
  679. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  680. else
  681. ErrorCodeShow(scmd.code)
  682. end
  683. end
  684. --请求羁绊消息
  685. function MateController:on14902( )
  686. --1自己发出的|2收到的
  687. local scmd = SCMD14902.New(true)
  688. self.model:SetConnectMessage(scmd.ask_list)
  689. self.model:Fire(MateConst.ANS_CONNECT_MESSAGE)
  690. local have = false
  691. for k,v in pairs(scmd.ask_list) do
  692. if v.type == 2 then
  693. --存在待处理消息
  694. have = true
  695. break
  696. end
  697. end
  698. if have then
  699. MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.mate_ans})
  700. else
  701. MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.mate_ans)
  702. end
  703. end
  704. --回应请求羁绊
  705. function MateController:on14903( )
  706. local scmd = SCMD14903.New(true)
  707. if scmd.code == 1 then
  708. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  709. if scmd.type == 1 then
  710. Message.show("已答应羁绊请求~")
  711. -- SocialityModel.getInstance().only_request_mate_flag = true
  712. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  713. else
  714. Message.show("已谢绝羁绊请求~")
  715. end
  716. self.model:Fire(MateConst.ANS_RESPOND_CONNECT)
  717. local function delay( )
  718. self.model:Fire(MateConst.REQ_CONNECT_MESSAGE)
  719. end
  720. setTimeout(delay,0.5)
  721. else
  722. ErrorCodeShow(scmd.code)
  723. end
  724. end
  725. --收到羁绊回应
  726. function MateController:on14904( )
  727. --1答应 2拒绝
  728. local scmd = SCMD14904.New(true)
  729. if scmd.type == 1 then
  730. Message.show(scmd.name .. "已同意您的羁绊请求~")
  731. -- SocialityModel.getInstance().only_request_mate_flag = true
  732. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  733. else
  734. Message.show(scmd.name .. "已回绝您的羁绊请求~")
  735. end
  736. self.model:Fire(MateConst.REQ_CONNECT_MESSAGE)
  737. end
  738. --请求解除羁绊
  739. function MateController:on14905( )
  740. local scmd = SCMD14905.New(true)
  741. if scmd.code == 1 then
  742. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  743. if scmd.type == 2 then
  744. Message.show("您已强制解除和对方的羁绊关系~")
  745. -- SocialityModel.getInstance().only_request_mate_flag = true
  746. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  747. else
  748. Message.show("您已申请解除羁绊关系,请耐心等待对方回复~")
  749. end
  750. self.model:Fire(MateConst.ANS_CUT_CONNECT)
  751. else
  752. ErrorCodeShow(scmd.code)
  753. end
  754. end
  755. --解除羁绊消息
  756. function MateController:on14906( )
  757. --1自己发出的|2收到的
  758. local scmd = SCMD14906.New(true)
  759. self.model:SetCutConnectMessage(scmd.lists)
  760. self.model:Fire(MateConst.ANS_CUT_CONNECT_MESSAGE)
  761. -------------------------
  762. local have = false
  763. for k,v in pairs(scmd.lists) do
  764. if v.type == 2 then
  765. --存在待处理消息
  766. have = true
  767. break
  768. end
  769. end
  770. if have then
  771. MsgManager:getInstance():Add({type=Config.ConfigMainIcon.TipType.mate_ans_break})
  772. else
  773. MsgManager:getInstance():Remove(Config.ConfigMainIcon.TipType.mate_ans_break)
  774. end
  775. -- SocialityModel.getInstance().only_request_mate_flag = true
  776. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  777. end
  778. --回应解除羁绊
  779. function MateController:on14907( )
  780. local scmd = SCMD14907.New(true)
  781. if scmd.code == 1 then
  782. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  783. if scmd.type == 1 then
  784. Message.show("您已同意解除羁绊关系~")
  785. -- SocialityModel.getInstance().only_request_mate_flag = true
  786. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  787. else
  788. Message.show("您已拒绝对方的解除羁绊请求~")
  789. end
  790. self.model:Fire(MateConst.ANS_RESPOND_CUT_CONNECT)
  791. self.model:Fire(MateConst.REQ_CUT_CONNECT_MESSAGE)
  792. else
  793. ErrorCodeShow(scmd.code)
  794. end
  795. end
  796. --收到解除羁绊回应
  797. function MateController:on14908( )
  798. local scmd = SCMD14908.New(true)
  799. if scmd.type == 1 then
  800. Message.show(scmd.name .. "已同意您的解除羁绊请求~")
  801. -- SocialityModel.getInstance().only_request_mate_flag = true
  802. -- SocialityModel.getInstance():Fire(SocialityModel.REQUEST_CCMD_EVENT, 14000, 2)--请求羁绊
  803. else
  804. Message.show(scmd.name .. "已拒绝您的解除羁绊请求~")
  805. end
  806. end
  807. --解除羁绊预览
  808. function MateController:on14909( )
  809. local scmd = SCMD14909.New(true)
  810. self.model:Fire(MateConst.ANS_LOOK_BREAK_AWARD,scmd)
  811. end
  812. --修改羁绊称号
  813. function MateController:on14910( )
  814. local scmd = SCMD14910.New(true)
  815. if scmd.code == 1 then
  816. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  817. Message.show("修改成功~")
  818. self.model:ChangeFriendInfo("other_title",scmd.role_id,scmd.name)
  819. self.model:Fire(MateConst.ANS_CHANGE_FRIEND_NAME)
  820. else
  821. ErrorCodeShow(scmd.code)
  822. end
  823. end
  824. --修改羁绊备注
  825. function MateController:on14911( )
  826. local scmd = SCMD14911.New(true)
  827. if scmd.code == 1 then
  828. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  829. Message.show("修改成功~")
  830. self.model:ChangeFriendInfo("remarks",scmd.role_id,scmd.remarks_id)
  831. self.model:Fire(MateConst.ANS_CHANGE_TAG)
  832. else
  833. ErrorCodeShow(scmd.code)
  834. end
  835. end
  836. --领取纪念日奖励
  837. function MateController:on14912( )
  838. local scmd = SCMD14912.New(true)
  839. if scmd.code == 1 then
  840. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.AWARD)
  841. Message.show("领取成功~")
  842. self.model:AddDailyReward(scmd.role_id,scmd.day)
  843. self.model:Fire(MateConst.REQ_BASIC_INFO)
  844. else
  845. ErrorCodeShow(scmd.code)
  846. end
  847. end
  848. --友谊的小船
  849. function MateController:on14913( )
  850. local scmd = SCMD14913.New(true)
  851. -------------------------
  852. local last_data = self.model:GetShipBasic()
  853. local is_change = false
  854. if last_data and last_data.star then
  855. is_change = last_data.star ~= scmd.star
  856. end
  857. -------------------------
  858. self.model:SetShipBasic(scmd)
  859. self.model:Fire(MateConst.ANS_SHIP_INFO,is_change)
  860. self:CheckRed()
  861. end
  862. --强化友谊的小船
  863. function MateController:on14914( )
  864. local scmd = SCMD14914.New(true)
  865. if scmd.code == 1 then
  866. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  867. Message.show("升级成功~")
  868. self.model:Fire(MateConst.ANS_UPGRADE_SHIP)
  869. else
  870. ErrorCodeShow(scmd.code)
  871. end
  872. end
  873. --称号佩戴
  874. function MateController:on14915( )
  875. local scmd = SCMD14915.New(true)
  876. if scmd.code == 1 then
  877. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  878. --1佩戴|2取消
  879. if scmd.type == 1 then
  880. Message.show("佩戴成功")
  881. else
  882. Message.show("卸下成功")
  883. end
  884. self.model:Fire(MateConst.ANS_DRESS_TITLE)
  885. else
  886. ErrorCodeShow(scmd.code)
  887. end
  888. end
  889. --查看他人羁绊
  890. function MateController:on14916( )
  891. local scmd = SCMD14916.New(true)
  892. self.model:Fire(MateConst.OPEN_FRIEND_SHARE_VIEW,scmd)
  893. end
  894. function MateController:on14917( )
  895. local scmd = SCMD14917.New(true)
  896. if scmd.code == 1490003 or scmd.code == 1490004 or scmd.code == 1490025 or scmd.code == 1 then
  897. self.model:Fire(MateConst.ANS_CHECK_BIND_MATE, scmd.code)
  898. else
  899. ErrorCodeShow(scmd.code)
  900. end
  901. end
  902. function MateController:on14918( )
  903. local scmd = SCMD14918.New(true)
  904. self.model:SetMateAdRewardStatus(scmd.state == 1 and true or false)
  905. self.model:Fire(MateConst.ANS_MATE_AD_AWARD_STATUS)
  906. end
  907. function MateController:on14919( )
  908. local scmd = SCMD14919.New(true)
  909. if scmd.res_id ~= 1 then
  910. ErrorCodeShow(scmd.res)
  911. end
  912. -- do nothing
  913. end
  914. --小游戏情况
  915. function MateController:on14920( )
  916. local scmd = SCMD14920.New(true)
  917. self.model:SetGameInfo(scmd.lists)
  918. self.model:Fire(MateConst.ANS_GAME_INFO)
  919. self:CheckRed()
  920. end
  921. --小游戏邀请他人
  922. function MateController:on14921( )
  923. local scmd = SCMD14921.New(true)
  924. if scmd.code == 1 then
  925. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  926. Message.show("邀请成功,请耐心等待回复~")
  927. self.model:SetSelectGameInfo(scmd,"invite")
  928. else
  929. self.model:ResetSelectGameInfo()
  930. ErrorCodeShow(scmd.code)
  931. end
  932. self.model:Fire(MateConst.ANS_INVITE_ROLE)
  933. end
  934. --小游戏收到邀请
  935. function MateController:on14922( )
  936. local scmd = SCMD14922.New(true)
  937. local need_list = {}
  938. for k,v in pairs(scmd.lists) do
  939. if v.type == 2 then
  940. table.insert( need_list, v )
  941. end
  942. end
  943. if TableSize(need_list) >= 1 then
  944. Message.show("您有待处理的羁绊游戏消息~")
  945. end
  946. self.model:SetInviteInfo(scmd.lists)
  947. end
  948. --小游戏回应邀请
  949. function MateController:on14923( )
  950. local scmd = SCMD14923.New(true)
  951. if scmd.code == 1 then
  952. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  953. Message.show("操作成功")
  954. if scmd.res == 1 then
  955. self.model:SetSelectGameInfo(scmd,"together")
  956. self.model:Fire(MateConst.ANS_INVITE_ROLE)
  957. end
  958. else
  959. ErrorCodeShow(scmd.code)
  960. end
  961. end
  962. --节奏大师游戏预备开始
  963. function MateController:on14924( )
  964. self.game_type_id = MateConst.GameActId.Music
  965. local scmd = SCMD14924.New(true)
  966. self.model:SetMusicGameInfo(scmd)
  967. self.model:Fire(MateConst.OPEN_MUSIC_VIEW)
  968. self.model:Fire(MateConst.GAME_START)
  969. local role_list = {}
  970. for i=1,2 do
  971. if scmd.role_list[i] then
  972. role_list[i] = scmd.role_list[i].role_id
  973. end
  974. end
  975. self:SetGameCamera(role_list)
  976. end
  977. --节奏大师游戏拍点出现
  978. function MateController:on14925( )
  979. local scmd = SCMD14925.New(true)
  980. self.model:Fire(MateConst.MUSIC_CREATE_DOT,scmd)
  981. end
  982. --节奏大师游戏换人
  983. function MateController:on14926( )
  984. local scmd = SCMD14926.New(true)
  985. self.model:SetMusicPlayRole(scmd.role_id)
  986. if scmd.role_id == RoleManager.Instance.mainRoleInfo.role_id then
  987. Message.show("轮到你操作了~")
  988. else
  989. Message.show("轮到对方操作了~")
  990. end
  991. local show_type = scmd.role_id == RoleManager.Instance.mainRoleInfo.role_id and 1 or 2
  992. self.model:Fire(MateConst.MUSIC_ROLE_CHANGE,show_type)
  993. end
  994. --节奏大师点击
  995. function MateController:on14927( )
  996. local scmd = SCMD14927.New(true)
  997. end
  998. --节奏大师正确点击广播
  999. function MateController:on14928( )
  1000. local scmd = SCMD14928.New(true)
  1001. self.model:Fire(MateConst.MUSIC_CLEAN_TYPE,scmd.bit_id,"success")
  1002. end
  1003. --节奏大师游戏积分变化
  1004. function MateController:on14929( )
  1005. local scmd = SCMD14929.New(true)
  1006. self.model:SetMusicScore(scmd)
  1007. self.model:Fire(MateConst.MUSIC_SCORE_CHANGE)
  1008. end
  1009. --节奏大师结算
  1010. function MateController:on14930( )
  1011. self.game_type_id = nil
  1012. local function call_back( )
  1013. self:CheckRed()
  1014. end
  1015. local scmd = SCMD14930.New(true)
  1016. -- if not self.matemusicresultview then
  1017. -- self.matemusicresultview = MateGameResultView.New()
  1018. -- self.matemusicresultview:Open(MateConst.GameActId.Music,scmd,call_back)
  1019. -- end
  1020. -------------------------
  1021. scmd.act_id = MateConst.GameActId.Music
  1022. scmd.result = 1
  1023. scmd.reward_list = {}
  1024. -------------------------
  1025. scmd.special_duntype = BaseDungeonModel.DUN_TYPE.MATE
  1026. local _,lv = self.model:GetMusicAwardListAndLv( scmd )
  1027. scmd.special_score_lv = lv - 2
  1028. scmd.title_name = scmd.special_score_lv == 5 and "dun_result_win_title2" or "dun_result_win_title3"
  1029. BaseDungeonModel:getInstance():SetDunResultInfo(scmd)
  1030. BaseDungeonModel:getInstance():Fire(BaseDungeonModel.OPEN_DUNGEON_RESULT_VIEW,true)
  1031. -------------------------
  1032. self.model:Fire(MateConst.ANS_GAME_RESULT)
  1033. MainCamera.Instance:QuitMateCamera()
  1034. self:RemoveTimeClock()
  1035. self:ResetShowRole()
  1036. end
  1037. --小游戏收到回应
  1038. function MateController:on14932( )
  1039. local scmd = SCMD14932.New(true)
  1040. if scmd.type == 1 then
  1041. Message.show(scmd.name .. "答应了您的小游戏邀请~")
  1042. self.model:SetSelectGameInfo(scmd,"together")
  1043. self.model:Fire(MateConst.ANS_INVITE_ROLE)
  1044. elseif scmd.type == 2 then
  1045. Message.show(scmd.name .. "拒绝了您的小游戏邀请~")
  1046. self.model:SetSelectGameInfo(scmd,"over")
  1047. self.model:Fire(MateConst.ANS_INVITE_ROLE)
  1048. end
  1049. end
  1050. --关闭羁绊游戏
  1051. function MateController:on14934( )
  1052. local scmd = SCMD14934.New(true)
  1053. ErrorCodeShow(scmd.res)
  1054. self.model:Fire(MateConst.ANS_GAME_RESULT)
  1055. end
  1056. --抛接球进入准备界面
  1057. function MateController:on14935( )
  1058. self.game_type_id = MateConst.GameActId.Ball
  1059. local scmd = SCMD14935.New(true)
  1060. self.model:SetBallInfo(scmd.role_list)
  1061. self.model:Fire(MateConst.GAME_START)
  1062. self.model:Fire(MateConst.OPEN_BALL_VIEW)
  1063. -------------------------
  1064. local role_list = {}
  1065. for i=1,2 do
  1066. if scmd.role_list[i] then
  1067. role_list[i] = scmd.role_list[i].role_id
  1068. end
  1069. end
  1070. self:SetGameCamera(role_list)
  1071. end
  1072. --抛接球,开球
  1073. function MateController:on14936( )
  1074. local scmd = SCMD14936.New(true)
  1075. if scmd.role_id == RoleManager.Instance.mainRoleInfo.role_id then
  1076. Message.show("您开球啦~")
  1077. else
  1078. Message.show("对方开球啦~")
  1079. end
  1080. self.model:Fire(MateConst.BALL_FLY,scmd.role_id)
  1081. end
  1082. --抛接球球飞行方向
  1083. function MateController:on14938( )
  1084. local scmd = SCMD14938.New(true)
  1085. self.model:SetBallFlyInfo(scmd)
  1086. self.model:Fire(MateConst.BALL_FLY)
  1087. end
  1088. --抛接球结算
  1089. function MateController:on14939( )
  1090. self.game_type_id = nil
  1091. local scmd = SCMD14939.New(true)
  1092. -------------------------
  1093. -- local function call_back( )
  1094. -- self:CheckRed()
  1095. -- end
  1096. -- if not self.matemusicresultview then
  1097. -- self.matemusicresultview = MateGameResultView.New()
  1098. -- self.matemusicresultview:Open(MateConst.GameActId.Ball,scmd,call_back)
  1099. -- end
  1100. scmd.act_id = MateConst.GameActId.Ball
  1101. scmd.result = 1
  1102. scmd.reward_list = {}
  1103. -------------------------
  1104. scmd.special_duntype = BaseDungeonModel.DUN_TYPE.MATE
  1105. local _,lv = self.model:GetBallAwardListAndLv( scmd )
  1106. scmd.special_score_lv = lv - 2
  1107. scmd.title_name = scmd.special_score_lv == 5 and "dun_result_win_title2" or "dun_result_win_title3"
  1108. BaseDungeonModel:getInstance():SetDunResultInfo(scmd)
  1109. BaseDungeonModel:getInstance():Fire(BaseDungeonModel.OPEN_DUNGEON_RESULT_VIEW,true)
  1110. -------------------------
  1111. self.model:Fire(MateConst.ANS_GAME_RESULT)
  1112. MainCamera.Instance:QuitMateCamera()
  1113. self:RemoveTimeClock()
  1114. self:ResetShowRole()
  1115. end
  1116. --游戏准备状态
  1117. function MateController:on14940( )
  1118. local scmd = SCMD14940.New(true)
  1119. self.model:SetGameWaitStatus(scmd.lists)
  1120. self.model:Fire(MateConst.ANS_GAME_WAIT_STATUS,true)
  1121. end
  1122. --游戏准备
  1123. function MateController:on14941( )
  1124. local scmd = SCMD14941.New(true)
  1125. if scmd.res == 1 then
  1126. Message.show("准备成功!")
  1127. else
  1128. ErrorCodeShow(scmd.res)
  1129. end
  1130. end
  1131. --交友大厅 查看信息
  1132. function MateController:on14942( )
  1133. local scmd = SCMD14942.New(true)
  1134. self.model:SetFindFriendData(scmd.list)
  1135. self.model:Fire(MateConst.ANS_FIND_FRIEND_DATA)
  1136. end
  1137. --交友大厅 发布交友信息
  1138. function MateController:on14943( )
  1139. local scmd = SCMD14943.New(true)
  1140. if scmd.res == 1 then
  1141. self.model:Fire(MateConst.ANS_PUBLISH_FIND_FRIEND)
  1142. self.model:Fire(MateConst.REQ_FIND_FRIEND_DATA)
  1143. self.model:Fire(MateConst.OPEN_FIND_FRIEND_TIP,nil,true)
  1144. else
  1145. ErrorCodeShow(scmd.res)
  1146. end
  1147. end
  1148. --拍照 发出邀请
  1149. function MateController:on14945( )
  1150. local scmd = SCMD14943.New(true)
  1151. if scmd.res == 1 then
  1152. Message.show("操作成功")
  1153. else
  1154. ErrorCodeShow(scmd.res)
  1155. end
  1156. end
  1157. --拍照 收到的邀请信息
  1158. function MateController:on14946( )
  1159. local scmd = SCMD14946.New(true)
  1160. -- s2c{
  1161. -- list:array{
  1162. -- role:rec_picture // 头像
  1163. -- position_id :int8 // 地点id
  1164. -- }
  1165. -- }
  1166. end
  1167. --拍照 回应邀请
  1168. function MateController:on14947( )
  1169. local scmd = SCMD14947.New(true)
  1170. -- c2s{
  1171. -- role_id:int64 // 邀请者id
  1172. -- position_id :int8 // 地点id,用来校验一下
  1173. -- res:int8 // 1同意|2拒绝
  1174. -- }
  1175. -- s2c{
  1176. -- code:int32 // 错误码
  1177. -- role_id:int64 // 邀请者id
  1178. -- res:int8 // 1同意|2拒绝
  1179. -- // 同意邀请会广播14948
  1180. -- }
  1181. end
  1182. --拍照 活动信息
  1183. function MateController:on14948( )
  1184. local scmd = SCMD14948.New(true)
  1185. self.model:SetPhotoActInfo( scmd )
  1186. end
  1187. --拍照 准备
  1188. function MateController:on14949( )
  1189. local scmd = SCMD14949.New(true)
  1190. if scmd.code == 1 then
  1191. Message.show("操作成功~")
  1192. else
  1193. ErrorCodeShow(scmd.code)
  1194. end
  1195. end
  1196. --拍照 拍照
  1197. function MateController:on14950( )
  1198. local scmd = SCMD14950.New(true)
  1199. end
  1200. --拍照 结算
  1201. function MateController:on14951( )
  1202. local scmd = SCMD14951.New(true)
  1203. -- if scmd.num > 0 then
  1204. -- local function call_back( )
  1205. -- self:CheckRed()
  1206. -- end
  1207. -- if not self.matephotoresultview then
  1208. -- self.matephotoresultview = MateGameResultView.New()
  1209. -- self.matephotoresultview:Open(MateConst.GameActId.Photo,scmd,call_back)
  1210. -- end
  1211. -- end
  1212. end
  1213. --拍照 取消游戏
  1214. function MateController:on14952( )
  1215. local scmd = SCMD14952.New(true)
  1216. -- self.model:SetPhotoActInfo( false )
  1217. end
  1218. --############## 羁绊-日常 日常任务 ##############
  1219. function MateController:on14953( )
  1220. local scmd = SCMD14953.New(true)
  1221. -- print("==WQ==:SCMD14953 [start:1275] scmd:", scmd)
  1222. -- PrintTable(scmd)
  1223. -- print("==WQ==:MateController [end]")
  1224. self.model:SetMateDailyListInfo(scmd)
  1225. self.model:Fire(MateConst.UPDATE_MATE_DAILY_LIST_VIEW)
  1226. self:CheckRed( )
  1227. end
  1228. --############## 羁绊-日常 更新任务进度 ##############
  1229. function MateController:on14954( )
  1230. local scmd = SCMD14954.New(true)
  1231. self.model:UpdateMateDailyState(scmd)
  1232. self.model:Fire(MateConst.UPDATE_MATE_DAILY_LIST_VIEW)
  1233. self:CheckRed( )
  1234. end
  1235. --############## 羁绊-日常 领取任务奖励 ##############
  1236. function MateController:on14955( )
  1237. local scmd = SCMD14955.New(true)
  1238. if scmd.code == 1 then
  1239. --更新任务进度状态
  1240. self.model:UpdateMateDailyRewardState(scmd)
  1241. self.model:Fire(MateConst.UPDATE_MATE_DAILY_LIST_VIEW)
  1242. self:CheckRed( )
  1243. else
  1244. ErrorCodeShow(scmd.code)
  1245. end
  1246. end
  1247. function MateController:SetGameCamera( data_role )
  1248. do return end
  1249. --已经不需要屏蔽了
  1250. data_role = data_role or {}
  1251. self:RemoveTimeClock()
  1252. self:ResetShowRole()
  1253. local dir = co.Vector2(0,-1)--面向屏幕
  1254. local main_role = Scene.Instance:GetMainRole()
  1255. if not main_role then return end
  1256. MainCamera.Instance:SetMateCamera(main_role.real_pos.x,main_role.real_pos.y)
  1257. local index = 1
  1258. local function clockFun()
  1259. -- if TableSize(self.model_set_list) == 2 or index >= 50 then
  1260. -- self:RemoveTimeClock()
  1261. -- end
  1262. for k,v in pairs(data_role) do
  1263. local role_vo = Scene.Instance:GetRole(v)
  1264. -- if role_vo and not self.model_set_list[v] then
  1265. if role_vo then
  1266. role_vo:SetModelHideFlag(SceneObj.ModelHideFlag.BlockHide, true)
  1267. self.model_set_list[v] = true
  1268. end
  1269. end
  1270. index = index + 1
  1271. end
  1272. self.close_time_face_id = self.close_time_face_id or GlobalTimerQuest:AddPeriodQuest(clockFun, 0.5, -1)
  1273. end
  1274. function MateController:RemoveTimeClock( )
  1275. if self.close_time_face_id then
  1276. GlobalTimerQuest:CancelQuest(self.close_time_face_id)
  1277. self.close_time_face_id = nil
  1278. end
  1279. end
  1280. function MateController:ResetShowRole( )
  1281. --已经不需要屏蔽了
  1282. do return end
  1283. self.model_set_list = self.model_set_list or {}
  1284. for k,v in pairs(self.model_set_list) do
  1285. local role_vo = Scene.Instance:GetRole(k)
  1286. if role_vo then
  1287. role_vo:SetModelHideFlag(SceneObj.ModelHideFlag.BlockHide, false)
  1288. end
  1289. end
  1290. self.model_set_list = {}
  1291. end
  1292. function MateController:CheckRed(force_check)
  1293. local function MateControllerCheckRedDot( )
  1294. local red = false
  1295. if GetModuleIsOpen( 149 ) then
  1296. -- 有的红点需要判断是否完成前置任务
  1297. local is_finish_all_pre_task = self.model:IsFinishAllMarriageTask( 3 )
  1298. self.model:GetGameRedDot(true)
  1299. self.model:GetShipRedDot(true)
  1300. self.model:GetMarkRedDot(true)
  1301. self.model:GetGiftRedDot(true)
  1302. -- 以下两个红点得做完前置才需要显示
  1303. local mark_red = self.model:GetMarkRedDot(false) and is_finish_all_pre_task
  1304. local gift_red = self.model:GetGiftRedDot(false) and is_finish_all_pre_task
  1305. red = self.model:GetShipRedDot(false) or mark_red or self.model:GetTaskRedDot() or gift_red
  1306. local basic_data = self.model:GetBasicInfo( )
  1307. if basic_data and (TableSize(basic_data) > 0) then
  1308. --判断是否有伙伴影响羁绊游戏红点
  1309. red = red or self.model:GetGameRedDot(false)
  1310. end
  1311. --羁绊日常红点
  1312. local mate_daily_red = self.model:GetMateDailyRed(true)
  1313. red = red or mate_daily_red
  1314. --首次结成羁绊一次性红点
  1315. local mate_first_get_friend_red = self.model:GetFirstGetFriendRed()
  1316. red = red or mate_first_get_friend_red
  1317. --商店红点
  1318. local mate_shop_red = self.model:GetMateShopRed(true)
  1319. red = red or mate_shop_red
  1320. end
  1321. GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 8, red)
  1322. self.model:Fire(MateConst.RedDotRefresh)
  1323. end
  1324. if force_check then
  1325. MateControllerCheckRedDot()
  1326. else
  1327. TimeManager.GetInstance():StartTime("MateControllerRedDot", 0.5, MateControllerCheckRedDot)
  1328. end
  1329. end
  1330. function MateController:CheckTaskRed( )
  1331. --任务更新,比较频繁就单独拿出来
  1332. local function check_call( )
  1333. --任务图标以及红点
  1334. local red = false
  1335. if GetModuleIsOpen( 149 ) then
  1336. red = self.model:GetShipRedDot(false) or self.model:GetMarkRedDot(false) or self.model:GetTaskRedDot()
  1337. local basic_data = self.model:GetBasicInfo( )
  1338. if basic_data and (TableSize(basic_data) > 0) then
  1339. --判断是否有伙伴影响羁绊游戏红点
  1340. red = red or self.model:GetGameRedDot(false)
  1341. end
  1342. end
  1343. GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 8, red)
  1344. self.model:Fire(MateConst.RedDotRefresh)
  1345. end
  1346. TimeManager.GetInstance():StartTime("MateControllerCheckTaskRed", 1, check_call)
  1347. end
  1348. function MateController:ShowMateAdView(bool, use_close_anim, use_close_timer)
  1349. if bool then
  1350. if not self.MateAdView then
  1351. self.MateAdView = MateAdView.New()
  1352. end
  1353. self.MateAdView:Open(use_close_anim, use_close_timer)
  1354. else
  1355. if self.MateAdView then
  1356. self.MateAdView:Close()
  1357. end
  1358. self.MateAdView = nil
  1359. end
  1360. end