Esempio n. 1
0
        private IEnumerator ShipMove(UniRx.IObserver <bool> observer)
        {
            MapManager   manager      = SortieBattleTaskManager.GetMapManager();
            UIMapManager uiMapManager = SortieMapTaskManager.GetUIMapManager();
            UISortieShip sortieShip   = uiMapManager.sortieShip;

            UniRx.IObservable <Unit> underwayReplenishmentUnit = Observable.FromCoroutine(() => this.ChkUnderwayReplenishment(manager));
            UniRx.IObservable <Unit> compassUnit    = Observable.FromCoroutine(() => this.ChkCompass(manager, uiMapManager, sortieShip));
            UniRx.IObservable <Unit> productionUnit = Observable.FromCoroutine(() => this.ChkProduction(manager, uiMapManager, sortieShip));
            UniRx.IObservable <Unit> synthesisUnit  = Observable.SelectMany(other: Observable.FromCoroutine(() => this.ChkComment(manager, sortieShip)), source: underwayReplenishmentUnit.SelectMany(compassUnit).SelectMany(productionUnit));
            yield return(synthesisUnit.StartAsCoroutine());

            CheckNextBossCell(manager);
            sortieShip.Move(uiMapManager.nextCell, delegate
            {
                uiMapManager.UpdateRouteState(uiMapManager.nextCell.cellModel.CellNo);
                observer.OnNext(value: true);
                observer.OnCompleted();
            });
            yield return(null);
        }