Fix castle alt mechanics.
This commit is contained in:
parent
bdd353f8cf
commit
fb2f8534a8
@ -588,17 +588,13 @@ GAME.Game = class {
|
|||||||
|
|
||||||
let moves = piece.moves();
|
let moves = piece.moves();
|
||||||
|
|
||||||
let extent = true;
|
|
||||||
|
|
||||||
switch(moves.alt) {
|
switch(moves.alt) {
|
||||||
/* Drop Cone */ case 2:
|
// Drop Once
|
||||||
extent = false;
|
case 1: {
|
||||||
/* Drop Once */ case 1:
|
|
||||||
{
|
|
||||||
// Check all tiles if not blocking.
|
// Check all tiles if not blocking.
|
||||||
if(block_directions == 0) {
|
if(block_directions == 0) {
|
||||||
for(let i = 0; i < GAME_DATA.board.tiles.length; ++i) {
|
for(let i = 0; i < GAME_DATA.board.tiles.length; ++i) {
|
||||||
if(this.placable_tile(piece, i, {check:false, extent:extent})) {
|
if(this.placable_tile(piece, i, {check:false})) {
|
||||||
tiles.push(new GAME.MovementTile(i, true, false, 0, 0));
|
tiles.push(new GAME.MovementTile(i, true, false, 0, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -611,19 +607,15 @@ GAME.Game = class {
|
|||||||
let direction_id = BITWISE.ffs(mask);
|
let direction_id = BITWISE.ffs(mask);
|
||||||
let direction = GAME.Const.get_direction(direction_id);
|
let direction = GAME.Const.get_direction(direction_id);
|
||||||
|
|
||||||
let move_hex = hex.copy();
|
let tile_hex = hex.copy();
|
||||||
|
|
||||||
for(let dist = 1; dist <= 9; ++dist) {
|
for(let dist = 1; dist <= 9; ++dist) {
|
||||||
move_hex.add(direction);
|
tile_hex.add(direction);
|
||||||
|
|
||||||
if(HEX.is_valid_board(move_hex)) {
|
if(HEX.is_valid_board(tile_hex)) {
|
||||||
let tile_id = HEX.hex_to_tile(move_hex);
|
let tile_id = HEX.hex_to_tile(tile_hex);
|
||||||
let tile_data = this.board.tiles[tile_id];
|
|
||||||
let target_id = tile_data.piece;
|
|
||||||
|
|
||||||
if(target_id !== null) { break; }
|
if(this.placable_tile(piece, tile_id, {check:false})) {
|
||||||
|
|
||||||
if(this.placable_tile(piece, tile_id, {check:false, extent:extent})) {
|
|
||||||
tiles.push(new GAME.MovementTile(tile_id, true, false, 0, 0));
|
tiles.push(new GAME.MovementTile(tile_id, true, false, 0, 0));
|
||||||
}
|
}
|
||||||
} else { break; }
|
} else { break; }
|
||||||
@ -634,13 +626,14 @@ GAME.Game = class {
|
|||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
|
|
||||||
case 3: {
|
// Cone Drop
|
||||||
|
case 2: {
|
||||||
// Check all tiles if not blocking.
|
// Check all tiles if not blocking.
|
||||||
if(block_directions == 0) {
|
if(block_directions == 0) {
|
||||||
for(let i = 0; i < GAME_DATA.board.tiles.length; ++i) {
|
for(let i = 0; i < GAME_DATA.board.tiles.length; ++i) {
|
||||||
let tile_hex = HEX.tile_to_hex(i);
|
let tile_hex = this.board.tiles[i].hex;
|
||||||
let valid = 0;
|
|
||||||
|
let valid = true;
|
||||||
if(piece.player == 0) {
|
if(piece.player == 0) {
|
||||||
if(tile_hex.x >= hex.x) {
|
if(tile_hex.x >= hex.x) {
|
||||||
valid = tile_hex.y <= hex.y;
|
valid = tile_hex.y <= hex.y;
|
||||||
@ -655,7 +648,7 @@ GAME.Game = class {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(valid && this.placable_tile(piece, i)) {
|
if(valid && this.placable_tile(piece, i, {check:false, extent:false})) {
|
||||||
tiles.push(new GAME.MovementTile(i, true, false, 0, 0));
|
tiles.push(new GAME.MovementTile(i, true, false, 0, 0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -668,18 +661,14 @@ GAME.Game = class {
|
|||||||
let direction_id = BITWISE.ffs(mask);
|
let direction_id = BITWISE.ffs(mask);
|
||||||
let direction = GAME.Const.get_direction(direction_id);
|
let direction = GAME.Const.get_direction(direction_id);
|
||||||
|
|
||||||
let move_hex = hex.copy();
|
let tile_hex = hex.copy();
|
||||||
|
|
||||||
for(let dist = 1; dist <= 9; ++dist) {
|
for(let dist = 1; dist <= 9; ++dist) {
|
||||||
move_hex.add(direction);
|
tile_hex.add(direction);
|
||||||
|
|
||||||
if(HEX.is_valid_board(move_hex)) {
|
if(HEX.is_valid_board(tile_hex)) {
|
||||||
let tile_id = HEX.hex_to_tile(move_hex);
|
let tile_id = HEX.hex_to_tile(tile_hex);
|
||||||
let tile_data = this.board.tiles[tile_id];
|
|
||||||
let target_id = tile_data.piece;
|
|
||||||
|
|
||||||
let tile_hex = HEX.tile_to_hex(i);
|
let valid = true;
|
||||||
let valid = 0;
|
|
||||||
if(piece.player == 0) {
|
if(piece.player == 0) {
|
||||||
if(tile_hex.x >= hex.x) {
|
if(tile_hex.x >= hex.x) {
|
||||||
valid = tile_hex.y <= hex.y;
|
valid = tile_hex.y <= hex.y;
|
||||||
@ -694,9 +683,7 @@ GAME.Game = class {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(target_id !== null) { break; }
|
if(this.placable_tile(piece, tile_id, {check:false, extent:false})) {
|
||||||
|
|
||||||
if(valid && this.placable_tile(piece, tile_id)) {
|
|
||||||
tiles.push(new GAME.MovementTile(tile_id, true, false, 0, 0));
|
tiles.push(new GAME.MovementTile(tile_id, true, false, 0, 0));
|
||||||
}
|
}
|
||||||
} else { break; }
|
} else { break; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user