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