diff --git a/src/Action/GoToHeroVillageAction.ts b/src/Action/GoToHeroVillageAction.ts index ad2cbf3..33d358d 100644 --- a/src/Action/GoToHeroVillageAction.ts +++ b/src/Action/GoToHeroVillageAction.ts @@ -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(); } } diff --git a/src/Page/HeroPage.ts b/src/Page/HeroPage.ts index 6c0fb18..60d6e04 100644 --- a/src/Page/HeroPage.ts +++ b/src/Page/HeroPage.ts @@ -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; diff --git a/tests/Core/HeroBalanceTest.ts b/tests/Core/HeroBalanceTest.ts index 27e3375..4c2dab8 100644 --- a/tests/Core/HeroBalanceTest.ts +++ b/tests/Core/HeroBalanceTest.ts @@ -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); + }); });