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