travian/src/Task/SendResourcesTask.ts
2020-05-08 11:28:18 +03:00

36 lines
1.3 KiB
TypeScript

import { TaskController, ActionDefinition } from './TaskController';
import { GoToPageAction } from '../Action/GoToPageAction';
import { CompleteTaskAction } from '../Action/CompleteTaskAction';
import { SendResourcesAction } from '../Action/SendResourcesAction';
import { ClickButtonAction } from '../Action/ClickButtonAction';
import { scanAllVillagesBundle } from './ActionBundles';
import { Args } from '../Queue/Args';
import { Task } from '../Queue/TaskProvider';
import { path } from '../Helpers/Path';
import { registerTask } from './TaskMap';
@registerTask()
export class SendResourcesTask extends TaskController {
defineActions(task: Task): Array<ActionDefinition> {
return [...scanAllVillagesBundle(), ...this.sendResourcesActions(task.args)];
}
sendResourcesActions(args: Args): Array<ActionDefinition> {
const pathArgs = {
newdid: args.villageId,
gid: args.buildTypeId || undefined,
id: args.buildId || undefined,
t: args.tabId,
};
const pagePath = path('/build.php', pathArgs);
return [
[GoToPageAction.name, { path: pagePath }],
[SendResourcesAction.name],
[ClickButtonAction.name, { selector: '#enabledButton.green.sendRessources' }],
[CompleteTaskAction.name],
];
}
}