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

97 lines
3.0 KiB

  1. PsionicAdvanceBreakTabItem = PsionicAdvanceBreakTabItem or BaseClass(BaseItem)
  2. local PsionicAdvanceBreakTabItem = PsionicAdvanceBreakTabItem
  3. function PsionicAdvanceBreakTabItem:__init(parent_wnd,prefab_asset,layer_name)
  4. self.base_file = "psionic"
  5. self.layout_file = "PsionicAdvanceBreakTabItem"
  6. self.parent_wnd = parent_wnd
  7. self.layer_name = layer_name
  8. self.model = PsionicModel:getInstance()
  9. self.tab_icon_data = {
  10. [1] = {content = "全部", },
  11. [2] = {content = "圣书", },
  12. [3] = {content = "圣球", },
  13. [4] = {content = "圣杯", },
  14. [5] = {content = "圣冠", },
  15. }
  16. self.is_selected = false
  17. self:Load()
  18. end
  19. function PsionicAdvanceBreakTabItem:Load_callback()
  20. local nodes = {
  21. "selected:obj",
  22. "bg/tab_red:obj",
  23. "bg:obj:img", "bg/tab_name:tmp", "bg/tab_icon:img",
  24. }
  25. self:GetChildren(nodes)
  26. self:AddEvents()
  27. if self.need_refreshData then
  28. self:UpdateView()
  29. end
  30. end
  31. function PsionicAdvanceBreakTabItem:AddEvents( )
  32. local function click_event(target)
  33. if target == self.bg_obj then
  34. if self.click_callback then
  35. self.click_callback(self.index)
  36. end
  37. end
  38. end
  39. AddClickEvent(self.bg_obj, click_event)
  40. local function update_break_tab_red(tab_id)
  41. if not tab_id or tab_id == PsionicConst.TabId.PBreak then
  42. self:UpdateBreakTabRed()
  43. end
  44. end
  45. self:BindEvent(self.model, PsionicConst.UPDATE_RED_BY_TABID, update_break_tab_red)
  46. end
  47. -- index:这里需要特殊处理
  48. function PsionicAdvanceBreakTabItem:SetData(index, click_callback)
  49. self.index = index
  50. self.click_callback = click_callback
  51. if self.is_loaded then
  52. self.need_refreshData = false
  53. self:UpdateView()
  54. else
  55. self.need_refreshData = true
  56. end
  57. end
  58. function PsionicAdvanceBreakTabItem:UpdateView( )
  59. -- 按钮底图
  60. -- lua_resM:setImageSprite(self, self.bg_img, "psionic_asset", self.index == 1 and "ps_break_tab_bg1" or "ps_break_tab_bg2")
  61. -- 按钮图标
  62. lua_resM:setImageSprite(self, self.tab_icon_img, "psionic_asset", "ps_break_tab_icon" .. (self.index - 1), true)
  63. self.tab_name_tmp.text = self.tab_icon_data[self.index].content
  64. self:SetSelected(self.is_selected)
  65. self:UpdateBreakTabRed()
  66. end
  67. -- 更新页签红点
  68. function PsionicAdvanceBreakTabItem:UpdateBreakTabRed( )
  69. if self.index > 1 then -- 第一个tab没有红点
  70. local bool = self.model:GetPsionicBreakSlotRed(self.index + 2) -- 此处需要+2映射
  71. self.tab_red_obj:SetActive(bool)
  72. else
  73. self.tab_red_obj:SetActive(false)
  74. end
  75. end
  76. function PsionicAdvanceBreakTabItem:SetSelected(bool)
  77. self.is_selected = bool
  78. if self.is_loaded then
  79. lua_resM:setImageSprite(self, self.bg_img, "psionic_asset", self.is_selected and "ps_break_tab_bg1" or "ps_break_tab_bg2", true)
  80. -- self.selected_obj:SetActive(self.is_selected)
  81. end
  82. end
  83. function PsionicAdvanceBreakTabItem:__delete( )
  84. end