diff --git a/src/DashboardView/VillageStateList.vue b/src/DashboardView/VillageStateList.vue index a6ea5cd..ee4b8dd 100644 --- a/src/DashboardView/VillageStateList.vue +++ b/src/DashboardView/VillageStateList.vue @@ -29,32 +29,32 @@
+ |
up
dn
@@ -46,6 +50,7 @@ export default {
}
.col-name {
width: 20%;
+ white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
diff --git a/src/ResourceTransfer.ts b/src/ResourceTransfer.ts
index e8a3a48..26e142e 100644
--- a/src/ResourceTransfer.ts
+++ b/src/ResourceTransfer.ts
@@ -68,7 +68,7 @@ export class ResourceTransferCalculator {
resources: readyToTransfer,
score: {
amount: readyToTransfer.amount(),
- overflow: sender.getState().isOverflowing,
+ overflow: sender.getState().storage.isOverflowing,
},
};
}
@@ -77,7 +77,7 @@ export class ResourceTransferCalculator {
sender: VillageController,
recipient: VillageController
): [Resources, Resources] {
- if (sender.getState().isOverflowing) {
+ if (sender.getState().storage.isOverflowing) {
return [sender.getOverflowResources(), recipient.getAvailableToReceiveResources()];
}
diff --git a/src/VillageController.ts b/src/VillageController.ts
index 2b58292..3d018e8 100644
--- a/src/VillageController.ts
+++ b/src/VillageController.ts
@@ -1,7 +1,7 @@
import { VillageTaskCollection } from './VillageTaskCollection';
-import { Task, TaskId } from './Queue/TaskProvider';
+import { TaskId } from './Queue/TaskProvider';
import { Args } from './Queue/Args';
-import { VillageState } from './VillageState';
+import { TaskState, VillageState } from './VillageState';
import { Resources } from './Core/Resources';
import { MerchantsInfo } from './Core/Market';
import { VillageStorage } from './Storage/VillageStorage';
@@ -33,7 +33,7 @@ export class VillageController {
return this.state;
}
- getReadyProductionTask(): Task | undefined {
+ getReadyProductionTask(): TaskState | undefined {
return this.state.firstReadyTask;
}
@@ -66,7 +66,7 @@ export class VillageController {
}
getOverflowResources(): Resources {
- const limit = this.state.storageOptimumFullness;
+ const limit = this.state.storage.optimumFullness;
const currentResources = this.state.resources;
return currentResources.sub(limit).max(Resources.zero());
@@ -75,7 +75,7 @@ export class VillageController {
getFreeResources(): Resources {
const mode = this.state.settings.receiveResourcesMode;
const requirementResources = this.state.required.resources;
- const optimumToStoreResources = this.state.storageOptimumFullness;
+ const optimumToStoreResources = this.state.storage.optimumFullness;
switch (mode) {
case ReceiveResourcesMode.Required:
@@ -101,7 +101,7 @@ export class VillageController {
getRequiredResources(): Resources {
const mode = this.state.settings.receiveResourcesMode;
- const optimumToStoreResources = this.state.storageOptimumFullness;
+ const optimumToStoreResources = this.state.storage.optimumFullness;
const requirementResources = this.state.required.resources;
switch (mode) {
@@ -113,7 +113,7 @@ export class VillageController {
}
private calcRequiredResources(targetResources: Resources): Resources {
- const optimumToStoreResources = this.state.storageOptimumFullness;
+ const optimumToStoreResources = this.state.storage.optimumFullness;
const currentResources = this.state.resources;
const incomingResources = this.state.incomingResources;
@@ -125,7 +125,7 @@ export class VillageController {
}
getAvailableToReceiveResources(): Resources {
- const optimumToStoreResources = this.state.storageOptimumFullness;
+ const optimumToStoreResources = this.state.storage.optimumFullness;
const currentResources = this.state.resources;
return optimumToStoreResources.sub(currentResources).max(Resources.zero());
diff --git a/src/VillageState.ts b/src/VillageState.ts
index 0947dd6..7c5eb39 100644
--- a/src/VillageState.ts
+++ b/src/VillageState.ts
@@ -5,10 +5,18 @@ import { calcGatheringTimings, GatheringTime } from './Core/GatheringTimings';
import { VillageRepositoryInterface } from './VillageRepository';
import { VillageNotFound } from './Errors';
import { ProductionQueue } from './Core/ProductionQueue';
-import { Task } from './Queue/TaskProvider';
+import { Task, TaskId } from './Queue/TaskProvider';
import { timestamp } from './utils';
import { QueueTasks, VillageTaskCollection } from './VillageTaskCollection';
import { TrainTroopTask } from './Task/TrainTroopTask';
+import { Args } from './Queue/Args';
+
+export interface TaskState {
+ id: TaskId;
+ name: string;
+ args: Args;
+ canBeBuilt: boolean;
+}
interface VillageStorageState {
resources: Resources;
@@ -17,6 +25,9 @@ interface VillageStorageState {
performance: Resources;
timeToZero: GatheringTime;
timeToFull: GatheringTime;
+ optimumFullness: Resources;
+ criticalFullness: Resources;
+ isOverflowing: boolean;
}
/**
@@ -43,7 +54,7 @@ interface ResourceLineState {
interface VillageProductionQueueState {
queue: ProductionQueue;
- tasks: Array |