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