GuildWarRankItem = GuildWarRankItem or BaseClass(BaseItem) local GuildWarRankItem = GuildWarRankItem function GuildWarRankItem:__init() self.base_file = "guild" self.layout_file = "GuildWarRankItem" self.is_delay_callback = true self.model = GuildModel:getInstance() self.index = false self.data = false self.i_type = false self.hide_bg = false self.item_list = {} self:Load() end function GuildWarRankItem:Load_callback() local nodes = { "con_item", "value_2:tmp", "value_1:tmp", "rank:tmp", "info_con/vip_con", "rank_image:img:obj", "info_con/name:tmp", "bg:raw:obj", "info_con:obj", "info_con/sex:img", "info_con/power:txt", "none_rank:obj:tmp", } self:GetChildren(nodes) self:InitEvent() if self.need_refreshData then self:SetData(self.data, self.index, self.i_type) self:HideBg(self.hide_bg) end self.need_refreshData = false end function GuildWarRankItem:SetData(data, index, i_type) self.data = data self.index = index self.i_type = i_type if self.is_loaded then self.need_refreshData = false self.none_rank_obj:SetActive(false) self.value_1_tmp.text = self.data and self.data.value_1 or "虚位以待" self.value_2_tmp.text = self.data and self.data.value_2 or "" if self.index <= 3 and self.index > 0 then self.rank_image_obj:SetActive(true) lua_resM:setImageSprite(self, self.rank_image_img, "guildScene_asset", "guild_war_rank_" .. index, true) self.rank_tmp.text = "" else self.rank_image_obj:SetActive(false) if index == 0 then self.none_rank_obj:SetActive(true) self.rank_tmp.text = "" else self.rank_tmp.text = index end end if self.i_type == GuildWarRankView.TAB_ID.GUILD or not self.data then self.info_con_obj:SetActive(false) else self.info_con_obj:SetActive(true) if not self.vipItem then self.vipItem = RoleVipItem.New(self.vip_con) end self.name_tmp.text = self.data.name self.vipItem:SetData(self.data.vip_flag,self.data.sup_vip_type) self.power_txt.text = "f"..self.data.power lua_resM:setImageSprite(self, self.sex_img, "common_asset", self.data.sex == 1 and "com_boy" or "com_girl", true) SetAnchoredPositionX(self.sex_img.transform, self.name_tmp.preferredWidth - 5) end self:UpdateReward(index, i_type) else self.need_refreshData = true end end function GuildWarRankItem:UpdateReward(rank, i_type) local reward_list = self.model:GuildWarGetRankViewRewardByRankAndType(rank, i_type) for i, v in ipairs(self.item_list) do v:SetVisible(false) end local start_pos = (5 - #reward_list) * 76 for ii,vv in ipairs(reward_list) do local show_item = self.item_list[ii] if not show_item then show_item = UIObjPool:PopItem(UIObjPool.UIType.AwardItem, self.con_item) show_item:SetIsFixSize(false) show_item:SetItemSize(62,62) self.item_list[ii] = show_item end local goods_id = GoodsModel:getInstance():GetMappingTypeId(vv[1],vv[2]) SetLocalPosition(show_item.transform, start_pos + 76*(ii-1), 0) show_item:SetData(goods_id, vv[3]) show_item:SetVisible(true) end end function GuildWarRankItem:__delete() if self.vipItem then self.vipItem:DeleteMe() self.vipItem = nil end for k,v in ipairs(self.item_list) do UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, v) end self.item_list = {} end function GuildWarRankItem:InitEvent() end function GuildWarRankItem:HideBg(hide_bg) self.hide_bg = hide_bg if self.is_loaded then self.bg_obj:SetActive(not self.hide_bg) else self.need_refreshData = true end end