예제 #1
0
    IEnumerator WideAttack()
    {
        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX9, transform.position);

        ClearRangeList();
        for (int i = 0; i < targetList.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(CardEffect.DARKSUN, targetList[i]);
        }
        if (TileUtils.AI_Find(targetList))
        {
            PlayerControl.player.GetDamage(atk);
        }
        yield return(StartCoroutine(AnimationRoutine(2)));
    }
예제 #2
0
    IEnumerator FireWall()
    {
        List <Arch.Tile> targets = GetFireWallRange();

        if (TileUtils.AI_Find(targets))
        {
            PlayerControl.player.GetDamage(atk);
        }

        for (int i = 0; i < targets.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.FIREBREATH, targets[i]);
        }
        yield return(null);
    }
예제 #3
0
 protected override void Think()
 {
     if (TileUtils.AI_Find(GetEnvironment()))
     {
         currentActionList = environmentAttack;
     }
     else if (TileUtils.AI_SquareFind(currentTile, 1))
     {
         currentActionList = meeleAttack;
     }
     else
     {
         currentActionList = moveList;
     }
 }
예제 #4
0
    IEnumerator AttackThenRangeOffAction()
    {
        List <Arch.Tile> tiles = TileUtils.SquareRange(currentTile, 1);

        for (int i = 0; i < tiles.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.ELECTRICG, tiles[i]);
        }
        if (TileUtils.AI_Find(tiles))
        {
            PlayerControl.player.GetDamage(atk);
        }
        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX3, transform.position);
        enemyUI.ActionImageOff();

        yield return(StartCoroutine(AnimationRoutine(0)));
    }
예제 #5
0
    IEnumerator SelfDestruct()
    {
        List <Arch.Tile> tiles = TileUtils.EmptySquareRange(currentTile, 2);

        for (int i = 0; i < tiles.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.EXPLOSIONB, tiles[i]);
        }

        if (TileUtils.AI_Find(tiles))
        {
            PlayerControl.player.GetDamage(atk);
        }
        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX4, transform.position);

        yield return(StartCoroutine(AnimationRoutine(0)));
    }
예제 #6
0
    IEnumerator Attack()
    {
        SoundDelegate.instance.PlayEffectSound(SoundEffect.ATTACK, transform.position);

        ClearRangeList();
        List <Arch.Tile> targets = TileUtils.CrossRange(currentTile, 4);

        for (int i = 0; i < targets.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.ENEMYEXPLOSIONC, targets[i]);
        }
        if (TileUtils.AI_Find(targets))
        {
            PlayerControl.player.GetDamage(atk);
        }

        yield return(StartCoroutine(AnimationRoutine(0)));
    }
예제 #7
0
    IEnumerator Attack()
    {
        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX9, transform.position);

        List <Tile> tiles = TileUtils.CrossRange(currentTile, 2);

        for (int i = 0; i < tiles.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(CardEffect.DARKSUN, tiles[i]);
        }

        if (TileUtils.AI_Find(tiles))
        {
            PlayerControl.player.GetDamage(atk);
        }
        ClearRangeList();
        yield return(StartCoroutine(AnimationRoutine(0)));
    }
예제 #8
0
    IEnumerator EnvironAttack()
    {
        enemyUI.ActionImageOff();
        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX5, transform.position);

        ClearRangeList();

        for (int i = 0; i < environ.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.SPACE, environ[i]);
        }
        if (TileUtils.AI_Find(environ))
        {
            PlayerControl.player.GetDamage(atk);
        }

        yield return(StartCoroutine(AnimationRoutine(0)));
    }
예제 #9
0
    IEnumerator BlowAway()
    {
        ClearRangeList();
        List <Arch.Tile> targets = GetBlowAwayRange();

        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX4, transform.position);

        for (int i = 0; i < targets.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.EXPLOSIONB, targets[i]);
        }

        if (TileUtils.AI_Find(targets))
        {
            PlayerControl.player.GetDamage(atk);
        }
        while (!PlayerControl.player.Teleport((new Vector2Int(Random.Range(2, 4), Random.Range(1, 6)))))
        {
        }

        yield return(StartCoroutine(AnimationRoutine(0)));
    }
예제 #10
0
    IEnumerator Attack()
    {
        if (isSecond)
        {
            enemyUI.ActionImageOff();
        }
        SoundDelegate.instance.PlayEffectSound(SoundEffect.SFX5, transform.position);

        List <Arch.Tile> tiles = TileUtils.EmptySquareRange(currentTile, 2);

        for (int i = 0; i < tiles.Count; i++)
        {
            ObjectPoolManager.instance.PoolEffect(EnemyEffect.FIREBREATH, tiles[i]);
        }

        if (TileUtils.AI_Find(tiles))
        {
            PlayerControl.player.GetDamage(atk);
        }
        isSecond = true;
        yield return(StartCoroutine(AnimationRoutine(0)));
    }