源战役客户端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 

101 líneas
3.1 KiB

-- <*
-- @Author: Saber
-- @Description: 经验副本路线排行界面前三名节点
-- *>
ExpDunWaveRankTopItem = ExpDunWaveRankTopItem or BaseClass(BaseItem)
local ExpDunWaveRankTopItem = ExpDunWaveRankTopItem
function ExpDunWaveRankTopItem:__init(parent_wnd, prefab_asset, layer_name)
self.base_file = "expDun"
self.layout_file = "ExpDunWaveRankTopItem"
self.parent_wnd = parent_wnd
self.layer_name = layer_name
self.model = ExpDunModel:getInstance()
self:Load()
end
function ExpDunWaveRankTopItem:Load_callback()
local nodes = {
"bg:img",
"head_con",
"info_con",
"info_con/vip_con",
"info_con/name:tmp",
}
self:GetChildren(nodes)
self.role_head_item = HeadRoleItem.New(self.head_con)
self.role_head_item:SetAnchoredPosition(0, 0)
self.vipItem = RoleVipItem.New(self.vip_con)
self.vipItem:SetAnchoredPosition(0, 0)
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function ExpDunWaveRankTopItem:AddEvents( )
end
function ExpDunWaveRankTopItem:SetData(rank, data)
self.rank = rank
self.data = data
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function ExpDunWaveRankTopItem:UpdateView( )
lua_resM:setImageSprite(self, self.bg_img, "expDun_asset", "exp_wave_rank_top" .. self.rank, true)
-- 根据排名数据更新节点位置及头像大小
local size = self.rank == 1 and 78 or 70
SetAnchoredPosition(self.head_con, self.rank == 1 and 41.5 or 37.5, self.rank == 1 and 20.5 or 11.5)
self.role_head_item:SetItemSize(size, size)
SetSizeDeltaY(self.info_con, self.rank == 1 and 38 or 33)
-- 更新数据
if self.data then
local head_data = {
vo = {
role_id = self.data.role_id,
turn = self.data.turn,
picture_ver = self.data.picture_ver,
picture = self.data.picture,
profile_photo_id = self.data.profile_photo_id,
level = self.data.level,
dress_board_id = self.data.dress_id,
empty_head = false,
},
show_tip = true,
}
self.role_head_item:SetData(head_data)
self.role_head_item:SetVisible(true)
self.vipItem:SetData(self.data.vip_flag, self.data.sup_vip_type)
self.name_tmp.text = self.data.name
else
self.role_head_item:SetVisible(false)
self.vipItem:SetData(0, 0)
self.name_tmp.text = "虚位以待"
end
local vip_size_x = self.data and self.data.vip_flag > 0 and 40 or 0
local total_len = self.name_tmp.preferredWidth + vip_size_x
local x_offset = (self.info_con.sizeDelta.x - total_len) * 0.5
SetAnchoredPositionX(self.vip_con, x_offset)
SetAnchoredPositionX(self.name, x_offset + vip_size_x)
end
function ExpDunWaveRankTopItem:__delete( )
if self.role_head_item then
self.role_head_item:DeleteMe()
self.role_head_item = nil
end
if self.vipItem then
self.vipItem:DeleteMe()
self.vipItem = nil
end
end