travian/src/Grabber/ForgePageGrabber.ts

39 lines
1.2 KiB
TypeScript

import { Grabber } from './Grabber';
import { getBuildingPageAttributes, isForgePage } from '../Page/PageDetector';
import { ContractType } from '../Core/Contract';
import { grabImprovementContracts, grabRemainingSeconds } from '../Page/BuildingPage/ForgePage';
import { ProductionQueue } from '../Core/ProductionQueue';
import { timestamp } from '../Helpers/Time';
export class ForgePageGrabber extends Grabber {
grab(): void {
if (!isForgePage()) {
return;
}
this.grabContracts();
this.grabTimer();
}
private grabContracts(): void {
const { buildId } = getBuildingPageAttributes();
const contracts = grabImprovementContracts();
for (let { resources, unitId } of contracts) {
this.taskCollection.updateResourcesInTasks(resources, {
type: ContractType.ImproveTrooper,
buildId,
unitId,
});
}
}
private grabTimer(): void {
const seconds = grabRemainingSeconds();
this.storage.storeQueueTaskEnding(
ProductionQueue.UpgradeUnit,
seconds ? seconds + timestamp() : 0
);
}
}