CSGWarResultView = CSGWarResultView or BaseClass(BaseView)
|
|
local CSGWarResultView = CSGWarResultView
|
|
--[[
|
|
CSGWarResultView.TabData = {
|
|
[1] = {name = "人物", level = MainRoleModel.TabOpenLevel[1]},
|
|
}
|
|
--]]
|
|
|
|
function CSGWarResultView:__init()
|
|
self.base_file = "CSGWar"
|
|
self.layout_file = "CSGWarResultView"
|
|
self.layer_name = "Top"
|
|
self.destroy_imm = true
|
|
self.use_background = true --全屏界面默认使用这个参数
|
|
--self.hide_maincancas = true --全屏界面需要放开隐藏主UI
|
|
self.change_scene_close = false
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.click_bg_toClose = true
|
|
|
|
self.model = CSGWarModel:getInstance()
|
|
self.item_list = {}
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.switch_callback = function(index)
|
|
self:SwitchTab(index)
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function CSGWarResultView:Open( )
|
|
--self.data = data
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function CSGWarResultView:LoadSuccess()
|
|
local nodes = {
|
|
"bg:raw","bg1:raw","bg2:raw",
|
|
"time_text:tmp","item_scroll",
|
|
"item_scroll/Viewport/item_con", "occupy_text:tmp",
|
|
"con_player", "lb_reward_tip:tmp",
|
|
}
|
|
self:GetChildren(nodes)
|
|
lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("com_result_bg_1124_549"), false)
|
|
lua_resM:setOutsideRawImage(self, self.bg1_raw, GameResPath.GetCSGWarImage("csgwar_result_bg"), false)
|
|
lua_resM:setOutsideRawImage(self, self.bg2_raw, GameResPath.GetCSGWarImage("csgwar_result_bg2"), false)
|
|
|
|
end
|
|
|
|
function CSGWarResultView:AddEvent()
|
|
|
|
end
|
|
|
|
function CSGWarResultView:OpenSuccess()
|
|
self:UpdateView()
|
|
self:StartTime(10)
|
|
end
|
|
|
|
function CSGWarResultView:UpdateView()
|
|
local result_data = self.model:GetCSGWarResultInfo()
|
|
if result_data and TableSize(result_data) > 0 then
|
|
local cfg = Config.Crossguildwarscene
|
|
local str = ""
|
|
local index = 0
|
|
|
|
local sort_func = function ( a, b )
|
|
return a.city_id < b.city_id
|
|
end
|
|
table.sort(result_data.occupy_city, sort_func)
|
|
for i,v in ipairs(result_data.occupy_city) do
|
|
index = index + 1
|
|
str = str .. " "..cfg[v.city_id].name
|
|
if index % 2 == 0 then
|
|
str = str .. "\n"
|
|
end
|
|
end
|
|
self.occupy_text_tmp.text = str ~= "" and str or "非常遗憾,本次活动您的社团未占领任何据点"
|
|
self:UpdateRewardItem(result_data)
|
|
self:UpdateCityListItem(result_data.city_list)
|
|
end
|
|
end
|
|
|
|
function CSGWarResultView:UpdateRewardItem( result_data )
|
|
local my_guild_id = RoleManager.Instance.mainRoleInfo.guild_id
|
|
local is_fight_guild = self.model:IsCSGWarFightGuild(my_guild_id)
|
|
local is_leader = RoleManager.Instance.mainRoleInfo.position == GuildModel.GuildPosition.Leader
|
|
local is_central = false
|
|
local is_no_city = TableSize(result_data.occupy_city) == 0
|
|
for i,v in pairs(result_data.occupy_city) do
|
|
if v.city_id == 1 then
|
|
is_central = true
|
|
break
|
|
end
|
|
end
|
|
local is_main = true--result_data.room_id == 1 只有主战区了
|
|
local goods_list = {}
|
|
if not is_no_city then
|
|
if is_fight_guild then--如果是参战公会 读参战公会的配置
|
|
local area_str = is_main and "mteam" or "steam"
|
|
local city_str = is_central and "centerfield" or "surroundfield"
|
|
local position_str = is_leader and "lord" or "member"
|
|
local key_str = string.format("%s_%s_%s_rewards", area_str, city_str, position_str)
|
|
local kv_cfg = self.model:GetCSGWarKVCFG(key_str)
|
|
goods_list = stringtotable(kv_cfg.value)
|
|
else--不是参战公会 那统一就是帮众奖励 只区分是否主城
|
|
local area_str = is_main and "mteam" or "steam"
|
|
local city_str = is_central and "centerfield" or "surroundfield"
|
|
local position_str = "member"
|
|
local key_str = string.format("%s_%s_%s_rewards", area_str, city_str, position_str)
|
|
local kv_cfg = self.model:GetCSGWarKVCFG(key_str)
|
|
goods_list = stringtotable(kv_cfg.value)
|
|
end
|
|
end
|
|
if not self.award_list_com then
|
|
self.award_list_com = self:AddUIComponent(UI.ItemListCreator)
|
|
end
|
|
local info = {
|
|
data_list = goods_list,
|
|
item_con = self.item_con,
|
|
scroll_view = self.item_scroll,
|
|
obj_pool_type = UIObjPool.UIType.AwardItem,
|
|
start_y = -4,
|
|
item_width = 62,
|
|
space_x = 10,
|
|
alignment = UnityEngine.TextAnchor.UpperCenter,
|
|
on_update_item = function(item, i, v)
|
|
item:SetData(v[2], v[3])
|
|
end,
|
|
}
|
|
self.award_list_com:UpdateItems(info)
|
|
if #goods_list <= 0 then
|
|
self.lb_reward_tip_tmp.text = "本次活动未获得任何奖励"
|
|
else
|
|
self.lb_reward_tip_tmp.text = ""
|
|
end
|
|
end
|
|
|
|
function CSGWarResultView:UpdateCityListItem( city_list )
|
|
-- if not city_list or TableSize(city_list) <= 0 then return end
|
|
local city_list = city_list or {}
|
|
local temp_list = {}
|
|
for k,v in pairs(city_list) do
|
|
temp_list[v.city_id] = true
|
|
end
|
|
for i=1,5 do -- 没人占领的补充空数据
|
|
if not temp_list[i] then
|
|
table.insert(city_list, {city_id = i, is_empty = true})
|
|
end
|
|
end
|
|
-- 排序
|
|
local sort_func = function ( a, b )
|
|
return a.city_id < b.city_id
|
|
end
|
|
table.sort(city_list, sort_func)
|
|
for i,v in ipairs(city_list) do
|
|
self.item_list[i] = self.item_list[i] or CSGWarResultCityItem.New(self.con_player)
|
|
local item = self.item_list[i]
|
|
item:SetData(v)
|
|
item:SetPosition(0, (i - 1) * -70 + (-1.5))
|
|
end
|
|
end
|
|
|
|
function CSGWarResultView:StartTime( time )
|
|
self.time_text_tmp.text = string.format("%s秒后自动关闭", HtmlColorTxt(time, ColorUtil.GREEN_DARK))
|
|
local function on_show_time()
|
|
time = time - 1
|
|
if time > 0 then
|
|
self.time_text_tmp.text = string.format("%s秒后自动关闭", HtmlColorTxt(time, ColorUtil.GREEN_DARK))
|
|
else
|
|
self:Close()
|
|
end
|
|
end
|
|
self.show_timer_id = GlobalTimerQuest:AddPeriodQuest(on_show_time, 1, -1)
|
|
end
|
|
|
|
function CSGWarResultView:DestroySuccess( )
|
|
if self.show_timer_id then
|
|
GlobalTimerQuest:CancelQuest(self.show_timer_id)
|
|
self.show_timer_id = nil
|
|
end
|
|
|
|
for k,v in pairs(self.item_list) do
|
|
v:DeleteMe()
|
|
end
|
|
self.item_list = {}
|
|
end
|