源战役客户端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

182 lignes
6.3 KiB

  1. SkillMainView = SkillMainView or BaseClass(BaseView)
  2. local SkillMainView = SkillMainView
  3. SkillMainView.Tab_list = {
  4. {id = Config.ConfigSkillUI.TabEnum.CareerSkill, tab_id = Config.ConfigSkillUI.TabEnum.CareerSkill, name = "职业技能", light_res = "icon_jn1_1", dark_res = "icon_jn1_2" },
  5. {id = Config.ConfigSkillUI.TabEnum.SpecialSkill, tab_id = Config.ConfigSkillUI.TabEnum.SpecialSkill, name = "特殊技能", light_res = "icon_bd1_1", dark_res = "icon_bd1_2"},
  6. {id = Config.ConfigSkillUI.TabEnum.LegendlSkill, tab_id = Config.ConfigSkillUI.TabEnum.LegendlSkill, name = "传说技能", light_res = "icon_jn1_1", dark_res = "icon_jn1_2" },
  7. }
  8. function SkillMainView:__init()
  9. self.base_file = "skillui"
  10. self.layout_file = "SkillMainView"
  11. self.layer_name = "UI"
  12. self.use_background = true
  13. self.hide_maincancas = true
  14. self.use_background = G_USING_BG
  15. self.skillui_model = SkillUIModel:getInstance()
  16. self.append_to_ctl_queue = true
  17. self.view_index = false
  18. self.blur_activity_bg = true
  19. self.use_show_anim = true
  20. self.use_hide_anim = true
  21. self.show_tabs = {}
  22. self.tab_name_list = {}
  23. self.contaner_list = {}
  24. local open_day = ServerTimeModel:getInstance():GetOpenServerDay()
  25. local playerLv = RoleManager:getInstance():GetMainRoleVo().level
  26. local turn = RoleManager:getInstance():GetMainRoleVo().turn
  27. for i, v in ipairs(SkillMainView.Tab_list) do
  28. local config = Config.ConfigSkillUI.Tab[v.tab_id]
  29. if config and config.open_level <= playerLv and config.open_day <= open_day then
  30. table.insert(self.show_tabs, v)
  31. table.insert(self.tab_name_list, v)
  32. end
  33. end
  34. self.load_callback = function ()
  35. self:LoadSuccess()
  36. self:InitEvent()
  37. end
  38. self.open_callback = function ()
  39. self:SeletedTabbar(self.oepn_index, true)
  40. end
  41. self.close_callback = function ()
  42. self:Remove()
  43. end
  44. end
  45. function SkillMainView:Open(index,select_up_skill)
  46. self.oepn_index = index or 1
  47. self.select_up_skill = select_up_skill
  48. for index, v in ipairs(self.show_tabs) do
  49. if self.oepn_index == v.tab_id then
  50. self.oepn_index = index
  51. break
  52. end
  53. end
  54. BaseView.Open(self)
  55. end
  56. function SkillMainView:Remove()
  57. if self.refresh_red_point_id then
  58. self.skillui_model:UnBind(self.refresh_red_point_id)
  59. self.refresh_red_point_id = nil
  60. end
  61. for i, view in pairs(self.contaner_list) do
  62. view:DeleteMe()
  63. end
  64. if self.tabWindowComponent then
  65. self.tabWindowComponent:DeleteMe()
  66. self.tabWindowComponent = nil
  67. end
  68. self.contaner_list = nil
  69. if self.base_view then
  70. self.base_view:DeleteMe()
  71. self.base_view = nil
  72. end
  73. if self.config_view then
  74. self.config_view:DeleteMe()
  75. self.config_view = nil
  76. end
  77. if self.special_view then
  78. self.special_view:DeleteMe()
  79. self.special_view = nil
  80. end
  81. end
  82. function SkillMainView:LoadSuccess()
  83. self.winCon = self:GetChild("winCon")
  84. local select_callback = function(index)
  85. self:SeletedTabbar(index)
  86. self:ShowTabRedPointState()
  87. end
  88. local closeWin_callback = function()
  89. self:Close()
  90. end
  91. self.tabWindowComponent = UITabWindow.New(self.transform,self.tab_name_list,select_callback,closeWin_callback,self.background_wnd,self.winCon, UITabWindow.SizeSmallHall, false,nil,true)
  92. self.tabWindowComponent:SetBackgroundRes("skill_main_bg")
  93. self.tabWindowComponent:SetTitleText("技能")
  94. end
  95. function SkillMainView:SeletedTabbar(index, force)
  96. if self.select_index == index and not force then
  97. return
  98. end
  99. local tab_info = Config.ConfigSkillUI.Tab[self.show_tabs[index].tab_id]
  100. local turn = RoleManager:getInstance():GetMainRoleVo().turn
  101. if turn < tab_info.turn then
  102. self.select_index = self.select_index or 1
  103. Message.show("达成传说职业后可解锁!")
  104. else
  105. self.select_index = index
  106. end
  107. if self.tabWindowComponent ~= nil then
  108. self.tabWindowComponent:SetTabBarIndex(self.select_index)
  109. self:UpdateView()
  110. end
  111. end
  112. function SkillMainView:InitEvent()
  113. local function RedDotRefresh( )
  114. self:ShowTabRedPointState()
  115. end
  116. self:BindEvent(self.skillui_model, SkillUIModel.UPDATE_TAB_DOT, RedDotRefresh)
  117. local function onGetSkillShortCut( )
  118. self:UpdateView()
  119. end
  120. self:BindEvent(GlobalEventSystem, EventName.GET_SKILL_SHORTCUT, onGetSkillShortCut)
  121. end
  122. function SkillMainView:UpdateView()
  123. local index = self.tabWindowComponent:GetCurrentSelectIndex()
  124. if not self.show_tabs[index] then return end
  125. if not self.base_view then
  126. self.base_view = CareerSkillView.New(self.winCon, nil, self.layer_name)
  127. end
  128. self.base_view:SetVisible(true)
  129. self:ResetView()
  130. local tab_id = self.show_tabs[index].tab_id
  131. if tab_id == Config.ConfigSkillUI.TabEnum.CareerSkill then
  132. self.base_view:SetData(self.skillui_model:GetAllCareerSkillList(), tab_id, SkillUIDetailItem.UIType.PreViewMode, self.select_up_skill)
  133. elseif tab_id == Config.ConfigSkillUI.TabEnum.SpecialSkill then
  134. self.base_view:SetData(self.skillui_model:GetAllSpecialSkillList(), tab_id, SkillUIDetailItem.UIType.PreViewMode, self.select_up_skill)
  135. elseif tab_id == Config.ConfigSkillUI.TabEnum.LegendlSkill then
  136. self.base_view:SetData(self.skillui_model:GetAllLegendlSkillSkillList(), tab_id, SkillUIDetailItem.UIType.PreViewMode, self.select_up_skill)
  137. end
  138. self.select_up_skill = false
  139. end
  140. function SkillMainView:ShowTabRedPointState()
  141. self.tabWindowComponent:ShowRedPoint(Config.ConfigSkillUI.TabEnum.CareerSkill,self.skillui_model:CheckSkillRedDot( false,Config.ConfigSkillUI.TabEnum.CareerSkill ))
  142. self.tabWindowComponent:ShowRedPoint(Config.ConfigSkillUI.TabEnum.SpecialSkill,self.skillui_model:CheckSkillRedDot( false,Config.ConfigSkillUI.TabEnum.SpecialSkill ))
  143. self.tabWindowComponent:ShowRedPoint(Config.ConfigSkillUI.TabEnum.LegendlSkill,self.skillui_model:CheckSkillRedDot( false,Config.ConfigSkillUI.TabEnum.LegendlSkill ))
  144. end
  145. function SkillMainView:ResetView()
  146. if self.config_view then
  147. self.config_view:SetVisible(false)
  148. end
  149. if self.special_view then
  150. self.special_view:SetVisible(false)
  151. end
  152. end