Example #1
0
    //------------------------Collision Handling------------------------
    private void OnCollisionEnter2D(Collision2D collision) //Handles collisions between player and physical GameObjects
    {
        GameObject other = collision.gameObject;
        Vector2    collisionDirection = transform.position - other.transform.position;

        if (canTakeDamage)            //Player touches an enemy
        {
            if (other.tag == "Enemy") //Player takes damage from contact with enemy
            {
                RangeEnemy rangeScript = other.GetComponent <RangeEnemy>();
                MeleeEnemy meleeScript = other.GetComponent <MeleeEnemy>();
                if (rangeScript)
                {
                    TakeDamage(rangeScript.Damage, collisionDirection);
                }
                else if (meleeScript)
                {
                    TakeDamage(meleeScript.Damage, collisionDirection);
                }
            }
            else if (other.tag == "EnemyProjectile") //Player touches an enemy's projectile
            {
                Projectile projScript = other.GetComponent <Projectile>();
                if (projScript) //Player takes damage from contact with enemy's projectile
                {
                    TakeDamage(projScript.Damage, collisionDirection);
                    Destroy(other);
                }
            }
        }
    }
Example #2
0
 private void OnTriggerEnter(Collider other)
 {
     enemySpawnManager = GameObject.Find("Enemy Spawn Manager").GetComponent <EnemySpawnManager>();
     playerStats       = GameObject.Find("GameManager").GetComponent <PlayerStats>();
     if (other.gameObject.CompareTag("Range Enemy"))
     {
         prefabs.SetActive(false);
         rangeEnemy = other.GetComponent <RangeEnemy>();
         rangeEnemy.healthRangeEnemy -= playerStats.attackPower;
         if (rangeEnemy.healthRangeEnemy <= 0)
         {
             other.gameObject.SetActive(false);
             rangeEnemy.healthRangeEnemy         = 100;
             other.gameObject.transform.position = enemySpawnManager.RandomPosition();
             rangeEnemy.weaponIsActive           = true;
         }
     }
     if (other.gameObject.CompareTag("Melee Enemy"))
     {
         prefabs.SetActive(false);
         meleeEnemy = other.GetComponent <MeleeEnemy>();
         meleeEnemy.healthMeleeEnemy -= playerStats.attackPower;
         if (meleeEnemy.healthMeleeEnemy > 0)
         {
             meleeEnemy.SkeletonAnim.SetTrigger("GetDamage");
         }
     }
 }
Example #3
0
    private void Awake()
    {
        stateMachine = GetComponent <RangeSM>();

        rangeEnemy   = GetComponentInParent <RangeEnemy>();
        navMeshAgent = GetComponentInParent <NavMeshAgent>();
        animator     = GetComponentInParent <Animator>();

        player = FindObjectOfType <Player>();
    }
Example #4
0
 void Start()
 {
     bulletPool = GameObject.FindGameObjectWithTag("BulletPool").transform;
     thisEnemy  = GetComponent <RangeEnemy>();
     player     = GameManager.instance.GetPlayer();
 }