Store incoming merchants
This commit is contained in:
@ -2,6 +2,7 @@ import { GrabError } from '../Errors';
|
||||
import { elClassId, getNumber, trimPrefix, uniqId } from '../utils';
|
||||
import { Resources } from '../Core/Resources';
|
||||
import { Coordinates } from '../Core/Village';
|
||||
import { IncomingMerchant } from '../Core/Market';
|
||||
|
||||
export function clickBuildButton(typeId: number) {
|
||||
const section = jQuery(`#contract_building${typeId}`);
|
||||
@ -140,3 +141,18 @@ export function fillSendResourcesForm(resources: Resources, crd: Coordinates) {
|
||||
export function clickSendButton() {
|
||||
jQuery('#enabledButton').trigger('click');
|
||||
}
|
||||
|
||||
export function grabIncomingMerchants(): ReadonlyArray<IncomingMerchant> {
|
||||
const result: Array<IncomingMerchant> = [];
|
||||
const root = jQuery('#merchantsOnTheWay .ownMerchants');
|
||||
root.find('.traders').each((idx, el) => {
|
||||
const $el = jQuery(el);
|
||||
result.push(
|
||||
new IncomingMerchant(
|
||||
grabResourcesFromList($el.find('.resourceWrapper .resources')),
|
||||
getNumber($el.find('.timer').attr('value'))
|
||||
)
|
||||
);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
@ -9,24 +9,14 @@ import {
|
||||
createSendResourcesButton,
|
||||
createTrainTroopButtons,
|
||||
createUpgradeButton,
|
||||
grabIncomingMerchants,
|
||||
} from './BuildingPage';
|
||||
import { BuildBuildingTask } from '../Task/BuildBuildingTask';
|
||||
import { Resources } from '../Core/Resources';
|
||||
import { Coordinates } from '../Core/Village';
|
||||
import { SendResourcesTask } from '../Task/SendResourcesTask';
|
||||
|
||||
const MARKET_ID = 17;
|
||||
const QUARTERS_ID = 19;
|
||||
const HORSE_STABLE_ID = 20;
|
||||
const EMBASSY_ID = 25;
|
||||
|
||||
export interface BuildingPageAttributes {
|
||||
buildId: number;
|
||||
buildTypeId: number;
|
||||
categoryId: number;
|
||||
sheetId: number;
|
||||
tabId: number;
|
||||
}
|
||||
import { EMBASSY_ID, HORSE_STABLE_ID, QUARTERS_ID } from '../Core/Buildings';
|
||||
import { BuildingPageAttributes, isMarketSendResourcesPage } from './PageDetectors';
|
||||
|
||||
export class BuildingPageController {
|
||||
private scheduler: Scheduler;
|
||||
@ -40,7 +30,7 @@ export class BuildingPageController {
|
||||
}
|
||||
|
||||
run() {
|
||||
const { buildTypeId, sheetId, tabId } = this.attributes;
|
||||
const { buildTypeId, sheetId } = this.attributes;
|
||||
this.logger.log('BUILD PAGE DETECTED', 'ID', this.attributes.buildId, this.attributes);
|
||||
|
||||
if (buildTypeId) {
|
||||
@ -61,7 +51,8 @@ export class BuildingPageController {
|
||||
createTrainTroopButtons((troopId, res, count) => this.onScheduleTrainTroopers(troopId, res, count));
|
||||
}
|
||||
|
||||
if (buildTypeId === MARKET_ID && tabId === 5) {
|
||||
if (isMarketSendResourcesPage()) {
|
||||
console.log('MERCH', grabIncomingMerchants());
|
||||
createSendResourcesButton((res, crd) => this.onSendResources(res, crd));
|
||||
}
|
||||
}
|
||||
|
42
src/Page/PageDetectors.ts
Normal file
42
src/Page/PageDetectors.ts
Normal file
@ -0,0 +1,42 @@
|
||||
import { elClassId, getNumber, parseLocation } from '../utils';
|
||||
import { MARKET_ID } from '../Core/Buildings';
|
||||
|
||||
export interface BuildingPageAttributes {
|
||||
buildId: number;
|
||||
buildTypeId: number;
|
||||
categoryId: number;
|
||||
sheetId: number;
|
||||
tabId: number;
|
||||
}
|
||||
|
||||
export function isBuildingPage() {
|
||||
const p = parseLocation();
|
||||
return p.pathname === '/build.php';
|
||||
}
|
||||
|
||||
export function isHeroPage() {
|
||||
const p = parseLocation();
|
||||
return p.pathname === '/hero.php';
|
||||
}
|
||||
|
||||
export function getBuildingPageAttributes(): BuildingPageAttributes {
|
||||
if (!isBuildingPage()) {
|
||||
throw Error('Not building page');
|
||||
}
|
||||
const p = parseLocation();
|
||||
return {
|
||||
buildId: getNumber(p.query.id),
|
||||
buildTypeId: getNumber(elClassId(jQuery('#build').attr('class'), 'gid')),
|
||||
categoryId: getNumber(p.query.category, 1),
|
||||
sheetId: getNumber(p.query.s, 0),
|
||||
tabId: getNumber(p.query.t, 0),
|
||||
};
|
||||
}
|
||||
|
||||
export function isMarketSendResourcesPage(): boolean {
|
||||
if (!isBuildingPage()) {
|
||||
return false;
|
||||
}
|
||||
const { buildTypeId, tabId } = getBuildingPageAttributes();
|
||||
return buildTypeId === MARKET_ID && tabId === 5;
|
||||
}
|
Reference in New Issue
Block a user