import { BuildQueue } from "../repository/build-queue";
-import { City } from "../repository/city";
+import { CityWithLocation } from "../repository/city";
import { Building } from '../repository/buildings';
import _ from "lodash";
function progressBar(current, max): string {
const percent = Math.ceil((current/max) * 100);
return `
- <div class="progress-bar construction" style="background: background: rgb(0,102,0);
- background: linear-gradient(90deg, rgba(0,102,0,1) 0%, rgba(0,102,0,1) ${percent}%, rgba(0,0,0,1) ${percent}%);">
+ <div class="progress-bar construction" style="background: background: var(--green-bg);
+ background: linear-gradient(90deg, var(--green-bg) 0%, var(--green-bg) ${percent}%, #000 ${percent}%); border-color: var(--green-border); ">
${percent}%
</div>
`;
}
-export function renderLandDevelopment(city: City, buildings: Building[], buildQueues: BuildQueue[]): string {
+export function renderLandDevelopment(city: CityWithLocation, buildings: Building[], buildQueues: BuildQueue[]): string {
const freeSpace = city.totalSpace - city.usedSpace;
let html = `
- <div hx-trigger="reload-construction-queue, every 600s" hx-get="/queue/construction">
+ <div hx-trigger="reload-construction-queue, every 600s" hx-get="/poll/construction">
+ <h2 data-augmented-ui="tl-clip bl-clip none">Construction</h2>
<table>
<tr>
- <th>Free Land</th>
+ <th>Type</th>
<th>Current</th>
- <td colspan="2">${(city.totalSpace - city.usedSpace).toLocaleString()} (${Math.ceil(freeSpace/city.totalSpace * 100)}% available)</td>
+ <th>Space Available: ${(city.totalSpace - city.usedSpace).toLocaleString()} (${Math.ceil(freeSpace/city.totalSpace * 100)}% available)</th>
+ <th width="200">Cost</th>
</tr>
${
buildings.map(building => {
<td>${city[building.slug]}</td>
<td>
<form hx-post="/build">
- <input type="number" name="amount" hx-post="/cost/construction" hx-trigger="change" hx-target="#${building.slug}-cost">
+ <input type="number" size="6" name="amount" hx-post="/cost/construction" hx-trigger="keyup" hx-target="#${building.slug}-cost">
<input type="hidden" name="building_type" value="${building.slug}">
<button type="submit">Build</button>
</form>
- <span id="${building.slug}-cost"></span>
</td>
+ <td id="${building.slug}-cost"></td>
</tr>
`;
}).join("\n")
const queues = `
<hr>
- <h2>Build Queues</h2>
+ <h2 data-augmented-ui="tl-clip bl-clip none">Build Queues</h2>
<table>
<tr>
<th>Building</th>
<th>Amount Expected</th>
<th>Progress</th>
</tr>
- <tr>
${buildQueues.sort((a, b) => {
return a.due - b.due;
}).map(queue => {
</table>
</div>
`;
-
return html + queues;
-}
\ No newline at end of file
+}