源战役客户端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

188 wiersze
8.1 KiB

-- <*
-- @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