From 354868446e686929fe6fb9f8b546276fa979bd49 Mon Sep 17 00:00:00 2001 From: yukirij Date: Sat, 17 Aug 2024 15:25:24 -0700 Subject: [PATCH] Fix pool selection for dusk player. --- www/js/interface.js | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/www/js/interface.js b/www/js/interface.js index abd268f..483619c 100644 --- a/www/js/interface.js +++ b/www/js/interface.js @@ -67,7 +67,8 @@ const INTERFACE = { } } else { player = Math.floor(selection.tile / 7); - player ^= (INTERFACE_DATA.player & 1) ^ INTERFACE_DATA.rotate; + player ^= INTERFACE_DATA.player & 1; + if(INTERFACE_DATA.player == 2) { player ^= INTERFACE_DATA.rotate; } movements = GAME_DATA.placement_tiles(selection.tile % 7, player); } @@ -188,7 +189,10 @@ const INTERFACE = { is_valid = (tile_state == INTERFACE.TileStatus.Valid || tile_state == INTERFACE.TileStatus.Threat); } + // Handle player action. if(is_valid) { + + // Send message to server for online game. if(INTERFACE_DATA.online) { let move_data = INTERFACE_DATA.select.source | (INTERFACE_DATA.select.tile << 1) | (INTERFACE_DATA.hover.tile << 7); MESSAGE_COMPOSE([ @@ -197,7 +201,10 @@ const INTERFACE = { PACK.u16(GAME_DATA.turn), PACK.u16(move_data), ]); - } else { + } + + // Apply action and change turn for offline game. + else { let play = new GAME.Play(INTERFACE_DATA.select.source, INTERFACE_DATA.select.tile, INTERFACE_DATA.hover.tile); INTERFACE_DATA.play = play; GAME_DATA.process(play); @@ -208,15 +215,24 @@ const INTERFACE = { INTERFACE.draw(); } INTERFACE_DATA.select = null; - } else { + } + + // Handle new selection. + else { INTERFACE_DATA.select = null; + + // Select tile on board. if(INTERFACE_DATA.hover.source == 0) { if(GAME_DATA.board.tiles[INTERFACE_DATA.hover.tile].piece !== null) { INTERFACE_DATA.select = INTERFACE_DATA.hover; } - } else { + } + + // Select tile in pools. + else { let pool_player = Math.floor(INTERFACE_DATA.hover.tile / 7); - pool_player ^= (INTERFACE_DATA.player & 1) ^ INTERFACE_DATA.rotate; + pool_player ^= INTERFACE_DATA.player & 1; + if(INTERFACE_DATA.player == 2) { pool_player ^= INTERFACE_DATA.rotate; } let pool_piece = INTERFACE_DATA.hover.tile % 7;