Exemple #1
0
    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;
        }
    }