Exemple #1
0
    public IEnumerator BlueAttackVersus(GameObject _playerToFocus, GameObject _player)
    {
        AudioManager.instance.PlayClipAt(sound_BlueAttackVersusSpawn, transform.position);
        PlayerCharacter playerCharacter = _player.GetComponent <PlayerCharacter>();
        Animator        animator        = GetComponent <Animator>();

        yield return(new WaitForSeconds(1.5f));

        animator.SetTrigger("fire");
        yield return(new WaitForSeconds(0.2f));

        for (int i = 0; i < playerCharacter.blueCountBullet; i++)
        {
            GameObject bullet = Instantiate(player.GetComponent <PlayerCharacter>().blueBullet,
                                            transform.position,
                                            Quaternion.identity);
            AudioManager.instance.PlayClipAt(sound_BlueAttackVersusShot, transform.position);

            TargetBullet targetBullet = bullet.GetComponent <TargetBullet>();
            targetBullet.accuracy        = playerCharacter.blueAccuracyBullet;
            targetBullet.damage          = playerCharacter.blueDamageBullet;
            targetBullet.speed           = playerCharacter.blueSpeedBullet;
            targetBullet.playerToFocus   = _playerToFocus;
            targetBullet.bulletBehaviour = BulletBehaviour.TARGET;
            yield return(new WaitForSeconds(playerCharacter.blueIntervalSpeedBullet));
        }

        yield return(new WaitForSeconds(1.5f));

        animator.SetTrigger("end");
    }
    public IEnumerator RedRangeAttack()
    {
        Dictionary <int, Vector2> localDir = new Dictionary <int, Vector2>();

        localDir.Add(0, Vector2.right);
        localDir.Add(1, Vector2.down);
        localDir.Add(2, Vector2.left);
        localDir.Add(3, Vector2.up);

        Dictionary <int, float> localRot = new Dictionary <int, float>();

        localRot.Add(0, 0f);
        localRot.Add(1, 270f);
        localRot.Add(2, 180f);
        localRot.Add(3, 90f);

        cdRangeAtkRed = true;

        animator.SetTrigger("range_attack");
        AudioManager.instance.PlayClipAt(sound_RedRangeAtk, transform.position);

        yield return(new WaitForSeconds(0.66f));

        AudioManager.instance.PlayClipAt(sound_RedRangeAtk2, transform.position);

        for (int i = 0; i < 4; i++)
        {
            GameObject   rangeAttack = Instantiate(playerCharacter.redRangeAttack, transform.position, Quaternion.Euler(0f, 0f, localRot[i]));
            TargetBullet bullet      = rangeAttack.GetComponent <TargetBullet>();

            //RangeAttack ra = rangeAttack.GetComponent<RangeAttack>();
            //ra.character = Character.RED;

            bullet.bulletBehaviour  = BulletBehaviour.DIRECTIONAL;
            bullet.speed            = playerCharacter.redSpeedBullet;
            bullet.damage           = playerCharacter.redDamageBullet;
            bullet.dirrectionBullet = localDir[i];
            bullet.player           = this.gameObject;
        }

        yield return(new WaitForSeconds(0.5f));

        cdRangeAtkRed = false;
    }