X-Git-Url: https://git.xangelo.ca/?a=blobdiff_plain;f=src%2Frender%2Funit-training.ts;h=a1bd4b8756bef6a275f1c07b9609229bf510ce90;hb=9cb3a0584377f61cf3382fef4541246d1b1202bc;hp=0214bfe301402ff31de4ad328a4a1c5cd9b5ac54;hpb=944376c3f73772268ec774ccc2a3fa0788fc246e;p=browser-rts.git
diff --git a/src/render/unit-training.ts b/src/render/unit-training.ts
index 0214bfe..a1bd4b8 100644
--- a/src/render/unit-training.ts
+++ b/src/render/unit-training.ts
@@ -1,9 +1,20 @@
import _ from "lodash";
import { CityWithLocation } from "../repository/city";
-import { UnitTrainingQueue } from "../repository/training-queue";
+import { UnitTrainingQueueWithName } from "../repository/training-queue";
import { Unit } from "../repository/unit";
+import { DateTime } from "luxon";
-function progressBar(current, max): string {
+const emptyQueue: UnitTrainingQueueWithName = {
+ display: '',
+ id: '',
+ owner: '',
+ amount: 0,
+ created: 0,
+ due: 0,
+ unit_type: 'empty'
+}
+
+function progressBar(current: number, max: number): string {
const percent = Math.ceil((current/max) * 100);
return `
Unit Training
@@ -27,10 +41,10 @@ export function renderUnitTraining(city: CityWithLocation, units: Unit[], traini
Soldiers |
- ${city.population} |
+ ${city.soldiers} |
-
@@ -39,10 +53,10 @@ export function renderUnitTraining(city: CityWithLocation, units: Unit[], traini
|
Attackers |
- ${city.soldiers} |
+ ${city.attackers} |
-
@@ -51,10 +65,10 @@ export function renderUnitTraining(city: CityWithLocation, units: Unit[], traini
|
Defenders |
- ${city.soldiers} |
+ ${city.defenders} |
-
@@ -63,10 +77,10 @@ export function renderUnitTraining(city: CityWithLocation, units: Unit[], traini
|
Special Attackers |
- ${city.attackers} |
+ ${city.sp_attackers} |
-
@@ -76,10 +90,10 @@ export function renderUnitTraining(city: CityWithLocation, units: Unit[], traini
|
Special Defenders |
- ${city.defenders} |
+ ${city.sp_defenders} |
-
@@ -89,28 +103,46 @@ export function renderUnitTraining(city: CityWithLocation, units: Unit[], traini
`;
+ const finalTrainingQueue = sortedTrainingQueue;
+ if(finalTrainingQueue.length < city.max_training_queue) {
+ while(finalTrainingQueue.length < city.max_construction_queue) {
+ finalTrainingQueue.push(emptyQueue);
+ }
+ }
+
const queues = `
Training Queues
- Unit Type |
- Amount Expected |
+ Unit Type |
+ Amount Expected |
Progress |
- ${trainingQueues.sort((a, b) => {
- return a.due - b.due;
- }).map(queue => {
+ ${sortedTrainingQueue.map(queue => {
+ if(queue.unit_type === 'empty') {
+ return `
+ You have sufficient queue capacity to train more units. |
+ `;
+ }
+ else {
+ const created = DateTime.fromMillis(queue.created);
+ const due = DateTime.fromMillis(queue.due);
const now = Date.now() - queue.created;
const duration = queue.due - queue.created;
return `
- ${queue.unit_type} |
+ ${queue.display} |
${queue.amount} |
- ${progressBar(now, duration)} |
+
+
+ ${progressBar(now, duration)}
+
+ |
`;
+ }
}).join("\n")}
|