源战役客户端
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.

143 lines
5.1 KiB

  1. require("game.shape.ShapeModel")
  2. require("game.shape.view.ShapeBaseView")
  3. require("game.shape.view.ShapeView")
  4. require("game.shape.view.ShapeTabItem")
  5. require("game.shape.view.ShapeAttrItem")
  6. require("game.shape.view.ShapeSkinBtnItem")
  7. require("game.shape.view.ShapeSuccessView")
  8. ShapeController = ShapeController or BaseClass(BaseController, true)
  9. local ShapeController = ShapeController
  10. function ShapeController:__init()
  11. ShapeController.Instance = self
  12. self.model = ShapeModel:GetInstance()
  13. self:AddEvents()
  14. self:RegisterAllProtocal()
  15. end
  16. function ShapeController:__delete()
  17. end
  18. function ShapeController:RegisterAllProtocal( )
  19. local register_cfg = {
  20. [14610] = {--进阶珍宝
  21. req_event_data = {ShapeModel.REQ_BASE_INFO,"c"},req_func = false,
  22. handler = function(self,scmd)
  23. self.model:SetBaseData(scmd)
  24. self.model:Fire(ShapeModel.ANS_BASE_INFO)
  25. self:CheckRedDot()
  26. end,
  27. },
  28. [14611] = {--激活升星
  29. -- type_id,id,opty
  30. req_event_data = {ShapeModel.REQ_UP_OR_ACTIVE,"chc"},req_func = false,
  31. handler = function(self,scmd)
  32. if scmd.result == 1 then
  33. local is_succ = self.model:RefreshOneData(scmd.type,scmd.id,"star",scmd.star)
  34. -- if not is_succ then
  35. self.model:Fire(ShapeModel.REQ_BASE_INFO,scmd.type)
  36. -- end
  37. self.model:Fire(ShapeModel.ANS_UP_OR_ACTIVE,scmd.type,scmd.id,scmd.star)
  38. -------------------------
  39. if scmd.opty == 1 then
  40. Message.show("升星成功~")
  41. else
  42. Message.show("激活成功~")
  43. self.model:Fire(ShapeModel.REQ_CHANGE_SKIN, scmd.type, scmd.id, scmd.star)
  44. end
  45. self.model:Fire(ShapeModel.OPEN_SUCCESS_VIEW,scmd.type,scmd.id,scmd.star)
  46. self:CheckRedDot()
  47. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  48. else
  49. ErrorCodeShow(scmd.result)
  50. end
  51. end,
  52. },
  53. [14612] = {--珍宝幻化协议
  54. --type_id,display
  55. req_event_data = {ShapeModel.REQ_CHANGE_SKIN,"chh"},req_func = false,
  56. handler = function(self,scmd)
  57. if scmd.result == 1 then
  58. if scmd.display == 0 then
  59. Message.show("取消幻化成功~")
  60. else
  61. Message.show("幻化成功~")
  62. end
  63. local is_succ = self.model:RefreshSkinUsing(scmd.type,scmd.skin,scmd.star)
  64. if not is_succ then
  65. self.model:Fire(ShapeModel.REQ_BASE_INFO,scmd.type)
  66. end
  67. self.model:Fire(ShapeModel.ANS_CHANGE_SKIN)
  68. GlobalEventSystem:Fire(EventName.PLAY_UI_EFFECT_SOUND,LuaSoundManager.SOUND_UI.SUCCESS)
  69. else
  70. ErrorCodeShow(scmd.result)
  71. end
  72. end,
  73. },
  74. }
  75. self:RegisterProtocalByCFG(register_cfg)
  76. local function OPEN_BASE_VIEW( open_type, sub_id )
  77. local open_lv, open_data = GetModuleOpenLevel(146,open_type,true)
  78. if not GetModuleIsOpen(146,open_type,true) then
  79. local str = "该功能未开启"
  80. if open_lv and RoleManager.Instance.mainRoleInfo.level < open_lv then
  81. str = "该功能"..open_lv.."级开启"
  82. end
  83. Message.show(str)
  84. return
  85. end
  86. -------------------------
  87. if not self.shapebaseview then
  88. self.shapebaseview = ShapeBaseView.New()
  89. self.shapebaseview:Open(open_type,sub_id)
  90. else
  91. self.shapebaseview:ReOpen(open_type,sub_id)
  92. end
  93. end
  94. self.model:Bind(ShapeModel.OPEN_BASE_VIEW,OPEN_BASE_VIEW)
  95. local function OPEN_SUCCESS_VIEW( type_id,id,star )
  96. print('----LZR ShapeController.lua 92-- type_id,id,star=',type_id,id,star)
  97. if not self.shapesuccessview then
  98. self.shapesuccessview = ShapeSuccessView.New()
  99. self.shapesuccessview:Open(type_id,id,star)
  100. end
  101. end
  102. self.model:Bind(ShapeModel.OPEN_SUCCESS_VIEW,OPEN_SUCCESS_VIEW)
  103. end
  104. function ShapeController:AddEvents()
  105. local function on_game_start()
  106. self.model:Reset()
  107. local function delay( )
  108. if GetModuleIsOpen(146,9) then
  109. for k,v in pairs(self.model:GetUnlockType()) do
  110. self.model:Fire(ShapeModel.REQ_BASE_INFO, k)
  111. end
  112. end
  113. end
  114. setTimeout(delay,1)
  115. end
  116. GlobalEventSystem:Bind(EventName.GAME_START, on_game_start)
  117. local function onLevelChange( level )
  118. if GetModuleOpenLevel( 146,9,true ) == level then
  119. for k,v in pairs(self.model:GetUnlockType()) do
  120. self.model:Fire(ShapeModel.REQ_BASE_INFO, k)
  121. end
  122. end
  123. end
  124. RoleManager:getInstance().mainRoleInfo:Bind(EventName.CHANGE_LEVEL, onLevelChange)
  125. end
  126. function ShapeController:CheckRedDot( )
  127. local function call_backack( )
  128. local bool_1 = self.model:CheckRedDot(true)
  129. GlobalEventSystem:Fire(EventName.SHOW_FUNCTION_RED_POINT, 14609, bool_1)
  130. self.model:Fire(ShapeModel.RedDotRefresh)
  131. end
  132. TimeManager.GetInstance():StartTime("ShapeController_CheckRedDot", 0.5, call_backack)
  133. end