源战役客户端
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.
 
 
 
 
 

207 lines
5.5 KiB

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