@Override
	public void onFrame() {
		// If we reach this state, we're waiting on a building before we can perform the upgrade
		if (researchInProgress && currentUpgrade != null && upgradeBuildings.size() > 0) {
			// The building is complete so finish the upgrade and reset vars
			performUpgradeRequest(currentUpgrade);
		}
		if (researchFocus == null || researchInProgress) {
			return;
		}
		if (researchFocus == UnitType.Terran_Marine) {
			if (marineUpgradeOrder.size() > 0) {
				researchInProgress = true;
				currentUpgrade = marineUpgradeOrder.remove();
				performUpgradeRequest(currentUpgrade);
			}
		}
		else {
			System.out.println("No Upgrades queued up for " + researchFocus.toString());
		}
	}