|
|
- GuildSceneWarView = GuildSceneWarView or BaseClass(BaseView)
- local GuildSceneWarView = GuildSceneWarView
-
- function GuildSceneWarView:__init()
- self.base_file = "guildScene"
- self.layout_file = "GuildSceneWarView"
- self.layer_name = "Main"
- self.destroy_imm = true
- self.change_scene_close = false
- self.append_to_ctl_queue = false --是否要添加进界面堆栈
- self.need_show_money = false --是否要显示顶部的金钱栏
- self.is_in_pick = false --当前的采集状态
- self.item_list = {}
- self.show_left_time_tip = false
- self.show_exit_time_tip = false
- self.wait_to_collect = false
- self.init_exit_btn = false
-
- self.project_cd_time = 0
-
- self.model = GuildModel:getInstance()
-
- self.load_callback = function ()
- self:LoadSuccess()
- self:AddEvent()
- end
- self.open_callback = function ( )
- self:UpdateView()
- end
- self.destroy_callback = function ( )
- self:DestroySuccess()
- end
- end
-
- function GuildSceneWarView:Open( )
- BaseView.Open(self)
- end
-
- function GuildSceneWarView:LoadSuccess()
- local nodes = {
- "left_info_con/data_con/exitBtn:obj",
- "rightIconCon/rankBtn:obj",
- "left_info_con/data_con/collect_info_con/my_score:tmp",
- "left_info_con/data_con/collect_info_con/leftTime:tmp",
- "left_info_con/data_con/collect_info_con/reward_scroll_collect",
- "left_info_con/data_con/collect_info_con/reward_scroll_collect/Viewport/reward_con_collect",
- "left_info_con/data_con/collect_info_con/boss_hp_percentage:tmp",
- "left_info_con/data_con/collect_info_con/boss_hp_r:img",
- "left_info_con/data_con/collect_info_con/boss_hp_r_bg:img",
- "left_info_con/data_con/collect_info_con/big_time:tmp",
- "left_info_con/data_con/collect_info_con/small_time:tmp",
- "broadcast_root/broadcast_bg:obj",
- "broadcast_root/broadcast_text:tmp",
- "broadcast_root:obj",
- "left_info_con/data_con/collect_info_con/escort_boss_1:obj",
- "left_info_con/data_con/collect_info_con/escort_boss_2:obj",
- "left_info_con/data_con/collect_info_con/escort_small_1:obj",
- "left_info_con/data_con/collect_info_con/escort_small_2:obj",
- "left_info_con/data_con/collect_info_con/escort_big_1:obj",
- "left_info_con/data_con/collect_info_con/escort_big_2:obj",
- "left_info_con/data_con/collect_info_con/boss_tips:tmp",
- "left_info_con/data_con/collect_info_con/boss_name:tmp",
- "rightIconCon:obj",
- "left_info_con:obj",
- "left_info_con/data_con/collect_info_con",
- "left_info_con/data_con/collect_info_con/reward_scroll_collect/Viewport/reward_con_collect/finish:obj",
- "left_info_con/data_con/collect_info_con/guide_tip_1/guide_tip_text_1:tmp",
- "left_info_con/data_con/collect_info_con/guide_tip_1:obj",
-
- "func_btn_con/find_boss_btn:obj",
- "func_btn_con/find_escort_btn:obj:img",
- "func_btn_con/escorting_text:tmp",
- "func_btn_con:obj",
-
- "func_btn_con/boss_state:img",
- "func_btn_con/protect_btn:obj",
- "func_btn_con/protect_btn/protect_cd_img:img",
- "func_btn_con/protect_btn/protect_cd_time:tmp",
- "func_btn_con/boss_tips_root:obj",
- "func_btn_con/boss_tips_root/lb_boss_tips:tmp",
-
- "left_info_con/data_con/collect_info_con/escort_small_2/escort_small_2_text:tmp",
- "left_info_con/data_con/collect_info_con/escort_big_2/escort_big_2_text:tmp",
-
- }
- self:GetChildren(nodes)
- --设置sceneView的自适应
- self.transform.sizeDelta = Vector2(ScreenWidth, ScreenHeight)
- SetAnchoredPosition(self.transform, 0, 0)
-
-
- self.boss_hp_r_img.gameObject:SetActive(false)
- self.boss_hp_r_bg_img.gameObject:SetActive(false)
- self.boss_hp_percentage_tmp.gameObject:SetActive(false)
- self.boss_name_tmp.gameObject:SetActive(false)
-
- self:ChangeUiPosition()
-
- --进场的时候,提示引导
- self:StartGuideAction()
-
- --护盾时间
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40513)
- end
-
- function GuildSceneWarView:AddEvent()
- local function onBtnClickHandler(target)
- if target == self.exitBtn_obj then
- self.model:Fire(GuildModel.LEAVE_GUILD_WAR_SCENE)
- elseif target == self.rankBtn_obj then
- self.model:GuildWarSetRankList()
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40504)
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40505)
- self.model:Fire(GuildModel.OPEN_GUILD_WAR_RANK_VIEW)
- elseif target == self.escort_big_1_obj or target == self.escort_big_2_obj then
- if not self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.BigRice) then
- --如果没有精粮就不显示护送中了
- self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.Boss)
- return
- end
- self:StopActionGuideTipsAction(false)
- self:UpdatePickInfo(true)
- elseif target == self.find_escort_btn_obj then
- self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.SmallRice)
- self:StopActionGuideTipsAction(false)
- self:UpdatePickInfo(true)
- elseif target == self.escort_small_1_obj or target == self.escort_small_2_obj then
- if not self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.MiddleRice) then
- --如果没有中粮就不显示护送中了
- self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.Boss)
- return
- end
- self:StopActionGuideTipsAction(false)
- self:UpdatePickInfo(true)
- elseif target == self.escort_boss_1_obj or target == self.escort_boss_2_obj or target == self.find_boss_btn_obj then
- Scene.Instance:CancelClickTarget(nil, true)
- self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.Boss)
- self:StopActionGuideTipsAction(false)
- elseif target == self.protect_btn_obj then
- self.model:Fire(GuildModel.REQUEST_CCMD_EVENT,40514)
- end
- end
- AddClickEvent(self.exitBtn_obj,onBtnClickHandler)
- AddClickEvent(self.rankBtn_obj,onBtnClickHandler)
- AddClickEvent(self.escort_boss_1_obj,onBtnClickHandler)
- AddClickEvent(self.escort_boss_2_obj,onBtnClickHandler)
- AddClickEvent(self.escort_big_1_obj,onBtnClickHandler)
- AddClickEvent(self.escort_big_2_obj,onBtnClickHandler)
- AddClickEvent(self.escort_small_1_obj,onBtnClickHandler)
- AddClickEvent(self.escort_small_2_obj,onBtnClickHandler)
- AddClickEvent(self.find_boss_btn_obj,onBtnClickHandler)
- AddClickEvent(self.find_escort_btn_obj,onBtnClickHandler)
- AddClickEvent(self.protect_btn_obj,onBtnClickHandler)
-
- self.exitBtn_obj:SetActive(false)
-
- local function delay_init( ... )
- if self._use_delete_method then return end
- if not self.init_exit_btn then--初始退出exit_btn_pos这个是任务背景的长度
- self.init_exit_btn = true
- local function call_back( ... )
- self.model:Fire(GuildModel.LEAVE_GUILD_WAR_SCENE)
- end
- local data = {call_back = call_back, pos = {x = 198,y = 280}}
- GlobalEventSystem:Fire(EventName.SHOW_EXIT_BTN_STATE,data)
- end
- end
- setTimeout(delay_init,0.5)
-
- --百团对话监听
- local function onUpdateScroe( )
- self:UpdateScore()
- end
- self:BindEvent(self.model, GuildModel.GUILD_WAR_UPDATE_SCROE, onUpdateScroe)
-
- --基本信息刷新
- local function onUpdaeBaseInfo()
- self:UpdateScore()
- self:UpdateTime()
- end
- self:BindEvent(self.model, GuildModel.GUILD_WAR_BASE_INFO, onUpdaeBaseInfo)
-
- --百团对话监听
- local function onCheckGuildWarnpc(npc_type_id )
- self.model:GuideWarGiveInPick(npc_type_id)
- end
- self:BindEvent(GlobalEventSystem, DialogueModel.CLICK_OK, onCheckGuildWarnpc)
-
- --boss更新刷新
- local function onUdateBossInfo(npc_type_id)
- self:UpdateCountInfo()
- end
- self:BindEvent(self.model, GuildModel.GUILD_WAR_BOSS_BORN, onUdateBossInfo)
- self:BindEvent(self.model, GuildModel.GUILD_WAR_BOSS_DIE, onUdateBossInfo)
-
- --怪物添加
- local function onMonsterUpdateAdd(monster_id, monster_vo)
- if monster_vo.type_id == GuildModel.GuildWarTarget.Boss then
- self:UpdateBossInfo(true, monster_vo)
- self:ShowRefreshBossTipsAnimation()
- end
- self:UpdateCountInfo()
- end
- self:BindEvent(GlobalEventSystem, SceneEventType.MONSTER_VO_ADD, onMonsterUpdateAdd)
- --进场boss已经刷新了,提示一下
- local function boss_refresh_func()
- if self._use_delete_method then return end
- local boss_num = self.model:GuideWarGetTargetNum(GuildModel.GuildWarTarget.Boss)
- if boss_num > 0 then
- self:ShowRefreshBossTipsAnimation()
- end
- end
- setTimeout(boss_refresh_func,1)
-
- --怪物移除
- local function onMonsterUpdateRemove(monster_id, monster_type_id, monster_vo)
- if monster_vo.type_id == GuildModel.GuildWarTarget.Boss then
- self:UpdateBossInfo(false, monster_vo)
- end
- self:UpdateCountInfo()
- end
- self:BindEvent(GlobalEventSystem, SceneEventType.MONSTER_VO_REMOVE, onMonsterUpdateRemove)
-
- --百团对话监听
- local function onBroadcast(module_id, id)
- if module_id == 405 then
- local config = Config.Languageextra
- local key = module_id .. "@" .. id
- if config[key] and config[key].content then
- self:UpdateBroadCast(config[key].content)
- end
- end
- end
- self:BindEvent(SocialityModel:getInstance(), SocialityModel.BROADCAST_MIDDLE_MESSAGE, onBroadcast)
-
- --更新右上角活动图标状态
- local function changeFunc(is_hide)
- self.rightIconCon_obj:SetActive(is_hide)
- end
- self:BindEvent(GlobalEventSystem, EventName.CHANGE_RIGHT_TIP_ICON, changeFunc)
-
- --适配刘海屏
- local function onOrientationChange()
- self:ChangeUiPosition()
- end
- self:BindEvent(GlobalEventSystem, EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
-
-
- --采集状态变化
- local function onUpdaePickInfo()
- local find_way_state = AutoFightManager:getInstance():GetAutoFindWayState()
- local fight_state = AutoFightManager:getInstance():GetAutoFightState()
- if fight_state then
- self:UpdatePickInfo(false)
- elseif find_way_state then
- --不处理
- else
- local function delay_fun( ... )
- local main_role = Scene.Instance.main_role
- if not main_role then
- self:UpdatePickInfo(false)
- return
- end
- if main_role:IsInState(PoseState.COLLECT) then
- self:UpdatePickInfo(true)
- else
- local find_way_state = AutoFightManager:getInstance():GetAutoFindWayState()
- if not find_way_state then
- self:UpdatePickInfo(false)
- end
- end
- end
- TimeManager.GetInstance():StartDalayTime("GuildSceneWarViewonUpdaePickInfo",0.5,delay_fun)
- end
- end
- self:BindEvent(GlobalEventSystem, AutoFightManager.CHANGE_AUTO_FIGHT_STATE, onUpdaePickInfo)
- self:BindEvent(GlobalEventSystem, AutoFightManager.CHANGE_AUTO_FIND_WAY_STATE, onUpdaePickInfo)
-
- local function onCancelCollect()
- self:UpdatePickInfo(false)
- end
- self:BindEvent(GlobalEventSystem, EventName.CANCEL_TO_COLLECT, onCancelCollect)
-
- local function onStartCollect()
- self:UpdatePickInfo(true)
- end
- self:BindEvent(GlobalEventSystem, EventName.START_TO_COLLECT, onStartCollect)
- self:BindEvent(self.model, GuildModel.GUILD_WAR_START_COLLECT, onStartCollect)
-
- local function onReliveSuccess(i_type)
- --出生地复活
- if i_type == 3 then
- EventSystem.Fire(GlobalEventSystem,EventName.STOPAUTOFIGHT, false, true)
- self.wait_to_collect = true
- else
- EventSystem.Fire(GlobalEventSystem,EventName.STOPAUTOFIGHT, false, true)
- self.wait_to_collect = false
- end
- end
- self:BindEvent(GlobalEventSystem, EventName.RELIVE_SUCC, onReliveSuccess)
-
- --复活动画播放完成
- local function onReviveEndEvent()
- if self.wait_to_collect then
- self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.SmallRice)
- self:UpdatePickInfo(true)
- self.wait_to_collect = false
- else
- --起来只停自动战斗
- end
- end
- self:BindEvent(GlobalEventSystem, EventName.REVIVE_END_EVENT, onReviveEndEvent)
-
- --场景落地动画结束,开始采集
- local function onDoFlyShoeEffectFinishDown()
- self.model:FindGuideWarTarget(GuildModel.GuildWarTarget.SmallRice)
- self:UpdatePickInfo(true)
- end
- self:BindEvent(GlobalEventSystem, SceneEventType.DO_FLYSHOE_EFFECT_FINISH_DOWN, onDoFlyShoeEffectFinishDown)
-
-
- --更新护盾
- local function onProject()
- self:UpdateProjectGroup()
- end
- self:BindEvent(self.model, GuildModel.GUILD_WAR_PROJECT, onProject)
-
- --对话提示框
- local function hide_dance_eff_node()
- self.left_info_con_obj:SetActive(false)
- end
- local function show_dance_eff_node()
- self.left_info_con_obj:SetActive(true)
- end
- self:BindEvent(GlobalEventSystem, EventName.START_COM_DIALOGUE_SHOW_ANIM, hide_dance_eff_node)
- self:BindEvent(GlobalEventSystem, EventName.FINISHED_COM_DIALOGUE_SHOW_ANIM, show_dance_eff_node)
-
- self:BindLittleMove(self.left_info_con, BaseView.LittleMoveDir.Left, 222)
- self:BindLittleMove(self.func_btn_con, BaseView.LittleMoveDir.Bottom, 192)
- self:BindLittleMove(self.rightIconCon, BaseView.LittleMoveDir.Right, -60)
-
- -- 主界面聊天展开事件
- self:BindMainUIExpandEvent( self.func_btn_con )
-
- self:UpdatePickInfo(false)
- end
-
- function GuildSceneWarView:UpdateView()
- self:UpdateScore()
- self:UpdateTime()
- self:UpdateCountInfo()
- self:UpdateBossInfo(true)
- end
-
- function GuildSceneWarView:DestroySuccess( )
- if self.timer then
- GlobalTimerQuest:CancelQuest(self.timer)
- self.timer = nil
- end
-
- if self.boss_timer then
- GlobalTimerQuest:CancelQuest(self.boss_timer)
- self.boss_timer = nil
- end
-
- if self.boss_vo and self.boss_vo_id then
- self.boss_vo:UnBind(self.boss_vo_id)
- self.boss_vo_id = nil
- end
-
- if self.broadcast_timer then
- GlobalTimerQuest:CancelQuest(self.broadcast_timer)
- self.broadcast_timer = nil
- end
-
- if self.delay_timer then
- GlobalTimerQuest:CancelQuest(self.delay_timer)
- self.delay_timer = nil
- end
- for k,n in ipairs(self.item_list) do
- n:SetIsFixSize(true)
- UIObjPool:PushItem(UIObjPool.UIType.AwardItem, n)
- end
- self.item_list = {}
-
-
- if self.delay_guide_tips_timer then
- GlobalTimerQuest:CancelQuest(self.delay_guide_tips_timer)
- self.delay_guide_tips_timer = nil
- end
-
- self:StopActionGuideTipsAction(false)
- self:StopPrjectCdTimer()
- self:StopRefreshBossTipsAnimation(true)
-
- --关闭计时界面
- CommonController.Instance:Fire(EventName.OPEN_SPECIALTIPVIEW, false)
- GlobalEventSystem:Fire(EventName.OPEN_EXIT_TIME_TIP, nil, false)
-
- GlobalEventSystem:Fire(EventName.HIDE_EXIT_BTN_STATE)
- end
-
- function GuildSceneWarView:UpdateScore( )
- local score = self.model.guild_war_info.score or 0
- local reward_list, is_finish,next_score = self.model:GuildWarGetRewardByScroe(score, true)
- reward_list = reward_list or {}
- self.my_score_tmp.text = score .. "/" .. next_score
-
- for i, v in ipairs(self.item_list) do
- v:SetVisible(false)
- end
- for ii,vv in ipairs(reward_list) do
- local show_item = self.item_list[ii]
- if not show_item then
- show_item = UIObjPool:PopItem(UIObjPool.UIType.AwardItem, self.reward_con_collect)
- show_item:SetIsFixSize(false)
- show_item:SetItemSize(50,50)
- self.item_list[ii] = show_item
- show_item:SetAnchoredPosition(60*(ii-1) + 3, -6)
- self.finish:SetSiblingIndex(#self.item_list + 1)
- end
- local goods_Id, lock = GoodsModel:getInstance():GetMappingTypeId(vv[1], vv[2])
- local goodVo = GoodsModel:getInstance():GetGoodsBasicByTypeId(goods_Id)
- show_item:SetIsFixSize(false)
- show_item:SetItemSize(50,50)
- if goodVo then
- show_item:SetData(goodVo.type_id, vv[3] , goodVo.color, nil, lock)
- end
- show_item:SetVisible(true)
- if is_finish then
-
- SetAnchoredPositionX(self.finish, #reward_list == 1 and 28 or (#reward_list > 2 and 88 or 58 ))
- end
- show_item:SetGray(is_finish)
- end
- SetSizeDeltaX(self.reward_con_collect, 63 * #reward_list)
- self.finish_obj:SetActive(is_finish)
- end
-
- function GuildSceneWarView:UpdateTime()
- if self.timer then
- GlobalTimerQuest:CancelQuest(self.timer)
- self.timer = nil
- end
- self.end_time = self.model.guild_war_info.end_time or TimeUtil:getServerTime()
- local function timer_func()
- local left_time = self.end_time - TimeUtil:getServerTime()
- if left_time and left_time > 0 then
- self:ShowExitTime(left_time)
- self.leftTime_tmp.text = TimeUtil:timeConvert8(left_time)
- if self.is_in_pick then
- self.is_in_pick = self.is_in_pick + 1
- if self.is_in_pick > 3 then
- self.is_in_pick = 1
- end
- self.escorting_text_tmp.text = self.is_in_pick == 1 and (".") or (self.is_in_pick == 2 and ".." or "...")
- else
- self.escorting_text_tmp.text = ""
- end
- else
- self.escorting_text_tmp.text = ""
- self.leftTime_tmp.text = "00:00"
- if self.timer then
- GlobalTimerQuest:CancelQuest(self.timer)
- self.timer = nil
- end
- end
- end
- if not self.timer then
- self.timer = GlobalTimerQuest:AddPeriodQuest(timer_func, 1)
- end
- timer_func()
- end
-
- function GuildSceneWarView:UpdateCountInfo()
- local big_time = self.model:GuideWarGetTargetNum(GuildModel.GuildWarTarget.BigRice)
- local middle_time = self.model:GuideWarGetTargetNum(GuildModel.GuildWarTarget.MiddleRice)
-
- self.escort_small_2_text_tmp.text = middle_time == 0 and "<color=#2cf86f><u>击杀BOSS刷新</u></color>" or "<color=#2cf86f><u>前往护送</u></color>"
- self.escort_big_2_text_tmp.text = big_time == 0 and "<color=#2cf86f><u>击杀BOSS刷新</u></color>" or "<color=#2cf86f><u>前往护送</u></color>"
- self.big_time_tmp.text = string.format("剩余: %s", HtmlColorTxt(tostring(big_time), "#2cf86f"))
- self.small_time_tmp.text = string.format("剩余: %s", HtmlColorTxt(tostring(middle_time), "#2cf86f"))
- end
-
- function GuildSceneWarView:UpdateBossInfo(is_add, boss_vo)
- self.boss_vo = self.model:GuideWarGetBossVo() or boss_vo
- if self.boss_vo and self.boss_vo_id then
- self.boss_vo:UnBind(self.boss_vo_id)
- self.boss_vo_id = nil
- end
-
- if self.boss_timer then
- GlobalTimerQuest:CancelQuest(self.boss_timer)
- self.boss_timer = nil
- end
-
-
-
- if self.boss_vo and is_add then
- if self.delay_timer then
- GlobalTimerQuest:CancelQuest(self.delay_timer)
- self.delay_timer = nil
- end
- --self.escort_boss_2_obj:SetActive(true)
- self.boss_hp_r_img.gameObject:SetActive(true)
- self.boss_hp_r_bg_img.gameObject:SetActive(true)
- self.boss_hp_percentage_tmp.gameObject:SetActive(true)
- self.boss_name_tmp.gameObject:SetActive(true)
- self.boss_name_tmp.text = string.format("结晶守卫%s", HtmlColorTxt("(前往击杀)", ColorUtil.GREEN_DARK))
- self.boss_hp_percentage_tmp.text = ""
- self.boss_tips_tmp.gameObject:SetActive(false)
- lua_resM:setImageSprite(self,self.boss_state_img,"guildScene_asset", "guild_war_boss_live", true)
-
- local function func_update_hp()
- local percent = self.boss_vo.hp / self.boss_vo.maxHp
- self.boss_hp_r_img.fillAmount = percent
- self.boss_hp_percentage_tmp.text = math.ceil(percent * 100) .. "%"
- end
-
- self.boss_vo_id = self.boss_vo:BindOne("hp", func_update_hp)
- func_update_hp()
- else
-
- --当boss找不到的时候,延时1秒,在更新信息栏,因为有时候,安全区复活boss第一时间没生成,会闪一下
- if self.delay_timer then
- GlobalTimerQuest:CancelQuest(self.delay_timer)
- self.delay_timer = nil
- end
-
- local function delay_func()
- self.escort_boss_2_obj:SetActive(false)
- self.boss_hp_r_img.gameObject:SetActive(false)
- self.boss_hp_r_bg_img.gameObject:SetActive(false)
- self.boss_name_tmp.gameObject:SetActive(false)
- self.boss_hp_percentage_tmp.gameObject:SetActive(false)
- self.boss_tips_tmp.gameObject:SetActive(true)
- self.boss_tips_tmp.text = ""
-
- local idx = 0
- self.next_boss_born_time, idx = self.model:GuildWarGetNextBossBornTime()
- if self.next_boss_born_time > 0 then
-
- local function boss_timer_func()
- local left_time = self.next_boss_born_time - TimeUtil:getServerTime()
- --print(">>>>>>>> self.next_boss_born_time222 ", left_time)
- if left_time and left_time > 0 then
- self:ShowLiveTime(left_time)
- lua_resM:setImageSprite(self,self.boss_state_img,"guildScene_asset", "guild_war_boss_death", true)
- self.boss_tips_tmp.text = "刷新时间:" .. HtmlColorTxt(TimeUtil:timeConvert8(left_time) , "#2cf86f")
- else
- lua_resM:setImageSprite(self,self.boss_state_img,"guildScene_asset", "guild_war_boss_live", true)
- if self.boss_timer then
- GlobalTimerQuest:CancelQuest(self.boss_timer)
- self.boss_timer = nil
- end
- self.show_left_time_tip = false
- self.boss_tips_tmp.text = ""
- end
- end
- if not self.boss_timer then
- self.boss_timer = GlobalTimerQuest:AddPeriodQuest(boss_timer_func, 1)
- end
- boss_timer_func()
- else
- lua_resM:setImageSprite(self,self.boss_state_img,"guildScene_asset", "guild_war_boss_death", true)
- self.boss_tips_tmp.text = string.format("结晶守卫\n%s", HtmlColorTxt("已击杀" , ColorUtil.RED_DARK))
- end
- end
-
- if not self.delay_timer then
- self.delay_timer = GlobalTimerQuest:AddPeriodQuest(delay_func, 1, 0)
- end
- end
- end
-
- function GuildSceneWarView:UpdateBroadCast(str)
- if self.broadcast_timer then
- GlobalTimerQuest:CancelQuest(self.broadcast_timer)
- self.broadcast_timer = nil
- end
- local left_time = 6
- self.broadcast_root_obj:SetActive(true)
- self.broadcast_text_tmp.text = str
- function broadcast_timer_func( )
- left_time = left_time - 1
- if left_time > 0 then
-
- else
- if self.broadcast_timer then
- GlobalTimerQuest:CancelQuest(self.broadcast_timer)
- self.broadcast_timer = nil
- end
- self.broadcast_root_obj:SetActive(false )
- self.broadcast_text_tmp.text = ""
- end
-
- end
-
- if not self.broadcast_timer then
- self.broadcast_timer = GlobalTimerQuest:AddPeriodQuest(broadcast_timer_func, 1)
- end
-
- broadcast_timer_func()
- end
-
- function GuildSceneWarView:ChangeUiPosition( )
- SetAnchoredPositionX(self.left_info_con, 222 + ClientConfig.iphone_x_offset_left)
- end
-
-
- function GuildSceneWarView:StartGuideAction( )
- self.action_breath_light = ActionBreathLight.New()
- self.action_breath_light:Init(self.guide_tip_1)
- self.guide_tip_1_obj:SetActive(true)
- self.guide_tip_text_1_tmp.text = string.format("运送结晶可获得%s,\n击败BOSS有%s!",HtmlColorTxt("积分" , "#fdffc2"), HtmlColorTxt("大量积分" , "#fdffc2"))
- if self.delay_guide_tips_timer then
- GlobalTimerQuest:CancelQuest(self.delay_guide_tips_timer)
- self.delay_guide_tips_timer = nil
- end
-
- local delay_func = function()
- self:StopActionGuideTipsAction(false)
- end
- self.delay_guide_tips_timer = GlobalTimerQuest:AddDelayQuest(delay_func, 10)
- end
-
- function GuildSceneWarView:StopActionGuideTipsAction(visible)
- visible = visible or false
- self.guide_tip_1_obj:SetActive(visible)
- if self.action_breath_light then
- self.action_breath_light:DeleteMe()
- self.action_breath_light = false
- end
-
- if self.delay_guide_tips_timer then
- GlobalTimerQuest:CancelQuest(self.delay_guide_tips_timer)
- self.delay_guide_tips_timer = nil
- end
- end
-
- function GuildSceneWarView:UpdatePickInfo(state)
- local b = state
- self.is_in_pick = b == true and 0 or false
- self.escorting_text_tmp.text = ""
- lua_resM:setImageSprite(self,self.find_escort_btn_img,"guildScene_asset", b and "guild_war_escorting_btn" or "guild_war_escort_btn", true)
- end
-
- function GuildSceneWarView:ShowLiveTime(time)
- if time > 30 then
- return
- end
- if self.show_left_time_tip then
- return
- end
- self.show_left_time_tip = true
- local special_tip_data = {
- type = SpecialTipType.Timer2,
- sepeical_str = "结晶守卫降临 %s",
- show_time = time,
- }
- CommonController.Instance:Fire(EventName.OPEN_SPECIALTIPVIEW, special_tip_data)
- end
-
- function GuildSceneWarView:ShowExitTime(time)
- if time > 15 then
- return
- end
- if self.show_exit_time_tip then
- return
- end
- self.show_exit_time_tip = true
- local data = {
- time = time,
- time_str = "秒后",
- exit_desc = "自动退出战场",
- }
- GlobalEventSystem:Fire(EventName.OPEN_EXIT_TIME_TIP, data, true)
- end
-
- function GuildSceneWarView:UpdateProjectGroup()
- local cd_time = self.model.guild_war_info.cd_time or 0
- local cur_time = TimeUtil:getServerTime()
- self:StopPrjectCdTimer()
- if cd_time == 0 or cur_time >= cd_time then
- self.project_cd_time = 0
- self.protect_cd_time_tmp.text = ""
- self.protect_cd_img_img.fillAmount = 1
- else
- local time = cd_time - cur_time
- if not self.skill_max_cd_time then
- local cfg = Config.Guildwarkv
- self.skill_max_cd_time = tonumber(cfg["skill_cd"].value_content)
- end
- self.protect_cd_img_img.fillAmount = 1 - (time / self.skill_max_cd_time)
- self.project_cd_time = time
- local delay_func = function ()
- self.project_cd_time = self.project_cd_time - 1
- if self.project_cd_time <= 0 then
- self:UpdateProjectGroup()
- return
- end
- self.protect_cd_time_tmp.text = self.project_cd_time
- end
- self.protect_cd_time_tmp.text = self.project_cd_time
- if not self.project_timer then
- self.project_timer = GlobalTimerQuest:AddPeriodQuest(delay_func, 1)
- end
- self.tween_project_cd = TweenLite.to(self, self.protect_cd_img_img,TweenLite.UiAnimationType.FILLAMOUNT, 1, time)
- end
- end
-
- function GuildSceneWarView:StopPrjectCdTimer()
- if self.project_timer then
- GlobalTimerQuest:CancelQuest(self.project_timer)
- self.project_timer = nil
- end
- if self.tween_project_cd then
- TweenLite.Stop(self.tween_project_cd)
- self.tween_project_cd = nil
- end
- end
-
-
- function GuildSceneWarView:ShowRefreshBossTipsAnimation( )
- self:StartRefreshBossTipsAnimation()
-
- local left_time = 11
- local function left_tips_timer_func()
- left_time = left_time - 1
- if left_time <= 0 then
- self:StopRefreshBossTipsAnimation(true)
- end
- end
- if not self.boss_tips_delay_timer then
- self.boss_tips_delay_timer = GlobalTimerQuest:AddPeriodQuest(left_tips_timer_func, 1)
- end
- left_tips_timer_func()
- end
-
- function GuildSceneWarView:StartRefreshBossTipsAnimation( )
- self:StopRefreshBossTipsAnimation()
- self.boss_tips_root_obj:SetActive(true)
- local call_fun = function ()
- local function onCompleted()
- self:StartRefreshBossTipsAnimation()
- end
- self.boss_tips_tween_id1 = TweenLite.to(self, self.boss_tips_root.transform,TweenLite.UiAnimationType.ANCHORED_POS,Vector2(0, 10 - 5), 0.5, onCompleted)
- end
- local onDelay = function( )
- self.boss_tips_tween_id2 = TweenLite.to(self, self.boss_tips_root.transform,TweenLite.UiAnimationType.ANCHORED_POS,Vector2(0, 10 + 5), 0.5, call_fun)
- end
- self.arrow_boss_timer_delay_id = setTimeout(onDelay, 0.01)
- end
-
- function GuildSceneWarView:StopRefreshBossTipsAnimation(stop_delay_timer)
- self.boss_tips_root_obj:SetActive(false)
- if self.boss_tips_tween_id1 then
- TweenLite.Stop(self.boss_tips_tween_id1)
- self.boss_tips_tween_id1 = nil
- end
- if self.boss_tips_tween_id2 then
- TweenLite.Stop(self.boss_tips_tween_id2)
- self.boss_tips_tween_id2 = nil
- end
- if self.arrow_boss_timer_delay_id then
- GlobalTimerQuest:CancelQuest(self.arrow_boss_timer_delay_id)
- self.arrow_boss_timer_delay_id = nil
- end
-
- if stop_delay_timer then
- if self.boss_tips_delay_timer then
- GlobalTimerQuest:CancelQuest(self.boss_tips_delay_timer)
- self.boss_tips_delay_timer = nil
- end
- end
- end
|