From 8377731fd67dbbf4641bc13415fc1477754f75c8 Mon Sep 17 00:00:00 2001 From: yukirij Date: Wed, 18 Dec 2024 22:58:31 -0800 Subject: [PATCH] Add new check and checkmate guides. --- www/js/game.js | 2 +- www/js/game_config_const.js | 39 ++++++++++++++++++++++++++++++++++++- www/js/interface.js | 2 +- www/js/scene.js | 20 ++++++++++++++++++- 4 files changed, 59 insertions(+), 4 deletions(-) diff --git a/www/js/game.js b/www/js/game.js index 54d0328..12da10b 100644 --- a/www/js/game.js +++ b/www/js/game.js @@ -218,7 +218,7 @@ GAME.Game = class { this.state = { code:0, - check:false, + check:false, //[false, false], }; this.update_board(); diff --git a/www/js/game_config_const.js b/www/js/game_config_const.js index 3ac26b0..220ffca 100644 --- a/www/js/game_config_const.js +++ b/www/js/game_config_const.js @@ -336,12 +336,49 @@ const GAME_CONFIGS = { .add_piece(5, 0, false, new MATH.Vec2(5, 4)) .add_piece(0, 1, false, new MATH.Vec2(4, 4)) .add_piece(2, 1, false, new MATH.Vec2(5, 6)) + + ), + Guide_Check2: new GameConfig() + .set_pieces(CONFIG_PIECES_STANDARD) + .set_pool(CONFIG_POOL_DEMO) + .set_layout( + new GameConfig.Layout() + .add_piece(7, 0, false, new MATH.Vec2(4, 0)) + .add_piece(3, 0, false, new MATH.Vec2(3, 0)) + .add_piece(3, 0, false, new MATH.Vec2(5, 1)) + .add_piece(1, 1, false, new MATH.Vec2(4, 4)) + .add_piece(6, 1, true, new MATH.Vec2(7, 3)) + .add_piece(1, 1, true, new MATH.Vec2(2, 0)) + ), + Guide_Check3: new GameConfig() + .set_pieces(CONFIG_PIECES_STANDARD) + .set_pool(CONFIG_POOL_DEMO) + .set_layout( + new GameConfig.Layout() + .add_piece(7, 0, false, new MATH.Vec2(4, 2)) + .add_piece(4, 0, false, new MATH.Vec2(6, 3)) + .add_piece(3, 1, false, new MATH.Vec2(2, 2)) + .add_piece(5, 1, false, new MATH.Vec2(1, 4)) + .add_piece(1, 1, false, new MATH.Vec2(5, 5)) + .add_piece(6, 1, true, new MATH.Vec2(4, 4)) ), // Checkmate Guide_Checkmate: new GameConfig() .set_pieces(CONFIG_PIECES_STANDARD) .set_pool(new Uint8Array([4, 1, 0, 2, 0, 0, 1, 9, 1, 0, 0, 2, 0, 0])) + .set_layout( + new GameConfig.Layout() + .add_piece(7, 1, false, new MATH.Vec2(0, 4)) + .add_piece(2, 1, false, new MATH.Vec2(1, 5)) + .add_piece(5, 0, true, new MATH.Vec2(1, 3)) + ) + .set_rule("reverse", true), + + // Trials + Guide_Trial1: new GameConfig() + .set_pieces(CONFIG_PIECES_STANDARD) + .set_pool(new Uint8Array([4, 1, 0, 2, 0, 0, 1, 9, 1, 0, 0, 2, 0, 0])) .set_layout( new GameConfig.Layout() .add_piece(5, 0, false, new MATH.Vec2(4, 6)) @@ -364,5 +401,5 @@ const GAME_CONFIGS = { .add_piece(2, 0, false, new MATH.Vec2(6, 5)) .add_piece(0, 1, false, new MATH.Vec2(1, 4)) .add_piece(2, 0, true, new MATH.Vec2(0, 3)) - ) + ), }; diff --git a/www/js/interface.js b/www/js/interface.js index 3b15f96..e9ea12a 100644 --- a/www/js/interface.js +++ b/www/js/interface.js @@ -611,7 +611,7 @@ const INTERFACE = { let is_check = (GAME_DATA.state.check != 0 || GAME_DATA.state.code == GAME.Const.State.Checkmate) && piece !== null && piece.piece == GAME.Const.PieceId.Heart - && piece.player == ((GAME_DATA.turn + GAME_DATA.config.rules.reverse) & 1); + && tile.checking; let background_color = null; let border_color = null; diff --git a/www/js/scene.js b/www/js/scene.js index 4bbcdfd..233d110 100644 --- a/www/js/scene.js +++ b/www/js/scene.js @@ -668,7 +668,25 @@ const SCENES = { ], []); } else { UI.mainmenu_guide("guide_" + data, true); - UI.mainnav([], []); + + switch(data) { + case "check": { + UI.mainnav([ + UI.button("1", () => { INTERFACE.load(GAME_CONFIGS.Guide_Check); }), + UI.button("2", () => { INTERFACE.load(GAME_CONFIGS.Guide_Check2); }), + UI.button("3", () => { INTERFACE.load(GAME_CONFIGS.Guide_Check3); }), + ], []); + } break; + case "checkmate": { + UI.mainnav([ + UI.button("Ex", () => { INTERFACE.load(GAME_CONFIGS.Guide_Checkmate); }), + UI.button("1", () => { INTERFACE.load(GAME_CONFIGS.Guide_Trial1); }), + ], []); + } break; + default: { + UI.mainnav([], []); + } + } switch(data) { case "drop": config = GAME_CONFIGS.Guide_Drop; break;