Update play hints.

This commit is contained in:
yukirij 2024-12-18 14:17:27 -08:00
parent 8f70b29801
commit fa379cd5a9

View File

@ -35,13 +35,15 @@ const INTERFACE = {
HintHover: "#71a1e8", HintHover: "#71a1e8",
HintSelect: "#4a148c", HintSelect: "#4a148c",
HintValid: "#1d268c", HintValid: "#1d268c",
HintValidLight: "#6ca6fc",
HintValidDark: "#151c66", HintValidDark: "#151c66",
HintThreat: "#054719", HintThreat: "#054719",
HintThreatDark: "#023311", HintThreatDark: "#023311",
HintOpponent: "#49136b", HintOpponent: "#49136b",
HintOpponentDark: "#2a0b3f", HintOpponentDark: "#2a0b3f",
HintInvalid: "#b21818", HintInvalid: "#660d0d",
HintInvalidDark: "#7f1111", HintInvalidLight: "#fc6c6c",
HintInvalidDark: "#4c0909",
HintPlay: "#307c7f", HintPlay: "#307c7f",
HintCheck: "#C62828", HintCheck: "#C62828",
}, },
@ -349,6 +351,10 @@ const INTERFACE = {
} }
INTERFACE.game_step(); INTERFACE.game_step();
if(!event.ctrlKey) {
event.preventDefault();
}
}, },
click_touch(event) { click_touch(event) {
@ -570,6 +576,9 @@ const INTERFACE = {
let tile_state = INTERFACE_DATA.Game.board_state[i][1]; let tile_state = INTERFACE_DATA.Game.board_state[i][1];
let hover_state = INTERFACE_DATA.Game.board_state[i][0]; 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; let draw_piece = true;
if(INTERFACE_DATA.Animation.piece !== null) { if(INTERFACE_DATA.Animation.piece !== null) {
let play = INTERFACE_DATA.Animation.piece.play; let play = INTERFACE_DATA.Animation.piece.play;
@ -577,6 +586,8 @@ const INTERFACE = {
draw_piece = draw_piece && !(play.source == 1 && play.to == i); 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); let coord = HEX.tile_to_hex(i);
if((INTERFACE_DATA.player & 1) ^ INTERFACE_DATA.rotate == 1) { if((INTERFACE_DATA.player & 1) ^ INTERFACE_DATA.rotate == 1) {
coord.x = 8 - coord.x; coord.x = 8 - coord.x;
@ -589,9 +600,6 @@ const INTERFACE = {
ctx.save(); ctx.save();
ctx.translate(gui_x, gui_y); ctx.translate(gui_x, gui_y);
let piece = null;
if(tile.piece !== null) { piece = GAME_DATA.board.pieces[tile.piece]; }
let is_play = null; let is_play = null;
if(GAME_DATA.turn > 0 && play.source != 0xF && (play.to == i || ((play.source == 0 || play.source == 2) && play.from == i))) { 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; 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) { if(border_color === null) {
border_color = INTERFACE.Color.TileBorder; border_color = INTERFACE.Color.TileBorder;
} }
@ -671,7 +691,7 @@ const INTERFACE = {
ctx.fill(); ctx.fill();
// Draw border hints // Draw border hints
if(!is_hover && draw_piece && piece !== null) { draw.hints(piece); } if(show_hints) { draw.hints(piece); }
// Draw background // Draw background
if(background_scale < 0.94) { if(background_scale < 0.94) {
@ -1319,6 +1339,7 @@ const INTERFACE = {
canvas.addEventListener("mouseup", INTERFACE.release); canvas.addEventListener("mouseup", INTERFACE.release);
canvas.addEventListener("touchend", INTERFACE.release_touch); canvas.addEventListener("touchend", INTERFACE.release_touch);
canvas.addEventListener("contextmenu", INTERFACE.contextmenu); canvas.addEventListener("contextmenu", INTERFACE.contextmenu);
canvas.addEventListener("selectstart", () => false);
window.addEventListener("resize", INTERFACE.step); window.addEventListener("resize", INTERFACE.step);
switch(INTERFACE_DATA.mode) { switch(INTERFACE_DATA.mode) {