public override void Explode()
{
//try to early out if we can't draw this (not sure if this also gets us out of Unity Indie)
if (SystemInfo.supportsImageEffects)
{
if ((detailThreshold > detail) || !on) return;
if (!_delayedExplosionStarted)
{
_explodeDelay = explodeDelayMin + (Random.value * (explodeDelayMax - explodeDelayMin));
}
if (_explodeDelay <= 0)
{
//incoming size is based on 1, so we multiply here
_startSize = 0f;
_maxSize = size * 10f;
_material = new Material(Shader.Find("HeatDistort"));
_heatwave = GameObject.CreatePrimitive(PrimitiveType.Plane);
_heatwave.layer = 9;
Destroy(_heatwave.GetComponent(typeof(MeshCollider)));
if (!heatwaveMaterial) heatwaveMaterial = MyDetonator().heatwaveMaterial;
_material.CopyPropertiesFromMaterial(heatwaveMaterial);
_heatwave.renderer.material = _material;
_heatwave.transform.parent = this.transform;
_delayedExplosionStarted = false;
_explodeDelay = 0f;
}
else
{
_delayedExplosionStarted = true;
}
}
}