From 1fd58092e48af82f84cff519d261e6526a16abae Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sun, 25 Oct 2020 11:34:35 +0300 Subject: [PATCH] Various fixes --- src/Handler/Task/UpdateResourceContractsTask.ts | 9 ++++++++- src/Plan/WarehouseBuildingPlan.ts | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Handler/Task/UpdateResourceContractsTask.ts b/src/Handler/Task/UpdateResourceContractsTask.ts index 28e34ee..a4b6cc6 100644 --- a/src/Handler/Task/UpdateResourceContractsTask.ts +++ b/src/Handler/Task/UpdateResourceContractsTask.ts @@ -5,6 +5,9 @@ import { ForgeImprovementTask } from './ForgeImprovementTask'; import { path, PathList, uniqPaths } from '../../Helpers/Path'; import { registerTask } from '../TaskMap'; import { ImmutableTaskList, Task } from '../../Queue/Task'; +import * as _ from 'underscore'; + +const MAX_PATHS = 5; @registerTask() export class UpdateResourceContractsTask extends BaseTask { @@ -15,11 +18,15 @@ export class UpdateResourceContractsTask extends BaseTask { .map((v) => this.factory.getById(v.id).taskCollection().getTasks()) .reduce((acc, tasks) => acc.concat(tasks), []); - const paths = uniqPaths([ + let paths = uniqPaths([ ...this.walkUpgradeTasks(tasks), ...this.walkImprovementTask(tasks), ]); + if (paths.length > MAX_PATHS) { + paths = _.sample(paths, MAX_PATHS); + } + return paths.map((p) => ({ name: GoToPageAction.name, args: { path: path(p.name, p.query) }, diff --git a/src/Plan/WarehouseBuildingPlan.ts b/src/Plan/WarehouseBuildingPlan.ts index fe3aa04..f623cc0 100644 --- a/src/Plan/WarehouseBuildingPlan.ts +++ b/src/Plan/WarehouseBuildingPlan.ts @@ -39,7 +39,8 @@ export class WarehouseBuildingPlan implements ConstructionPlan { const firstSlot = first(storageSlots); if (firstSlot) { - this.taskCollection.addTask(UpgradeBuildingTask.name, { + // @todo change to "add task before first required" + this.taskCollection.addTaskAsFirst(UpgradeBuildingTask.name, { buildId: firstSlot.buildId, buildTypeId: this.buildTypeId, });