|
|
- 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
|