UNPKG

phaser4-rex-plugins

Version:
64 lines (57 loc) 1.98 kB
import GetValue from '../../../utils/object/GetValue.js'; var MoveToTile = function (tileX, tileY, direction) { var miniBoard = this.parent; var mainBoard = miniBoard.mainBoard; // Not on a mainBoard if (mainBoard == null) { this.lastMoveResult = false; return this; } if ((tileX != null) && (typeof (tileX) !== 'number')) { var config = tileX; tileX = GetValue(config, 'x', undefined); tileY = GetValue(config, 'y', undefined); direction = GetValue(config, 'direction', undefined); } myTileXY.x = miniBoard.tileX; myTileXY.y = miniBoard.tileY; if ((direction !== undefined) && (tileX == null) || (tileY == null)) { // Get neighbor tile position if direction is not undefined var out = mainBoard.getNeighborTileXY(myTileXY, direction, true); if (out !== null) { tileX = out.x; tileY = out.y; } else { tileX = null; tileY = null; } } // invalid tile position if ((tileX == null) || (tileY == null)) { this.lastMoveResult = false; return this; } if (direction === undefined) { targetTileXY.x = tileX; targetTileXY.y = tileY; direction = board.getNeighborTileDirection(myTileXY, targetTileXY); } if (!this.canMoveTo(tileX, tileY, direction)) { this.lastMoveResult = false; return this; } this.destinationTileX = tileX; this.destinationTileY = tileY; this.destinationDirection = direction; // Not support wrap mode var out = mainBoard.tileXYToWorldXY(tileX, tileY, true); this.moveToTask.moveTo(out.x, out.y); miniBoard.putOnMainBoard(mainBoard, tileX, tileY, false); this.isRunning = true; this.lastMoveResult = true; return this; } var myTileXY = {}; var targetTileXY = {}; export default MoveToTile;