|
|
- -- <*
- -- @Author: Saber
- -- @Description: 跨服社团排行活动主界面
- -- *>
- GuildEventCSGuildRankView = GuildEventCSGuildRankView or BaseClass(BaseItem)
- local GuildEventCSGuildRankView = GuildEventCSGuildRankView
-
- function GuildEventCSGuildRankView:__init(parent_wnd,prefab_asset,layer_name)
- self.base_file = "guild"
- self.layout_file = "GuildEventCSGuildRankView"
- self.parent_wnd = parent_wnd
- self.layer_name = layer_name
-
- self.model = GuildModel:getInstance()
- -- 请求活动状态信息
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41000)
- -- 请求一次对战信息
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41001, GuildModel.CSGRRankType.Mine, 0, 0)
- self:Load()
- end
-
- function GuildEventCSGuildRankView:Load_callback()
- local nodes = {
- "bg:raw",
- "main_title:img",
- "empty_girl:obj:raw",
- -- 对战社团信息相关
- "info_bg:obj:img",
- "info_bg/guild_icon1:obj:img",
- "info_bg/guild_icon2:obj:img",
- "info_bg/guild_icon3:obj:img",
- "info_bg/guild_name1:tmp",
- "info_bg/guild_name2:tmp",
- "info_bg/guild_name3:tmp",
- "info_bg/info_lb2:tmp",
- -- 预览奖励容器
- "reward_scroll",
- "reward_scroll/Viewport/reward_con",
- -- 其他按钮
- "enter_btn:obj:imgex",
- "ques_btn:obj",
- "fight_info_btn:obj",
- "reward_btn:obj",
- "event_time_lb:tmp",
-
- "open_tips_btn:obj",
- "open_tips_btn/open_tips_red:obj",
- }
- self:GetChildren(nodes)
-
- lua_resM:setOutsideRawImage(self, self.bg_raw, GameResPath.GetViewBigBg("guild_event_bg_410_0"), false)
- lua_resM:setOutsideImageSprite(self, self.info_bg_img, GameResPath.GetGuildImage("guild_csgr_infobg"), false)
- lua_resM:setOutsideRawImage(self, self.empty_girl_raw, GameResPath.GetRoleBg("com_empty_dialogueGirl1_590x560"))
- -- self.info_tip_tmp.text = string.format("对战情况由<color=%s>本服团战</color>积分排名决定", ColorUtil.GREEN_DARK)
- self:AddEvents()
- if self.need_refresh_data then
- self:UpdateView()
- end
- end
-
- function GuildEventCSGuildRankView:AddEvents( )
- local function click_event(target)
- if target == self.enter_btn_obj then -- 前往活动场景
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41002, 0)
- elseif target == self.ques_btn_obj then -- 活动玩法提示
- GlobalEventSystem:Fire(EventName.OPEN_INSTRUCTION_VIEW, 41000)
- elseif target == self.fight_info_btn_obj then -- 打开对战信息界面
- self.model:Fire(GuildModel.OPEN_CSGR_FIGHTINFO_VIEW, true)
- elseif target == self.reward_btn_obj then -- 打开奖励预览界面
- self.model:Fire(GuildModel.OPEN_CSGR_REWARD_VIEW, true)
- elseif target == self.open_tips_btn_obj then
- self.model:SetWarActiveRedDot(410, 1, false)
- GuildModel.getInstance():Fire(GuildModel.OPEN_ACTIVE_OPEN_TIPS_VIEW, true)
- end
- end
- AddClickEvent(self.enter_btn_obj, click_event)
- AddClickEvent(self.ques_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
- AddClickEvent(self.fight_info_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
- AddClickEvent(self.reward_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
- AddClickEvent(self.open_tips_btn_obj, click_event, LuaSoundManager.SOUND_UI.NONE)
-
- -- 更新对战信息
- local function update_guild_fightinfo(type)
- if type == GuildModel.CSGRRankType.Mine then
- self:UpdateGuildData()
- end
- end
- self:BindEvent(self.model, GuildModel.UPDATE_CSGR_FIGHTINFO, update_guild_fightinfo)
-
- local function onShowACtiveOpenTipsRed()
- self.open_tips_red_obj:SetActive(self.model:GetWarActiveRedDot(410, 1))
- end
- self:BindEvent(self.model, GuildModel.SHOW_ACTIVE_OPEN_TIPS_RED, onShowACtiveOpenTipsRed)
- self.open_tips_red_obj:SetActive(self.model:GetWarActiveRedDot(410, 1))
- end
-
- -- 这里只传入活动日历中的活动时间相关数据,活动协议内容界面自己获取
- function GuildEventCSGuildRankView:SetEventAcData( evt_ac_data )
- self.evt_ac_data = evt_ac_data
- self.evt_key = self.evt_ac_data.module_id .. "@" .. self.evt_ac_data.module_sub
- if self.is_loaded then
- self.need_refresh_data = false
- self:UpdateView()
- else
- self.need_refresh_data = true
- end
- end
-
- function GuildEventCSGuildRankView:UpdateView( )
- self:UpdateGuildData()
- self:UpdateEventTime()
- self:UpdateRewardItem()
- end
-
- --刷新活动时间显示
- function GuildEventCSGuildRankView:UpdateEventTime( )
- local ac_cfg = DailyModel:getInstance():GetAcConfig(self.evt_ac_data.module_id, self.evt_ac_data.module_sub, self.evt_ac_data.ac_sub)
- if ac_cfg then
- local time_region = stringtotable(ac_cfg.time_region)[1]
- local _, day_str = self.model:GetGuildEventOpenTime(self.evt_ac_data.module_id, self.evt_ac_data.module_sub,self.evt_ac_data.ac_sub)
- local start_time = time_region[1][1] .. ":" .. time_region[1][2]
- local end_time = time_region[2][1] .. ":" .. time_region[2][2]
- self.event_time_lb_tmp.text = day_str .. " <color=#2CF86F>" .. start_time .."-"..end_time.."</color>,限时开启"
- end
- lua_resM:setOutsideImageSprite(self,self.main_title_img,
- GameResPath.GetGuildImage(self.evt_ac_data.module_sub == 1 and "guild_event_csgr_adtitle_pointfilter" or "guild_event_csgr_adtitle2_pointfilter"),
- false)
- -- self.event_time_lb_tmp.text = self.model:GetGuildEventOpenTime(self.evt_ac_data.module_id, self.evt_ac_data.module_sub,self.evt_ac_data.ac_sub)
- end
-
- -- 更新对战公会的信息
- function GuildEventCSGuildRankView:UpdateGuildData( )
- local guild_data = self.model:GetCSGRFightInfo()
- if not guild_data or IsTableEmpty(guild_data.guilds) then -- 没有对战信息,不显示右侧对战图
- self.info_bg_obj:SetActive(false)
- self.empty_girl_obj:SetActive(true)
- self.fight_info_btn_obj:SetActive(false)
- SetAnchoredPositionX(self.reward_btn, 204.5)
- else
- self.info_bg_obj:SetActive(true)
- self.empty_girl_obj:SetActive(false)
- self.fight_info_btn_obj:SetActive(true)
- SetAnchoredPositionX(self.reward_btn, 120.9)
- self.info_lb2_tmp.text = string.format("%s号战场", guild_data.arena_id)
- local guild_info
- for i = 1, 3 do
- guild_info = guild_data.guilds[i]
- if guild_info then
- lua_resM:setImageSprite(self, self["guild_icon"..i.."_img"], "guildIcon_asset", "guild_icon" .. guild_info.guild_flag, true)
- self["guild_icon"..i.."_obj"]:SetActive(true)
- self["guild_name"..i.."_tmp"].text = string.format("s%s.%s", guild_info.server_num, guild_info.guild_name)
- else
- self["guild_icon"..i.."_obj"]:SetActive(false)
- self["guild_name"..i.."_tmp"].text = "暂无社团信息"
- end
- end
- end
- end
-
- -- 加载活动奖励
- function GuildEventCSGuildRankView:UpdateRewardItem( )
- local reward_data = DailyModel:getInstance():GetRewardList(self.evt_ac_data.module_id, self.evt_ac_data.module_sub, self.evt_ac_data.ac_sub)
- self.reward_item_creator = self.reward_item_creator or self:AddUIComponent(UI.ItemListCreator)
- local info = {
- data_list = reward_data,
- item_con = self.reward_con,
- scroll_view = self.reward_scroll,
- obj_pool_type = UIObjPool.UIType.AwardItem,
- item_width = 78,
- start_x = 7,
- start_y = -5,
- space_x = 9,
- create_frequency = 0.01,
- alignment = UnityEngine.TextAnchor.UpperLeft,
- on_update_item = function(item, i, v)
- local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(v[1], v[2])
- local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
- if goodVo then
- item:SetData(goodVo.type_id, v.count , goodVo.color, nil, lock)
- end
- end,
- }
- self.reward_item_creator:UpdateItems(info)
- end
-
- function GuildEventCSGuildRankView:__delete( )
-
- end
|