feat moveFor, for testing

This commit is contained in:
cha0s 2019-04-09 10:22:41 -04:00
parent 7c72956ef8
commit 06c054f9f6

View File

@ -1,4 +1,4 @@
import {compose} from '@avocado/core';
import {compose, TickingPromise} from '@avocado/core';
import {Vector} from '@avocado/math';
import {StateProperty, Trait} from '../trait';
@ -24,6 +24,20 @@ class MobileBase extends Trait {
methods() {
return {
moveFor: (duration) => {
const direction = Math.floor(Math.random() * 4);
let resolve;
const promise = new TickingPromise(_resolve => resolve = _resolve);
promise.ticker = (elapsed) => {
duration -= elapsed;
if (duration <= 0) {
return resolve();
}
this.entity.requestMovement(Vector.fromDirection(direction));
}
return promise;
},
applyMovement: (movement) => {
this.entity.x += movement[0];
this.entity.y += movement[1];