源战役客户端
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 

242 řádky
7.4 KiB

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