// 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); } }
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); } } }