|
|
- -- <*
- -- @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
|