源战役客户端
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

242 Zeilen
7.4 KiB

  1. BossHomeTabItem = BossHomeTabItem or BaseClass(BaseItem)
  2. local BossHomeTabItem = BossHomeTabItem
  3. BossHomeTabItem.Width = 264
  4. BossHomeTabItem.Height = 103
  5. function BossHomeTabItem:__init()
  6. self.base_file = "boss"
  7. self.layout_file = "BossHomeTabItem"
  8. self.model = BossHomeModel:getInstance()
  9. self.select_id = false
  10. self:Load()
  11. end
  12. function BossHomeTabItem:Load_callback()
  13. self.nodes = {
  14. "lb_time:tmp","img_tag:obj:img", "di_2:img", "light:obj",
  15. "mask:obj","icon:img","lb_killer:tmp","lb_name:tmp", "lb_lock_lv:tmp","di_time:obj",
  16. "img_lock:obj","red_dot:obj", "bg:img:obj","di_dai_1:obj", "di_dai_1/lb_dai_1:tmp",
  17. "img_peace:obj", "lock_lv_bg:obj",
  18. }
  19. self:GetChildren(self.nodes)
  20. self:AddEvents()
  21. if self.need_refreshData then
  22. self:UpdateView()
  23. end
  24. local function clockFun()
  25. if self.type == "boss_home" then
  26. self:UpdateBossHomeTimeInfo()
  27. else
  28. self:UpdateTimeInfo()
  29. end
  30. end
  31. self.close_time_id = self.close_time_id or GlobalTimerQuest:AddPeriodQuest(clockFun, 1, -1)
  32. end
  33. function BossHomeTabItem:AddEvents( )
  34. local function call_back( target )
  35. if target == self.bg_obj then
  36. if self.select_call and self.data then
  37. self.select_call(self.index,self.data.boss_id, self.data)
  38. end
  39. end
  40. end
  41. AddClickEvent(self.bg_obj,call_back,false)
  42. -- local function ANS_FOCUS_CHANGE( boss_id,op_type )
  43. -- if self.data and self.data.boss_id == boss_id then
  44. -- self.img_tag_obj:SetActive(op_type == 1)
  45. -- end
  46. -- end
  47. -- self:BindEvent(self.model, BossConst.ANS_FOCUS_CHANGE, ANS_FOCUS_CHANGE)
  48. end
  49. function BossHomeTabItem:UpdateView( )
  50. if (not self.data) or (not self.is_loaded) then return end
  51. -------------------------
  52. local monster_cfg = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id)
  53. if not monster_cfg then return end
  54. self.img_peace_obj:SetActive(self.data.is_peace == 1)
  55. local str_name = Trim(monster_cfg.name or "")
  56. self.lb_name_tmp.text = string.format( "LV.%s %s", (monster_cfg.lv or 0) , str_name)
  57. lua_resM:setOutsideImageSprite(self,self.icon_img,GameResPath.GetBossIcon(Trim(monster_cfg.icon)),true)
  58. if self.type == "boss_home" then
  59. lua_resM:setImageSprite(self,self.bg_img,'boss_asset',"boss_bg_47")
  60. self:UpdateBossHomeTimeInfo()
  61. local boss_data = self.model:GetBossHomeInfo( self.data.boss_id )
  62. -- local focus_status = boss_data and boss_data.is_focus or 0
  63. -- self.img_tag_obj:SetActive(focus_status == 1)
  64. else
  65. lua_resM:setImageSprite(self,self.bg_img,'boss_asset',"boss_bg_52")
  66. local boss_data = self.model:GetMoneyBossInfo( )[self.data.boss_id]
  67. -- local focus_status = boss_data and boss_data.is_focus or 0
  68. -- self.img_tag_obj:SetActive(focus_status == 1)
  69. self:UpdateTimeInfo()
  70. -------------------------
  71. --红点
  72. local red_first = false
  73. local my_lv = RoleManager.Instance.mainRoleInfo.level
  74. local limit_lv = self.model:GetMoneyBossLimitLv(self.data.boss_id)
  75. if my_lv >= limit_lv then
  76. for k,v in pairs(self.model:GetMoneyBossInfo()) do
  77. if v.boss_id == self.data.boss_id then
  78. red_first = v.kill_count == 0
  79. break
  80. end
  81. end
  82. end
  83. -------------------------
  84. self.red_dot_obj:SetActive(red_first)
  85. end
  86. self:UpdateLight()
  87. -------------------------
  88. if self.data.grade > 0 then
  89. self.lb_dai_1_tmp.text = string.format( "%s代" , Trim(self.data.grade) )
  90. self.di_dai_1_obj:SetActive(true)
  91. else
  92. self.di_dai_1_obj:SetActive(false)
  93. end
  94. end
  95. function BossHomeTabItem:UpdateBossHomeTimeInfo( )
  96. if not self.is_loaded then return end
  97. local ser_data = false
  98. for k,v in pairs(self.model:GetBossHomeInfo()) do
  99. if v.boss_id == self.data.boss_id then
  100. ser_data = v
  101. end
  102. end
  103. if not ser_data then return end
  104. local curTime = TimeUtil:getServerTime()
  105. local is_die = ser_data.reborn_time ~= 0 and ser_data.reborn_time > curTime
  106. self.is_die = is_die
  107. if not self.is_die then
  108. self.lb_time_tmp.text = ""
  109. self.di_time_obj:SetActive(false)
  110. else
  111. local temp = ser_data.reborn_time - curTime
  112. self.lb_time_tmp.text = string.format( "%s后复活", TimeUtil:convertTimeWithoutHour(temp) )
  113. self.di_time_obj:SetActive(true)
  114. end
  115. self:SetBgGray(self.is_die)
  116. self.mask_obj:SetActive( self.is_lock or self.is_die)
  117. if ser_data.killer == "" then
  118. self.lb_killer_tmp.text = "暂无击杀"
  119. --[[if self.is_die and (not self.is_lock) then
  120. self.lb_killer_tmp.text = HtmlColorTxt( "暂无击杀" , '#ffffff')
  121. else
  122. self.lb_killer_tmp.text = "暂无击杀"
  123. end--]]
  124. else
  125. self.lb_killer_tmp.text = ser_data.killer
  126. --[[if self.is_die and (not self.is_lock) then
  127. self.lb_killer_tmp.text = HtmlColorTxt( ser_data.killer , '#ffffff')
  128. else
  129. self.lb_killer_tmp.text = HtmlColorTxt( ser_data.killer , '#fdffc2')
  130. end--]]
  131. end
  132. end
  133. function BossHomeTabItem:UpdateTimeInfo( )
  134. if not self.is_loaded then return end
  135. -------------------------
  136. local ser_data = false
  137. for k,v in pairs(self.model:GetMoneyBossInfo()) do
  138. if v.boss_id == self.data.boss_id then
  139. ser_data = v
  140. end
  141. end
  142. if not ser_data then return end
  143. local curTime = TimeUtil:getServerTime()
  144. local is_die = ser_data.reborn_time ~= 0 and ser_data.reborn_time > curTime
  145. self.is_die = is_die
  146. if not self.is_die then
  147. self.lb_time_tmp.text = ""
  148. self.di_time_obj:SetActive(false)
  149. else
  150. local temp = ser_data.reborn_time - curTime
  151. self.lb_time_tmp.text = string.format( "%s后复活", TimeUtil:convertTimeWithoutHour(temp) )
  152. self.di_time_obj:SetActive(true)
  153. end
  154. -------------------------
  155. local limit_lv = self.model:GetMoneyBossLimitLv(self.data.boss_id)
  156. self.is_lock = RoleManager.Instance.mainRoleInfo.level < limit_lv
  157. -------------------------
  158. if self.is_lock then
  159. self.lb_time_tmp.text = ""
  160. self.di_time_obj:SetActive(false)
  161. self.lb_lock_lv_tmp.text = string.format( "%s解锁",WordManager:GetRoleLevel2(limit_lv,0,true) )
  162. -- self.img_tag_obj:SetActive(false)
  163. self.img_lock_obj:SetActive(true)
  164. self.lock_lv_bg_obj:SetActive(true)
  165. else
  166. self.lb_lock_lv_tmp.text = ""
  167. self.img_lock_obj:SetActive(false)
  168. self.lock_lv_bg_obj:SetActive(false)
  169. end
  170. self:SetBgGray(self.is_die and (not self.is_lock))
  171. self.mask_obj:SetActive( self.is_lock or self.is_die)
  172. -------------------------
  173. if ser_data.killer == "" then
  174. -- if self.is_die and (not self.is_lock) then
  175. -- self.lb_killer_tmp.text = "暂无击杀"
  176. -- else
  177. self.lb_killer_tmp.text = "暂无击杀"
  178. -- end
  179. else
  180. -- if self.is_die and (not self.is_lock) then
  181. -- self.lb_killer_tmp.text = ser_data.killer
  182. -- else
  183. self.lb_killer_tmp.text = ser_data.killer
  184. -- end
  185. end
  186. end
  187. function BossHomeTabItem:SetBgGray( bool )
  188. SetImageGray( self.di_2_img, bool )
  189. SetImageGray( self.icon_img, bool )
  190. end
  191. function BossHomeTabItem:UpdateLight( )
  192. if (not self.data) or (not self.is_loaded) then return end
  193. if self.data.boss_id == self.select_id then
  194. self.light_obj:SetActive(true)
  195. -- SetImageGray( self.di_icon_img, false )
  196. else
  197. self.light_obj:SetActive(false)
  198. -- SetImageGray( self.di_icon_img, self.is_die and (not self.is_lock) )
  199. end
  200. end
  201. function BossHomeTabItem:SetData( index,data,select_call,server_data, type )
  202. self.index = index
  203. self.data = data
  204. self.server_data = server_data or {}
  205. self.select_call = select_call
  206. self.type = type
  207. if self.is_loaded then
  208. self.need_refreshData = false
  209. self:UpdateView()
  210. else
  211. self.need_refreshData = true
  212. end
  213. end
  214. function BossHomeTabItem:SetSelect( select_id )
  215. self.select_id = select_id or self.select_id
  216. self:UpdateLight()
  217. end
  218. function BossHomeTabItem:__delete( )
  219. if self.close_time_id then
  220. GlobalTimerQuest:CancelQuest(self.close_time_id)
  221. self.close_time_id = nil
  222. end
  223. end