From 06c054f9f673729d934de4ebbb6a722d530ea617 Mon Sep 17 00:00:00 2001 From: cha0s Date: Tue, 9 Apr 2019 10:22:41 -0400 Subject: [PATCH] feat moveFor, for testing --- packages/entity/traits/mobile.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/entity/traits/mobile.js b/packages/entity/traits/mobile.js index f484881..b0565ed 100644 --- a/packages/entity/traits/mobile.js +++ b/packages/entity/traits/mobile.js @@ -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];