public void explode()
    {
        if (hasExploded)
        {
            return;
        }
        hasExploded = true;
        Am.am.oneshot(Am.am.M.GrenadeExplosion);
        ExplosionPosition = this.transform.position;
        GrenadeExplosion.Play(true);
        Astronaut.TheAstronaut.addCamShake(1f * (1f / (1f + ((Astronaut.TheAstronaut.transform.position - ExplosionPosition).magnitude / 8f))), .5f, 1f, .5f, 1f);
        MyRigidbody.bodyType = RigidbodyType2D.Kinematic;

        Collider2D[] cols = Physics2D.OverlapCircleAll(this.transform.position, BLASTRADIUS, LayerMask.GetMask(new string[] { "Enemy", "Boss" }));

        foreach (Collider2D col in cols)
        {
            GenericEnemy ge = col.gameObject.GetComponent <GenericEnemy>();
            if (ge != null)
            {
                OnGrenadeHit(col);
                continue;
            }
            BossGolem bo = col.gameObject.GetComponent <BossGolem>();

            if (bo != null)
            {
                OnGrenadeHit(col);
                continue;
            }
        }
        Live = false;
        Remove();
    }