protected void fire() {
        // While the Invaders themselves will not fire while the game is paused due to how their random firing
        // implementation works, the cannon can still be fired unless we specifically disallow it here.
        if(SpaceInvaders.paused) {
            return;
        }
        if(timeSinceLastShot > TIME_BETWEEN_SHOTS) {
            if(shots.size() < MAX_SHOTS) {
                Projectile shot = new Projectile(this.projectileStart.x, this.projectileStart.y, true, true);
                shots.push(shot);
            }
        }
    }