//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Saturday, October 14, 2017
|
//--------------------------------------------------------
|
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using DG.Tweening;
|
using System;
|
|
using System.Collections;
|
|
namespace Snxxz.UI
|
{
|
|
public class MainInterfaceWin : Window
|
{
|
[SerializeField] InGamePushContainer m_InGamePusher;
|
[SerializeField] SkillContainer m_SkillContainer;
|
[SerializeField] HeadPortraitTip m_HeadPortraitTip;
|
[SerializeField] LowSettingTip m_LowSettingTip;
|
[SerializeField] ChatFrame m_ChatTip;
|
[SerializeField] HighSettingTip m_HighSettingTip;
|
[SerializeField] HighSettingFadeInFadeOut m_HighSettingFadeInFadeOut;
|
[SerializeField] TaskListTip m_TaskListTip;//任务
|
[SerializeField] TopRightTip m_TopRightTip;
|
[SerializeField] FunctionForecastTip m_FunctionForecastTip;//功能预告
|
[SerializeField] IsShowXpButton m_IsShowXp;//XP 技能常显
|
[SerializeField] FairyLeagueRemindBehaviour m_FairyLeagueRemind;
|
[SerializeField] TeamInvitationEntrance m_TeamInvitationEntrance;
|
[SerializeField] FairyCallMemberBehaviour m_FairyCallBehaviour;
|
[SerializeField] MapSwitchingBehaviour m_MapSwitchingBehaviour;
|
[SerializeField] DungeonBossBriefInfoContainer m_BossBriefInfos;
|
[SerializeField] AnimationFadeOut m_AnimationFadeOut;
|
|
[SerializeField] IntensifySmoothSlider _ExpSlider;//经验条
|
[SerializeField] Button _DownButton;//查看经验数值
|
[SerializeField] Text _ExpRate;//数值
|
[SerializeField] UIEffect m_UIEffect_A;//经验特效
|
[SerializeField] UIEffect m_UIEffect_B;//经验特效
|
|
[SerializeField] Button _SwitchShowBtn;//切换按钮
|
[SerializeField] Button m_TaskSwithButton;//关于功能预告
|
[SerializeField] Transform m_EffectTask;//任务完成特效播放位置
|
[SerializeField] Transform CopyOfThePanel;
|
[SerializeField] GameObject m_TaskAndTeamTip;
|
[SerializeField] GameObject m_MailObj;//邮件显隐
|
[SerializeField] ClickScreenOtherSpace _MarkRay;//便捷切换按钮
|
|
[SerializeField] MainPositionTween m_MainPositionTween;
|
[SerializeField] MainButtonMisc m_MainButtonMisc;
|
|
#region
|
private bool TaskSwithBool = true;
|
private float ExpValueFloat = 0;
|
private bool SliderOpen = true;
|
public static bool recordPositionBool = true;
|
private int mapId = 0;
|
public static event Action Event_ChatCallback;
|
public static event Action<bool, float> Event_Duplicates;
|
#endregion
|
private List<int> ListBossMapId = new List<int>();//用于boss区域地图id
|
public static event Action<bool> IsCopyOfThePanel;
|
public static event Action IsOpenMaininterface;
|
|
PlayerMainDate onMainModel { get { return ModelCenter.Instance.GetModel<PlayerMainDate>(); } }
|
TaskModel onPlayerTask { get { return ModelCenter.Instance.GetModel<TaskModel>(); } }
|
BuffModel Buffmodel { get { return ModelCenter.Instance.GetModel<BuffModel>(); } }
|
PKModel pKModel { get { return ModelCenter.Instance.GetModel<PKModel>(); } }
|
FairyGrabBossModel fairyGrabBossModel { get { return ModelCenter.Instance.GetModel<FairyGrabBossModel>(); } }
|
FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
|
TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
|
#region Built-in
|
private bool IsUpdateBool = true;
|
protected override void BindController()
|
{
|
m_MapSwitchingBehaviour.InitAwake();
|
recordPositionBool = true;
|
TaskSwithBool = true;
|
m_MainPositionTween.SetTaskPos(true);
|
m_MailObj.SetActive(true);
|
ListBossMapId.Clear();
|
string strBoss = FuncConfigConfig.Get("TaskRetract").Numerical1;
|
string[] bossList = ConfigParse.GetMultipleStr(strBoss);//解析出数组|
|
for (int i = 0; i < bossList.Length; i++)
|
{
|
ListBossMapId.Add(int.Parse(bossList[i]));
|
}
|
}
|
|
protected override void AddListeners()
|
{
|
UIEventTrigger.Get(_DownButton.gameObject).OnDown = DownButton;
|
UIEventTrigger.Get(_DownButton.gameObject).OnUp = UpButton;
|
_MarkRay.AddListener(MarkRayButton);
|
_SwitchShowBtn.SetListener(SwitchShowButton);
|
m_TaskSwithButton.SetListener(TaskSwithButton);
|
}
|
|
protected override void OnPreOpen()
|
{
|
if (IsOpenMaininterface != null)
|
{
|
IsOpenMaininterface();
|
}
|
IsUpdateBool = true;
|
SliderOpen = true;
|
m_InGamePusher.Init();
|
m_SkillContainer.Init();
|
m_FunctionForecastTip.Init();
|
m_HeadPortraitTip.Init();
|
m_LowSettingTip.Init();
|
m_ChatTip.Init();
|
m_HighSettingTip.Init();
|
m_HighSettingFadeInFadeOut.Init();
|
m_TaskListTip.Init();
|
m_IsShowXp.Init();
|
m_TopRightTip.Init();
|
m_AnimationFadeOut.Init();
|
m_TeamInvitationEntrance.Init();
|
m_FairyCallBehaviour.Init();
|
m_MapSwitchingBehaviour.Init();
|
m_FairyLeagueRemind.Init();
|
m_MainButtonMisc.Init();
|
m_BossBriefInfos.gameObject.SetActive(false);
|
ArticleExperience();//关于经验条
|
CheckChatTipOpen();
|
PlayerDatas.Instance.playerDataRefreshEvent += Updatefighting;
|
FunctionUnlockFlyObject.functionUnLockShowBeginEvent += UnFlodFunctionArea;
|
GA_Hero.OnEnterOrExitArea += OnEnterOrExitArea;
|
NewBieCenter.Instance.guideBeginEvent += OnGuideBegin;
|
NewBieCenter.Instance.guideCompletedEvent += OnGuideCompleted;
|
WindowCenter.Instance.windowAfterOpenEvent += WindowAfterEvent;
|
WindowCenter.Instance.windowAfterCloseEvent += WindowAfterEvent;
|
NewBieCenter.Instance.guideBeginEvent += GuideBeginEvent;
|
fairyGrabBossModel.bossGrabHintEvent += bossGrabHintEvent;
|
GlobalTimeEvent.Instance.secondEvent += secondEvent;
|
ProcessCrossServerOneVsOne();
|
}
|
|
protected override void OnActived()
|
{
|
m_MainButtonMisc.OnActived();
|
IsShowTaskPanel();//是否显示任务面板
|
}
|
|
protected override void OnAfterOpen()
|
{
|
bool IsBossBool = PlayerDatas.Instance.hero != null && MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
|
var inDungeon = IsDungeon();
|
var judge1 = onMainModel.IsDead || (onMainModel.IsBossAreaTask && !IsBossBool && !m_MainPositionTween.IsTaskAndPanelShow);
|
var judge2 = mapId != PlayerDatas.Instance.baseData.MapID;
|
|
if (judge1)
|
{
|
TaskSwithButton();
|
onMainModel.IsBossAreaTask = false;
|
onMainModel.IsDead = false;
|
}
|
|
if (m_AnimationFadeOut.GetIsFadeIn())
|
{
|
_MarkRay.gameObject.SetActive(true);
|
}
|
else
|
{
|
_MarkRay.gameObject.SetActive(false);
|
}
|
if (inDungeon)
|
{
|
m_FunctionForecastTip.gameObject.SetActive(false);
|
if (judge2)
|
{
|
SetTipPanelOrBossList(false, false);
|
}
|
if (m_AnimationFadeOut.GetIsFadeIn() && judge2)
|
{
|
m_MailObj.SetActive(true);
|
m_MainPositionTween.SetSkillTipOrRightTipPos(true);
|
recordPositionBool = true;
|
}
|
}
|
else
|
{
|
m_FunctionForecastTip.gameObject.SetActive(true);
|
var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
|
|
if (isNeutralMap)
|
{
|
m_BossBriefInfos.gameObject.SetActive(true);
|
if (PlayerDatas.Instance.baseData.MapID == DogzDungeonModel.DATA_MAPID)
|
{
|
var bosses = ModelCenter.Instance.GetModel<DogzDungeonModel>().GetBosses();
|
m_BossBriefInfos.Display(bosses);
|
}
|
else if (PlayerDatas.Instance.baseData.MapID == CrossServerBossModel.DATA_MAPID)
|
{
|
var bosses = ModelCenter.Instance.GetModel<CrossServerBossModel>().GetBosses();
|
m_BossBriefInfos.Display(bosses);
|
}
|
else
|
{
|
var bosses = ModelCenter.Instance.GetModel<WorldBossModel>().GetWorldBosses(PlayerDatas.Instance.baseData.MapID);
|
m_BossBriefInfos.Display(bosses);
|
}
|
}
|
else
|
{
|
m_BossBriefInfos.gameObject.SetActive(false);
|
}
|
|
if (isNeutralMap && judge2)
|
{
|
SetTipPanelOrBossList(false, false);
|
}
|
else if (!isNeutralMap && !IsBossBool)
|
{
|
SetTipPanelOrBossList(true, false);
|
}
|
}
|
mapId = PlayerDatas.Instance.baseData.MapID;
|
m_HighSettingTip.AfterOpen();
|
m_ChatTip.OnAfterOpen();
|
HandleAchievement();
|
}
|
|
protected override void OnPreClose()
|
{
|
m_IsShowXp.Unit();
|
m_InGamePusher.UnInit();
|
m_SkillContainer.UnInit();
|
m_HeadPortraitTip.UnInit();
|
m_LowSettingTip.UnInit();
|
m_ChatTip.UnInit();
|
m_HighSettingTip.UnInit();
|
m_HighSettingFadeInFadeOut.UnInit();
|
m_TaskListTip.UnInit();
|
m_TopRightTip.UnInit();
|
m_FunctionForecastTip.Unit();
|
m_AnimationFadeOut.Unit();
|
m_TeamInvitationEntrance.UnInit();
|
m_FairyCallBehaviour.UnInit();
|
m_FairyLeagueRemind.UnInit();
|
m_MainButtonMisc.UnInit();
|
|
PlayerDatas.Instance.playerDataRefreshEvent -= Updatefighting;
|
FunctionUnlockFlyObject.functionUnLockShowBeginEvent -= UnFlodFunctionArea;
|
GA_Hero.OnEnterOrExitArea -= OnEnterOrExitArea;
|
NewBieCenter.Instance.guideBeginEvent -= OnGuideBegin;
|
NewBieCenter.Instance.guideCompletedEvent -= OnGuideCompleted;
|
WindowCenter.Instance.windowAfterOpenEvent -= WindowAfterEvent;
|
WindowCenter.Instance.windowAfterCloseEvent -= WindowAfterEvent;
|
NewBieCenter.Instance.guideBeginEvent -= GuideBeginEvent;
|
GlobalTimeEvent.Instance.secondEvent -= secondEvent;
|
fairyGrabBossModel.bossGrabHintEvent -= bossGrabHintEvent;
|
}
|
|
protected override void LateUpdate()
|
{
|
base.LateUpdate();
|
var judge1 = PlayerDatas.Instance.hero != null
|
&& PlayerDatas.Instance.hero.State == E_ActorState.AutoRun
|
&& onMainModel.MoveBool;
|
var judge2 = WindowCenter.Instance.IsOpen<PathfindingIconWin>();
|
if (judge1 && !judge2)
|
{
|
WindowCenter.Instance.Open<PathfindingIconWin>(true);
|
}
|
if (!judge1 && judge2)
|
{
|
onMainModel.MoveBool = false;
|
WindowCenter.Instance.Close<PathfindingIconWin>();
|
}
|
|
if (onPlayerTask.TaskOverBool)
|
{
|
onPlayerTask.TaskOverBool = false;
|
EffectMgr.Instance.PlayUIEffect(1100, 1100, m_EffectTask, false);
|
}
|
}
|
|
protected override void OnAfterClose()
|
{
|
|
}
|
#endregion
|
|
private void secondEvent()
|
{
|
SetAtkType();
|
if (IsUpdateBool)
|
{
|
StartCoroutine(featureNoticeModel.WhetherToPlayTheBox());//功能预告
|
IsUpdateBool = false;
|
}
|
}
|
|
private void GuideBeginEvent()
|
{
|
var judge = NewBieCenter.Instance.inGuiding
|
&& (NewBieCenter.Instance.currentGuide == 89
|
|| NewBieCenter.Instance.currentGuide == TrialDungeonModel.TRIALEXCHANGE_GUIDE);
|
if (judge)
|
{
|
UnFlodFunctionArea(true, 0);
|
}
|
}
|
|
private void OnGuideBegin()//引导开始
|
{
|
if (!m_MainPositionTween.IsTaskAndPanelShow)
|
{
|
TaskSwithButton();
|
}
|
}
|
|
private void OnGuideCompleted(int obj)//引导结束
|
{
|
if (m_AnimationFadeOut.GetIsFadeIn())
|
{
|
_MarkRay.gameObject.SetActive(true);
|
}
|
}
|
|
private void OnEnterOrExitArea(MapArea.E_Type _areaType, bool _enter)
|
{
|
if (PlayerDatas.Instance.baseData.MapID == 10040 && _areaType != MapArea.E_Type.Boss && _enter)
|
{
|
DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)onMainModel.AreaState);
|
}
|
|
if ((_areaType == MapArea.E_Type.Neutral || _areaType == MapArea.E_Type.Boss) && _enter)
|
{
|
WindowCenter.Instance.Open<NeutralMarkWin>();
|
AtkTypeChange();
|
}
|
|
if (_areaType == MapArea.E_Type.Neutral && !_enter)
|
{
|
if (Buffmodel.PkType != onMainModel.AreaState)
|
{
|
DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)onMainModel.AreaState);
|
}
|
}
|
|
if (_areaType == MapArea.E_Type.Boss && _enter)
|
{
|
if (m_MainPositionTween.IsTaskAndPanelShow && ListBossMapId.Contains(PlayerDatas.Instance.baseData.MapID))
|
{
|
TaskSwithButton();
|
onMainModel.IsBossAreaTask = true;
|
}
|
if (m_MainPositionTween.IsSetCopyOfThePanelShow)
|
{
|
if (NewBieCenter.Instance.inGuiding)
|
{
|
return;
|
}
|
recordPositionBool = false;
|
SwitchShowButton();
|
}
|
}
|
|
if ((_areaType == MapArea.E_Type.Boss && !_enter) || (_areaType != MapArea.E_Type.Normal && (_areaType != MapArea.E_Type.Boss && _enter)))
|
{
|
if (onMainModel.IsBossAreaTask)
|
{
|
TaskSwithButton();
|
onMainModel.IsBossAreaTask = false;
|
}
|
}
|
|
var inDungeon = IsDungeon();
|
var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
|
if (_areaType == MapArea.E_Type.Boss && !_enter)
|
{
|
if (!m_MainPositionTween.IsSetCopyOfThePanelShow && !inDungeon && !isNeutralMap)
|
{
|
SetTipPanelOrBossList(true, true);
|
}
|
}
|
}
|
|
private void AtkTypeChange()//骑宠争夺是否切换状态
|
{
|
var mapID = PlayerDatas.Instance.baseData.MapID;
|
var config = MapConfig.Get(mapID);
|
var atkInt = pKModel.GetArea(config.AtkType);
|
var IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
|
var Line = 0;
|
fairyGrabBossModel.TryGetFairyGrabBossLine(out Line);
|
if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool && Line == PlayerDatas.Instance.baseData.FBID)
|
{
|
DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)0);
|
onMainModel.AreaState = Buffmodel.PkType;
|
return;
|
}
|
|
if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool && Line != PlayerDatas.Instance.baseData.FBID)//逍遥城普通Boss区域处理
|
{
|
|
DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
|
onMainModel.AreaState = Buffmodel.PkType;
|
return;
|
}
|
|
if (!onMainModel.ShieldedArea.Contains(PlayerDatas.Instance.baseData.MapID))//前四只Boss和活动Boss特殊处理
|
{
|
if (IsBossBool && atkInt.Count > 1 && Buffmodel.PkType != 5)
|
{
|
onMainModel.AreaState = Buffmodel.PkType;
|
DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)5);
|
}
|
}
|
}
|
|
private void SetAtkType()//逍遥城非boss区域特殊处理
|
{
|
if (PlayerDatas.Instance.hero != null)
|
{
|
bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
|
if (PlayerDatas.Instance.baseData.MapID == 10040 && !IsBossBool && Buffmodel.PkType != 0)
|
{
|
DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)0);
|
Buffmodel.PkType = 0;
|
}
|
}
|
}
|
|
public void MarkRayButton()
|
{
|
if (NewBieCenter.Instance.inGuiding)
|
{
|
return;
|
}
|
|
if (treasureModel.treasureStageUpShow || treasureModel.newGotShowing)
|
{
|
return;
|
}
|
|
var inDungeon = IsDungeon();
|
var inBossArea = PlayerDatas.Instance.hero == null ? false : MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
|
var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
|
|
if (!recordPositionBool)
|
{
|
if (inDungeon || inBossArea || isNeutralMap)
|
{
|
SetTipPanelOrBossList(false, true);
|
}
|
if (!inBossArea)
|
{
|
if (!m_MainPositionTween.IsSetCopyOfThePanelShow && !inDungeon)
|
{
|
SetTipPanelOrBossList(true, true);
|
}
|
}
|
m_MailObj.SetActive(true);
|
recordPositionBool = true;
|
m_MainPositionTween.SetRotation(false);
|
m_MainPositionTween.SetSkillTipOrRightTipPosTween(true);
|
}
|
}
|
|
void DownButton(GameObject go)
|
{
|
_ExpRate.gameObject.SetActive(true);
|
}
|
|
void UpButton(GameObject go)
|
{
|
_ExpRate.gameObject.SetActive(false);
|
}
|
|
void TaskSwithButton()
|
{
|
if (TaskSwithBool)//隐藏
|
{
|
m_MainPositionTween.SetTaskPosTween(false);
|
}
|
else//显示
|
{
|
m_MainPositionTween.SetTaskPosTween(true);
|
}
|
|
if (onMainModel.IsBossAreaTask)
|
{
|
onMainModel.IsBossAreaTask = false;
|
}
|
|
TaskSwithBool = !TaskSwithBool;
|
}
|
|
void SwitchShowButton()
|
{
|
var inDungeon = IsDungeon();
|
bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);
|
var isNeutralMap = GeneralDefine.neutralBossMaps.Contains(PlayerDatas.Instance.baseData.MapID);
|
var judge1 = inDungeon || IsBossBool || isNeutralMap;
|
var judge2 = !IsBossBool && !m_MainPositionTween.IsSetCopyOfThePanelShow && !inDungeon;
|
|
if (recordPositionBool)//显示功能入口
|
{
|
if (judge1 || judge2)
|
{
|
SetTipPanelOrBossList(true, true);
|
}
|
m_MailObj.SetActive(false);
|
_MarkRay.gameObject.SetActive(true);
|
m_MainPositionTween.SetSkillTipOrRightTipPosTween(false);
|
m_MainPositionTween.SetRotation(true);
|
}
|
else//显示默认
|
{
|
if (judge1)
|
{
|
SetTipPanelOrBossList(false, true);
|
}
|
if (judge2)
|
{
|
SetTipPanelOrBossList(true, true);
|
}
|
m_MailObj.SetActive(true);
|
_MarkRay.gameObject.SetActive(false);
|
m_MainPositionTween.SetSkillTipOrRightTipPosTween(true);
|
m_MainPositionTween.SetRotation(false);
|
}
|
recordPositionBool = !recordPositionBool;
|
}
|
|
// 前期战斗用强制设置任务位置逻辑
|
public void ForceShowTaskPanel()
|
{
|
if (onMainModel.IsBossAreaTask)
|
{
|
onMainModel.IsBossAreaTask = false;
|
}
|
m_MainPositionTween.SetTaskPos(true);
|
TaskSwithBool = !TaskSwithBool;
|
}
|
|
void ArticleExperience()//关于经验条
|
{
|
int NowLv = (int)PlayerDatas.Instance.baseData.LV;
|
if (PlayerLVConfig.Get(NowLv) != null)
|
{
|
ulong maxValue = (ulong)PlayerLVConfig.GetExpByPlayerLv(NowLv);
|
ulong nowVlaue = (ulong)PlayerDatas.Instance.baseData.TotalExp + (ulong)PlayerDatas.Instance.baseData.ExpPoint * 100000000;
|
if (SliderOpen)
|
{
|
_ExpSlider.delay = 0;
|
_ExpSlider.stage = NowLv;
|
_ExpSlider.ResetStage();
|
ExpValueFloat = ((float)nowVlaue / (float)maxValue);
|
_ExpSlider.value = (float)ExpValueFloat;
|
SliderOpen = false;
|
}
|
else
|
{
|
if (NowLv - _ExpSlider.stage >= 15)
|
{
|
_ExpSlider.delay = 0;
|
}
|
else
|
{
|
_ExpSlider.delay = 0.1f;
|
}
|
ExpValueFloat = ((float)nowVlaue / (float)maxValue);
|
int MapID = PlayerDatas.Instance.baseData.MapID;
|
if (ExpValueFloat != _ExpSlider.value && MapID == 31080)
|
{
|
m_UIEffect_A.Play();
|
if (m_UIEffect_A.IsPlaying)
|
{
|
if (!m_UIEffect_B.IsPlaying)
|
{
|
m_UIEffect_B.Play();
|
}
|
}
|
}
|
_ExpSlider.stage = NowLv;
|
_ExpSlider.value = (float)ExpValueFloat;
|
}
|
if ((float)Math.Round((double)nowVlaue / maxValue, 2, MidpointRounding.AwayFromZero) >= 1f)
|
{
|
_ExpRate.text = "99.9%";
|
}
|
else
|
{
|
_ExpRate.text = (float)Math.Round((double)nowVlaue / maxValue, 2, MidpointRounding.AwayFromZero) * 100 + "%";
|
}
|
}
|
}
|
|
void Updatefighting(PlayerDataType _tCDBPlayerRefresh)//数据的刷新
|
{
|
ArticleExperience();//关于经验条
|
if (_tCDBPlayerRefresh == PlayerDataType.LV)
|
{
|
IsUpdateBool = true;
|
}
|
|
if (_tCDBPlayerRefresh == PlayerDataType.ExAttr5)//判断是否再跨服
|
{
|
ProcessCrossServerOneVsOne();
|
}
|
}
|
|
|
private bool IsDungeon()
|
{
|
if (AdventureStage.Instance.IsInAdventureStage)
|
{
|
return true;
|
}
|
var mapId = PlayerDatas.Instance.baseData.MapID;
|
var mapConfig = MapConfig.Get(mapId);
|
return mapConfig != null && mapConfig.MapFBType != 0;
|
}
|
|
private void UnFlodFunctionArea(bool _unflod, int _skillGroup)
|
{
|
if (_unflod)
|
{
|
if (!m_MainPositionTween.IsTaskAndPanelShow)//任务面板
|
{
|
TaskSwithButton();
|
onMainModel.IsBossAreaTask = false;
|
}
|
|
ShowBtnGroup();//显示按钮组隐藏技能组(强制切换)
|
m_HighSettingFadeInFadeOut.SwitchImmedidately(true);
|
}
|
}
|
|
void HandleAchievement()
|
{
|
if (AchievementGoto.achievementType == AchievementGoto.ExcuteSkill)
|
{
|
if (m_MainPositionTween.IsRightTipPanelShow)//技能面板收起状态
|
{
|
ShowCastSkill();//显示技能组隐藏按钮组(强制切换)
|
}
|
var _cfg = SuccessConfig.Get(AchievementGoto.guideAchievementId);
|
var _skillId = SkillConfig.FindSkillByJob(_cfg.Condition, PlayerDatas.Instance.baseData.Job);
|
if (_skillId != 0)
|
{
|
if (ModelCenter.Instance.GetModel<SkillModel>().GetXpSkillID() != _skillId)
|
{
|
return;
|
}
|
if (PlayerDatas.Instance.hero.SkillMgr.Get(_skillId).cd > 0)
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("SkillCooling_Z"));
|
}
|
else
|
{
|
var _effect = AchievementGuideEffectPool.Require(3);
|
_effect.transform.SetParentEx(m_IsShowXp.transform, Vector3.zero, Vector3.zero, Vector3.one);
|
}
|
AchievementGoto.achievementType = 0;
|
}
|
else
|
{
|
AchievementGoto.achievementType = 0;
|
}
|
}
|
}
|
|
void CheckChatTipOpen()
|
{
|
bool _chatWinOpen = WindowCenter.Instance.IsOpen<ChatWin>();
|
m_ChatTip.gameObject.SetActive(!_chatWinOpen);
|
}
|
|
private void WindowAfterEvent(Window _win)
|
{
|
if (_win is ChatWin)
|
{
|
CheckChatTipOpen();
|
}
|
}
|
|
public void IsShowButtonGroup()
|
{
|
if (m_MainPositionTween.IsRightTipPanelShow)//技能面板展示
|
{
|
ShowBtnGroup();//显示按钮组隐藏技能组(强制切换)
|
}
|
}
|
|
private void ShowBtnGroup()//显示按钮组,隐藏技能组(强制切换)
|
{
|
m_MainPositionTween.SetSkillTipOrRightTipPos(false);
|
m_MailObj.SetActive(false);
|
m_MainPositionTween.SetRotation(true);
|
recordPositionBool = false;
|
_MarkRay.gameObject.SetActive(true);
|
}
|
|
private void ShowCastSkill()//显示技能组,隐藏按钮组(强制切换)
|
{
|
m_MainPositionTween.SetSkillTipOrRightTipPos(true);
|
m_MailObj.SetActive(true);
|
m_MainPositionTween.SetRotation(false);
|
recordPositionBool = true;
|
_MarkRay.gameObject.SetActive(false);
|
}
|
|
private void IsShowTaskPanel()//是否显示任务面板
|
{
|
var inDungeon = IsDungeon();
|
var judge = inDungeon || fairyGrabBossModel.grabBossHintOpen
|
|| CrossServerUtility.IsCrossServer()
|
|| ClientCrossServerOneVsOne.isClientCrossServerOneVsOne;
|
if (judge)
|
{
|
m_TaskAndTeamTip.SetActive(false);
|
m_TaskSwithButton.gameObject.SetActive(false);
|
}
|
else
|
{
|
m_TaskAndTeamTip.SetActive(true);
|
m_TaskSwithButton.gameObject.SetActive(true);
|
}
|
}
|
|
private void bossGrabHintEvent()
|
{
|
IsShowTaskPanel();
|
AtkTypeChange();
|
}
|
|
private void ProcessCrossServerOneVsOne()
|
{
|
if (CrossServerUtility.IsCrossServerOneVsOne())//是否再跨服副本中
|
{
|
WindowCenter.Instance.Open<FightingPKWin>();
|
m_HeadPortraitTip.gameObject.SetActive(false);
|
CopyOfThePanel.gameObject.SetActive(false);
|
_SwitchShowBtn.gameObject.SetActive(false);
|
m_ChatTip.gameObject.SetActive(false);
|
m_FunctionForecastTip.gameObject.SetActive(false);
|
m_TaskSwithButton.gameObject.SetActive(false);
|
m_InGamePusher.gameObject.SetActive(false);
|
IsShowTaskPanel();
|
if (m_MainPositionTween.IsRightTipPanelShow)//技能面板收起状态
|
{
|
ShowCastSkill();//显示技能组,隐藏按钮组(强制切换)
|
}
|
}
|
else
|
{
|
WindowCenter.Instance.Close<FightingPKWin>();
|
m_HeadPortraitTip.gameObject.SetActive(true);
|
CopyOfThePanel.gameObject.SetActive(true);
|
_SwitchShowBtn.gameObject.SetActive(true);
|
m_ChatTip.gameObject.SetActive(true);
|
m_FunctionForecastTip.gameObject.SetActive(true);
|
m_TaskSwithButton.gameObject.SetActive(true);
|
m_InGamePusher.gameObject.SetActive(true);
|
if (WindowCenter.Instance.IsOpen<FightingPKWin>())
|
{
|
WindowCenter.Instance.Close<FightingPKWin>();
|
}
|
}
|
}
|
|
private void SetTipPanelOrBossList(bool _bool, bool _isTween)//顶层按钮组和boss列表的相互切换
|
{
|
var inDungeon = IsDungeon();
|
m_BossBriefInfos.Unfold(false);
|
if (_bool)
|
{
|
if (IsCopyOfThePanel != null)
|
{
|
IsCopyOfThePanel(true);
|
}
|
if (Event_Duplicates != null && inDungeon)
|
{
|
Event_Duplicates(true, m_MainPositionTween.rightTopSwitchTime);
|
}
|
onMainModel.MainTopPanelShow = true;
|
if (_isTween)
|
{
|
m_MainPositionTween.SetTipAndBossTweenPos(true);
|
}
|
else
|
{
|
m_MainPositionTween.SetTipAndBossPos(true);
|
}
|
}
|
else
|
{
|
if (IsCopyOfThePanel != null)
|
{
|
IsCopyOfThePanel(false);
|
}
|
if (Event_Duplicates != null && inDungeon)
|
{
|
Event_Duplicates(false, m_MainPositionTween.rightTopSwitchTime);
|
}
|
onMainModel.MainTopPanelShow = false;
|
if (_isTween)
|
{
|
m_MainPositionTween.SetTipAndBossTweenPos(false);
|
}
|
else
|
{
|
m_MainPositionTween.SetTipAndBossPos(false);
|
}
|
}
|
}
|
}
|
}
|