-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 本国团战排行界面节点GuildCSGRRankItem
|
|
-- *>
|
|
|
|
GuildCSGRRankItem = GuildCSGRRankItem or BaseClass(BaseItem)
|
|
local GuildCSGRRankItem = GuildCSGRRankItem
|
|
|
|
function GuildCSGRRankItem:__init(parent_wnd,prefab_asset,layer_name)
|
|
self.base_file = "guildCSGR"
|
|
self.layout_file = "GuildCSGRRankItem"
|
|
self.parent_wnd = parent_wnd
|
|
self.layer_name = layer_name
|
|
self.award_list = {}
|
|
self.model = GuildModel:getInstance()
|
|
self:Load()
|
|
end
|
|
|
|
function GuildCSGRRankItem:Load_callback()
|
|
local nodes = {
|
|
-- 头像,社团标志节点
|
|
"role_head:obj", "guild_flag:img",
|
|
-- 排行节点
|
|
"rank_icon:img", "rank_lb:tmp",
|
|
-- 奖励节点
|
|
"reward_scroll:scroll",
|
|
"reward_scroll/reward_vp:img",
|
|
"reward_scroll/reward_vp/reward_con",
|
|
-- 玩家/社团信息节点
|
|
"data_con",
|
|
"data_con/vip:obj",
|
|
"data_con/gender:obj:img",
|
|
"data_con/name:tmp",
|
|
-- 积分
|
|
"score:tmp",
|
|
"line:obj",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
-- 加载vip节点
|
|
self.vipItem = RoleVipItem.New(self.vip)
|
|
self.vipItem:SetAnchoredPosition(0, 0)
|
|
-- 头像节点
|
|
self.role_head_item = HeadRoleItem.New(self.role_head)
|
|
self.role_head_item:SetItemSize(57, 57)
|
|
self:AddEvents()
|
|
if self.need_refreshData then
|
|
self:UpdateView()
|
|
end
|
|
end
|
|
|
|
function GuildCSGRRankItem:AddEvents( )
|
|
|
|
end
|
|
|
|
function GuildCSGRRankItem:SetData( rank_type, rank, rank_data, reward_data, is_mine )
|
|
-- rank_type:0个人排行 1社团排行
|
|
self.rank_type = rank_type
|
|
self.rank = rank
|
|
self.rank_data = rank_data
|
|
self.reward_data = reward_data
|
|
self.is_mine = is_mine or false -- 是否是玩家自己的信息节点item
|
|
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
self:UpdateView()
|
|
else
|
|
self.need_refreshData = true
|
|
end
|
|
end
|
|
|
|
function GuildCSGRRankItem:UpdateView( )
|
|
self.line_obj:SetActive(not self.is_mine)
|
|
local is_role_rank = self.rank_type == 0
|
|
-- 排行表现
|
|
self.rank_icon_img.enabled = self.rank and self.rank <= 3 or false
|
|
if self.rank and self.rank <= 3 then
|
|
lua_resM:setImageSprite(self, self.rank_icon_img, "guildCSGR_asset", "csgr_rank" .. self.rank, true)
|
|
end
|
|
self.rank_lb_tmp.text = self.rank and (self.rank <= 3 and "" or self.rank) or "榜外"
|
|
-- 排行数据
|
|
if self.rank_data then
|
|
-- 名称信息
|
|
self.name_tmp.text = string.format("s%s.%s", self.rank_data.server_num, self.rank_data.name)
|
|
if is_role_rank then -- 个人排行,要展示vip和玩家性别
|
|
self.vip_obj:SetActive(true)
|
|
self.role_head_obj:SetActive(true)
|
|
self.gender_img.enabled = true
|
|
self.guild_flag_img.enabled = false
|
|
self.vipItem:SetData(self.rank_data.vip,self.rank_data.svip_type)
|
|
lua_resM:setImageSprite(self, self.gender_img, "common_asset", self.rank_data.gender == 1 and "com_boy" or "com_girl", true)
|
|
local vip_offset = self.rank_data.vip > 0 and 40 or 5
|
|
SetAnchoredPositionX(self.name, vip_offset)
|
|
local gender_pos_x = vip_offset + self.name_tmp.preferredWidth + 6
|
|
SetAnchoredPositionX(self.gender, gender_pos_x)
|
|
local head_data = {
|
|
vo = {
|
|
role_id = self.rank_data.id or 0,
|
|
server_id = self.rank_data.server_num or 0,
|
|
sex = self.rank_data.gender or 0,
|
|
profile_photo_id = self.rank_data.profile_photo_id or 0,
|
|
level = self.rank_data.lv or nil,
|
|
profile_photo_id = self.rank_data.photo_profile_id,
|
|
dress_board_id = self.rank_data.dress_id or nil,
|
|
},
|
|
show_tip = true,
|
|
}
|
|
self.role_head_item:SetData(head_data)
|
|
else
|
|
self.role_head_obj:SetActive(false)
|
|
self.vip_obj:SetActive(false)
|
|
self.guild_flag_img.enabled = true
|
|
lua_resM:setImageSprite(self, self.guild_flag_img, "guildIcon_asset", "guild_icon" .. self.rank_data.guild_flag, true)
|
|
self.gender_img.enabled = false
|
|
SetAnchoredPositionX(self.name, 5)
|
|
end
|
|
-- 积分
|
|
self.score_tmp.text = string.format("伤害:<color=#fdffc2>%s</color>", self.rank_data.val)
|
|
else
|
|
self.name_tmp.text = "虚位以待"
|
|
self.role_head_obj:SetActive(false)
|
|
self.vip_obj:SetActive(false)
|
|
self.gender_img.enabled = false
|
|
self.guild_flag_img.enabled = false
|
|
SetAnchoredPositionX(self.name, 5)
|
|
self.score_tmp.text = "伤害:<color=#fdffc2>0</color>"
|
|
end
|
|
|
|
-- 加载奖励内容
|
|
self:UpdateRewards()
|
|
end
|
|
|
|
function GuildCSGRRankItem:UpdateRewards( )
|
|
for k, v in ipairs(self.award_list) do
|
|
v:SetVisible(false)
|
|
end
|
|
|
|
if self.reward_data.is_empty then -- 空奖励列表什么也不做
|
|
return
|
|
end
|
|
self.reward_scroll_scroll.enabled = false
|
|
self.reward_vp_img.raycastTarget = false
|
|
-- 加载奖励信息
|
|
local reward_list = self.reward_data.rewards
|
|
-- 设置容器宽度
|
|
SetSizeDeltaX(self.reward_con, 72 * #reward_list)
|
|
SetAnchoredPositionX(self.reward_con, self.reward_con.sizeDelta.x > self.reward_scroll.sizeDelta.x and self.reward_con.sizeDelta.x - self.reward_scroll.sizeDelta.x or 0)
|
|
-- 加载奖励内容
|
|
local item
|
|
for k, v in ipairs(reward_list) do
|
|
item = self.award_list[k]
|
|
if not item then
|
|
item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.reward_con)
|
|
self.award_list[k] = item
|
|
end
|
|
item:SetVisible(true)
|
|
item:SetItemSize(62, 62)
|
|
item:SetAnchoredPosition(self.reward_con.sizeDelta.x - 70 * k, -5)
|
|
local typeId, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
|
|
item:SetData(typeId, v[3], nil, nil, lock)
|
|
end
|
|
end
|
|
|
|
function GuildCSGRRankItem:__delete( )
|
|
if self.vipItem then
|
|
self.vipItem:DeleteMe()
|
|
self.vipItem = nil
|
|
end
|
|
if self.role_head_item then
|
|
self.role_head_item:DeleteMe()
|
|
self.role_head_item = nil
|
|
end
|
|
for k, v in pairs(self.award_list) do
|
|
UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v)
|
|
end
|
|
self.award_list = nil
|
|
end
|