private float getSafeSpawnTime(BlobData blobData) { //returns the earliest time it is safe to spawn the blob from its direction float highestCollisionTime = 0; foreach (SpawnEvent spawnEvent in spawnEvents) { if (spawnEvent.blobData.getMoveDirection () != blobData.getMoveDirection ()) continue; float driftTime = spawnEvent.blobData.getDriftTime (); float collisionTime = driftTime + spawnEvent.time; highestCollisionTime = Mathf.Max (highestCollisionTime, collisionTime); } if (highestCollisionTime == 0) { return 0; } else { float safeTime = highestCollisionTime - blobData.getDriftTime (); safeTime += GameSettings.collisionWait; //Debug.Log (highestCollisionTime + " " + blobData.getDriftTime () + " " + GameSettings.collisionWait); return safeTime; } }