diff --git a/src/Grabber/BuildingContractGrabber.ts b/src/Grabber/BuildingContractGrabber.ts index a24b91b..c6a7b04 100644 --- a/src/Grabber/BuildingContractGrabber.ts +++ b/src/Grabber/BuildingContractGrabber.ts @@ -20,7 +20,7 @@ export class BuildingContractGrabber extends Grabber { const contract = grabContractResources(); - this.taskCollection.updateResources(contract, { + this.taskCollection.updateResourcesInTasks(contract, { type: ContractType.UpgradeBuilding, buildId: building.buildId, }); diff --git a/src/Grabber/ForgePageGrabber.ts b/src/Grabber/ForgePageGrabber.ts index 7e3c02a..40aec7d 100644 --- a/src/Grabber/ForgePageGrabber.ts +++ b/src/Grabber/ForgePageGrabber.ts @@ -20,7 +20,7 @@ export class ForgePageGrabber extends Grabber { const contracts = grabImprovementContracts(); for (let { resources, unitId } of contracts) { - this.taskCollection.updateResources(resources, { + this.taskCollection.updateResourcesInTasks(resources, { type: ContractType.ImproveTrooper, buildId, unitId, diff --git a/src/VillageState.ts b/src/VillageState.ts index 1b97f6a..6affcb9 100644 --- a/src/VillageState.ts +++ b/src/VillageState.ts @@ -192,7 +192,7 @@ function createAllProductionQueueStates( taskCollection: VillageTaskCollection ) { let result: VillageProductionQueueStateDict = {}; - for (let taskQueueInfo of taskCollection.getQueueGroupedTasks()) { + for (let taskQueueInfo of taskCollection.getGroupedByQueueTasks()) { result[taskQueueInfo.queue] = createProductionQueueState(taskQueueInfo, storage); } return result; @@ -239,8 +239,8 @@ function createVillageOwnState( const queues = createAllProductionQueueStates(storage, taskCollection); const firstReadyTask = getReadyForProductionTask(queues, storageOptimumFullness); const requiredResources = getReadyTaskRequiredResources(firstReadyTask); - const frontierResources = taskCollection.getFrontierResources(); - const totalRequiredResources = taskCollection.getAllTasksRequiredResources(); + const frontierResources = taskCollection.getFrontierTaskResources(); + const totalRequiredResources = taskCollection.getAllTasksResources(); return { id: village.id, diff --git a/src/VillageTaskCollection.ts b/src/VillageTaskCollection.ts index b06041a..3fb84df 100644 --- a/src/VillageTaskCollection.ts +++ b/src/VillageTaskCollection.ts @@ -60,25 +60,12 @@ export class VillageTaskCollection { this.removeTasks(t => t.id === taskId); } - getQueueGroupedTasks(): Array { - const tasks = this.storage.getTasks(); - const result: Array = []; - for (let queue of OrderedProductionQueues) { - result.push({ - queue, - tasks: tasks.filter(isInQueue(queue)), - finishTs: this.storage.getQueueTaskEnding(queue), - }); - } - return result; - } - postponeTask(taskId: TaskId, seconds: number) { const modifyTime = withTime(timestamp() + seconds); this.modifyTasks(task => task.id === taskId, modifyTime); } - updateResources(resources: Resources, attr: ContractAttributes): void { + updateResourcesInTasks(resources: Resources, attr: ContractAttributes): void { if (attr.type === ContractType.UpgradeBuilding && attr.buildId) { const predicate = (t: Task) => t.name === UpgradeBuildingTask.name && t.args.buildId === attr.buildId; @@ -93,9 +80,22 @@ export class VillageTaskCollection { } } - getFrontierResources(): Resources { + getGroupedByQueueTasks(): Array { + const tasks = this.storage.getTasks(); + const result: Array = []; + for (let queue of OrderedProductionQueues) { + result.push({ + queue, + tasks: tasks.filter(isInQueue(queue)), + finishTs: this.storage.getQueueTaskEnding(queue), + }); + } + return result; + } + + getFrontierTaskResources(): Resources { let result = Resources.zero(); - const groups = this.getQueueGroupedTasks(); + const groups = this.getGroupedByQueueTasks(); for (let group of groups) { const firstTask = _.first(group.tasks); if (firstTask && firstTask.args.resources) { @@ -105,7 +105,7 @@ export class VillageTaskCollection { return result; } - getAllTasksRequiredResources(): Resources { + getAllTasksResources(): Resources { const tasks = this.storage.getTasks().filter(t => t.args.resources); return tasks.reduce((acc, t) => acc.add(t.args.resources!), Resources.zero()); }