X-Git-Url: https://git.xangelo.ca/?a=blobdiff_plain;f=src%2Frender%2Fkingdom-overview.ts;h=2e787d6bdf82daaebe49e27d11d21ef142463366;hb=9c0287740b282030291008cd9cf204c7f1ca8958;hp=c035f7cbcec60921063e74f6d41c164402965f9d;hpb=944376c3f73772268ec774ccc2a3fa0788fc246e;p=browser-rts.git diff --git a/src/render/kingdom-overview.ts b/src/render/kingdom-overview.ts index c035f7c..2e787d6 100644 --- a/src/render/kingdom-overview.ts +++ b/src/render/kingdom-overview.ts @@ -1,7 +1,16 @@ import { Account } from "../repository/accounts"; -import { CityWithLocation } from "../repository/city"; +import { CityWithLocation, CityRepository } from "../repository/city"; import * as _ from 'lodash'; +function percent(curr: number, max: number, cap?: number): number { + const val = Math.ceil((curr/max) * 100); + if(cap && val > cap) { + return cap; + } + + return val; +} + type Usage = { foodUsagePerTick: number; foodProductionPerTick: number; @@ -9,6 +18,8 @@ type Usage = { energyProductionPerTick: number; } +const cityRepo = new CityRepository(); + export function renderKingomOverview(city: CityWithLocation & Usage, account: Account): string { const foodRateOfChange = city.foodProductionPerTick - city.foodUsagePerTick; const energyRateOfChange = city.energyProductionPerTick - city.energyUsagePerTick; @@ -20,7 +31,7 @@ export function renderKingomOverview(city: CityWithLocation & Usage, account: Ac Captain ${account.username} Population - ${city.population.toLocaleString()}/${_.max([city.farms * 70, city.population])} + ${city.population.toLocaleString()}/${cityRepo.maxPopulation(city)} Space @@ -42,19 +53,24 @@ export function renderKingomOverview(city: CityWithLocation & Usage, account: Ac Alloys - ${city.alloys.toLocaleString()} + ${city.alloys.toLocaleString()} @ ${percent(city.alloys, cityRepo.maxAlloy(city), 100)} % Ore Refiniery Utilization Special Attackers ${city.sp_attackers.toLocaleString()} Energy - ${city.energy.toLocaleString()} (${energyRateOfChange.toLocaleString()}) + + ${city.energy.toLocaleString()} (${energyRateOfChange.toLocaleString()}) + @ ${percent(city.energy, cityRepo.maxEnergy(city), 100)}% Accumulator Utilization + Special Defenders ${city.sp_defenders.toLocaleString()} Food - ${city.food.toLocaleString()} (${foodRateOfChange.toLocaleString()}) + + ${city.food.toLocaleString()} (${foodRateOfChange.toLocaleString()}) @ ${percent(city.food, cityRepo.maxFood(city), 100)}% Warehouse utilization +