Change practice player to 2.

This commit is contained in:
yukirij 2024-09-05 09:15:34 -07:00
parent b3a1ef8dd7
commit d78722ca51
2 changed files with 52 additions and 36 deletions

View File

@ -216,7 +216,7 @@ const INTERFACE = {
if(INTERFACE_DATA.select !== null) {
// Play selection.
if(INTERFACE_DATA.hover.source == 0 && INTERFACE_DATA.player == (GAME_DATA.turn & 1)) {
if(INTERFACE_DATA.hover.source == 0 && (INTERFACE_DATA.mode == INTERFACE.Mode.Local || INTERFACE_DATA.player == (GAME_DATA.turn & 1))) {
let tile_state = INTERFACE_DATA.board_state[INTERFACE_DATA.hover.tile][1];
result = +(tile_state == INTERFACE.TileStatus.Valid || tile_state == INTERFACE.TileStatus.Threat);
}
@ -477,8 +477,6 @@ const INTERFACE = {
ctx.font = Math.ceil(gui_scale / 2) + "px sans-serif";
let player_identity = GAME.Const.Player.Dawn;
let player_color = INTERFACE.Color.Dawn;
let opponent_color = INTERFACE.Color.Dusk;
if(INTERFACE_DATA.player == 1 || (INTERFACE_DATA.player == 2 && INTERFACE_DATA.rotate == 1)) {
player_identity = GAME.Const.Player.Dusk;
@ -929,9 +927,7 @@ const INTERFACE = {
GAME.init();
let player = 2;
if(mode == INTERFACE.Mode.Local) { player = 0; }
let history = [ ];
let dawn = null;
let dusk = null;
@ -955,7 +951,7 @@ const INTERFACE = {
resign:false,
resign_warn:false,
history: history,
history: [ ],
history_begin: [ ],
replay_turn: 0,
@ -1015,12 +1011,15 @@ const INTERFACE = {
},
reset() {
GAME.init();
INTERFACE_DATA.history = INTERFACE_DATA.history_begin;
INTERFACE_DATA.player = 0;
INTERFACE_DATA.rotate = 0;
INTERFACE_DATA.auto_mode = null;
INTERFACE.draw();
GAME.init();
INTERFACE_DATA.history = [ ];
for(let i = 0; i < INTERFACE_DATA.history_begin.length; ++i) {
INTERFACE_DATA.history.push(INTERFACE_DATA.history_begin[i]);
}
INTERFACE.replay_jump(INTERFACE_DATA.history.length, false);
},
message(code, data) {
@ -1078,15 +1077,32 @@ const INTERFACE = {
},
process(play) {
let valid = true;
switch(play.source) {
case 0: {
let piece_id = GAME_DATA.board.tiles[play.from].piece;
let piece = GAME_DATA.board.pieces[piece_id];
valid = piece.player == (GAME_DATA.turn & 1);
} break;
case 1: {
let player = play.from / 7;
valid = player == (GAME_DATA.turn & 1);
} break;
case 2: {
valid = INTERFACE_DATA.mode == INTERFACE.Mode.Player;
} break;
}
if(valid) {
// Send message to server for online game.
switch(INTERFACE_DATA.mode) {
// Apply action and change turn for local game.
case INTERFACE.Mode.Local: {
INTERFACE.history_push(play, true);
INTERFACE_DATA.player = +(!INTERFACE_DATA.player);
INTERFACE_DATA.rotate = +(!INTERFACE_DATA.rotate);
INTERFACE.draw();
if(INTERFACE_DATA.auto_mode !== null && INTERFACE_DATA.auto_mode == (GAME_DATA.turn & 1)) {
@ -1105,6 +1121,7 @@ const INTERFACE = {
]);
} break;
}
}
},
rotate() {
@ -1162,7 +1179,7 @@ const INTERFACE = {
turn = +turn;
if(turn >= 0 && turn <= INTERFACE_DATA.history.length) {
if(turn < INTERFACE_DATA.replay_turn) {
if(turn <= INTERFACE_DATA.replay_turn) {
INTERFACE_DATA.replay_turn = 0;
GAME.init();
}

View File

@ -658,10 +658,9 @@ const SCENES = {
INTERFACE.init(null, INTERFACE.Mode.Local);
if(data !== null) {
for(let i = 0; i < data.turn; ++i) {
INTERFACE.process(data.history[i]);
INTERFACE_DATA.history_begin.push(data.history[i]);
}
INTERFACE.draw();
INTERFACE.reset();
}
history.pushState(null, "Dzura - Practice", "/practice/");