From fb2f8534a88d67d288ae065dae078a7a80f1fc08 Mon Sep 17 00:00:00 2001 From: yukirij Date: Thu, 3 Oct 2024 13:31:41 -0700 Subject: [PATCH] Fix castle alt mechanics. --- www/js/game.js | 53 +++++++++++++++++++------------------------------- 1 file changed, 20 insertions(+), 33 deletions(-) diff --git a/www/js/game.js b/www/js/game.js index 16cd51c..898aeeb 100644 --- a/www/js/game.js +++ b/www/js/game.js @@ -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; }