源战役客户端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

218 líneas
8.7 KiB

  1. NewMainRoleView = NewMainRoleView or BaseClass(BaseView)
  2. local NewMainRoleView = NewMainRoleView
  3. NewMainRoleView.TabData = {
  4. {id = NewMainRoleModel.TabId.ROLE, name = "角色", abName = "newmainrole_asset", light_res = "newMainRole_tab_1", dark_res = "newMainRole_tab_1_gray", view = "RoleAttributeView",open_lv = 1},
  5. {id = NewMainRoleModel.TabId.Light, name = "幻光", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "LightSubView",open_lv = Config.Moduleid[147].open_lv,open_task = Config.Moduleid[147].task_id },
  6. -- {id = NewMainRoleModel.TabId.NATURE, name = "性格", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "NatureSubView",open_lv = Config.Moduleid[167].open_lv },
  7. {id = NewMainRoleModel.TabId.SOULPOWER, name = "魂力", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "SoulPowerView",open_lv = Config.Moduleid[144].open_lv },
  8. {id = NewMainRoleModel.TabId.REIN, name = "转职", abName = "newmainrole_asset", light_res = "newMainRole_tab_5", dark_res = "newMainRole_tab_5_gray", view = "ReinTaskView",open_lv = Config.Moduleid[164].open_lv },
  9. -- [3] = {id = 3, name = "神格", light_res = "icon_sg1_1", dark_res = "icon_sg1_2"},
  10. -- [4] = {id = 4, name = "法则", light_res = "icon_fz1_1", dark_res = "icon_fz1_2"},
  11. }
  12. function NewMainRoleView:__init()
  13. self.base_file = "newMainRole"
  14. self.layout_file = "NewMainRoleView"
  15. self.layer_name = "UI"
  16. self.destroy_imm = true
  17. self.use_background = G_USING_BG
  18. self.model_activity_bg = true -- 3d背景模式,带镜面反射,一级全屏界面才需要
  19. self.model_activity_bg_pos = Vector2(-308,30) -- 3d背景的偏移坐标,默认是居中的,如果你的模型不是居中的话就要调整坐标
  20. self.model_activity_bg_type = 2
  21. self.append_to_ctl_queue = true
  22. self.change_scene_close = true
  23. self.hide_maincancas = true
  24. self.close_fog = true
  25. self.fire_change_visible_event = true
  26. self.mainVo = RoleManager.Instance.mainRoleInfo
  27. self.model = NewMainRoleModel:getInstance()
  28. MateModel:GetInstance():Fire(MateConst.REQ_BASIC_INFO)--羁绊信息
  29. self:AddPreLoadList("reincarnation", {"ReinTaskScrollItem", "ReinTaskDataItem"})
  30. -- self:AddPreLoadList("reincarnation", {"ReinTaskDataItem"})
  31. self.current_index = false
  32. self.contaner_list = {}
  33. self.tab_name_list = {}
  34. self.load_callback = function ()
  35. self:LoadSuccess()
  36. self:AddEvent()
  37. end
  38. self.open_callback = function ( )
  39. self:OpenSuccess()
  40. self:SwitchTab(self.current_index or 1, true)
  41. self:ShowTabRedPointState()
  42. end
  43. self.switch_callback = function(index)
  44. self:SwitchTab(index)
  45. end
  46. self.close_win_callback = function ( )
  47. self:Close()
  48. end
  49. self.destroy_callback = function ( )
  50. self:DestroySuccess()
  51. end
  52. end
  53. function NewMainRoleView:GetRealIndex( index )
  54. index = index or 1
  55. return index
  56. end
  57. function NewMainRoleView:Open(index,sub_index,value)
  58. self.current_index = self:GetRealIndex(index)
  59. self.sub_index = sub_index
  60. self.value = value
  61. BaseView.Open(self)
  62. end
  63. function NewMainRoleView:ReOpen(index,sub_index,value)
  64. self.current_index = self:GetRealIndex(index)
  65. self.sub_index = sub_index
  66. self.value = value
  67. self:SwitchTab(self.current_index or 1, true)
  68. self:ShowTabRedPointState()
  69. end
  70. function NewMainRoleView:LoadSuccess()
  71. local nodes = {
  72. "winCon",
  73. }
  74. self:GetChildren(nodes)
  75. self.tabWindowComponent = UITabWindow.New(self.transform,NewMainRoleView.TabData,self.switch_callback,
  76. self.close_win_callback,self.background_wnd,self.winCon, UITabWindow.SizeLarge, false,nil,true)
  77. -- self.tabWindowComponent:SetTitleRes("newmainrole_asset", "newMainRole_title_1") --标题
  78. -- self.tabWindowComponent:SetBackgroundRes("default_bg_1")
  79. self.tabWindowComponent:SetTitleText( "角色" )
  80. self.tabWindowComponent:SetUIBack({target = self, bg1 = GameResPath.GetViewBigBg("default_bg_1")})
  81. end
  82. function NewMainRoleView:AddEvent()
  83. local function on_ans_update_red_dot()
  84. self:ShowTabRedPointState()
  85. end
  86. self:BindEvent(self.model, NewMainRoleModel.ANS_UPDATE_RED_DOT, on_ans_update_red_dot)
  87. local function on_close_new_main_role_view()
  88. self:Close()
  89. end
  90. self:BindEvent(self.model, NewMainRoleModel.CLOSE_NEW_MAIN_ROLE_VIEW, on_close_new_main_role_view)
  91. local function onGuideTrigger()
  92. self:AddToStageHandler()
  93. end
  94. self.guide_trigger_id = GlobalEventSystem:Bind(EventName.TRIGGER_GUIDE_TYPE,onGuideTrigger)
  95. end
  96. function NewMainRoleView:OpenSuccess()
  97. self:UpdateView()
  98. end
  99. function NewMainRoleView:SetRoleLevelName()
  100. if self.level_item == nil then
  101. self.level_item = self:CreateItem(RoleLevelItem, self.level_con)
  102. end
  103. self.level_item:SetData(self.mainVo.level, self.mainVo.turn, true, RoleLevelAlignType.MIDDLE, self.mainVo.name, "'#fffce5'", 22)
  104. end
  105. function NewMainRoleView:UpdateView()
  106. end
  107. function NewMainRoleView:SwitchTab( index, force )
  108. if self.current_index == index and not force then return end
  109. if self.tabWindowComponent ~= nil then
  110. self.tabWindowComponent:SetTabBarIndex(index)
  111. end
  112. local chile_view = self.contaner_list[index]
  113. if not chile_view then
  114. local viewModule = false
  115. for k,v in pairs(NewMainRoleView.TabData) do
  116. if v.id == tonumber(index) then
  117. viewModule = v
  118. break
  119. end
  120. end
  121. if viewModule then
  122. chile_view = self:CreateItem(_G[viewModule.view], self.winCon, self.layer_name)
  123. end
  124. self.contaner_list[index] = chile_view
  125. end
  126. if chile_view then
  127. if chile_view.SetData then
  128. chile_view:SetData(index, self.sub_index, self.value)
  129. end
  130. self:PopUpChild(chile_view)
  131. self.sub_index = nil--一般是用来跳转的 用完就置空了
  132. end
  133. self.current_index = index
  134. if index == NewMainRoleModel.TabId.ROLE then
  135. self.tabWindowComponent:SetBackgroundRes("default_bg_2")
  136. elseif index == NewMainRoleModel.TabId.Light then
  137. self.tabWindowComponent:SetBackgroundRes("default_bg_2")
  138. elseif index == NewMainRoleModel.TabId.NATURE then
  139. self.tabWindowComponent:SetBackgroundRes("default_bg_2")
  140. elseif index == NewMainRoleModel.TabId.REIN then
  141. self.tabWindowComponent:SetBackgroundRes("default_bg_2")
  142. end
  143. end
  144. function NewMainRoleView:DestroySuccess( )
  145. if self.refresh_dot_id then
  146. self.model:UnBind(self.refresh_dot_id)
  147. self.refresh_dot_id = nil
  148. end
  149. if self.guide_trigger_id then
  150. GlobalEventSystem:UnBind(self.guide_trigger_id)
  151. self.guide_trigger_id = nil
  152. end
  153. if self.tabWindowComponent then
  154. self.tabWindowComponent:DeleteMe()
  155. end
  156. self.tabWindowComponent = nil
  157. end
  158. function NewMainRoleView:ShowTabRedPointState()
  159. self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.Light, LightModel:GetInstance():GetLightAllRed(false))
  160. -- self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.NATURE, NatureModel:getInstance():GetNatureAllRed(true))
  161. self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.SOULPOWER, SoulPowerModel:getInstance():IsSoulPowerRed())
  162. self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.REIN, ReincarnationModel:getInstance():GetReinRed())
  163. self.tabWindowComponent:ShowRedPoint(NewMainRoleModel.TabId.ROLE, KfWorldModel:getInstance():GetRewardGetRed())
  164. end
  165. function NewMainRoleView:AddToStageHandler()
  166. local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_LIGHT,5)
  167. if not helpVo then return end
  168. local help_type = helpVo.help_type
  169. local step = helpVo.step
  170. local button = false
  171. if help_type == HelpType.TYPE_LIGHT and step == 5 then
  172. GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
  173. self:Close()
  174. -- button = self.tabWindowComponent and self.tabWindowComponent.win_close_btn
  175. end
  176. -- if button then
  177. -- local function call_back()
  178. -- self:Close()
  179. -- end
  180. -- GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, self.transform, call_back, helpVo, self.layout_file)
  181. -- end
  182. end
  183. function NewMainRoleView:Close()
  184. --完成引导
  185. local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.TYPE_LIGHT,5)
  186. if helpVo then
  187. if helpVo.step == 5 then
  188. GlobalEventSystem:Fire(EventName.FINISH_CURRENT_HELP_STEP,helpVo)
  189. end
  190. GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK)
  191. end
  192. BaseView.Close(self)
  193. end