源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

232 行
7.2 KiB

  1. ChildHandbookViewNew = ChildHandbookViewNew or BaseClass(BaseView)
  2. local ChildHandbookViewNew = ChildHandbookViewNew
  3. function ChildHandbookViewNew:__init()
  4. self.base_file = "child"
  5. self.layout_file = "ChildHandbookViewNew"
  6. self.layer_name = "UI"
  7. self.destroy_imm = true
  8. self.use_background = G_USING_BG --全屏界面默认使用这个参数
  9. self.hide_maincancas = true --全屏界面需要放开隐藏主UI
  10. self.change_scene_close = true
  11. self.append_to_ctl_queue = false --是否要添加进界面堆栈
  12. self.need_show_money = false --是否要显示顶部的金钱栏
  13. self.blur_activity_bg = true
  14. self.model = ChildModel:getInstance()
  15. self.suit_tab_item_list = {}
  16. self.handbook_item_list = {}
  17. self.select_tab_item = nil
  18. self.select_item = nil --
  19. self.send_16536_Item_data = nil --吧发送的那个item记录下来,刷新的时候可以对比是否选中
  20. self.fire_change_visible_event = true
  21. self.load_callback = function ()
  22. self:LoadSuccess()
  23. self:AddEvent()
  24. end
  25. self.open_callback = function ( )
  26. self:OpenSuccess()
  27. end
  28. self.switch_callback = function(index)
  29. self:SwitchTab(index)
  30. end
  31. self.destroy_callback = function ( )
  32. self:DestroySuccess()
  33. end
  34. end
  35. function ChildHandbookViewNew:Open( )
  36. --self.data = data
  37. BaseView.Open(self)
  38. end
  39. function ChildHandbookViewNew:LoadSuccess()
  40. local nodes = {
  41. "left/ScrollView_item/Viewport/Content_item",
  42. "mid/ScrollView_handbook_item/Viewport/Content_handbook_item",
  43. "mid/btn_break:obj", "mid/btn_reward:obj",
  44. "mid/btn_reward/btn_reward_red_dot:obj",
  45. "mid/btn_break/btn_break_red_dot:obj",
  46. "mid/btn_up:obj", "mid/btn_up/btn_up_red_dot:obj","bg:raw",
  47. "close:obj",
  48. }
  49. self:GetChildren(nodes)
  50. self:UpdateBaseView( )
  51. end
  52. function ChildHandbookViewNew:UpdateBaseView( )
  53. self.levelUpAwardItem = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.item_parent)
  54. lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("child_hankbook_bg_1173_683"))
  55. -- local close_callback = function()
  56. -- self:Close()
  57. -- end
  58. -- self.tab_win = UITabWindow.New(self.transform, nil, nil,
  59. -- close_callback, self.background_wnd, nil, UITabWindow.SizeSmallHallNoTab, false,nil,true)
  60. --self.tab_win:SetTitleRes("child_asset","child_title") --标题
  61. -- self.tab_win:SetBackgroundRes("child_hankbook_bg_1280_720")
  62. -- self.tab_win:SetTitleText("宝宝玩具")
  63. -- self.tab_win:ChangeShowFlag("Child")
  64. end
  65. function ChildHandbookViewNew:AddEvent()
  66. --红点更新
  67. local function updata_Child_RED_DOT_VIEW_fun(id)
  68. if id ~= ChildConst.TabId.ChildHandbook then return end
  69. self:UpdateRedDot()
  70. if self.select_tab_item then
  71. self:UpdateRedDotItem(self.select_tab_item.data.suit_type)
  72. end
  73. end
  74. self.updata_Child_RED_DOT_VIEW_id = self.model:Bind(ChildConst.Child_RED_DOT_VIEW, updata_Child_RED_DOT_VIEW_fun)
  75. -- 更新数据
  76. local function updata_child_dif_suit_info_fun(need_check_effect)
  77. self:SetViewListCon(self.select_tab_item.data.suit_type, need_check_effect)
  78. end
  79. self.updata_child_dif_suit_info = self.model:Bind(ChildConst.UPDATA_CHILD_HB_SUIT_INFO, updata_child_dif_suit_info_fun)
  80. local function onBtnClickHandler(target, x, y)
  81. if target == self.btn_break_obj then
  82. self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_BREAK_VIEW)
  83. elseif target == self.btn_reward_obj then
  84. self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_SUIT_REWARD_VIEW)
  85. elseif target == self.btn_up_obj then
  86. self.model:Fire(ChildConst.OPEN_CHILD_HANDBOOK_UPGRADE_VIEW)
  87. elseif target == self.close_obj then
  88. self:Close()
  89. end
  90. end
  91. AddClickEvent(self.btn_break_obj, onBtnClickHandler)
  92. AddClickEvent(self.btn_reward_obj, onBtnClickHandler)
  93. AddClickEvent(self.btn_up_obj, onBtnClickHandler)
  94. AddClickEvent(self.close_obj, onBtnClickHandler)
  95. end
  96. function ChildHandbookViewNew:OpenSuccess()
  97. self:UpdateView()
  98. end
  99. function ChildHandbookViewNew:UpdateView()
  100. local toy_suit_list = self.model:GetToySuitInfo()
  101. local function callback( item )
  102. for k,v in pairs(self.suit_tab_item_list) do
  103. v:SetChosen(false)
  104. end
  105. item:SetChosen(true)
  106. self:SetViewListCon(item.data.suit_type)
  107. self.select_tab_item = item
  108. end
  109. for k,v in pairs(toy_suit_list) do
  110. local item = self.suit_tab_item_list[k]
  111. if item == nil then
  112. item = ChildHandbookSuitItem.New(self.Content_item)
  113. self.suit_tab_item_list[k] = item
  114. end
  115. --local data = self.model:GetConfigChildSkillInfo(v.skill_id,v.skill_lv)
  116. self.suit_tab_item_list[k]:SetData(v,callback)
  117. if k == 1 then
  118. self:SetViewListCon(v.suit_type)
  119. self.select_tab_item = self.suit_tab_item_list[k]
  120. self.suit_tab_item_list[k]:SetChosen(true)
  121. end
  122. end
  123. self:UpdateRedDot()
  124. end
  125. function ChildHandbookViewNew:UpdateRedDot( )
  126. local red_dot_list = self.model:GetRedDotChildHandbook()
  127. --logWarn('=======Msh:ChildHandbookViewNew.lua[138]=======')
  128. --PrintTable(red_dot_list)
  129. -- 页签红点
  130. for k,v in pairs(self.suit_tab_item_list) do --tab
  131. v:SetRedDot(false)
  132. for k,v_red in pairs(red_dot_list.active_list ) do
  133. if v_red.suit_type == v.data.suit_type then
  134. v:SetRedDot(true)
  135. end
  136. end
  137. end
  138. self.btn_reward_red_dot_obj:SetActive(TableSize(red_dot_list.suit_reward_list) > 0)
  139. self.btn_break_red_dot_obj:SetActive(red_dot_list.is_can_break)
  140. -- 材料
  141. self.btn_up_red_dot_obj:SetActive(red_dot_list.is_level_up)
  142. end
  143. function ChildHandbookViewNew:UpdateRedDotItem(suit_type)
  144. local red_dot_list = self.model:GetRedDotChildHandbook()
  145. for k,v in pairs(self.handbook_item_list) do
  146. v:SetRedDot(false)
  147. for k,v_red in pairs(red_dot_list.active_list) do
  148. if v_red.toy_id == v.data.toy_id and v_red.suit_type == suit_type then
  149. v:SetRedDot(true)
  150. end
  151. end
  152. end
  153. end
  154. function ChildHandbookViewNew:SetViewListCon( suit_type, check_effect )
  155. local handbook_list = self.model:GetSuitToyList(suit_type)
  156. if not handbook_list then return end
  157. for k,v in pairs(handbook_list) do
  158. local item = self.handbook_item_list[k]
  159. if item == nil then
  160. item = ChildHandbookItem.New(self.Content_handbook_item)
  161. self.handbook_item_list[k] = item
  162. end
  163. self.handbook_item_list[k]:SetData(v, check_effect)
  164. self.handbook_item_list[k]:SetVisible(true)
  165. end
  166. for i=#handbook_list+1,#self.handbook_item_list do
  167. self.handbook_item_list[i]:SetVisible(false)
  168. end
  169. self:UpdateRedDotItem(suit_type)
  170. end
  171. function ChildHandbookViewNew:SwitchTab( index )
  172. end
  173. function ChildHandbookViewNew:DestroySuccess( )
  174. self.attr_item_list = {}
  175. for i, v in ipairs(self.suit_tab_item_list) do
  176. v:DeleteMe()
  177. v = nil
  178. end
  179. self.suit_tab_item_list = {}
  180. for i, v in ipairs(self.handbook_item_list) do
  181. v:DeleteMe()
  182. v = nil
  183. end
  184. self.handbook_item_list = {}
  185. if self.levelUpAwardItem then
  186. UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.levelUpAwardItem)
  187. self.levelUpAwardItem = nil
  188. end
  189. if self.updata_child_dif_suit_info then
  190. self.model:UnBind(self.updata_child_dif_suit_info)
  191. self.updata_child_dif_suit_info = nil
  192. end
  193. if self.updata_Child_RED_DOT_VIEW_id then
  194. self.model:UnBind(self.updata_Child_RED_DOT_VIEW_id)
  195. self.updata_Child_RED_DOT_VIEW_id = nil
  196. end
  197. -- if self.tab_win then
  198. -- self.tab_win:DeleteMe()
  199. -- self.tab_win = nil
  200. -- end
  201. end