public long getCurrentCredits() { // Calcule les crédits et ressources du joueur long credits = (long) systems.get(0).getCredits(); // Temps écoulé depuis la dernière mise à jour des systèmes long dt = Utilities.getCurrentTime() - lastSystemsUpdate; for (PlayerStarSystemData system : systems) { double maxPopulation = BuildingData.getProduction(BuildingData.CIVILIAN_INFRASTRUCTURES, system); // Calcule la croissance de la population du système, jusqu'à // l'heure de la mise à jour double frame = system.getLastPopulationUpdate() + dt; double growth = PlayerStarSystemData.POPULATION_GROWTH * Settings.getTimeUnit() * frame * BuildingData.getProduction(BuildingData.CIVILIAN_INFRASTRUCTURES, system); // Limite la population en fonction du nombre d'infrastructures // civiles double growthCoef = .5; if (system.getPopulation() + growth > maxPopulation) { growthCoef = .5 * (maxPopulation - system.getPopulation()) / growth + (1 - (maxPopulation - system.getPopulation()) / growth); growth = maxPopulation - system.getPopulation(); } // Calcule les crédits gagnés avec les corporations credits += (system.getPopulation() + growth * growthCoef) * frame * BuildingData.getProduction(BuildingData.CORPORATIONS, system) * system.getProductionModifier() * BuildingData.EXPLOITATION_RATE * Settings.getTimeUnit(); } return credits; }
public double getCurrentPopulation(int systemId) { long dt = Utilities.getCurrentTime() - lastSystemsUpdate; for (PlayerStarSystemData system : systems) { if (system.getId() == systemId) { double maxPopulation = BuildingData.getProduction(BuildingData.CIVILIAN_INFRASTRUCTURES, system); // Calcule la croissance de la population du système, jusqu'à // l'heure de la mise à jour double frame = system.getLastPopulationUpdate() + dt; double growth = PlayerStarSystemData.POPULATION_GROWTH * Settings.getTimeUnit() * frame * BuildingData.getProduction(BuildingData.CIVILIAN_INFRASTRUCTURES, system); return Math.min(system.getPopulation() + growth, maxPopulation); } } return 0; }