39 lines
1.2 KiB
TypeScript
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
|
|
);
|
|
}
|
|
}
|