예제 #1
0
    public virtual void AmmoBehaviourImpact(TerrainDestructible terrain)
    {
        OnExplode();

        if (terrain)
        {
            terrain.DestroyGround(transform.position, DamageRadius);
        }
    }
예제 #2
0
파일: WormInfo.cs 프로젝트: Madmanx/Worms
    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);
    }