예제 #1
0
    public override void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.GetComponent <Enemy.Enemy>() != null)
        {
            //If Collided with Enemy Unit
            //Reduce Enemy HP (currently no function for that)
            Enemy.Enemy enemy = other.gameObject.GetComponent <Enemy.Enemy>();

            if (prevTarget && enemy != prevTarget)
            {
                enemy.Injure(Damage);
                prevTarget = enemy;
            }
            else
            {
                prevTarget = enemy;
            }
        }
        else if (other.gameObject.GetComponent <RPGPlayer>() != null)
        {
            // Collision handled by player
        }
        else if (other.gameObject.GetComponent <Projectile>() != null)
        {
            // Do not allow collisions with self
            return;
        }
        else
        {
            Disable();
        }
    }
예제 #2
0
    // Update is called once per frame
    protected override void Update()
    {
        if (target)
        {
            // Move towards target
            transform.position = Vector3.MoveTowards(transform.position, target.transform.position, Speed * (float)TimeManager.GetDeltaTime(TimeManager.TimeType.Game));

            if (transform.position == target.transform.position)
            {
                // Projectile on target
                //Reduce Enemy HP (currently no function for that)

                // Find new target
                if (prevTarget && target != prevTarget)
                {
                    target.Injure(Damage);
                    prevTarget = target;
                    target     = findNearestEnemy();
                    if (!target)
                    {
                        // No new target found
                        Disable();
                    }
                }
                else if (!prevTarget)
                {
                    target.Injure(Damage);
                    prevTarget = target;
                    // No previous target
                    target = findNearestEnemy();
                    if (!target)
                    {
                        // No new target found
                        Disable();
                    }
                }
            }
        }
        else
        {
            base.Update();
        }
    }
예제 #3
0
 public virtual void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.GetComponent <Enemy.Enemy>() != null)
     {
         //If Collided with Enemy Unit
         //Reduce Enemy HP (currently no function for that)
         Enemy.Enemy enemy = collision.gameObject.GetComponent <Enemy.Enemy>();
         enemy.Injure(Damage);
     }
 }
예제 #4
0
 /*
  * FUNCTION: OnCollisionEnter2D
  * params: Collision2D collision
  *
  * brief: Perform Collision functions
  */
 public virtual void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.GetComponent <Enemy.Enemy>() != null)
     {
         //If Collided with Enemy Unit
         //Reduce Enemy HP (currently no function for that)
         Enemy.Enemy enemy = collision.gameObject.GetComponent <Enemy.Enemy>();
         enemy.Injure(Damage);
         Disable();
     }
     else if (collision.gameObject.GetComponent <RPGPlayer>() != null)
     {
         // Collision handled by player
     }
     else if (collision.gameObject.GetComponent <Projectile>() != null)
     {
         // Do not allow collisions with self
         return;
     }
     else
     {
         Disable();
     }
 }