Esempio n. 1
0
        public IEnumerator TurnEndCoroutine()
        {
            SingletonMonoBehaviour <UIShortCutMenu> .Instance.IsInputEnable = false;
            LogicMng = StrategyTopTaskManager.GetLogicManager();
            TutorialModel model             = StrategyTopTaskManager.GetLogicManager().UserInfo.Tutorial;
            bool          isFlagShipDamaged = SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.GetFlagShip()?.IsDamaged() ?? false;

            StrategyTopTaskManager.GetLogicManager().GetResult_UserActionPhase();
            StrategyTopTaskManager.GetLogicManager().GetResult_EnemyPreActionPhase();
            EnemyActionPhaseResultModel enemyResult = StrategyTopTaskManager.GetLogicManager().GetResult_EnemyActionPhase();

            TurnResult = StrategyTopTaskManager.GetLogicManager().GetResult_Turn();
            StrategyMapManager j = StrategyTopTaskManager.GetLogicManager();

            EnemyResult(enemyResult);
            if (TurnResult.RadingResult != null)
            {
                bool TutorialFinished3 = false;
                SingletonMonoBehaviour <TutorialGuideManager> .Instance.CheckAndShowFirstTutorial(model, TutorialGuideManager.TutorialID.Raider, delegate
                {
                    SingletonMonoBehaviour <TutorialGuideManager> .Instance.GetTutorialDialog().OnClosed = delegate
                    {
                        TutorialFinished3 = true;
                    };
                });

                while (!TutorialFinished3)
                {
                    TutorialDialog t = SingletonMonoBehaviour <TutorialGuideManager> .Instance.GetTutorialDialog();

                    if (t == null && !SingletonMonoBehaviour <TutorialGuideManager> .Instance.isRequest())
                    {
                        break;
                    }
                    yield return(new WaitForEndOfFrame());
                }
                TileAnimationManager tam = GetComponent <TileAnimationManager>();
                bool isFirst             = true;
                StrategyTopTaskManager.Instance.ShipIconManager.SetVisible(isVisible: false);
                StrategyTopTaskManager.Instance.TileManager.SetVisibleAllAreaDockIcons(isVisible: false);
                for (int i = 0; i < TurnResult.RadingResult.Count; i++)
                {
                    tam.Initialize(TurnResult.RadingResult[i], j.Area[TurnResult.RadingResult[i].AreaId], isFirst);
                    isFirst = false;
                    while (!tam.isFinished)
                    {
                        yield return(new WaitForEndOfFrame());
                    }
                    tam.isFinished = false;
                }
                StrategyTopTaskManager.Instance.ShipIconManager.SetVisible(isVisible: true);
                StrategyTopTaskManager.Instance.TileManager.SetVisibleAllAreaDockIcons(isVisible: true);
                bool isShow = SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.MissionState == MissionStates.NONE;
                StrategyTopTaskManager.Instance.GetInfoMng().MoveScreenIn(null, isShow);
                StrategyTopTaskManager.Instance.UIModel.MapCamera.MoveToTargetTile(StrategyTopTaskManager.Instance.TileManager.FocusTile.areaID);
            }
            StartCoroutine(UserPreAction());
            dayAnimation.SetActive(isActive: true);
            StrategyTopTaskManager.Instance.GetInfoMng().updateUpperInfo();
            StrategyTopTaskManager.Instance.GetInfoMng().updateInfoPanel(SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.AreaId);
            while (!finished)
            {
                yield return(new WaitForEndOfFrame());
            }
            finished = false;
            yield return(StartCoroutine(dayAnimation.StartDayAnimation(LogicMng, isDebug)));

            yield return(StartCoroutine(dayAnimation.StartMonthAnimation(LogicMng, userPreAction, isDebug)));

            yield return(StartCoroutine(dayAnimation.StartWeekAnimation(LogicMng, userPreAction, isDebug)));

            yield return(StartCoroutine(dayAnimation.StartSendChocoAnimation(LogicMng, userPreAction, isDebug)));

            yield return(StartCoroutine(dayAnimation.EndDayAnimation(LogicMng, isDebug)));

            isDebug = false;
            dayAnimation.SetActive(isActive: false);
            StrategyTopTaskManager.Instance.UIModel.UIMapManager.ShipIconManager.setShipIconsState();
            StrategyTopTaskManager.Instance.TileManager.updateTilesColor();
            if (StrategyTopTaskManager.Instance.TileManager.isExistRebellionTargetTile())
            {
                yield return(StartCoroutine(RebellionTutorialGuide(model)));
            }
            if (SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.GetFlagShip() != null && isFlagShipDamaged != SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck.GetFlagShip().IsDamaged())
            {
                StrategyTopTaskManager.Instance.UIModel.Character.ChangeCharacter();
                StrategyTopTaskManager.Instance.UIModel.Character.setState(SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck);
            }
            bool TutorialFinished2 = !SingletonMonoBehaviour <TutorialGuideManager> .Instance.CheckAndShowFirstTutorial(model, TutorialGuideManager.TutorialID.ResourceRecovery, delegate
            {
                SingletonMonoBehaviour <TutorialGuideManager> .Instance.GetTutorialDialog().OnClosed = delegate
                {
                    TutorialFinished2 = true;
                };
            });

            while (!TutorialFinished2)
            {
                yield return(new WaitForEndOfFrame());
            }
            StrategyTopTaskManager.Instance.GetInfoMng().updateFooterInfo(isUpdateMaterial: true);
            StrategyTopTaskManager.Instance.TileManager.UpdateAllAreaDockIcons();
            Close();
            if (model.GetStep() == 8 && !model.GetStepTutorialFlg(9))
            {
                StartCoroutine(StrategyTopTaskManager.Instance.TutorialCheck());
            }
            if (isRebellion)
            {
                if (SingletonMonoBehaviour <PortObjectManager> .Instance.GetTutorialGuide() != null)
                {
                    SingletonMonoBehaviour <PortObjectManager> .Instance.GetTutorialGuide().Hide();
                }
                StrategyTaskManager.ReqMode(StrategyTaskManager.StrategyTaskManagerMode.Rebellion);
            }
            else
            {
                StrategyTopTaskManager.ReqMode(StrategyTopTaskManager.StrategyTopTaskManagerMode.StrategyTopTaskManagerMode_ST);
            }
            yield return(null);
        }