Grab queue time for guild hall and forge
This commit is contained in:
@ -2,15 +2,24 @@ import { Grabber } from './Grabber';
|
||||
import { grabActiveVillageId } from '../Page/VillageBlock';
|
||||
import { getBuildingPageAttributes, isForgePage } from '../Page/PageDetectors';
|
||||
import { ContractType } from '../Scheduler';
|
||||
import { grabImprovementContracts } from '../Page/BuildingPage/ForgePage';
|
||||
import { grabImprovementContracts, grabRemainingSeconds } from '../Page/BuildingPage/ForgePage';
|
||||
import { VillageStorage } from '../Storage/VillageStorage';
|
||||
import { ProductionQueue } from '../Core/ProductionQueue';
|
||||
import { timestamp } from '../utils';
|
||||
|
||||
export class ForgeContractGrabber extends Grabber {
|
||||
export class ForgePageGrabber extends Grabber {
|
||||
grab(): void {
|
||||
if (!isForgePage()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const villageId = grabActiveVillageId();
|
||||
|
||||
this.grabContracts(villageId);
|
||||
this.grabTimer(villageId);
|
||||
}
|
||||
|
||||
private grabContracts(villageId: number): void {
|
||||
const { buildId } = getBuildingPageAttributes();
|
||||
const contracts = grabImprovementContracts();
|
||||
|
||||
@ -23,4 +32,10 @@ export class ForgeContractGrabber extends Grabber {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private grabTimer(villageId: number): void {
|
||||
const state = new VillageStorage(villageId);
|
||||
const seconds = grabRemainingSeconds();
|
||||
state.storeQueueTaskEnding(ProductionQueue.UpgradeUnit, seconds ? seconds + timestamp() : 0);
|
||||
}
|
||||
}
|
@ -5,7 +5,8 @@ import { HeroPageGrabber } from './HeroPageGrabber';
|
||||
import { MarketPageGrabber } from './MarketPageGrabber';
|
||||
import { Scheduler } from '../Scheduler';
|
||||
import { BuildingContractGrabber } from './BuildingContractGrabber';
|
||||
import { ForgeContractGrabber } from './ForgeContractGrabber';
|
||||
import { ForgePageGrabber } from './ForgePageGrabber';
|
||||
import { GuildHallPageGrabber } from './GuildHallPageGrabber';
|
||||
|
||||
export class GrabberManager {
|
||||
private readonly grabbers: Array<Grabber> = [];
|
||||
@ -17,7 +18,8 @@ export class GrabberManager {
|
||||
this.grabbers.push(new HeroPageGrabber(scheduler));
|
||||
this.grabbers.push(new MarketPageGrabber(scheduler));
|
||||
this.grabbers.push(new BuildingContractGrabber(scheduler));
|
||||
this.grabbers.push(new ForgeContractGrabber(scheduler));
|
||||
this.grabbers.push(new ForgePageGrabber(scheduler));
|
||||
this.grabbers.push(new GuildHallPageGrabber(scheduler));
|
||||
}
|
||||
|
||||
grab() {
|
||||
|
20
src/Grabber/GuildHallPageGrabber.ts
Normal file
20
src/Grabber/GuildHallPageGrabber.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { Grabber } from './Grabber';
|
||||
import { grabActiveVillageId } from '../Page/VillageBlock';
|
||||
import { VillageStorage } from '../Storage/VillageStorage';
|
||||
import { isGuildHallPage } from '../Page/PageDetectors';
|
||||
import { grabRemainingSeconds } from '../Page/BuildingPage/GuildHallPage';
|
||||
import { ProductionQueue } from '../Core/ProductionQueue';
|
||||
import { timestamp } from '../utils';
|
||||
|
||||
export class GuildHallPageGrabber extends Grabber {
|
||||
grab(): void {
|
||||
if (!isGuildHallPage()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const villageId = grabActiveVillageId();
|
||||
const state = new VillageStorage(villageId);
|
||||
const seconds = grabRemainingSeconds();
|
||||
state.storeQueueTaskEnding(ProductionQueue.Celebration, seconds ? seconds + timestamp() : 0);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user