| | |
| | | public bool inGuiding
|
| | | {
|
| | | // 当前有引导,并且不是暂停状态,则在引导中
|
| | | get { return currentGuide != 0 && IsNeedRecord(currentGuide); }
|
| | | get { return currentGuide != 0 && IsPauseMainBattle(currentGuide); }
|
| | | }
|
| | |
|
| | | List<int> allGuides = new List<int>();
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | if (currentGuide != 0 && GuideConfig.Get(currentGuide).NoRecord == 0)
|
| | | int curPriority = -1;
|
| | | var curGuide = GuideConfig.Get(currentGuide);
|
| | | if (curGuide != null)
|
| | | {
|
| | | // 可重复触发的引导属于低优先级 会被新引导替换
|
| | | return false;
|
| | | curPriority = curGuide.Priority;
|
| | | }
|
| | |
|
| | | for (int i = 0; i < _guides.Count; i++)
|
| | |
| | | continue;
|
| | | }
|
| | |
|
| | | if (config.Priority <= curPriority)
|
| | | {
|
| | | // 高优先级才可以打断低的
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (currentGuide != guideId && CheckGuideCondition(guideId, isOrgTrigger))
|
| | | {
|
| | |
|
| | | return StartNewBieGuide(guideId);
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | |
|
| | |
|
| | | bool WaitGuide(int _id)
|
| | | bool WaitGuide(GuideConfig config)
|
| | | {
|
| | | var config = GuideConfig.Get(_id);
|
| | | //要引导的界面上有其他界面盖住,加入队列等待其他界面关闭的时候再触发该界面引导
|
| | | if (UIManager.Instance.ExistAnyFullScreenOrMaskWinAbove(config.WinName))
|
| | | // 或者等待拾取装备后再引导
|
| | | if (UIManager.Instance.ExistAnyFullScreenOrMaskWinAbove(config.WinName) || |
| | | (config.PauseMainBattle == 1 && PackManager.Instance.GetItems(PackType.DropItem).Count > 0
|
| | | && config.WinName != "EquipExchangeWin"))
|
| | | {
|
| | | //如果子界面是必须挂在该界面上切且没有蒙版盖住的可以增加判断
|
| | | if (!waitGuideWinNames.Contains(config.WinName))
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | if (WaitGuide(_id))
|
| | | if (WaitGuide(config))
|
| | | {
|
| | | return false;
|
| | | }
|
| | |
| | | }
|
| | |
|
| | |
|
| | | public bool IsPauseMainBattle(int _id)
|
| | | {
|
| | | var config = GuideConfig.Get(_id);
|
| | | if (config == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | return GuideConfig.Get(_id).PauseMainBattle == 1;
|
| | | }
|
| | |
|
| | | //非0代表 可重复引导,且优先级低会被新引导替换,且不暂停主线战斗
|
| | | public bool IsNeedRecord(int _id)
|
| | | {
|