源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

123 lines
3.2 KiB

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