Improve hero village detection

This commit is contained in:
Anton Vakhrushev 2020-04-25 21:19:45 +03:00
parent 3f4534a72e
commit 2137e7e684
3 changed files with 15 additions and 4 deletions

View File

@ -4,6 +4,7 @@ import { Task } from '../Queue/TaskQueue';
import { grabVillageList } from '../Page/VillageBlock';
import { grabHeroVillage } from '../Page/HeroPage';
import { path } from '../utils';
import { HeroState } from '../State/HeroState';
@registerAction
export class GoToHeroVillageAction extends ActionController {
@ -24,6 +25,6 @@ export class GoToHeroVillageAction extends ActionController {
}
}
return undefined;
return new HeroState().getVillageId();
}
}

View File

@ -53,9 +53,10 @@ function heroResourceTypeToNumber(type: HeroResourceType): number {
}
export function grabHeroVillage(): string | undefined {
const status = jQuery('.heroStatusMessage').text();
const hrefText = jQuery('.heroStatusMessage a').text();
if (status.toLowerCase().includes('в родной деревне')) {
const statusSpan = jQuery('.heroStatusMessage span:not(.titleExtra)');
const statusText = statusSpan.text();
const hrefText = statusSpan.find('a').text();
if (statusText.toLowerCase().includes('в родной деревне')) {
return hrefText || undefined;
} else {
return undefined;

View File

@ -42,4 +42,13 @@ describe('HeroBalance', function() {
const heroRes = calcHeroResource(current, required, totalRequired, storage);
expect(ResourceType.Iron).to.equals(heroRes);
});
it('Get resource if enough, but total not enough', function() {
const current = new Resources(300, 300, 300, 300);
const required = new Resources(100, 100, 100, 100);
const totalRequired = new Resources(500, 600, 200, 200);
const storage = new ResourceStorage(1000, 1000);
const heroRes = calcHeroResource(current, required, totalRequired, storage);
expect(ResourceType.Clay).to.equals(heroRes);
});
});