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

622 lines
26 KiB

-- <*
-- @Author: Saber
-- @Description: 跨服社团排行玩法场景界面
-- *>
GuildCSGRSceneView = GuildCSGRSceneView or BaseClass(BaseView)
local GuildCSGRSceneView = GuildCSGRSceneView
function GuildCSGRSceneView:__init()
self.base_file = "guildCSGR"
self.layout_file = "GuildCSGRSceneView"
self.layer_name = "Main"
self.destroy_imm = true
self.use_background = false --全屏界面默认使用这个参数,非全屏界面自行设置
self.change_scene_close = false --是否切换场景时关闭(弹出界面使用)
self:AddPreLoadList("guildCSGR", {"GuildCSGRSceneRankItem"})
self.init_exit_btn = false
self.trigger_collect_guide = false -- 是否触发了采集引导
self.tab_index = 1 -- 选项卡index
self.auto_switch_tab = {} -- 记录强制切换过页签
self.collect_cfg_data = nil -- 战场采集物配置信息
self.boss_position = nil -- 战场boss坐标
self.info_list = {} -- 右侧信息节点
self.had_show_collect_dialogue = false -- 是否已经显示了左侧采集对话小窗
self.had_show_assult_dialogue = false -- 是否已经显示了左侧围攻对话小窗
self.had_show_boss_alert = false -- 是否弹出过boss预警
self.info_rank_item = {} -- 右侧信息节点中的排行节点
self.rank_data = {} -- 服务端推送的排行信息
self.extra_con_type = 1 -- 额外信息内容类型 1:采集物 2:排行榜
self.rightIcon_tween = {} -- 右上角动画列表
-- 采集阶段参数
self.auto_collect = false -- 第二阶段中是否自动采集
self.model = GuildModel:getInstance()
self.scene = Scene.Instance
self.load_callback = function ()
self:LoadSuccess()
self:AddEvent()
-- 请求采集相关信息
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41003)
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41004)
-- 请求排行相关信息
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41006)
end
self.open_callback = function ( )
self:UpdateView()
self:ShowInfoCon(not MainUIModel:getInstance():GetDialogueActionFlag(), true)
end
self.destroy_callback = function ( )
self:DestroySuccess()
end
end
function GuildCSGRSceneView:Open( )
--self.data = data
BaseView.Open(self)
end
function GuildCSGRSceneView:LoadSuccess()
local nodes = {
"con:img:cg",
"rank_btn:obj",
-- 最右侧信息节点
-- 选项卡
"con/tab_con/tab_selected:obj:img",
"con/tab_con/tab_1_lb:obj:tmp",
"con/tab_con/tab_2_lb:obj:tmp",
-- 采集相关
-- "con/collect_scroll:obj",
-- "con/collect_scroll/Viewport/collect_con",
"con/collect_con:obj",
"con/collect_con/collect_tip:tmp",
"con/collect_con/collect_effect_con",
-- 排行相关
"con/rank_con:obj",
"con/rank_con/boss_click:obj",
"con/rank_con/boss_hp:img",
"con/rank_con/r_item_node",
"con/rank_con/r_my_rank:tmp",
"con/rank_con/boss_name:tmp",
"con/rank_con/boss_hp_pec:tmp",
"con/rank_con/other_data_click_tip:obj",
-- 额外信息节点
"con/other_con:obj",
"con/other_con/close_btn:obj", -- 额外信息节点关闭按钮
"con/other_con/buff_con",
"con/other_con/other_desc:tmp",
-- 活动结束时间
"con/event_time:tmp",
-- 功能按钮
"func_btn_con",
"func_btn_con/func_btn_collect:obj:img",
"func_btn_con/func_btn_call:obj",
"func_btn_con/func_btn_assult:obj",
"func_btn_con/func_btn_collect/func_btn_collect_lb:tmp",
"func_btn_con/func_btn_call/func_btn_call_lb:tmp",
"func_btn_con/func_btn_assult/func_btn_assult_lb:tmp",
}
self:GetChildren(nodes)
lua_resM:setOutsideImageSprite(self, self.con_img, GameResPath.GetViewBigBg("common_right_top_img2"))
-- 绑定到退出按钮应该有的位置上去
GlobalEventSystem:Fire(EventName.MOVE_NODE_EXIT_CON, self.rank_btn, self.transform, "rank_btn", 1)
-- 提前设置一次文本
self.func_btn_collect_lb_tmp.text = "采集物资"
self.func_btn_call_lb_tmp.text = "召唤社员"
self.func_btn_assult_lb_tmp.text = "进攻图腾"
-- 设置界面大小和位置
SetSizeDelta(self.transform, 0, 0)
-- 设置刘海屏offset
if ClientConfig.iphone_x_model then
-- self.transform.offsetMin = Vector2(ClientConfig.iphone_x_offset_left,0)
-- self.transform.offsetMax = Vector2(-ClientConfig.iphone_x_offset_right,0)
end
-- 隐藏额外信息界面
self.other_con_obj:SetActive(false)
if not self.init_exit_btn then
self.init_exit_btn = true
local function call_back( ... )
local function ok( ... )
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41002, 1)
end
local ask_str = "是否确定退出当前场景?"
Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
end
local data = {call_back = call_back, pos = {x = 202, y = 277}} -- pos 为左侧侧边栏的长度
GlobalEventSystem:Fire(EventName.SHOW_EXIT_BTN_STATE, data)
end
-- 添加采集引导
GuideController.Instance:TriggerHelper(GuideModel.TASK_TRIGGER_TYPE, 410000000)
end
function GuildCSGRSceneView:AddEvent()
local function click_event(target)
if target == self.tab_1_lb_obj then -- 选项卡1
self:SwitchCSGRDataTab(1)
elseif target == self.tab_2_lb_obj then -- 选项卡2
self:SwitchCSGRDataTab(2)
elseif target == self.rank_btn_obj then -- 排行榜按钮
self.model:Fire(GuildModel.OPEN_CSGR_RANK_VIEW, true)
elseif target == self.close_btn_obj then -- 关闭额外信息界面
self.other_con_obj:SetActive(false)
elseif target == self.boss_click_obj or target == self.func_btn_assult_obj then -- 阶段2要前往boss
self:CSGRFindWayToBoss()
elseif target == self.func_btn_collect_obj then
self:OnCollectBtnClick(not self.auto_collect)
elseif target == self.func_btn_call_obj then -- 呼叫社团成员
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 40064, 410)
elseif target == self.other_data_click_tip_obj then -- 弹出额外信息小窗
self.other_con_obj:SetActive(true)
end
end
AddClickEvent(self.tab_1_lb_obj, click_event)
AddClickEvent(self.tab_2_lb_obj, click_event)
AddClickEvent(self.rank_btn_obj, click_event)
AddClickEvent(self.close_btn_obj, click_event)
AddClickEvent(self.boss_click_obj, click_event)
AddClickEvent(self.func_btn_assult_obj, click_event)
AddClickEvent(self.func_btn_collect_obj, click_event)
AddClickEvent(self.func_btn_call_obj, click_event)
AddClickEvent(self.other_data_click_tip_obj, click_event)
-- local function onOrientationChange()
-- if self.transform then
-- if ClientConfig.iphone_x_model then
-- -- self.transform.offsetMin = Vector2(ClientConfig.iphone_x_offset_left,0)
-- -- self.transform.offsetMax = Vector2(-ClientConfig.iphone_x_offset_right,0)
-- end
-- end
-- end
-- self:BindEvent(GlobalEventSystem, EventName.ORIENTATION_DID_CHANGE, onOrientationChange)--位置适配
local function hide_dialogue_cur_xy_node()--隐藏当前和对话框重叠位置的节点
self:ShowInfoCon(false)
end
local function show_dialogue_cur_xy_node()--显示当前和对话框重叠位置的节点
self:ShowInfoCon(true)
end
self:BindEvent(GlobalEventSystem, EventName.START_COM_DIALOGUE_SHOW_ANIM, hide_dialogue_cur_xy_node)
self:BindEvent(GlobalEventSystem, EventName.FINISHED_COM_DIALOGUE_SHOW_ANIM, show_dialogue_cur_xy_node)
-- 活动跨阶段更新
local function update_event_data(event_type)
if not event_type or event_type == GuildEventType.GuildCSGR then
self.event_data = self.model:GetGuildEventByType(GuildEventType.GuildCSGR)
self:UpdateInfoShowCon()
self:UpdateEventCountdown()
end
end
self:BindEvent(self.model, GuildModel.UPDATE_GUILD_EVENT_BY_TYPE, update_event_data)
-- 更新采集数据
local function update_collect_buff()
self:UpdateCSGRStatusTips()
end
self:BindEvent(self.model, GuildModel.UPDATE_CSGR_BF_RES, update_collect_buff)
-- 更新排行数据
local function update_rank_data(vo)
self.rank_data = vo
-- 先更新最右侧的展示内容
self:UpdateRankItem()
end
self:BindEvent(self.model, GuildModel.UPDATE_CSGR_SCENE_DMG_RANK, update_rank_data)
local function update_boss_hp(monsterHp, maxHp, percentage)
self:UpdateBossHp(monsterHp, maxHp, percentage)
end
self:BindEvent(self.model, GuildModel.UPDATE_CSGR_BOSS_HP, update_boss_hp)
-- 绑定界面移动动画
self:BindLittleMove(self.con, BaseView.LittleMoveDir.Left, 1.5)
self:BindLittleMove(self.func_btn_con, BaseView.LittleMoveDir.Bottom, 147.5)
-- 主界面聊天展开事件
self:BindMainUIExpandEvent( self.func_btn_con )
end
function GuildCSGRSceneView:UpdateView()
self.event_data = self.model:GetGuildEventByType(GuildEventType.GuildCSGR)
self:UpdateBasicData()
-- 默认切换到页签1
self:SwitchCSGRDataTab(1)
-- 更新排行信息
self:UpdateRankItem()
-- 修改展示的内容
self:UpdateInfoShowCon()
-- 加载活动倒计时
self:UpdateEventCountdown()
-- 更新采集物信息
self:UpdateCollectionItem()
end
-- 加载一些基础信息
function GuildCSGRSceneView:UpdateBasicData( )
self.collect_tip_tmp.text = "采集物资,提升社团整体增益"
self.other_desc_tmp.text = "进攻图腾,社团伤害排名越高,奖励越好"
local mon_id = Config.Campwarkv["boss_id"].val
self.boss_name_tmp.text = Trim(ConfigItemMgr.Instance:GetMonsterDataItem(mon_id).name)
end
-- 切换页签表现
function GuildCSGRSceneView:SwitchCSGRDataTab(tab_index)
self.tab_index = tab_index
self.tab_1_lb_tmp.color = ColorUtil:ConvertHexToRGBColor(self.tab_index == 1 and "FFFFFF" or "9EB3CF")
self.tab_2_lb_tmp.color = ColorUtil:ConvertHexToRGBColor(self.tab_index == 2 and "FFFFFF" or "9EB3CF")
SetAnchoredPosition(self.tab_selected, self.tab_index == 1 and -49 or 49, 0)
self.collect_con_obj:SetActive(self.tab_index == 1)
self.rank_con_obj:SetActive(self.tab_index == 2)
end
-- 更新顶部横幅
function GuildCSGRSceneView:UpdateCSGRStatusTips( )
if self.event_data then
-- 确定阶段
local is_waiting = self.event_data.status == 1
local is_collecting = self.event_data.status == 2
local is_assulting = self.event_data.status == 3
-- 更新横幅
if is_waiting then -- 候场阶段
local show_time = self.event_data.next_time - TimeUtil:getServerTime()
local str = "备战入场时间 %s"
local special_tip_data = {
type = SpecialTipType.Timer2,
sepeical_str = str,
need_flash = false,
show_time = show_time > 0 and show_time or 0,
belong_key = "guildCSGR",
}
CommonController.Instance:Fire(EventName.OPEN_SPECIALTIPVIEW, special_tip_data)
elseif is_collecting then -- 采集阶段
local next_time = self.model:GetCSGRBattlefieldResRefreshTime()
local str = next_time and next_time ~= 0
and "下一批物资刷新%s"
or "物资采集阶段剩余%s"
-- 如果存在next_time不等于0的情况则代表还有下一轮的刷新,否则横幅调整为采集阶段的剩余时间
local stage_end_time = next_time and next_time ~= 0 and next_time or self.event_data.next_time
local special_tip_show_time = next_time and next_time ~= 0 and 10 or 30
local function delay_special_tip_func()
local left_time = stage_end_time - TimeUtil:getServerTime()
if left_time <= special_tip_show_time then -- 倒计时剩下n秒才弹出采集刷新横幅 或 采集阶段刷新横幅
local special_tip_data = {
type = SpecialTipType.Timer2,
sepeical_str = str,
need_flash = false,
show_time = left_time,
belong_key = "guildCSGR",
}
CommonController.Instance:Fire(EventName.OPEN_SPECIALTIPVIEW, special_tip_data)
self:ClearDelaySpecialTipId()
end
end
self:ClearDelaySpecialTipId()
self.delay_special_tip_id = GlobalTimerQuest:AddPeriodQuest(delay_special_tip_func, 0.2, -1)
-- 采集引导
if not self.trigger_collect_guide then
self:AddGuideToCollectBtn()
self.trigger_collect_guide = true
end
-- 左侧对话tips
if not self.had_show_collect_dialogue then
local dialogue_data = {
head_type = 1000 + RoleManager.Instance.mainRoleInfo.career,
desc = "物资采集开始了!采集的越多,社团增益越强!",
head_name = "战场指挥官",
hide_time = 5,
dalay_time = 0.1,
is_task_type = false,
}
GlobalEventSystem:Fire(EventName.SHOW_COM_DIALOGUE_SHOW_VIEW, dialogue_data)
self.had_show_collect_dialogue = true
end
elseif is_assulting then
-- 左侧对话tips
if not self.had_show_assult_dialogue then
local dialogue_data = {
head_type = 1000 + RoleManager.Instance.mainRoleInfo.career,
desc = "图腾降临了!对图腾伤害越高奖励越丰富!",
head_name = "战场指挥官",
hide_time = 5,
dalay_time = 0.1,
is_task_type = false,
}
GlobalEventSystem:Fire(EventName.SHOW_COM_DIALOGUE_SHOW_VIEW, dialogue_data)
self.had_show_assult_dialogue = true
end
if not self.had_show_boss_alert then
CommonController.Instance:Fire(EventName.OPEN_BOSS_ALERT_VIEW, true, 41000)
self.had_show_boss_alert = true
end
if self.show_delay_id then
GlobalTimerQuest:CancelQuest(self.show_delay_id)
self.show_delay_id = nil
end
if self.auto_delete_delay_id then
self:DeleteGuideToCollectBtn()
end
local function delay_exit_tip_func()
local left_time = self.event_data.next_time - TimeUtil:getServerTime()
-- if left_time <= 15 then -- 倒计时剩下15秒弹出退出场景
if left_time <= 0 then -- 活动结束后,倒计时自动退出场景
local exit_tips_data = {
time = 15,
time_str = "秒后",
exit_desc = "自动退出战场",
call_back = function()
if SceneManager:getInstance():IsGuildCSGRScene() then
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41002, 1)
end
end,
}
GlobalEventSystem:Fire(EventName.OPEN_EXIT_TIME_TIP, exit_tips_data)
self:ClearDelayExitTipId()
end
end
self:ClearDelayExitTipId()
self.delay_exit_tip_id = GlobalTimerQuest:AddPeriodQuest(delay_exit_tip_func, 0.2, -1)
delay_exit_tip_func()
else
CommonController.Instance:Fire(EventName.CLOSE_SPECIALTIPVIEW)
end
end
end
function GuildCSGRSceneView:ClearDelaySpecialTipId( )
if self.delay_special_tip_id then
GlobalTimerQuest:CancelQuest(self.delay_special_tip_id)
self.delay_special_tip_id = nil
end
end
function GuildCSGRSceneView:ClearDelayExitTipId( )
if self.delay_exit_tip_id then
GlobalTimerQuest:CancelQuest(self.delay_exit_tip_id)
self.delay_exit_tip_id = nil
end
end
-- 更新排行信息
function GuildCSGRSceneView:UpdateRankItem( )
local data, item
local empty_tb = {is_empty = true}
-- 加载前3的伤害排行
for i = 1, 3 do
-- 计算输出百分比需要跟第一名进行输出总量对比,所以每条列表数据都需要加上第一名的输出
item = self.info_rank_item[i]
if not item then
item = GuildCSGRSceneRankItem.New(self.r_item_node)
self.info_rank_item[i] = item
end
data = self.rank_data and self.rank_data.hurt_rank and self.rank_data.hurt_rank[i] or empty_tb,
item:SetAnchoredPosition(0, (1-i) * 28.5 - 2.5)
item:SetData(data, i)
end
-- 加载自己社团的排行
self.r_my_rank_tmp.text = self.rank_data.my_guild_rank and self.rank_data.my_guild_rank ~= 0
and string.format("我的社团:<color=%s>第%s名</color>", ColorUtil.GREEN_DARK, self.rank_data.my_guild_rank)
or string.format("我的社团:<color=%s>未上榜</color>", ColorUtil.RED_DARK)
end
-- 根据当前的活动阶段调整展示右侧信息节点
function GuildCSGRSceneView:UpdateInfoShowCon( )
if self.event_data then
-- 确定阶段
local is_waiting = self.event_data.status == 1
local is_collecting = self.event_data.status == 2
local is_assulting = self.event_data.status == 3
if not is_waiting and not is_collecting and not is_assulting then return end
-- 显示或隐藏功能按钮
self.func_btn_call_obj:SetActive(true) -- 召唤社员默认显示
self.func_btn_collect_obj:SetActive(not is_assulting)
self.func_btn_assult_obj:SetActive(is_assulting)
self:SortFuncBtnPosition()
if is_collecting then
if not self.auto_switch_tab[1] then
self:SwitchCSGRDataTab(1)
self.auto_switch_tab[1] = true
end
self:OnCollectBtnClick(true)
end
if is_assulting then
if not self.auto_switch_tab[2] then
self:SwitchCSGRDataTab(2)
self.auto_switch_tab[2] = true
end
GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT) -- 进入围攻阶段就打开自动战斗
self:UpdateBossHp(self.model:GetCSGRCurBossHp())
end
-- 围攻首领阶段才弹出排行按钮
self.rank_btn_obj:SetActive(is_assulting)
-- 更新界面顶部横幅内容
self:UpdateCSGRStatusTips()
end
end
-- 更新活动剩余倒计时
function GuildCSGRSceneView:UpdateEventCountdown( )
if self.event_data then
local left_time
local is_collecting = self.event_data.status == 2
local is_assulting = self.event_data.status == 3
-- 除了最终阶段,其他阶段都使用next_time作为阶段的倒计时
local end_time = is_assulting and self.event_data.end_time or self.event_data.next_time
local function countdown_func()
left_time = end_time - TimeUtil:getServerTime()
left_time = left_time > 0 and left_time or 0
self.event_time_tmp.text = string.format("%s剩余时间:<color=%s>%s</color>",
is_collecting and "采集" or "进攻",
ColorUtil.GREEN_DARK, TimeUtil:convertTimeWithoutHour(left_time))
if left_time <= 0 then
self:ClearCountdownFuncId()
end
end
self:ClearCountdownFuncId()
self.countdown_func_id = GlobalTimerQuest:AddPeriodQuest(countdown_func, 0.5, -1)
end
end
function GuildCSGRSceneView:ClearCountdownFuncId( )
if self.countdown_func_id then
GlobalTimerQuest:CancelQuest(self.countdown_func_id)
self.countdown_func_id = nil
end
end
-- 更新采集物信息
function GuildCSGRSceneView:UpdateCollectionItem( )
self.collect_cfg_data = self.model:GetCSGRCollectCfg()
-- 右侧信息采集节点的采集物item节点
self.collection_item_creator = self.collection_item_creator or self:AddUIComponent(UI.ItemListCreator)
local info = {
data_list = self.collect_cfg_data,
item_con = self.collect_effect_con,
scroll_view = self.collect_effect_con,
item_class = GuildCSGRSceneCollectionItem,
item_height = 31,
create_frequency = 0.01,
alignment = UnityEngine.TextAnchor.UpperLeft,
on_update_item = function(item, i, v)
item:SetData(v, true)
end,
}
self.collection_item_creator:UpdateItems(info)
-- 额外信息的buff展示item
self.buff_item_creator = self.buff_item_creator or self:AddUIComponent(UI.ItemListCreator)
local info = {
data_list = self.collect_cfg_data,
item_con = self.buff_con,
scroll_view = self.buff_con,
item_class = GuildCSGRSceneCollectionItem,
item_height = 31,
create_frequency = 0.01,
alignment = UnityEngine.TextAnchor.UpperLeft,
on_update_item = function(item, i, v)
item:SetData(v, false)
end,
}
self.buff_item_creator:UpdateItems(info)
end
-- 自动寻路前往boss坐标并自动挂机
function GuildCSGRSceneView:CSGRFindWayToBoss( )
if self.event_data and self.event_data.status == 3 then
self.boss_position = self.boss_position or stringtotable(Config.Campwarkv["boss_position"].val)[1]
if self.boss_position then
local function call_back()
GlobalEventSystem:Fire(EventName.STARTAUTOFIGHT)
end
local findVo = FindVo.New()
findVo.type = FindVo.POINT
findVo.x = self.boss_position[1] / SceneObj.LogicRealRatio.x
findVo.y = self.boss_position[2] / SceneObj.LogicRealRatio.y
findVo.sceneId = SceneManager:getInstance():GetSceneId()
findVo.call_back = call_back
GlobalEventSystem:Fire(EventName.FIND, findVo)
end
end
end
-- 更新boss血量信息
function GuildCSGRSceneView:UpdateBossHp(monsterHp, maxHp, percentage)
self.boss_hp_img.fillAmount = percentage
self.boss_hp_pec_tmp.text = string.format("%.1f%%", percentage * 100)
end
function GuildCSGRSceneView:SortFuncBtnPosition( )
local btn_list = {}
if self.func_btn_assult_obj.activeSelf then
btn_list[#btn_list + 1] = self.func_btn_assult
end
if self.func_btn_collect_obj.activeSelf then
btn_list[#btn_list + 1] = self.func_btn_collect
end
if self.func_btn_call_obj.activeSelf then
btn_list[#btn_list + 1] = self.func_btn_call
end
for i, v in ipairs(btn_list) do
SetAnchoredPosition(v, (i-#btn_list/2)* 120 - 60, 5.5 + 4)
end
end
function GuildCSGRSceneView:AddGuideToCollectBtn()
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.GUILD_CSGR_COLLECT, 1)
if not helpVo then return end
local help_type = helpVo.help_type
local step = helpVo.step
local button = self.func_btn_collect_obj
if not button then return end
local function call_back()
end
-- 延时打开,防止按钮在动画中没有定对位置
local function delay_show( )
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_PROMPT_VIEW, button.transform, self.transform, call_back, helpVo, self.layout_file)
-- 自动销毁
if not self.auto_delete_delay_id then
local function delay_delete( )
self:DeleteGuideToCollectBtn()
end
self.auto_delete_delay_id = setTimeout(delay_delete, 5)
end
end
if not self.show_delay_id then
self.show_delay_id = setTimeout(delay_show, 1.5)
end
end
function GuildCSGRSceneView:DeleteGuideToCollectBtn( )
-- 销毁引导表现
local helpVo = GuideModel:getInstance():GetHelpVo(HelpType.GUILD_CSGR_COLLECT, 1)
if helpVo then
if helpVo.step == 1 then
GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW)
end
end
if self.auto_delete_delay_id then
GlobalTimerQuest:CancelQuest(self.auto_delete_delay_id)
self.auto_delete_delay_id = nil
end
end
function GuildCSGRSceneView:OnCollectBtnClick(auto_collect)
self:DeleteGuideToCollectBtn()
if self.event_data and self.event_data.status == 2 and self.collect_cfg_data then
self.auto_collect = auto_collect
self.func_btn_collect_lb_tmp.text = self.auto_collect and "采集物资中..." or "采集物资"
self.model:UpdateCSGRAutoCollectFlag(self.auto_collect)
end
end
function GuildCSGRSceneView:ShowInfoCon(show, force)
local target_alpha = show and 1 or 0
if force then
self.con_cg.alpha = target_alpha
else
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.con)
local function action_alpha_callback(percent)
self.con_cg.alpha = show and percent or (1 - percent)
end
local action_alpha = cc.CustomUpdate.New(0.3, action_alpha_callback)
cc.ActionManager:getInstance():addAction(action_alpha, self.con)
end
end
function GuildCSGRSceneView:DestroySuccess( )
GlobalEventSystem:Fire(EventName.HIDE_EXIT_BTN_STATE) -- 隐藏
-- GlobalEventSystem:Fire(EventName.MOVE_NODE_EXIT_CON, self.exit_btn, self.transform, "exit_btn", 2)
GlobalEventSystem:Fire(EventName.MOVE_NODE_EXIT_CON, self.rank_btn, self.transform, "rank_btn", 2)
for k, v in pairs(self.info_rank_item) do
v:DeleteMe()
v = nil
end
self.info_rank_item = nil
self:ClearDelaySpecialTipId()
self:ClearDelayExitTipId()
self:ClearCountdownFuncId()
if self.auto_delete_delay_id then
GlobalTimerQuest:CancelQuest(self.auto_delete_delay_id)
self.auto_delete_delay_id = nil
end
if self.show_delay_id then
GlobalTimerQuest:CancelQuest(self.show_delay_id)
self.show_delay_id = nil
end
GlobalEventSystem:Fire(EventName.OPEN_EXIT_TIME_TIP, nil, false)
CommonController.Instance:Fire(EventName.CLOSE_SPECIALTIPVIEW)
end