</tr>
<tr>
<th>Alloys</th>
- <td>${city.alloys.toLocaleString()}</td>
+ <td>${city.alloys.toLocaleString()} @ ${percent(city.alloys, cityRepo.maxAlloy(city), 100)} % Ore Refiniery Utilization</td>
<th>Special Attackers</th>
<td>${city.sp_attackers.toLocaleString()}</td>
</tr>
<th>Energy</th>
<td>
${city.energy.toLocaleString()} (<span class="rate-of-change ${energyRateOfChange < 0 ? 'danger-text' : 'success-text'}">${energyRateOfChange.toLocaleString()}</span>)
- @ ${percent(city.energy, city.accumulators, 100)}% Accumulator Utilization
+ @ ${percent(city.energy, cityRepo.maxEnergy(city), 100)}% Accumulator Utilization
</td>
<th>Special Defenders</th>
<td>${city.sp_defenders.toLocaleString()}</td>
<tr>
<th>Food</th>
<td>
- ${city.food.toLocaleString()} (<span class="rate-of-change ${foodRateOfChange < 0 ? 'danger-text' : 'success-text'}">${foodRateOfChange.toLocaleString()}</span>) @ ${percent(city.food, city.warehouses, 100)}% Warehouse utilization
+ ${city.food.toLocaleString()} (<span class="rate-of-change ${foodRateOfChange < 0 ? 'danger-text' : 'success-text'}">${foodRateOfChange.toLocaleString()}</span>) @ ${percent(city.food, cityRepo.maxFood(city), 100)}% Warehouse utilization
</td>
</tr>
</table>
solar_panels: number;
accumulators: number;
mining_facilities: number;
+ ore_refinery: number;
barracks: number;
special_attacker_trainer: number;
special_defender_trainer: number;
solar_panels: 5,
accumulators: 5,
mining_facilities: 5,
+ ore_refinery: 5,
barracks: 0,
special_attacker_trainer: 0,
special_defender_trainer: 0,
return city.accumulators * 150;
}
+ maxAlloy(city: City): number {
+ return city.ore_refinery * 75;
+ }
+
async foodProductionPerTick(city: City): Promise<number> {
// eventually we should supply the warehouse formula
// to calculate the max amount of food created per tick