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