travian/src/Action/BalanceHeroResourcesAction.ts
2020-04-12 16:58:08 +03:00

26 lines
969 B
TypeScript

import { ActionController, registerAction } from './ActionController';
import { Args } from '../Common';
import { Task } from '../Storage/TaskQueue';
import { grabResources } from '../Page/ResourcesBlock';
import { changeHeroResource, grabCurrentHeroResource } from '../Page/HeroPage';
import { HeroAllResources } from '../Game';
@registerAction
export class BalanceHeroResourcesAction extends ActionController {
async run(args: Args, task: Task): Promise<any> {
const resources = grabResources().asList();
const currentType = grabCurrentHeroResource();
const sorted = resources.sort((x, y) => x.value - y.value);
const min = sorted[0];
const max = sorted[sorted.length - 1];
const delta = max.value - min.value;
const eps = max.value / 10;
const resType = delta > eps ? min.type : HeroAllResources;
if (resType !== currentType) {
changeHeroResource(resType);
}
}
}