PC [BUG] Missing Target in Slingshot Game

BlaDe

Farmer
The targets for the slingshot game are defined in TargetGame::addTargets
C#:
public void addTargets()
{
    this.addRowOfTargetsOnLane(0, Target.middleLane, 1500, 5, Target.mediumSpeed, spawnFromRight: false);
    this.addRowOfTargetsOnLane(4000, Target.nearLane, 1000, 5, Target.mediumSpeed);
    this.addRowOfTargetsOnLane(8000, Target.farLane, 2000, 5, Target.mediumSpeed, spawnFromRight: false, Target.bonusTarget);
    this.addTwinPausers(8000, Target.superNearLane, Target.pauseMiddleLeft, Target.fastSpeed, 2000, Target.bonusTarget);
    this.addTwinPausers(15000, Target.superNearLane, Target.pauseFarLeft, Target.mediumSpeed, 4000, Target.bonusTarget);
    this.addRowOfTargetsOnLane(18000, Target.middleLane, 1500, 5, Target.mediumSpeed, spawnFromRight: false);
    this.addRowOfTargetsOnLane(21000, Target.nearLane, 1000, 5, Target.mediumSpeed);
    this.addTwinPausers(25000, Target.behindLane, Target.pauseFarLeft, Target.fastSpeed, 1500, Target.deluxeTarget);
    this.addRowOfTargetsOnLane(27000, Target.superNearLane, 500, 8, Target.slowSpeed);
    this.addRowOfTargetsOnLane(28000, Target.nearLane, 500, 8, Target.slowSpeed);
    this.addRowOfTargetsOnLane(29000, Target.middleLane, 500, 8, Target.slowSpeed);
    this.addRowOfTargetsOnLane(30000, Target.farLane, 500, 8, Target.slowSpeed);
    this.addTwinPausers(36000, Target.behindLane, Target.pauseFarLeft, Target.fastSpeed, 2000, Target.deluxeTarget);
    this.addRowOfTargetsOnLane(41000, Target.middleLane, 1500, 5, Target.mediumSpeed, spawnFromRight: false);
    this.addRowOfTargetsOnLane(42000, Target.nearLane, 1000, 5, Target.mediumSpeed);
    this.addRowOfTargetsOnLane(43000, Target.farLane, 1000, 4, Target.mediumSpeed, spawnFromRight: false);
}
The first lot of targets to come out should be a set of 5. What actually Spawns is a set of 4.

Target objects are created and delays set to when they appear. The very first Target has a countdownBeforeSpawn property set to 0.

In Target::update
C#:
public bool update(GameTime time, GameLocation location)
{
    if (this.countdownBeforeSpawn > 0)
    {
        this.countdownBeforeSpawn -= time.ElapsedGameTime.Milliseconds;
        if (this.countdownBeforeSpawn <= 0)
        {
            this.spawned = true;
        }
    }
    ...
}
A Target that is created with a countdownbeforeSpawn of 0 will never spawn

Potential fix:
C#:
public bool update(GameTime time, GameLocation location)
{
    if (!this.spawned)
    {
        this.countdownBeforeSpawn -= time.ElapsedGameTime.Milliseconds;
        if (this.countdownBeforeSpawn <= 0)
        {
            this.spawned = true;
        }
    }
    ...
}
 
Top