GuildWarResultView = GuildWarResultView or BaseClass(BaseView)
|
|
local GuildWarResultView= GuildWarResultView
|
|
function GuildWarResultView:__init()
|
|
self.base_file = "guildScene"
|
|
self.layout_file = "GuildWarResultView"
|
|
self.layer_name = "Activity"
|
|
self.use_background = true
|
|
|
|
self.click_bg_toClose = true
|
|
self.change_scene_close = true
|
|
self.destroy_imm = true
|
|
self.is_set_zdepth = true
|
|
self.model = GuildModel:getInstance()
|
|
self.item_list = {}
|
|
|
|
self.open_callback = function()
|
|
end
|
|
|
|
self.load_callback = function()
|
|
self:LoadSuccess()
|
|
self:InitEvent()
|
|
end
|
|
|
|
self.close_callback = function ()
|
|
end
|
|
|
|
self.destroy_callback = function()
|
|
self:Remove()
|
|
end
|
|
|
|
end
|
|
|
|
function GuildWarResultView:Open()
|
|
self.data = self.model.guild_war_info.result
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function GuildWarResultView:Remove()
|
|
self.model.guild_war_info.result = false
|
|
if self.timer then
|
|
GlobalTimerQuest:CancelQuest(self.timer)
|
|
self.timer = nil
|
|
end
|
|
for i,item in pairs(self.item_list) do
|
|
item:ReleaseObj()
|
|
end
|
|
self.item_list = {}
|
|
|
|
end
|
|
|
|
function GuildWarResultView:LoadSuccess()
|
|
|
|
local nodes = {
|
|
"title_bg:raw",
|
|
"bg_1:raw:obj",
|
|
"itemRoot/Viewport/Content",
|
|
"itemRoot",
|
|
"leader_mvp:tmp",
|
|
"my_rank:tmp",
|
|
"guild_rank:tmp",
|
|
"guid_mvp:tmp",
|
|
"left_label:tmp",
|
|
}
|
|
|
|
self:GetChildren(nodes)
|
|
|
|
if not self.data then
|
|
self:Close()
|
|
return
|
|
end
|
|
self:UpdateView()
|
|
self:CheckLeftTime()
|
|
self:UpdateItem()
|
|
end
|
|
|
|
function GuildWarResultView:InitEvent()
|
|
local function onBtnClickHandler(target )
|
|
if target == self.bg_1_obj then
|
|
self:Close()
|
|
end
|
|
end
|
|
AddClickEvent(self.bg_1_obj,onBtnClickHandler)
|
|
end
|
|
|
|
function GuildWarResultView:UpdateView()
|
|
self.guid_mvp_tmp.text = self.data.mvp_guild
|
|
self.leader_mvp_tmp.text = self.data.mvp_leader
|
|
self.guild_rank_tmp.text = string.format("社团排名:%s", HtmlColorTxt("第" .. self.data.my_guild_rank .. "名", "#fdffc2"))
|
|
self.my_rank_tmp.text = string.format("个人排名:%s", HtmlColorTxt("第" .. self.data.my_rank .. "名", "#fdffc2"))
|
|
lua_resM:setOutsideRawImage(self, self.bg_1_raw, GameResPath.GetViewBigBg("guild_event_war_bg3"), false)
|
|
lua_resM:setOutsideRawImage(self,self.title_bg_raw,GameResPath.GetGuildImage("guild_event_war_txt2_pointfilter"))
|
|
|
|
end
|
|
|
|
function GuildWarResultView:CheckLeftTime()
|
|
local left_time = 10
|
|
local function timer_func()
|
|
left_time = left_time - 1
|
|
if left_time and left_time > 0 then
|
|
self.left_label_tmp.text = string.format("%s 秒后自动退出", HtmlColorTxt(tostring(left_time) , "#2cf86f"))
|
|
else
|
|
self:Close()
|
|
end
|
|
end
|
|
if not self.timer then
|
|
self.timer = GlobalTimerQuest:AddPeriodQuest(timer_func, 1)
|
|
end
|
|
timer_func()
|
|
end
|
|
|
|
function GuildWarResultView:UpdateItem()
|
|
--社团排名奖励
|
|
local reward_list = self.model:GuildWarGetGuildRewardByRank(self.data.my_guild_rank)
|
|
--如果明星摄团团长是自己,要加上这部分的奖励显示
|
|
if self.data.mvp_leader == RoleManager.Instance.mainRoleInfo.name and Config.Guildwarkv["star_org_award"] and Config.Guildwarkv["star_org_award"]["value_content"] then
|
|
local mvp_reward_list = stringtotable(Config.Guildwarkv["star_org_award"]["value_content"])
|
|
local not_exit_list = {}
|
|
for i,v in ipairs(mvp_reward_list) do
|
|
local is_exit = false
|
|
for ii,vv in ipairs(reward_list) do
|
|
if v[1] == vv[11] and v[2] == vv[2] then
|
|
vv[3] = vv[3] + v[3]
|
|
is_exit = true
|
|
break
|
|
end
|
|
end
|
|
if not is_exit then
|
|
table.insert(not_exit_list, v)
|
|
end
|
|
end
|
|
if #not_exit_list > 0 then
|
|
for i,v in ipairs(not_exit_list) do
|
|
table.insert(reward_list, v)
|
|
end
|
|
end
|
|
end
|
|
|
|
--积分榜奖励
|
|
local score_reward_list = self.model:GuildWarGetScoreRewardByRank(self.data.my_rank)
|
|
if score_reward_list and #score_reward_list > 0 then
|
|
local not_exit_list = {}
|
|
for i,v in ipairs(score_reward_list) do
|
|
local is_exit = false
|
|
for ii,vv in ipairs(reward_list) do
|
|
if v[1] == vv[11] and v[2] == vv[2] then
|
|
vv[3] = vv[3] + v[3]
|
|
is_exit = true
|
|
break
|
|
end
|
|
end
|
|
if not is_exit then
|
|
table.insert(not_exit_list, v)
|
|
end
|
|
end
|
|
if #not_exit_list > 0 then
|
|
for i,v in ipairs(not_exit_list) do
|
|
table.insert(reward_list, v)
|
|
end
|
|
end
|
|
end
|
|
|
|
--击杀榜奖励
|
|
local kill_reward_list = self.model:GuildWarGetKillRewardByRank(self.data.kill_rank)
|
|
if kill_reward_list and #kill_reward_list > 0 then
|
|
local not_exit_list = {}
|
|
for i,v in ipairs(kill_reward_list) do
|
|
local is_exit = false
|
|
for ii,vv in ipairs(reward_list) do
|
|
if v[1] == vv[11] and v[2] == vv[2] then
|
|
vv[3] = vv[3] + v[3]
|
|
is_exit = true
|
|
break
|
|
end
|
|
end
|
|
if not is_exit then
|
|
table.insert(not_exit_list, v)
|
|
end
|
|
end
|
|
if #not_exit_list > 0 then
|
|
for i,v in ipairs(not_exit_list) do
|
|
table.insert(reward_list, v)
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
if #reward_list > 0 then
|
|
for i,v in ipairs(reward_list) do
|
|
local item = self.item_list[i]
|
|
if item == nil then
|
|
item = UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem, self.Content)
|
|
self.item_list[i] = item
|
|
end
|
|
local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
|
|
local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
|
|
if goodVo then
|
|
item:SetItemSize(78, 78)
|
|
item:SetData(goodVo.type_id, v[3] , goodVo.color, nil, lock)
|
|
item:SetVisible(true)
|
|
item:SetAnchoredPosition((i - 1) * 87,0)
|
|
end
|
|
end
|
|
for i=#reward_list + 1,#self.item_list do
|
|
self.item_list[i]:SetVisible(false)
|
|
end
|
|
end
|
|
end
|