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