From fa379cd5a95a53ede25d318a06e9e458051ee1bf Mon Sep 17 00:00:00 2001 From: yukirij Date: Wed, 18 Dec 2024 14:17:27 -0800 Subject: [PATCH] Update play hints. --- www/js/interface.js | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/www/js/interface.js b/www/js/interface.js index 66e4729..d17ff29 100644 --- a/www/js/interface.js +++ b/www/js/interface.js @@ -35,13 +35,15 @@ const INTERFACE = { HintHover: "#71a1e8", HintSelect: "#4a148c", HintValid: "#1d268c", + HintValidLight: "#6ca6fc", HintValidDark: "#151c66", HintThreat: "#054719", HintThreatDark: "#023311", HintOpponent: "#49136b", HintOpponentDark: "#2a0b3f", - HintInvalid: "#b21818", - HintInvalidDark: "#7f1111", + HintInvalid: "#660d0d", + HintInvalidLight: "#fc6c6c", + HintInvalidDark: "#4c0909", HintPlay: "#307c7f", HintCheck: "#C62828", }, @@ -349,6 +351,10 @@ const INTERFACE = { } INTERFACE.game_step(); + + if(!event.ctrlKey) { + event.preventDefault(); + } }, click_touch(event) { @@ -570,6 +576,9 @@ const INTERFACE = { let tile_state = INTERFACE_DATA.Game.board_state[i][1]; let hover_state = INTERFACE_DATA.Game.board_state[i][0]; + let piece = null; + if(tile.piece !== null) { piece = GAME_DATA.board.pieces[tile.piece]; } + let draw_piece = true; if(INTERFACE_DATA.Animation.piece !== null) { let play = INTERFACE_DATA.Animation.piece.play; @@ -577,6 +586,8 @@ const INTERFACE = { draw_piece = draw_piece && !(play.source == 1 && play.to == i); } + let show_hints = !(is_hover || is_select) && piece !== null && draw_piece; + let coord = HEX.tile_to_hex(i); if((INTERFACE_DATA.player & 1) ^ INTERFACE_DATA.rotate == 1) { coord.x = 8 - coord.x; @@ -589,9 +600,6 @@ const INTERFACE = { ctx.save(); ctx.translate(gui_x, gui_y); - let piece = null; - if(tile.piece !== null) { piece = GAME_DATA.board.pieces[tile.piece]; } - let is_play = null; if(GAME_DATA.turn > 0 && play.source != 0xF && (play.to == i || ((play.source == 0 || play.source == 2) && play.from == i))) { let piece_id = GAME_DATA.board.tiles[play.to].piece; @@ -660,6 +668,18 @@ const INTERFACE = { } } } + if(!is_hover) { + switch(background_color) { + case INTERFACE.Color.HintValid: { + border_color = INTERFACE.Color.HintValidLight; + show_hints = false; + } break; + case INTERFACE.Color.HintInvalid: { + border_color = INTERFACE.Color.HintInvalidLight; + show_hints = false; + } break; + } + } if(border_color === null) { border_color = INTERFACE.Color.TileBorder; } @@ -671,7 +691,7 @@ const INTERFACE = { ctx.fill(); // Draw border hints - if(!is_hover && draw_piece && piece !== null) { draw.hints(piece); } + if(show_hints) { draw.hints(piece); } // Draw background if(background_scale < 0.94) { @@ -1319,6 +1339,7 @@ const INTERFACE = { canvas.addEventListener("mouseup", INTERFACE.release); canvas.addEventListener("touchend", INTERFACE.release_touch); canvas.addEventListener("contextmenu", INTERFACE.contextmenu); + canvas.addEventListener("selectstart", () => false); window.addEventListener("resize", INTERFACE.step); switch(INTERFACE_DATA.mode) {