예제 #1
0
        public IEnumerator RunMoveUntil(IBossMove move, Func <bool> predicate)
        {
            CurrentMove = move;
            yield return(CoroutineUtilities.RunWhile(move.DoMove(), () => !predicate()));

            PreviousMove = move;
            if (CurrentMove == move)
            {
                CurrentMove = null;
            }
            else
            {
                move.OnCancel();
            }
        }
예제 #2
0
        /*public IEnumerator RunRandomMove()
         * {
         *      return RunMove(GetRandomMove());
         * }*/

        public IEnumerator RunMove(IBossMove move)
        {
            int stage = BossStage;

            return(RunMoveUntil(move, () => stage != BossStage || move != CurrentMove));
        }