X-Git-Url: https://git.xangelo.ca/?a=blobdiff_plain;f=src%2Frender%2Fkingdom-overview.ts;h=2e787d6bdf82daaebe49e27d11d21ef142463366;hb=23651f2cfe342a32503dec70f56f8ffaf03f2616;hp=d82f6a411d80042c23423a5fd1155f0aaf351eb8;hpb=d56a8ceaf07b5b0848945ba9868a2cdaf3b05111;p=browser-rts.git diff --git a/src/render/kingdom-overview.ts b/src/render/kingdom-overview.ts index d82f6a4..2e787d6 100644 --- a/src/render/kingdom-overview.ts +++ b/src/render/kingdom-overview.ts @@ -1,53 +1,78 @@ import { Account } from "../repository/accounts"; -import { CityWithLocation } from "../repository/city"; +import { CityWithLocation, CityRepository } from "../repository/city"; import * as _ from 'lodash'; -export function renderKingomOverview(city: CityWithLocation, account: Account): string { +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; + energyUsagePerTick: number; + 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; return `
-

Kingdom Overview

+

Overview

- + - + - + - + - - + + - - + + - - + + - - + +
LordCaptain ${account.username} Population${city.population.toLocaleString()}/${_.max([city.farms * 70, city.population])}${city.population.toLocaleString()}/${cityRepo.maxPopulation(city)}
LandSpace ${city.totalSpace.toLocaleString()} (${Math.ceil(city.usedSpace/city.totalSpace * 100)}% used) Soldiers ${city.soldiers.toLocaleString()}
Location${city.location_x},${city.location_y}Sector ${city.sector_id} - (${city.location_x},${city.location_y}) Attackers ${city.attackers.toLocaleString()}
Gold${city.gold.toLocaleString()}Credits${city.credits.toLocaleString()} Defenders ${city.defenders.toLocaleString()}
Ore${city.ore.toLocaleString()}Alloys${city.alloys.toLocaleString()} @ ${percent(city.alloys, cityRepo.maxAlloy(city), 100)} % Ore Refiniery Utilization Special Attackers ${city.sp_attackers.toLocaleString()}
Logs${city.logs.toLocaleString()}Energy + ${city.energy.toLocaleString()} (${energyRateOfChange.toLocaleString()}) + @ ${percent(city.energy, cityRepo.maxEnergy(city), 100)}% Accumulator Utilization + Special Defenders ${city.sp_defenders.toLocaleString()}
Bushels${city.bushels.toLocaleString()}Food + ${city.food.toLocaleString()} (${foodRateOfChange.toLocaleString()}) @ ${percent(city.food, cityRepo.maxFood(city), 100)}% Warehouse utilization +
`; -} \ No newline at end of file +}