if ($race == Protoss) { $timeline->spellcasters->add(new Spellcaster($Nexus, 0)); $timeline->farms->add(new Farm(0, $Nexus->supplyCapacity)); } elseif ($race == Terran) { $timeline->farms->add(new Farm(0, $CommandCenter->supplyCapacity)); } elseif ($race == Zerg) { Hatcheries::$debug = (bool) ($debugFlags & Hatcheries::debugFlag); $timeline->hatcheries->add(new Hatchery(0, 3)); $timeline->farms->add(new Farm(0, $Hatchery->supplyCapacity)); $timeline->farms->add(new Farm(0, $Overlord->supplyCapacity)); //$timeline->queues->add(new ProductionQueue($Hatchery)); } $timeline->queues->add(new ProductionQueue(Product::designated($race | Base))); $timeline->supplyCount = 6; // create recurring worker job $job = new BuildJob(Product::designated($race | Worker)); $job->recurring = true; $unscheduledJobs[] = $job; // schedule jobs $scheduler = new Scheduler($timeline, $unscheduledJobs); Scheduler::$debug = (bool) ($debugFlags & Scheduler::debugFlag); $scheduledJobs = $scheduler->schedule(); // render timeline echo (string) $timeline; // render queues $timeEnds = 0; foreach ($scheduledJobs as $job) { $timeEnds = max($timeEnds, $job->timeCompleted); } ?> <h3>Usage of production queues</h3>