Add fast resource transfer management
This commit is contained in:
		@@ -4,7 +4,6 @@ import { Resources } from '../Core/Resources';
 | 
			
		||||
import { Coordinates, Village } from '../Core/Village';
 | 
			
		||||
import { grabVillageResources } from '../Page/ResourcesBlock';
 | 
			
		||||
import { grabActiveVillageId, grabVillageList } from '../Page/VillageBlock';
 | 
			
		||||
import { SendResourcesTask } from '../Task/SendResourcesTask';
 | 
			
		||||
import { aroundMinutes, timestamp } from '../utils';
 | 
			
		||||
import { VillageStorage } from '../Storage/VillageStorage';
 | 
			
		||||
import { Args } from '../Queue/Args';
 | 
			
		||||
@@ -16,34 +15,18 @@ const TIMEOUT = 15;
 | 
			
		||||
@registerAction
 | 
			
		||||
export class SendResourcesAction extends ActionController {
 | 
			
		||||
    async run(args: Args, task: Task): Promise<any> {
 | 
			
		||||
        const resources = Resources.fromObject(args.resources || err('No resources'));
 | 
			
		||||
        const coordinates = Coordinates.fromObject(args.coordinates || err('No coordinates'));
 | 
			
		||||
 | 
			
		||||
        console.log('Send', resources, 'to', coordinates);
 | 
			
		||||
 | 
			
		||||
        const recipientVillage = args.targetVillageId
 | 
			
		||||
            ? this.findRecipientVillageById(args.targetVillageId)
 | 
			
		||||
            : this.findRecipientVillage(coordinates);
 | 
			
		||||
 | 
			
		||||
        const readyToTransfer = this.getResourcesForTransfer(recipientVillage.id).min(resources);
 | 
			
		||||
        const readyToTransfer = this.getResourcesForTransfer(recipientVillage.id);
 | 
			
		||||
 | 
			
		||||
        const remainingResources = resources.sub(readyToTransfer).max(Resources.zero());
 | 
			
		||||
 | 
			
		||||
        console.log('Total res', resources);
 | 
			
		||||
        console.log('To transfer res', readyToTransfer);
 | 
			
		||||
        console.log('Remaining res', remainingResources);
 | 
			
		||||
 | 
			
		||||
        if (!remainingResources.empty()) {
 | 
			
		||||
            console.log('Schedule next', remainingResources);
 | 
			
		||||
            this.scheduler.scheduleTask(
 | 
			
		||||
                SendResourcesTask.name,
 | 
			
		||||
                {
 | 
			
		||||
                    ...args,
 | 
			
		||||
                    resources: remainingResources,
 | 
			
		||||
                },
 | 
			
		||||
                timestamp() + aroundMinutes(TIMEOUT)
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
        // Schedule recurrent task
 | 
			
		||||
        this.scheduler.scheduleTask(task.name, task.args, timestamp() + aroundMinutes(TIMEOUT));
 | 
			
		||||
 | 
			
		||||
        fillSendResourcesForm(readyToTransfer, coordinates);
 | 
			
		||||
        clickSendButton();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user