Example #1
0
 // Update is called once per frame
 void FixedUpdate()
 {
     playerEntered = FindClosestEnemy().gameObject.GetComponentInParent <PlayerController>().GetComponentInChildren <CircleCollider2D>();
     if (Vector2.Distance(playerEntered.transform.position, transform.position) <= 10)
     {
         transform.position += ((playerEntered.transform.position - transform.position) * 0.15f);
     }
     if (Vector2.Distance(playerEntered.transform.position, transform.position) <= 1f)
     {
         UpgradeType = Random.Range(1, 4);
         if (UpgradeType == 1)
         {
             playerEntered.GetComponentInParent <PlayerController>().speedBoostLevelUp();
         }
         else if (UpgradeType == 2)
         {
             playerEntered.GetComponentInParent <PlayerController>().jumpBoostLevelUp();
         }
         else if (UpgradeType == 3)
         {
             playerEntered.GetComponentInParent <PlayerController>().strengthBoostLevelUp();
         }
         else if (UpgradeType == 4)
         {
             playerEntered.GetComponentInParent <PlayerController>().healthBoostLevelUp();
         }
         photonView.RPC("destroy", PhotonTargets.All);
     }
 }
Example #2
0
    private void Explode()
    {
        bombArmed = false;

        rigidbody.Sleep();
        rigidbody.isKinematic = true;

        Collider2D[] hits = Physics2D.OverlapCircleAll(new Vector2(this.transform.position.x, this.transform.position.y), 5.0f);

        exploding = true;
        explosion.SetActive(true);

        foreach (Collider2D collider in hits)
        {
            BR_Player playerHit = collider.GetComponentInParent <BR_Player>();

            if (playerHit != null)
            {
                Vector2 distance = this.transform.position - collider.transform.position;

                playerHit.DamagePlayer(distance.magnitude * 2);
            }
        }
    }