BossHomeSceneBossItem = BossHomeSceneBossItem or BaseClass(BaseItem) local BossHomeSceneBossItem = BossHomeSceneBossItem BossHomeSceneBossItem.Width = 195 BossHomeSceneBossItem.Height = 41 function BossHomeSceneBossItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "boss" self.layout_file = "BossHomeSceneBossItem" self.layer_name = layer_name self.model = BossHomeModel:getInstance() self:Load() end function BossHomeSceneBossItem:Load_callback() self.nodes = { "lb_lv:tmp", "lb_name:tmp", "lb_num:tmp", "lb_time:tmp", "lb_status:tmp", "icon_time:obj", "click:obj", "light:obj", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end local function clockFun() self:TimeCall() end self.close_time_id = GlobalTimerQuest:AddPeriodQuest(clockFun, 1, -1) end function BossHomeSceneBossItem:AddEvents( ) local function call_back( target ) if target == self.click_obj then if (not self.data) or (not self.select_call) then return end if self.select_call then self.select_call(self.data) end end end AddClickEvent(self.click_obj,call_back,false) end function BossHomeSceneBossItem:UpdateView( ) if not self.data then return end self.lb_num_tmp.text = self.data.grade self.lb_name_tmp.text = Trim(self.data.name) local boss_cfg = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id) self.lb_lv_tmp.text = string.format( "%d级", boss_cfg.lv ) ------------------------- local boss_data = self.model:GetBossHomeInfo( self.data.boss_id ) if boss_data then self:TimeCall() else self:ShowStatusEmpty() end self:SetSelect() end function BossHomeSceneBossItem:SetSelect( ) if not self.is_loaded then return end ------------------------- if self.data then self.light_obj:SetActive(self.model.boss_home_scene_boss == self.data.boss_id) else self.light_obj:SetActive( false ) end end function BossHomeSceneBossItem:ShowStatusEmpty( ) self.lb_time_tmp.text = "" self.lb_status_tmp.text = "已刷新" self.icon_time_obj:SetActive(false) end function BossHomeSceneBossItem:TimeCall( ) if not self.is_loaded then return end if not self.data then return end ------------------------- local ser_data = false for k,v in pairs(self.model:GetBossHomeInfo()) do if v.boss_id == self.data.boss_id then ser_data = v end end if not ser_data then self:ShowStatusEmpty() return end local curTime = TimeUtil:getServerTime() local is_die = ser_data.reborn_time ~= 0 and ser_data.reborn_time > curTime if not is_die then self.lb_status_tmp.text = "已刷新" self.lb_time_tmp.text = "" self.icon_time_obj:SetActive(false) else local temp = ser_data.reborn_time - curTime self.lb_status_tmp.text = "" local for_str = temp >= 3600 and "hh:mm" or "mm:ss" self.lb_time_tmp.text = TimeUtil:timeConvert(temp, for_str) self.icon_time_obj:SetActive(true) end end function BossHomeSceneBossItem:SetData( data, select_call ) self.data = data self.select_call = select_call if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function BossHomeSceneBossItem:__delete( ) if self.close_time_id then GlobalTimerQuest:CancelQuest(self.close_time_id) self.close_time_id = nil end end