Beispiel #1
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 #2
0
    IEnumerator ResolveAttacksForStage(int stageIndex)
    {
        Tile[] tilesInStage = new Tile[stageLimit];
        Array.Copy(grid[stageIndex], tilesInStage, stageLimit);
        System.Array.Sort(tilesInStage, (tileX, tileY) => {
            Summon summonX = tileX.GetComponentInChildren <Summon>();
            Summon summonY = tileY.GetComponentInChildren <Summon>();
            int x, y;
            x = summonX ? summonX.GetOrder() : -1;
            y = summonY ? summonY.GetOrder() : -1;
            return(x - y);
        });

        foreach (Tile tile in tilesInStage)
        {
            Summon summon = tile.GetComponentInChildren <Summon>();
            if (summon != null)
            {
                summon.Attack();
                yield return(new WaitUntil(() => summon.DoneAttacking()));
            }
        }
    }
Beispiel #3
0
 IEnumerator ResolveAttackForSummon(Summon summon)
 {
     summon.Attack();
     yield return(new WaitUntil(() => summon.DoneAttacking()));
 }