源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

135 lines
3.5 KiB

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