Add fast resource transfer management

This commit is contained in:
2020-05-08 21:00:47 +03:00
parent f648f7dd5a
commit 304c192ab0
8 changed files with 79 additions and 50 deletions

View File

@ -5,23 +5,17 @@ import { IncomingMerchant } from '../../Core/Market';
import { grabResourcesFromList } from './BuildingPage';
interface SendResourcesClickHandler {
(resources: Resources, crd: Coordinates, scale: number): void;
(resources: Resources, crd: Coordinates): void;
}
export function createSendResourcesButton(onClickHandler: SendResourcesClickHandler) {
const id1 = uniqId();
const id10 = uniqId();
const id100 = uniqId();
const id1000 = uniqId();
const id = uniqId();
jQuery('#button').before(`<div style="padding: 8px">
<a id="${id1}" href="#">Отправить</a> /
<a id="${id10}" href="#">x10</a> /
<a id="${id100}" href="#">x100</a> /
<a id="${id1000}" href="#">x1000</a>
<a id="${id}" href="#">Отправить</a> /
</div>`);
const createHandler = (handler: SendResourcesClickHandler, scale: number) => (evt: JQuery.Event) => {
const createHandler = () => (evt: JQuery.Event) => {
evt.preventDefault();
const sendSelect = jQuery('#send_select');
const resources = new Resources(
@ -31,13 +25,10 @@ export function createSendResourcesButton(onClickHandler: SendResourcesClickHand
getNumber(sendSelect.find('#r4').val())
);
const crd = new Coordinates(getNumber(jQuery('#xCoordInput').val()), getNumber(jQuery('#yCoordInput').val()));
onClickHandler(resources, crd, scale);
onClickHandler(resources, crd);
};
jQuery(`#${id1}`).on('click', createHandler(onClickHandler, 1));
jQuery(`#${id10}`).on('click', createHandler(onClickHandler, 10));
jQuery(`#${id100}`).on('click', createHandler(onClickHandler, 100));
jQuery(`#${id1000}`).on('click', createHandler(onClickHandler, 1000));
jQuery(`#${id}`).on('click', createHandler());
}
export function grabMerchantsInfo() {

View File

@ -56,7 +56,7 @@ export class BuildingPageController {
}
if (isMarketSendResourcesPage()) {
createSendResourcesButton((res, crd, scale) => this.onSendResources(res, crd, scale));
createSendResourcesButton((res, crd) => this.onSendResources(res, crd));
}
if (isForgePage()) {
@ -99,7 +99,7 @@ export class BuildingPageController {
notify(`Training ${count} troopers scheduled`);
}
private onSendResources(resources: Resources, coordinates: Coordinates, scale: number) {
private onSendResources(resources: Resources, coordinates: Coordinates) {
const villageId = grabActiveVillageId();
const targetVillage = grabVillageList().find(v => v.crd.eq(coordinates));
this.scheduler.scheduleTask(SendResourcesTask.name, {
@ -108,10 +108,9 @@ export class BuildingPageController {
buildTypeId: this.attributes.buildTypeId,
buildId: this.attributes.buildId,
tabId: this.attributes.tabId,
resources: resources.scale(scale),
coordinates,
});
notify(`Send resources ${JSON.stringify(resources)} from ${villageId} to ${JSON.stringify(coordinates)}`);
notify(`Send resources from ${villageId} to ${JSON.stringify(coordinates)}`);
}
private onResearch(resources: Resources, unitId: number) {