BossHomeTabItem = BossHomeTabItem or BaseClass(BaseItem) local BossHomeTabItem = BossHomeTabItem BossHomeTabItem.Width = 264 BossHomeTabItem.Height = 103 function BossHomeTabItem:__init() self.base_file = "boss" self.layout_file = "BossHomeTabItem" self.model = BossHomeModel:getInstance() self.select_id = false self:Load() end function BossHomeTabItem:Load_callback() self.nodes = { "lb_time:tmp","img_tag:obj:img", "di_2:img", "light:obj", "mask:obj","icon:img","lb_killer:tmp","lb_name:tmp", "lb_lock_lv:tmp","di_time:obj", "img_lock:obj","red_dot:obj", "bg:img:obj","di_dai_1:obj", "di_dai_1/lb_dai_1:tmp", "img_peace:obj", "lock_lv_bg:obj", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end local function clockFun() if self.type == "boss_home" then self:UpdateBossHomeTimeInfo() else self:UpdateTimeInfo() end end self.close_time_id = self.close_time_id or GlobalTimerQuest:AddPeriodQuest(clockFun, 1, -1) end function BossHomeTabItem:AddEvents( ) local function call_back( target ) if target == self.bg_obj then if self.select_call and self.data then self.select_call(self.index,self.data.boss_id, self.data) end end end AddClickEvent(self.bg_obj,call_back,false) -- local function ANS_FOCUS_CHANGE( boss_id,op_type ) -- if self.data and self.data.boss_id == boss_id then -- self.img_tag_obj:SetActive(op_type == 1) -- end -- end -- self:BindEvent(self.model, BossConst.ANS_FOCUS_CHANGE, ANS_FOCUS_CHANGE) end function BossHomeTabItem:UpdateView( ) if (not self.data) or (not self.is_loaded) then return end ------------------------- local monster_cfg = ConfigItemMgr.Instance:GetMonsterDataItem(self.data.boss_id) if not monster_cfg then return end self.img_peace_obj:SetActive(self.data.is_peace == 1) local str_name = Trim(monster_cfg.name or "") self.lb_name_tmp.text = string.format( "LV.%s %s", (monster_cfg.lv or 0) , str_name) lua_resM:setOutsideImageSprite(self,self.icon_img,GameResPath.GetBossIcon(Trim(monster_cfg.icon)),true) if self.type == "boss_home" then lua_resM:setImageSprite(self,self.bg_img,'boss_asset',"boss_bg_47") self:UpdateBossHomeTimeInfo() local boss_data = self.model:GetBossHomeInfo( self.data.boss_id ) -- local focus_status = boss_data and boss_data.is_focus or 0 -- self.img_tag_obj:SetActive(focus_status == 1) else lua_resM:setImageSprite(self,self.bg_img,'boss_asset',"boss_bg_52") local boss_data = self.model:GetMoneyBossInfo( )[self.data.boss_id] -- local focus_status = boss_data and boss_data.is_focus or 0 -- self.img_tag_obj:SetActive(focus_status == 1) self:UpdateTimeInfo() ------------------------- --红点 local red_first = false local my_lv = RoleManager.Instance.mainRoleInfo.level local limit_lv = self.model:GetMoneyBossLimitLv(self.data.boss_id) if my_lv >= limit_lv then for k,v in pairs(self.model:GetMoneyBossInfo()) do if v.boss_id == self.data.boss_id then red_first = v.kill_count == 0 break end end end ------------------------- self.red_dot_obj:SetActive(red_first) end self:UpdateLight() ------------------------- if self.data.grade > 0 then self.lb_dai_1_tmp.text = string.format( "%s代" , Trim(self.data.grade) ) self.di_dai_1_obj:SetActive(true) else self.di_dai_1_obj:SetActive(false) end end function BossHomeTabItem:UpdateBossHomeTimeInfo( ) if not self.is_loaded 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 return end local curTime = TimeUtil:getServerTime() local is_die = ser_data.reborn_time ~= 0 and ser_data.reborn_time > curTime self.is_die = is_die if not self.is_die then self.lb_time_tmp.text = "" self.di_time_obj:SetActive(false) else local temp = ser_data.reborn_time - curTime self.lb_time_tmp.text = string.format( "%s后复活", TimeUtil:convertTimeWithoutHour(temp) ) self.di_time_obj:SetActive(true) end self:SetBgGray(self.is_die) self.mask_obj:SetActive( self.is_lock or self.is_die) if ser_data.killer == "" then self.lb_killer_tmp.text = "暂无击杀" --[[if self.is_die and (not self.is_lock) then self.lb_killer_tmp.text = HtmlColorTxt( "暂无击杀" , '#ffffff') else self.lb_killer_tmp.text = "暂无击杀" end--]] else self.lb_killer_tmp.text = ser_data.killer --[[if self.is_die and (not self.is_lock) then self.lb_killer_tmp.text = HtmlColorTxt( ser_data.killer , '#ffffff') else self.lb_killer_tmp.text = HtmlColorTxt( ser_data.killer , '#fdffc2') end--]] end end function BossHomeTabItem:UpdateTimeInfo( ) if not self.is_loaded then return end ------------------------- local ser_data = false for k,v in pairs(self.model:GetMoneyBossInfo()) do if v.boss_id == self.data.boss_id then ser_data = v end end if not ser_data then return end local curTime = TimeUtil:getServerTime() local is_die = ser_data.reborn_time ~= 0 and ser_data.reborn_time > curTime self.is_die = is_die if not self.is_die then self.lb_time_tmp.text = "" self.di_time_obj:SetActive(false) else local temp = ser_data.reborn_time - curTime self.lb_time_tmp.text = string.format( "%s后复活", TimeUtil:convertTimeWithoutHour(temp) ) self.di_time_obj:SetActive(true) end ------------------------- local limit_lv = self.model:GetMoneyBossLimitLv(self.data.boss_id) self.is_lock = RoleManager.Instance.mainRoleInfo.level < limit_lv ------------------------- if self.is_lock then self.lb_time_tmp.text = "" self.di_time_obj:SetActive(false) self.lb_lock_lv_tmp.text = string.format( "%s解锁",WordManager:GetRoleLevel2(limit_lv,0,true) ) -- self.img_tag_obj:SetActive(false) self.img_lock_obj:SetActive(true) self.lock_lv_bg_obj:SetActive(true) else self.lb_lock_lv_tmp.text = "" self.img_lock_obj:SetActive(false) self.lock_lv_bg_obj:SetActive(false) end self:SetBgGray(self.is_die and (not self.is_lock)) self.mask_obj:SetActive( self.is_lock or self.is_die) ------------------------- if ser_data.killer == "" then -- if self.is_die and (not self.is_lock) then -- self.lb_killer_tmp.text = "暂无击杀" -- else self.lb_killer_tmp.text = "暂无击杀" -- end else -- if self.is_die and (not self.is_lock) then -- self.lb_killer_tmp.text = ser_data.killer -- else self.lb_killer_tmp.text = ser_data.killer -- end end end function BossHomeTabItem:SetBgGray( bool ) SetImageGray( self.di_2_img, bool ) SetImageGray( self.icon_img, bool ) end function BossHomeTabItem:UpdateLight( ) if (not self.data) or (not self.is_loaded) then return end if self.data.boss_id == self.select_id then self.light_obj:SetActive(true) -- SetImageGray( self.di_icon_img, false ) else self.light_obj:SetActive(false) -- SetImageGray( self.di_icon_img, self.is_die and (not self.is_lock) ) end end function BossHomeTabItem:SetData( index,data,select_call,server_data, type ) self.index = index self.data = data self.server_data = server_data or {} self.select_call = select_call self.type = type if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function BossHomeTabItem:SetSelect( select_id ) self.select_id = select_id or self.select_id self:UpdateLight() end function BossHomeTabItem:__delete( ) if self.close_time_id then GlobalTimerQuest:CancelQuest(self.close_time_id) self.close_time_id = nil end end