public virtual void AmmoBehaviourImpact(TerrainDestructible terrain) { OnExplode(); if (terrain) { terrain.DestroyGround(transform.position, DamageRadius); } }
public void DeathByExplosion() { // From Character ? float radiusOnDeath = 0.25f; int damage = 25; // Propagation of explosion Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, radiusOnDeath, (1 << LayerMask.NameToLayer("Worm"))); foreach (Collider2D collider in colliders) { if (collider) { collider.GetComponent <WormInfo>().WormBehaviourDamage((transform.position - collider.transform.position).normalized, damage); } } GameObject go = Instantiate(DatabaseManager.Instance.Db.Explosion, transform.position, Quaternion.identity, null); go.transform.localScale *= radiusOnDeath; underMe.DestroyGround(transform.position, radiusOnDeath); Invoke("Death", 0.5f); }