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

123 rivejä
3.7 KiB

1 kuukausi sitten
  1. GuildEventTabItem = GuildEventTabItem or BaseClass(BaseItem)
  2. local GuildEventTabItem = GuildEventTabItem
  3. function GuildEventTabItem:__init(parent_wnd,prefab_asset,layer_name)
  4. self.base_file = "guild"
  5. self.layout_file = "GuildEventTabItem"
  6. self.parent_wnd = parent_wnd
  7. self.layer_name = layer_name
  8. self.is_selected = false
  9. self.model = GuildModel:getInstance()
  10. self:Load()
  11. end
  12. function GuildEventTabItem:Load_callback()
  13. self.nodes = {
  14. "bg:obj:img", "selected:obj", "reddot:obj",
  15. "time:tmp",
  16. "closed_flag:obj",
  17. }
  18. self:GetChildren(self.nodes)
  19. self:AddEvents()
  20. if self.need_refreshData then
  21. self:UpdateView()
  22. end
  23. end
  24. function GuildEventTabItem:AddEvents( )
  25. local function click_event(target)
  26. if target == self.bg_obj then
  27. if self.call_back and self.data then
  28. self.call_back(self.data, self.index)
  29. end
  30. end
  31. end
  32. AddClickEvent(self.bg_obj, click_event, LuaSoundManager.SOUND_UI.SWITCH)
  33. local function update_tab_red()
  34. self:UpdateTabRed()
  35. end
  36. self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, update_tab_red)
  37. end
  38. function GuildEventTabItem:UpdateView( )
  39. --加载背景图
  40. local tab_res = GuildModel.EventTabRes[self.data.module_id .. "@" .. self.data.module_sub]
  41. if self.data.module_id == 406 then
  42. tab_res = GuildModel.EventTabRes[self.data.module_id .. "@" .. self.data.ac_sub]
  43. end
  44. lua_resM:setImageSprite(self,self.bg_img,"guildExtra1_asset",tab_res)
  45. -- -- 活动名称
  46. -- self.event_name_txt.text = self.data.name
  47. -- -- 拆分活动时间字串,获得活动开始时间
  48. -- local time_info = Split(self.data.time_str, "~")
  49. -- self.time_tmp.text = time_info[1].."进行"
  50. self.is_selected = self.model.select_tab_index == self.index
  51. self:SetSelected(self.is_selected)
  52. self:UpdateTabRed()
  53. self:SetGray(self.index < self.activity_index)
  54. end
  55. function GuildEventTabItem:UpdateTabRed( )
  56. if not self.data then return end
  57. local key = self.data.module_id .. "@" .. self.data.module_sub
  58. if self.data.module_id == 406 then
  59. key = self.data.module_id .. "@" .. self.data.ac_sub
  60. end
  61. if self.data.module_id == 408 then--采集活动
  62. local s_h = Split((Split(self.data.time_str, "~")[1]),":")[1]
  63. local s_m = Split((Split(self.data.time_str, "~")[1]),":")[2]
  64. local round = self.model:GetActivityRound(s_h,s_m)
  65. key = self.data.module_id .. "@" .. round
  66. end
  67. local red_bool = self.model:GetGuildEventTabRed(key)
  68. -- self.reddot_obj:SetActive(red_bool)
  69. -- 2021.3.23 优化需求:社团活动页签不再给红点
  70. self.reddot_obj:SetActive(false)
  71. -- 拆分活动时间字串,获得活动开始时间
  72. if red_bool then
  73. self.time_tmp.text = "<#2CF86F>进行中</color>"
  74. else
  75. local time_info = Split(self.data.time_str, "~")
  76. self.time_tmp.text = time_info[1].."进行"
  77. end
  78. end
  79. --当前或接下来将要进行的活动,小于这个活动index的tabItem都要置灰处理
  80. function GuildEventTabItem:SetData( data, index, call_back,activity_index)
  81. self.data = data
  82. self.index = index
  83. self.call_back = call_back
  84. self.activity_index = activity_index or nil
  85. if self.is_loaded then
  86. self.need_refreshData = false
  87. self:UpdateView()
  88. else
  89. self.need_refreshData = true
  90. end
  91. end
  92. function GuildEventTabItem:SetSelected(bool)
  93. self.is_selected = bool
  94. if self.is_loaded then
  95. self.selected_obj:SetActive(self.is_selected)
  96. end
  97. end
  98. function GuildEventTabItem:SetGray(bool)
  99. SetImageGray(self.bg_img,bool)
  100. self.closed_flag_obj:SetActive(bool)
  101. end
  102. function GuildEventTabItem:__delete( )
  103. end