Beispiel #1
0
    private void OnTriggerEnter2D(Collider2D otherCollider)
    {
        AEnemy enemyScript = otherCollider.gameObject.GetComponent <AEnemy>();

        // Check if the object is an enemy by looking for an enemy script
        if (enemyScript != null && !enemyScript.IsDead()) // If enemy isn't already dead, do damage
        {
            AudioManager.Instance.PlayOneShot("BoomerangHit");
            enemyScript.TakeDamage(Player.BoomerangDamage);
        }

        Boomerang boomerangScript = otherCollider.gameObject.GetComponent <Boomerang>();

        if ((boomerangScript != null) && (numExplosions > 0)) // If object is another boomerang
        {
            Vector2 vel        = boomerangRb.velocity;
            float   thisAngle  = Mathf.Atan2(vel.y, vel.x) * Mathf.Rad2Deg;
            float   otherAngle = Mathf.Atan2(otherCollider.GetComponent <Rigidbody2D>().velocity.y, otherCollider.GetComponent <Rigidbody2D>().velocity.x) * Mathf.Rad2Deg;

            if (Mathf.Abs(otherAngle - thisAngle) > minAngle)   // Check that the angle between the two boomerangs' velocity is bigger than 10
            {
                Vector2 offset = vel * (0.55f / vel.magnitude); // Offsetting it so that the explosion is at the intersection of the two boomerangs
                Instantiate(_player.boomerangExplosionEffect, this.transform.position + new Vector3(offset.x, offset.y, 0f), Quaternion.AngleAxis(thisAngle, Vector3.forward));
                numExplosions -= 1;
            }
        }
    }
Beispiel #2
0
 //when enter other collider recycle self
 //exclude layers player bullets
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.tag == "Enemy")
     {
         AEnemy enemy = other.gameObject.GetComponent <AEnemy> ( );
         enemy.TakeDamage(damage);
     }
     Recycle( );
 }
    private void OnTriggerEnter2D(Collider2D otherCollider)
    {
        AEnemy enemyScript = otherCollider.gameObject.GetComponent <AEnemy>();

        // Check if the object is an enemy by looking for an enemy script
        if (enemyScript != null && !enemyScript.IsDead()) // If enemy isn't already dead, do damage
        {
            enemyScript.TakeDamage(Player.BoomerangExplosionDamage);
        }
    }
Beispiel #4
0
 void OnTriggerEnter2D(Collider2D other)//si elle entre en collision
 {
     if (!other.gameObject.CompareTag("Player"))
     {
         if (other.gameObject.CompareTag("Enemy") || other.gameObject.CompareTag("Boss"))
         {
             AEnemy _enemy = other.gameObject.GetComponent <AEnemy>(); //Recup les données AEnemy de l'ennemie touché
             _enemy.TakeDamage(arrowDmg);                              //Inflige des dégats a l'ennemie
         }
         Destroy(gameObject);                                          //Detruit l'arrow
     }
 }
Beispiel #5
0
    private void LaunchAttack(Collider2D hitbox, int damageAmount)
    {
        Collider2D[] allColliders = Physics2D.OverlapBoxAll(hitbox.bounds.center, hitbox.bounds.size, 0);

        foreach (Collider2D collider in allColliders)
        {
            AEnemy enemyScript = collider.gameObject.GetComponent <AEnemy>();
            // Check if the enemy script exists to confirm that this is an enemy's collider
            if (enemyScript != null && !enemyScript.IsDead()) // If enemy isn't already dead, do damage
            {
                _player.slashParticle.Play();
                enemyScript.TakeDamage(damageAmount);
            }
        }
    }