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

View File

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