/src/script/move.ts
import { ScriptInstruction, InstructionStatus, InstructionPromise } from './';
import gs from '../gamestate';
import { Direction, directionToDelta } from '../direction';
export class MoveInstruction implements ScriptInstruction {
direction?: Direction;
newPosition?: [number, number];
constructor(d: Direction | number, e?: number) {
if (typeof e == 'undefined') {
this.direction = d;
} else {
this.newPosition = [d, e];
}
}
execute(): InstructionPromise {
if (typeof this.direction != 'undefined') {
const [dx, dy] = directionToDelta(this.direction);
gs.movePlayerRel(dx, dy);
} else {
gs.movePlayer(this.newPosition[0], this.newPosition[1]);
}
return Promise.resolve({ status: InstructionStatus.OK });
}
}