Divide task components
This commit is contained in:
parent
a74a26896c
commit
ad64905888
@ -4,7 +4,7 @@ import { AggregateLogger, ConsoleLogger, LogLevel, StorageLogger } from './Logge
|
|||||||
import { ActionQueue } from './Queue/ActionQueue';
|
import { ActionQueue } from './Queue/ActionQueue';
|
||||||
import { Executor } from './Executor';
|
import { Executor } from './Executor';
|
||||||
import { ControlPanel } from './ControlPanel';
|
import { ControlPanel } from './ControlPanel';
|
||||||
import { DataStorageTaskProvider } from './Queue/DataStorageTaskProvider';
|
import { DataStorageTaskProvider } from './Queue/TaskProvider/DataStorageTaskProvider';
|
||||||
import { Statistics } from './Statistics';
|
import { Statistics } from './Statistics';
|
||||||
import { VillageRepository } from './Village/VillageRepository';
|
import { VillageRepository } from './Village/VillageRepository';
|
||||||
import { VillageFactory } from './Village/VillageFactory';
|
import { VillageFactory } from './Village/VillageFactory';
|
||||||
|
@ -17,12 +17,12 @@ import { DataStorage } from './Storage/DataStorage';
|
|||||||
import { getBuildingPageAttributes, isBuildingPage } from './Page/PageDetector';
|
import { getBuildingPageAttributes, isBuildingPage } from './Page/PageDetector';
|
||||||
import { ExecutionStorage } from './Storage/ExecutionStorage';
|
import { ExecutionStorage } from './Storage/ExecutionStorage';
|
||||||
import { VillageState } from './Village/VillageState';
|
import { VillageState } from './Village/VillageState';
|
||||||
import { Task } from './Queue/TaskProvider';
|
|
||||||
import { Action } from './Queue/ActionQueue';
|
|
||||||
import { VillageFactory } from './Village/VillageFactory';
|
import { VillageFactory } from './Village/VillageFactory';
|
||||||
import { uniqId } from './Helpers/Identity';
|
import { uniqId } from './Helpers/Identity';
|
||||||
import { timestamp } from './Helpers/Time';
|
import { timestamp } from './Helpers/Time';
|
||||||
import { notify, parseLocation, waitForLoad } from './Helpers/Browser';
|
import { notify, parseLocation, waitForLoad } from './Helpers/Browser';
|
||||||
|
import { Action } from './Queue/Action';
|
||||||
|
import { Task } from './Queue/Task';
|
||||||
|
|
||||||
Vue.use(Vuex);
|
Vue.use(Vuex);
|
||||||
|
|
||||||
|
@ -12,13 +12,13 @@ import { GrabberManager } from './Grabber/GrabberManager';
|
|||||||
import { Scheduler } from './Scheduler';
|
import { Scheduler } from './Scheduler';
|
||||||
import { Statistics } from './Statistics';
|
import { Statistics } from './Statistics';
|
||||||
import { ExecutionStorage } from './Storage/ExecutionStorage';
|
import { ExecutionStorage } from './Storage/ExecutionStorage';
|
||||||
import { Action } from './Queue/ActionQueue';
|
|
||||||
import { Task } from './Queue/TaskProvider';
|
|
||||||
import { createTaskHandler } from './Handler/TaskMap';
|
import { createTaskHandler } from './Handler/TaskMap';
|
||||||
import { VillageFactory } from './Village/VillageFactory';
|
import { VillageFactory } from './Village/VillageFactory';
|
||||||
import { sleepMicro, timestamp } from './Helpers/Time';
|
import { sleepMicro, timestamp } from './Helpers/Time';
|
||||||
import { markPage, waitForLoad } from './Helpers/Browser';
|
import { markPage, waitForLoad } from './Helpers/Browser';
|
||||||
import { createActionHandler } from './Handler/ActionMap';
|
import { createActionHandler } from './Handler/ActionMap';
|
||||||
|
import { Action } from './Queue/Action';
|
||||||
|
import { Task } from './Queue/Task';
|
||||||
|
|
||||||
export interface ExecutionSettings {
|
export interface ExecutionSettings {
|
||||||
pauseTs: number;
|
pauseTs: number;
|
||||||
|
@ -5,8 +5,8 @@ import { HeroStorage } from '../../Storage/HeroStorage';
|
|||||||
import { calcHeroResource } from '../../Core/HeroBalance';
|
import { calcHeroResource } from '../../Core/HeroBalance';
|
||||||
import { HeroAllResources } from '../../Core/Hero';
|
import { HeroAllResources } from '../../Core/Hero';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class BalanceHeroResourcesAction extends BaseAction {
|
export class BalanceHeroResourcesAction extends BaseAction {
|
||||||
|
@ -2,9 +2,9 @@ import { Scheduler } from '../../Scheduler';
|
|||||||
import { taskError, TryLaterError } from '../../Errors';
|
import { taskError, TryLaterError } from '../../Errors';
|
||||||
import { grabActiveVillageId } from '../../Page/VillageBlock';
|
import { grabActiveVillageId } from '../../Page/VillageBlock';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { VillageFactory } from '../../Village/VillageFactory';
|
import { VillageFactory } from '../../Village/VillageFactory';
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
export class BaseAction {
|
export class BaseAction {
|
||||||
protected readonly scheduler: Scheduler;
|
protected readonly scheduler: Scheduler;
|
||||||
|
@ -2,9 +2,9 @@ import { BaseAction } from './BaseAction';
|
|||||||
import { GrabError, taskError, TryLaterError } from '../../Errors';
|
import { GrabError, taskError, TryLaterError } from '../../Errors';
|
||||||
import { clickBuildButton } from '../../Page/BuildingPage/BuildingPage';
|
import { clickBuildButton } from '../../Page/BuildingPage/BuildingPage';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class BuildBuildingAction extends BaseAction {
|
export class BuildBuildingAction extends BaseAction {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { GrabError, TryLaterError } from '../../Errors';
|
import { GrabError, TryLaterError } from '../../Errors';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { clickCelebrationButton } from '../../Page/BuildingPage/GuildHallPage';
|
import { clickCelebrationButton } from '../../Page/BuildingPage/GuildHallPage';
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class CelebrationAction extends BaseAction {
|
export class CelebrationAction extends BaseAction {
|
||||||
|
@ -2,9 +2,9 @@ import { BaseAction } from './BaseAction';
|
|||||||
import { GrabError, TryLaterError } from '../../Errors';
|
import { GrabError, TryLaterError } from '../../Errors';
|
||||||
import { grabBuildingQueueInfo } from '../../Page/VillageBlock';
|
import { grabBuildingQueueInfo } from '../../Page/VillageBlock';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { BuildingQueueInfo } from '../../Core/BuildingQueueInfo';
|
import { BuildingQueueInfo } from '../../Core/BuildingQueueInfo';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class CheckBuildingRemainingTimeAction extends BaseAction {
|
export class CheckBuildingRemainingTimeAction extends BaseAction {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { taskError } from '../../Errors';
|
import { taskError } from '../../Errors';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class ClickButtonAction extends BaseAction {
|
export class ClickButtonAction extends BaseAction {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class CompleteTaskAction extends BaseAction {
|
export class CompleteTaskAction extends BaseAction {
|
||||||
|
@ -3,7 +3,6 @@ import { FailTaskError, taskError, TryLaterError } from '../../Errors';
|
|||||||
import { Resources } from '../../Core/Resources';
|
import { Resources } from '../../Core/Resources';
|
||||||
import { Coordinates } from '../../Core/Village';
|
import { Coordinates } from '../../Core/Village';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { clickSendButton, fillSendResourcesForm } from '../../Page/BuildingPage/MarketPage';
|
import { clickSendButton, fillSendResourcesForm } from '../../Page/BuildingPage/MarketPage';
|
||||||
import { VillageState } from '../../Village/VillageState';
|
import { VillageState } from '../../Village/VillageState';
|
||||||
import { MerchantsInfo } from '../../Core/Market';
|
import { MerchantsInfo } from '../../Core/Market';
|
||||||
@ -18,6 +17,7 @@ import { path } from '../../Helpers/Path';
|
|||||||
import { MARKET_ID } from '../../Core/Buildings';
|
import { MARKET_ID } from '../../Core/Buildings';
|
||||||
import { aroundMinutes, timestamp } from '../../Helpers/Time';
|
import { aroundMinutes, timestamp } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class FindSendResourcesPathAction extends BaseAction {
|
export class FindSendResourcesPathAction extends BaseAction {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { GrabError, taskError, TryLaterError } from '../../Errors';
|
import { GrabError, taskError, TryLaterError } from '../../Errors';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { clickResearchButton } from '../../Page/BuildingPage/ForgePage';
|
import { clickResearchButton } from '../../Page/BuildingPage/ForgePage';
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class ForgeImprovementAction extends BaseAction {
|
export class ForgeImprovementAction extends BaseAction {
|
||||||
|
@ -3,9 +3,9 @@ import { grabVillageList } from '../../Page/VillageBlock';
|
|||||||
import { grabHeroVillage } from '../../Page/HeroPage';
|
import { grabHeroVillage } from '../../Page/HeroPage';
|
||||||
import { HeroStorage } from '../../Storage/HeroStorage';
|
import { HeroStorage } from '../../Storage/HeroStorage';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class GoToHeroVillageAction extends BaseAction {
|
export class GoToHeroVillageAction extends BaseAction {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { taskError } from '../../Errors';
|
import { taskError } from '../../Errors';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class GoToPageAction extends BaseAction {
|
export class GoToPageAction extends BaseAction {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { AbortTaskError } from '../../Errors';
|
import { AbortTaskError } from '../../Errors';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { trimPrefix } from '../../Helpers/Convert';
|
import { trimPrefix } from '../../Helpers/Convert';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
const CONFIG = [
|
const CONFIG = [
|
||||||
{ level: 0, health: 60 },
|
{ level: 0, health: 60 },
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { clickSendButton, fillSendResourcesForm } from '../../Page/BuildingPage/MarketPage';
|
import { clickSendButton, fillSendResourcesForm } from '../../Page/BuildingPage/MarketPage';
|
||||||
import { ResourceTransferCalculator } from '../../Village/ResourceTransfer';
|
import { ResourceTransferCalculator } from '../../Village/ResourceTransfer';
|
||||||
import { ResourceTransferStorage } from '../../Storage/ResourceTransferStorage';
|
import { ResourceTransferStorage } from '../../Storage/ResourceTransferStorage';
|
||||||
import { Resources } from '../../Core/Resources';
|
import { Resources } from '../../Core/Resources';
|
||||||
import { AbortTaskError } from '../../Errors';
|
import { AbortTaskError } from '../../Errors';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class SendResourcesAction extends BaseAction {
|
export class SendResourcesAction extends BaseAction {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import { BaseAction } from './BaseAction';
|
import { BaseAction } from './BaseAction';
|
||||||
import { taskError, TryLaterError } from '../../Errors';
|
import { taskError, TryLaterError } from '../../Errors';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import {
|
import {
|
||||||
clickTrainButton,
|
clickTrainButton,
|
||||||
fillTrainCount,
|
fillTrainCount,
|
||||||
@ -12,6 +11,7 @@ import { Resources } from '../../Core/Resources';
|
|||||||
import { randomInRange } from '../../Helpers/Random';
|
import { randomInRange } from '../../Helpers/Random';
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class TrainTrooperAction extends BaseAction {
|
export class TrainTrooperAction extends BaseAction {
|
||||||
|
@ -2,9 +2,9 @@ import { BaseAction } from './BaseAction';
|
|||||||
import { GrabError, TryLaterError } from '../../Errors';
|
import { GrabError, TryLaterError } from '../../Errors';
|
||||||
import { clickUpgradeButton } from '../../Page/BuildingPage/BuildingPage';
|
import { clickUpgradeButton } from '../../Page/BuildingPage/BuildingPage';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class UpgradeBuildingAction extends BaseAction {
|
export class UpgradeBuildingAction extends BaseAction {
|
||||||
|
@ -3,11 +3,11 @@ import { ActionError, taskError, TryLaterError } from '../../Errors';
|
|||||||
import { grabResourceSlots } from '../../Page/SlotBlock';
|
import { grabResourceSlots } from '../../Page/SlotBlock';
|
||||||
import { UpgradeBuildingTask } from '../Task/UpgradeBuildingTask';
|
import { UpgradeBuildingTask } from '../Task/UpgradeBuildingTask';
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { ResourceSlot } from '../../Core/Slot';
|
import { ResourceSlot } from '../../Core/Slot';
|
||||||
import { getNumber } from '../../Helpers/Convert';
|
import { getNumber } from '../../Helpers/Convert';
|
||||||
import { aroundMinutes } from '../../Helpers/Time';
|
import { aroundMinutes } from '../../Helpers/Time';
|
||||||
import { registerAction } from '../ActionMap';
|
import { registerAction } from '../ActionMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerAction
|
@registerAction
|
||||||
export class UpgradeResourceToLevelAction extends BaseAction {
|
export class UpgradeResourceToLevelAction extends BaseAction {
|
||||||
|
@ -3,9 +3,9 @@ import { GoToPageAction } from '../Action/GoToPageAction';
|
|||||||
import { CompleteTaskAction } from '../Action/CompleteTaskAction';
|
import { CompleteTaskAction } from '../Action/CompleteTaskAction';
|
||||||
import { BalanceHeroResourcesAction } from '../Action/BalanceHeroResourcesAction';
|
import { BalanceHeroResourcesAction } from '../Action/BalanceHeroResourcesAction';
|
||||||
import { GoToHeroVillageAction } from '../Action/GoToHeroVillageAction';
|
import { GoToHeroVillageAction } from '../Action/GoToHeroVillageAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class BalanceHeroResourcesTask extends BaseTask {
|
export class BalanceHeroResourcesTask extends BaseTask {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { Scheduler } from '../../Scheduler';
|
import { Scheduler } from '../../Scheduler';
|
||||||
import { CompleteTaskAction } from '../Action/CompleteTaskAction';
|
import { CompleteTaskAction } from '../Action/CompleteTaskAction';
|
||||||
import { Action } from '../../Queue/ActionQueue';
|
|
||||||
import { Args } from '../../Queue/Args';
|
import { Args } from '../../Queue/Args';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { VillageFactory } from '../../Village/VillageFactory';
|
import { VillageFactory } from '../../Village/VillageFactory';
|
||||||
|
import { Action } from '../../Queue/Action';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
export interface ActionDefinition {
|
export interface ActionDefinition {
|
||||||
name: string;
|
name: string;
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { BuildBuildingAction } from '../Action/BuildBuildingAction';
|
import { BuildBuildingAction } from '../Action/BuildBuildingAction';
|
||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { ActionDefinition, BaseTask } from './BaseTask';
|
import { ActionDefinition, BaseTask } from './BaseTask';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { taskError } from '../../Errors';
|
import { taskError } from '../../Errors';
|
||||||
import { goToResourceViewPage } from '../ActionBundles';
|
import { goToResourceViewPage } from '../ActionBundles';
|
||||||
import { ProductionQueue } from '../../Core/ProductionQueue';
|
import { ProductionQueue } from '../../Core/ProductionQueue';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask({ queue: ProductionQueue.Building })
|
@registerTask({ queue: ProductionQueue.Building })
|
||||||
export class BuildBuildingTask extends BaseTask {
|
export class BuildBuildingTask extends BaseTask {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { ActionDefinition, BaseTask } from './BaseTask';
|
import { ActionDefinition, BaseTask } from './BaseTask';
|
||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { CelebrationAction } from '../Action/CelebrationAction';
|
import { CelebrationAction } from '../Action/CelebrationAction';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { ProductionQueue } from '../../Core/ProductionQueue';
|
import { ProductionQueue } from '../../Core/ProductionQueue';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask({ queue: ProductionQueue.Celebration })
|
@registerTask({ queue: ProductionQueue.Celebration })
|
||||||
export class CelebrationTask extends BaseTask {
|
export class CelebrationTask extends BaseTask {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { ActionDefinition, BaseTask } from './BaseTask';
|
import { ActionDefinition, BaseTask } from './BaseTask';
|
||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { ForgeImprovementAction } from '../Action/ForgeImprovementAction';
|
import { ForgeImprovementAction } from '../Action/ForgeImprovementAction';
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { ProductionQueue } from '../../Core/ProductionQueue';
|
import { ProductionQueue } from '../../Core/ProductionQueue';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask({ queue: ProductionQueue.UpgradeUnit })
|
@registerTask({ queue: ProductionQueue.UpgradeUnit })
|
||||||
export class ForgeImprovementTask extends BaseTask {
|
export class ForgeImprovementTask extends BaseTask {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { BaseTask, ActionDefinition } from './BaseTask';
|
import { BaseTask, ActionDefinition } from './BaseTask';
|
||||||
import { scanAllVillagesBundle } from '../ActionBundles';
|
import { scanAllVillagesBundle } from '../ActionBundles';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class GrabVillageStateTask extends BaseTask {
|
export class GrabVillageStateTask extends BaseTask {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { BaseTask, ActionDefinition } from './BaseTask';
|
import { BaseTask, ActionDefinition } from './BaseTask';
|
||||||
import { UpgradeResourceToLevelAction } from '../Action/UpgradeResourceToLevelAction';
|
import { UpgradeResourceToLevelAction } from '../Action/UpgradeResourceToLevelAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { goToResourceViewPage } from '../ActionBundles';
|
import { goToResourceViewPage } from '../ActionBundles';
|
||||||
import { taskError } from '../../Errors';
|
import { taskError } from '../../Errors';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class ResourcesToLevelTask extends BaseTask {
|
export class ResourcesToLevelTask extends BaseTask {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { BaseTask, ActionDefinition } from './BaseTask';
|
import { BaseTask, ActionDefinition } from './BaseTask';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class RunVillageProductionTask extends BaseTask {
|
export class RunVillageProductionTask extends BaseTask {
|
||||||
|
@ -2,9 +2,9 @@ import { ActionDefinition, BaseTask } from './BaseTask';
|
|||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { SendOnAdventureAction } from '../Action/SendOnAdventureAction';
|
import { SendOnAdventureAction } from '../Action/SendOnAdventureAction';
|
||||||
import { ClickButtonAction } from '../Action/ClickButtonAction';
|
import { ClickButtonAction } from '../Action/ClickButtonAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class SendOnAdventureTask extends BaseTask {
|
export class SendOnAdventureTask extends BaseTask {
|
||||||
|
@ -2,9 +2,9 @@ import { BaseTask, ActionDefinition } from './BaseTask';
|
|||||||
import { SendResourcesAction } from '../Action/SendResourcesAction';
|
import { SendResourcesAction } from '../Action/SendResourcesAction';
|
||||||
import { ClickButtonAction } from '../Action/ClickButtonAction';
|
import { ClickButtonAction } from '../Action/ClickButtonAction';
|
||||||
import { goToMarketSendResourcesPage, goToResourceViewPage } from '../ActionBundles';
|
import { goToMarketSendResourcesPage, goToResourceViewPage } from '../ActionBundles';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { FindSendResourcesPathAction } from '../Action/FindSendResourcesPathAction';
|
import { FindSendResourcesPathAction } from '../Action/FindSendResourcesPathAction';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class SendResourcesTask extends BaseTask {
|
export class SendResourcesTask extends BaseTask {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { ActionDefinition, BaseTask } from './BaseTask';
|
import { ActionDefinition, BaseTask } from './BaseTask';
|
||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { TrainTrooperAction } from '../Action/TrainTrooperAction';
|
import { TrainTrooperAction } from '../Action/TrainTrooperAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { ProductionQueue } from '../../Core/ProductionQueue';
|
import { ProductionQueue } from '../../Core/ProductionQueue';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask({ queue: ProductionQueue.TrainUnit })
|
@registerTask({ queue: ProductionQueue.TrainUnit })
|
||||||
export class TrainTroopTask extends BaseTask {
|
export class TrainTroopTask extends BaseTask {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { ActionDefinition, BaseTask } from './BaseTask';
|
import { ActionDefinition, BaseTask } from './BaseTask';
|
||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { UpgradeBuildingTask } from './UpgradeBuildingTask';
|
import { UpgradeBuildingTask } from './UpgradeBuildingTask';
|
||||||
import { ImmutableTaskList, Task } from '../../Queue/TaskProvider';
|
|
||||||
import { ForgeImprovementTask } from './ForgeImprovementTask';
|
import { ForgeImprovementTask } from './ForgeImprovementTask';
|
||||||
import { path, PathList, uniqPaths } from '../../Helpers/Path';
|
import { path, PathList, uniqPaths } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
|
import { ImmutableTaskList, Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask()
|
@registerTask()
|
||||||
export class UpdateResourceContractsTask extends BaseTask {
|
export class UpdateResourceContractsTask extends BaseTask {
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { UpgradeBuildingAction } from '../Action/UpgradeBuildingAction';
|
import { UpgradeBuildingAction } from '../Action/UpgradeBuildingAction';
|
||||||
import { BaseTask, ActionDefinition } from './BaseTask';
|
import { BaseTask, ActionDefinition } from './BaseTask';
|
||||||
import { GoToPageAction } from '../Action/GoToPageAction';
|
import { GoToPageAction } from '../Action/GoToPageAction';
|
||||||
import { Task } from '../../Queue/TaskProvider';
|
|
||||||
import { path } from '../../Helpers/Path';
|
import { path } from '../../Helpers/Path';
|
||||||
import { registerTask } from '../TaskMap';
|
import { registerTask } from '../TaskMap';
|
||||||
import { goToResourceViewPage } from '../ActionBundles';
|
import { goToResourceViewPage } from '../ActionBundles';
|
||||||
import { taskError } from '../../Errors';
|
import { taskError } from '../../Errors';
|
||||||
import { ProductionQueue } from '../../Core/ProductionQueue';
|
import { ProductionQueue } from '../../Core/ProductionQueue';
|
||||||
|
import { Task } from '../../Queue/Task';
|
||||||
|
|
||||||
@registerTask({ queue: ProductionQueue.Building })
|
@registerTask({ queue: ProductionQueue.Building })
|
||||||
export class UpgradeBuildingTask extends BaseTask {
|
export class UpgradeBuildingTask extends BaseTask {
|
||||||
|
9
src/Queue/Action.ts
Normal file
9
src/Queue/Action.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import { Args } from './Args';
|
||||||
|
|
||||||
|
export interface Action {
|
||||||
|
name: string;
|
||||||
|
args: Args;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type ActionList = Array<Action>;
|
||||||
|
export type ImmutableActionList = ReadonlyArray<Action>;
|
@ -1,19 +1,10 @@
|
|||||||
import { ConsoleLogger, Logger } from '../Logger';
|
import { ConsoleLogger, Logger } from '../Logger';
|
||||||
import { DataStorage } from '../Storage/DataStorage';
|
import { DataStorage } from '../Storage/DataStorage';
|
||||||
import { Args } from './Args';
|
import { Action, ActionList, ImmutableActionList } from './Action';
|
||||||
|
|
||||||
const NAMESPACE = 'actions.v1';
|
const NAMESPACE = 'actions.v1';
|
||||||
const QUEUE_NAME = 'queue';
|
const QUEUE_NAME = 'queue';
|
||||||
|
|
||||||
export interface Action {
|
|
||||||
name: string;
|
|
||||||
args: Args;
|
|
||||||
}
|
|
||||||
|
|
||||||
type ActionList = Array<Action>;
|
|
||||||
|
|
||||||
export type ImmutableActionList = ReadonlyArray<Action>;
|
|
||||||
|
|
||||||
export class ActionQueue {
|
export class ActionQueue {
|
||||||
private storage: DataStorage;
|
private storage: DataStorage;
|
||||||
private readonly logger: Logger;
|
private readonly logger: Logger;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ResourcesInterface } from '../Core/Resources';
|
import { ResourcesInterface } from '../Core/Resources';
|
||||||
import { CoordinatesInterface } from '../Core/Village';
|
import { CoordinatesInterface } from '../Core/Village';
|
||||||
import { TaskId } from './TaskProvider';
|
import { TaskId } from './TaskId';
|
||||||
|
|
||||||
export interface Args {
|
export interface Args {
|
||||||
taskId?: TaskId;
|
taskId?: TaskId;
|
||||||
|
@ -2,23 +2,7 @@ import { Args } from './Args';
|
|||||||
import { ResourcesInterface } from '../Core/Resources';
|
import { ResourcesInterface } from '../Core/Resources';
|
||||||
import { ProductionQueue } from '../Core/ProductionQueue';
|
import { ProductionQueue } from '../Core/ProductionQueue';
|
||||||
import { getProductionQueue } from '../Handler/TaskMap';
|
import { getProductionQueue } from '../Handler/TaskMap';
|
||||||
import { uniqId } from '../Helpers/Identity';
|
import { TaskId } from './TaskId';
|
||||||
|
|
||||||
export type TaskId = string;
|
|
||||||
|
|
||||||
let idSequence = 1;
|
|
||||||
let lastTimestamp: number | undefined = undefined;
|
|
||||||
|
|
||||||
export function uniqTaskId(): TaskId {
|
|
||||||
const ts = Math.floor(Date.now() / 1000);
|
|
||||||
if (ts === lastTimestamp) {
|
|
||||||
++idSequence;
|
|
||||||
} else {
|
|
||||||
idSequence = 1;
|
|
||||||
}
|
|
||||||
lastTimestamp = ts;
|
|
||||||
return 'tid.' + ts + '.' + String(idSequence).padStart(4, '0') + '.' + uniqId('');
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface TaskCore {
|
export interface TaskCore {
|
||||||
readonly id: TaskId;
|
readonly id: TaskId;
|
||||||
@ -43,11 +27,6 @@ export class Task implements TaskCore {
|
|||||||
export type TaskList = Array<Task>;
|
export type TaskList = Array<Task>;
|
||||||
export type ImmutableTaskList = ReadonlyArray<Task>;
|
export type ImmutableTaskList = ReadonlyArray<Task>;
|
||||||
|
|
||||||
export interface TaskProvider {
|
|
||||||
getTasks(): TaskList;
|
|
||||||
setTasks(tasks: TaskList): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface TaskMatcher {
|
export interface TaskMatcher {
|
||||||
(task: TaskCore): boolean;
|
(task: TaskCore): boolean;
|
||||||
}
|
}
|
17
src/Queue/TaskId.ts
Normal file
17
src/Queue/TaskId.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { uniqId } from '../Helpers/Identity';
|
||||||
|
|
||||||
|
export type TaskId = string;
|
||||||
|
|
||||||
|
let idSequence = 1;
|
||||||
|
let lastTimestamp: number | undefined = undefined;
|
||||||
|
|
||||||
|
export function uniqTaskId(): TaskId {
|
||||||
|
const ts = Math.floor(Date.now() / 1000);
|
||||||
|
if (ts === lastTimestamp) {
|
||||||
|
++idSequence;
|
||||||
|
} else {
|
||||||
|
idSequence = 1;
|
||||||
|
}
|
||||||
|
lastTimestamp = ts;
|
||||||
|
return 'tid.' + ts + '.' + String(idSequence).padStart(4, '0') + '.' + uniqId('');
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
import { TaskList, TaskProvider } from './TaskProvider';
|
import { TaskProvider } from './TaskProvider';
|
||||||
|
import { TaskList } from '../Task';
|
||||||
|
|
||||||
export class ArrayTaskProvider implements TaskProvider {
|
export class ArrayTaskProvider implements TaskProvider {
|
||||||
private tasks: TaskList;
|
private tasks: TaskList;
|
@ -1,5 +1,7 @@
|
|||||||
import { DataStorage } from '../Storage/DataStorage';
|
import { DataStorage } from '../../Storage/DataStorage';
|
||||||
import { Task, TaskList, TaskProvider, uniqTaskId } from './TaskProvider';
|
import { TaskProvider } from './TaskProvider';
|
||||||
|
import { Task, TaskList } from '../Task';
|
||||||
|
import { uniqTaskId } from '../TaskId';
|
||||||
|
|
||||||
const QUEUE_NAME = 'queue';
|
const QUEUE_NAME = 'queue';
|
||||||
|
|
6
src/Queue/TaskProvider/TaskProvider.ts
Normal file
6
src/Queue/TaskProvider/TaskProvider.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { TaskList } from '../Task';
|
||||||
|
|
||||||
|
export interface TaskProvider {
|
||||||
|
getTasks(): TaskList;
|
||||||
|
setTasks(tasks: TaskList): void;
|
||||||
|
}
|
@ -1,5 +1,7 @@
|
|||||||
import { Logger } from '../Logger';
|
import { Logger } from '../Logger';
|
||||||
import { ImmutableTaskList, Task, TaskId, TaskList, TaskProvider } from './TaskProvider';
|
import { TaskProvider } from './TaskProvider/TaskProvider';
|
||||||
|
import { ImmutableTaskList, Task, TaskList } from './Task';
|
||||||
|
import { TaskId } from './TaskId';
|
||||||
|
|
||||||
export class TaskQueue {
|
export class TaskQueue {
|
||||||
private provider: TaskProvider;
|
private provider: TaskProvider;
|
||||||
|
@ -2,17 +2,19 @@ import { TaskQueue } from './Queue/TaskQueue';
|
|||||||
import { BalanceHeroResourcesTask } from './Handler/Task/BalanceHeroResourcesTask';
|
import { BalanceHeroResourcesTask } from './Handler/Task/BalanceHeroResourcesTask';
|
||||||
import { Logger } from './Logger';
|
import { Logger } from './Logger';
|
||||||
import { GrabVillageStateTask } from './Handler/Task/GrabVillageStateTask';
|
import { GrabVillageStateTask } from './Handler/Task/GrabVillageStateTask';
|
||||||
import { Action, ActionQueue, ImmutableActionList } from './Queue/ActionQueue';
|
import { ActionQueue } from './Queue/ActionQueue';
|
||||||
import { UpdateResourceContractsTask } from './Handler/Task/UpdateResourceContractsTask';
|
import { UpdateResourceContractsTask } from './Handler/Task/UpdateResourceContractsTask';
|
||||||
import { SendResourcesTask } from './Handler/Task/SendResourcesTask';
|
import { SendResourcesTask } from './Handler/Task/SendResourcesTask';
|
||||||
import { Args } from './Queue/Args';
|
import { Args } from './Queue/Args';
|
||||||
import { ImmutableTaskList, Task, TaskId, uniqTaskId, withTime } from './Queue/TaskProvider';
|
|
||||||
import { VillageRepositoryInterface } from './Village/VillageRepository';
|
import { VillageRepositoryInterface } from './Village/VillageRepository';
|
||||||
import { VillageFactory } from './Village/VillageFactory';
|
import { VillageFactory } from './Village/VillageFactory';
|
||||||
import { RunVillageProductionTask } from './Handler/Task/RunVillageProductionTask';
|
import { RunVillageProductionTask } from './Handler/Task/RunVillageProductionTask';
|
||||||
import { isProductionTask } from './Handler/TaskMap';
|
import { isProductionTask } from './Handler/TaskMap';
|
||||||
import { around } from './Helpers/Random';
|
import { around } from './Helpers/Random';
|
||||||
import { timestamp } from './Helpers/Time';
|
import { timestamp } from './Helpers/Time';
|
||||||
|
import { Action, ImmutableActionList } from './Queue/Action';
|
||||||
|
import { ImmutableTaskList, Task, withTime } from './Queue/Task';
|
||||||
|
import { TaskId, uniqTaskId } from './Queue/TaskId';
|
||||||
|
|
||||||
interface NextExecution {
|
interface NextExecution {
|
||||||
task?: Task;
|
task?: Task;
|
||||||
|
@ -4,7 +4,6 @@ import { ResourceStorage } from '../Core/ResourceStorage';
|
|||||||
import { IncomingMerchant, MerchantsInfo } from '../Core/Market';
|
import { IncomingMerchant, MerchantsInfo } from '../Core/Market';
|
||||||
import { VillageSettings, VillageSettingsDefaults } from '../Core/Village';
|
import { VillageSettings, VillageSettingsDefaults } from '../Core/Village';
|
||||||
import { ProductionQueue } from '../Core/ProductionQueue';
|
import { ProductionQueue } from '../Core/ProductionQueue';
|
||||||
import { Task, uniqTaskId } from '../Queue/TaskProvider';
|
|
||||||
import {
|
import {
|
||||||
BuildingSlot,
|
BuildingSlot,
|
||||||
BuildingSlotDefaults,
|
BuildingSlotDefaults,
|
||||||
@ -12,6 +11,8 @@ import {
|
|||||||
ResourceSlotDefaults,
|
ResourceSlotDefaults,
|
||||||
} from '../Core/Slot';
|
} from '../Core/Slot';
|
||||||
import { getNumber } from '../Helpers/Convert';
|
import { getNumber } from '../Helpers/Convert';
|
||||||
|
import { Task } from '../Queue/Task';
|
||||||
|
import { uniqTaskId } from '../Queue/TaskId';
|
||||||
|
|
||||||
const RESOURCES_KEY = 'resources';
|
const RESOURCES_KEY = 'resources';
|
||||||
const CAPACITY_KEY = 'capacity';
|
const CAPACITY_KEY = 'capacity';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ImmutableTaskList } from './Queue/TaskProvider';
|
|
||||||
import { uniqId } from './Helpers/Identity';
|
import { uniqId } from './Helpers/Identity';
|
||||||
import { formatDate } from './Helpers/Format';
|
import { formatDate } from './Helpers/Format';
|
||||||
|
import { ImmutableTaskList } from './Queue/Task';
|
||||||
|
|
||||||
const ID = uniqId();
|
const ID = uniqId();
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { VillageTaskCollection } from './VillageTaskCollection';
|
import { VillageTaskCollection } from './VillageTaskCollection';
|
||||||
import { isBuildingPlanned, TaskId } from '../Queue/TaskProvider';
|
|
||||||
import { Args } from '../Queue/Args';
|
import { Args } from '../Queue/Args';
|
||||||
import { TaskState, VillageState } from './VillageState';
|
import { TaskState, VillageState } from './VillageState';
|
||||||
import { Resources } from '../Core/Resources';
|
import { Resources } from '../Core/Resources';
|
||||||
@ -10,6 +9,8 @@ import { ResourceType } from '../Core/ResourceType';
|
|||||||
import { UpgradeBuildingTask } from '../Handler/Task/UpgradeBuildingTask';
|
import { UpgradeBuildingTask } from '../Handler/Task/UpgradeBuildingTask';
|
||||||
import { GARNER_ID, WAREHOUSE_ID } from '../Core/Buildings';
|
import { GARNER_ID, WAREHOUSE_ID } from '../Core/Buildings';
|
||||||
import { first } from '../Helpers/Collection';
|
import { first } from '../Helpers/Collection';
|
||||||
|
import { isBuildingPlanned } from '../Queue/Task';
|
||||||
|
import { TaskId } from '../Queue/TaskId';
|
||||||
|
|
||||||
export class VillageController {
|
export class VillageController {
|
||||||
private readonly villageId: number;
|
private readonly villageId: number;
|
||||||
|
@ -5,11 +5,12 @@ import { calcGatheringTimings, GatheringTime } from '../Core/GatheringTimings';
|
|||||||
import { VillageRepositoryInterface } from './VillageRepository';
|
import { VillageRepositoryInterface } from './VillageRepository';
|
||||||
import { VillageNotFound } from '../Errors';
|
import { VillageNotFound } from '../Errors';
|
||||||
import { OrderedProductionQueues, ProductionQueue } from '../Core/ProductionQueue';
|
import { OrderedProductionQueues, ProductionQueue } from '../Core/ProductionQueue';
|
||||||
import { isInQueue, TaskCore, TaskId } from '../Queue/TaskProvider';
|
|
||||||
import { VillageTaskCollection } from './VillageTaskCollection';
|
import { VillageTaskCollection } from './VillageTaskCollection';
|
||||||
import { TrainTroopTask } from '../Handler/Task/TrainTroopTask';
|
import { TrainTroopTask } from '../Handler/Task/TrainTroopTask';
|
||||||
import { Args } from '../Queue/Args';
|
import { Args } from '../Queue/Args';
|
||||||
import { timestamp } from '../Helpers/Time';
|
import { timestamp } from '../Helpers/Time';
|
||||||
|
import { isInQueue, TaskCore } from '../Queue/Task';
|
||||||
|
import { TaskId } from '../Queue/TaskId';
|
||||||
|
|
||||||
export interface TaskState {
|
export interface TaskState {
|
||||||
id: TaskId;
|
id: TaskId;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { VillageStorage } from '../Storage/VillageStorage';
|
import { VillageStorage } from '../Storage/VillageStorage';
|
||||||
import { Task, TaskId, uniqTaskId, withResources, withTime } from '../Queue/TaskProvider';
|
|
||||||
import { Args } from '../Queue/Args';
|
import { Args } from '../Queue/Args';
|
||||||
import { Resources } from '../Core/Resources';
|
import { Resources } from '../Core/Resources';
|
||||||
import { ContractAttributes, ContractType } from '../Core/Contract';
|
import { ContractAttributes, ContractType } from '../Core/Contract';
|
||||||
@ -7,6 +6,8 @@ import { UpgradeBuildingTask } from '../Handler/Task/UpgradeBuildingTask';
|
|||||||
import { ForgeImprovementTask } from '../Handler/Task/ForgeImprovementTask';
|
import { ForgeImprovementTask } from '../Handler/Task/ForgeImprovementTask';
|
||||||
import { isProductionTask } from '../Handler/TaskMap';
|
import { isProductionTask } from '../Handler/TaskMap';
|
||||||
import { timestamp } from '../Helpers/Time';
|
import { timestamp } from '../Helpers/Time';
|
||||||
|
import { Task, withResources, withTime } from '../Queue/Task';
|
||||||
|
import { TaskId, uniqTaskId } from '../Queue/TaskId';
|
||||||
|
|
||||||
export class VillageTaskCollection {
|
export class VillageTaskCollection {
|
||||||
private readonly storage: VillageStorage;
|
private readonly storage: VillageStorage;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import { it, describe } from 'mocha';
|
import { it, describe } from 'mocha';
|
||||||
import { expect } from 'chai';
|
import { expect } from 'chai';
|
||||||
|
|
||||||
import { Task } from '../../src/Queue/TaskProvider';
|
|
||||||
import { TaskQueue } from '../../src/Queue/TaskQueue';
|
import { TaskQueue } from '../../src/Queue/TaskQueue';
|
||||||
import { NullLogger } from '../../src/Logger';
|
import { NullLogger } from '../../src/Logger';
|
||||||
import { ArrayTaskProvider } from '../../src/Queue/ArrayTaskProvider';
|
import { ArrayTaskProvider } from '../../src/Queue/TaskProvider/ArrayTaskProvider';
|
||||||
|
import { Task } from '../../src/Queue/Task';
|
||||||
|
|
||||||
describe('Task Queue', function() {
|
describe('Task Queue', function() {
|
||||||
it('Can get task from queue', function() {
|
it('Can get task from queue', function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user