Grenade damage

If player is in sphere around grenade he gets damage
This commit is contained in:
Noah4ever
2021-12-08 17:26:58 +01:00
parent 59a55bf5fd
commit 1e432ad802

View File

@@ -32,18 +32,25 @@ public class Grenade : MonoBehaviour
GameObject spawnedExplosion = Instantiate(explodeParticle, transform.position, transform.rotation);
// Destroys explosion particle after on second
Destroy(spawnedExplosion, 1);
// Gets all collider that are in a sphere around the grenade
Collider[] colliders = Physics.OverlapSphere(transform.position, weapon.GrenadeRadius);
// Iterate over all colliders found in radius
foreach(Collider nearbyObject in colliders) {
// Check if nearby object is a Player
if (nearbyObject.transform.gameObject.GetComponent<Player>()) {
// Remove health from player
nearbyObject.transform.gameObject.GetComponent<Player>().RemoveHealth(weapon.Damage);
} else {
// Get Rigidbody from nearby object and...
Rigidbody rb = nearbyObject.GetComponent<Rigidbody>();
// if rigidbody exists...
if(rb != null) {
if (rb != null) {
// adds force to nearby objects
rb.AddExplosionForce(weapon.ExplosionForce, transform.position, weapon.GrenadeRadius);
}
}
}
weapon.HasExploded = true;
// Destroys grenade
Destroy(gameObject);