-- <* -- @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("伤害:%s", 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 = "伤害:0" 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