Beispiel #1
0
    public override IEnumerator Activate()
    {
        yield return(StartCoroutine(base.Activate()));

        Tile firstTile = boardManager.GetTile(0, summon.GetComponentInParent <Tile>().row);

        summon.Walk(firstTile);
        yield return(new WaitUntil(() => summon.DoneMoving()));

        gameObject.SetActive(false);
        base.Deactivate();
    }
Beispiel #2
0
    public override IEnumerator Activate()
    {
        yield return(StartCoroutine(base.Activate()));

        summon.Attack();
        yield return(new WaitUntil(() => summon.DoneAttacking()));

        summon.Walk();
        yield return(new WaitUntil(() => summon.DoneMoving()));

        gameObject.SetActive(false);
        base.Deactivate();
    }
Beispiel #3
0
    IEnumerator ResolveMovementForStage(int stageIndex)
    {
        for (int rowIndex = 0; rowIndex < rowLimit; rowIndex++)
        {
            Tile   tile   = grid[stageIndex][rowIndex];
            Summon summon = tile.GetComponentInChildren <Summon>();
            summon?.Walk();
        }

        yield return(new WaitWhile(() => Array.Find(tiles, (Tile tile2) => {
            Summon summon = tile2.GetComponentInChildren <Summon>();
            return summon && !summon.DoneMoving() ? true : false;
        })));
    }
Beispiel #4
0
    //IEnumerator StageRoutine(int stageIndex) {
    //    yield return StartCoroutine(ResolveAbilitiesForStage(stageIndex));
    //    yield return StartCoroutine(ResolveAttacksForStage(stageIndex));
    //    yield return StartCoroutine(ResolveMovementForStage(stageIndex));
    //}

    IEnumerator ResolveMovementForSummon(Summon summon)
    {
        summon.Walk();
        yield return(new WaitWhile(() => summon.DoneMoving()));
    }