projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Draft 2 new variants. Still 4 to add in this series
[vchess.git]
/
client
/
src
/
components
/
BaseGame.vue
diff --git
a/client/src/components/BaseGame.vue
b/client/src/components/BaseGame.vue
index
07d62cf
..
3573643
100644
(file)
--- a/
client/src/components/BaseGame.vue
+++ b/
client/src/components/BaseGame.vue
@@
-45,7
+45,7
@@
div#baseGame(
#controls
button(@click="gotoBegin()") <<
button(@click="undo()") <
#controls
button(@click="gotoBegin()") <<
button(@click="undo()") <
- button(@click="flip()") ⇅
+ button(
v-if="canFlip"
@click="flip()") ⇅
button(@click="play()") >
button(@click="gotoEnd()") >>
#belowControls
button(@click="play()") >
button(@click="gotoEnd()") >>
#belowControls
@@
-66,7
+66,8
@@
div#baseGame(
| {{ st.tr["Rules"] }}
#movesList
MoveList(
| {{ st.tr["Rules"] }}
#movesList
MoveList(
- v-if="showMoves"
+ v-if="showMoves != 'none'"
+ :show="showMoves"
:score="game.score"
:message="game.scoreMsg"
:firstNum="firstMoveNumber"
:score="game.score"
:message="game.scoreMsg"
:firstNum="firstMoveNumber"
@@
-112,30
+113,38
@@
export default {
"game.fenStart": function() {
this.re_setVariables();
},
"game.fenStart": function() {
this.re_setVariables();
},
- // Received a new move to play:
- "game.moveToPlay": function(move) {
- if (move) this.play(move, "receive");
- },
- // ...Or to undo (corr game, move not validated)
- "game.moveToUndo": function(move) {
- if (move) this.undo(move);
- }
},
computed: {
showMoves: function() {
},
computed: {
showMoves: function() {
- return this.game.score != "*" || (window.V && V.ShowMoves == "all");
+ return this.game.score != "*"
+ ? "all"
+ : (this.vr ? this.vr.showMoves : "none");
},
showTurn: function() {
},
showTurn: function() {
- return this.game.score == '*' && window.V && V.ShowMoves != "all";
+ return (
+ this.game.score == '*' &&
+ this.vr &&
+ (this.vr.showMoves != "all" || !this.vr.canFlip)
+ );
},
turn: function() {
},
turn: function() {
- return this.st.tr[(this.vr.turn == 'w' ? "White" : "Black") + " to move"];
+ if (!this.vr)
+ return "";
+ if (this.vr.showMoves != "all")
+ return this.st.tr[(this.vr.turn == 'w' ? "White" : "Black") + " to move"]
+ // Cannot flip: racing king or circular chess
+ return this.vr.movesCount == 0 && this.game.mycolor == "w"
+ ? this.st.tr["It's your turn!"]
+ : "";
},
canAnalyze: function() {
},
canAnalyze: function() {
- return this.game.mode != "analyze" && window.V && V.CanAnalyze;
+ return this.game.mode != "analyze" && this.vr && this.vr.canAnalyze;
+ },
+ canFlip: function() {
+ return this.vr && this.vr.canFlip;
},
allowDownloadPGN: function() {
},
allowDownloadPGN: function() {
- return this.game.score != "*" || (
window.V && V.S
howMoves == "all");
+ return this.game.score != "*" || (
this.vr && this.vr.s
howMoves == "all");
}
},
created: function() {
}
},
created: function() {
@@
-225,26
+234,21
@@
export default {
},
re_setVariables: function() {
this.endgameMessage = "";
},
re_setVariables: function() {
this.endgameMessage = "";
- this.orientation = this.game.mycolor || "w"; //default orientation for observed games
+ // "w": default orientation for observed games
+ this.orientation = this.game.mycolor || "w";
this.moves = JSON.parse(JSON.stringify(this.game.moves || []));
this.moves = JSON.parse(JSON.stringify(this.game.moves || []));
- // Post-processing: decorate each move with color + current FEN:
- // (to be able to jump to any position quickly)
- let vr_tmp = new V(this.game.fenStart); //vr is already at end of game
- this.firstMoveNumber = Math.floor(
- V.ParseFen(this.game.fenStart).movesCount / 2
- );
+ // Post-processing: decorate each move with color, notation and FEN
+ let vr_tmp = new V(this.game.fenStart);
+ const parsedFen = V.ParseFen(this.game.fenStart);
+ const firstMoveColor = parsedFen.turn;
+ this.firstMoveNumber = Math.floor(parsedFen.movesCount / 2);
this.moves.forEach(move => {
this.moves.forEach(move => {
- // NOTE: this is doing manually what play() function below achieve,
- // but in a lighter "fast-forward" way
move.color = vr_tmp.turn;
move.notation = vr_tmp.getNotation(move);
vr_tmp.play(move);
move.fen = vr_tmp.getFen();
});
move.color = vr_tmp.turn;
move.notation = vr_tmp.getNotation(move);
vr_tmp.play(move);
move.fen = vr_tmp.getFen();
});
- if (
- (this.moves.length > 0 && this.moves[0].color == "b") ||
- (this.moves.length == 0 && vr_tmp.turn == "b")
- ) {
+ if (firstMoveColor == "b") {
// 'end' is required for Board component to check lastMove for e.p.
this.moves.unshift({
color: "w",
// 'end' is required for Board component to check lastMove for e.p.
this.moves.unshift({
color: "w",
@@
-406,6
+410,7
@@
export default {
this.vr.re_init(this.moves[index].fen);
this.cursor = index;
this.lastMove = this.moves[index];
this.vr.re_init(this.moves[index].fen);
this.cursor = index;
this.lastMove = this.moves[index];
+ this.incheck = this.vr.getCheckSquares(this.vr.turn);
},
gotoBegin: function() {
if (this.cursor == -1) return;
},
gotoBegin: function() {
if (this.cursor == -1) return;
@@
-417,6
+422,7
@@
export default {
this.cursor = -1;
this.lastMove = null;
}
this.cursor = -1;
this.lastMove = null;
}
+ this.incheck = this.vr.getCheckSquares(this.vr.turn);
},
gotoEnd: function() {
if (this.cursor == this.moves.length - 1) return;
},
gotoEnd: function() {
if (this.cursor == this.moves.length - 1) return;
@@
-450,6
+456,7
@@
export default {
#controls
margin: 0 auto
#controls
margin: 0 auto
+ text-align: center
button
display: inline-block
width: 20%
button
display: inline-block
width: 20%