projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Simplify game variables passed to BaseGame component
[vchess.git]
/
client
/
src
/
components
/
BaseGame.vue
diff --git
a/client/src/components/BaseGame.vue
b/client/src/components/BaseGame.vue
index
2875218
..
1e7a83b
100644
(file)
--- a/
client/src/components/BaseGame.vue
+++ b/
client/src/components/BaseGame.vue
@@
-38,13
+38,15
@@
export default {
//MoveList,
},
// "vr": VariantRules object, describing the game state + rules
//MoveList,
},
// "vr": VariantRules object, describing the game state + rules
- props: ["vname","analyze","vr","fenStart","players","mycolor"],
+ // fenStart, players, mycolor
+ props: ["vname","analyze","vr","gameInfo"],
data: function() {
return {
st: store.state,
// NOTE: all following variables must be reset at the beginning of a game
endgameMessage: "",
orientation: "w",
data: function() {
return {
st: store.state,
// NOTE: all following variables must be reset at the beginning of a game
endgameMessage: "",
orientation: "w",
+ // TODO: score and moves could be also in gameInfo (when resuming)
score: "*", //'*' means 'unfinished'
moves: [],
cursor: -1, //index of the move just played
score: "*", //'*' means 'unfinished'
moves: [],
cursor: -1, //index of the move just played
@@
-56,12
+58,19
@@
export default {
fenStart: function() {
// Reset all variables
this.endgameMessage = "";
fenStart: function() {
// Reset all variables
this.endgameMessage = "";
- this.orientation = this.
mycolor
;
+ this.orientation = this.
gameInfo.mycolor || "w"
;
this.score = "*";
this.moves = [];
this.cursor = -1;
this.lastMove = null;
},
this.score = "*";
this.moves = [];
this.cursor = -1;
this.lastMove = null;
},
+ analyze: function() {
+ if (this.analyze)
+ {
+ // Switched to analyze mode: game is over
+ this.endGame("*");
+ }
+ },
},
computed: {
showMoves: function() {
},
computed: {
showMoves: function() {
@@
-105,8
+114,8
@@
export default {
pgn += '[Site "vchess.club"]\n';
pgn += '[Variant "' + this.vname + '"]\n';
pgn += '[Date "' + getDate(new Date()) + '"]\n';
pgn += '[Site "vchess.club"]\n';
pgn += '[Variant "' + this.vname + '"]\n';
pgn += '[Date "' + getDate(new Date()) + '"]\n';
- pgn += '[White "' + this.players[0] + '"]\n';
- pgn += '[Black "' + this.players[1] + '"]\n';
+ pgn += '[White "' + this.
game.
players[0] + '"]\n';
+ pgn += '[Black "' + this.
game.
players[1] + '"]\n';
pgn += '[Fen "' + this.fenStart + '"]\n';
pgn += '[Result "' + this.score + '"]\n\n';
let counter = 1;
pgn += '[Fen "' + this.fenStart + '"]\n';
pgn += '[Result "' + this.score + '"]\n\n';
let counter = 1;
@@
-127,7
+136,7
@@
export default {
},
showScoreMsg: function(score) {
this.setEndgameMessage(score);
},
showScoreMsg: function(score) {
this.setEndgameMessage(score);
- let modalBox = document.getElementById("modal
-e
og");
+ let modalBox = document.getElementById("modal
E
og");
modalBox.checked = true;
setTimeout(() => { modalBox.checked = false; }, 2000);
},
modalBox.checked = true;
setTimeout(() => { modalBox.checked = false; }, 2000);
},
@@
-215,7
+224,8
@@
export default {
else //just show score on screen (allow undo)
this.showScoreMsg(score);
}
else //just show score on screen (allow undo)
this.showScoreMsg(score);
}
- this.$emit("newmove", move); //post-processing (e.g. computer play)
+ if (!this.analyze)
+ this.$emit("newmove", move); //post-processing (e.g. computer play)
},
undo: function(move) {
let navigate = !move;
},
undo: function(move) {
let navigate = !move;
@@
-231,7
+241,7
@@
export default {
if (this.st.settings.sound == 2)
new Audio("/sounds/undo.mp3").play().catch(err => {});
this.incheck = this.vr.getCheckSquares(this.vr.turn);
if (this.st.settings.sound == 2)
new Audio("/sounds/undo.mp3").play().catch(err => {});
this.incheck = this.vr.getCheckSquares(this.vr.turn);
- if (
this.analyze) //TODO: can this happen?
+ if (
!navigate)
this.moves.pop();
},
gotoMove: function(index) {
this.moves.pop();
},
gotoMove: function(index) {