projects
/
vchess.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
0c3fe8a
)
'update'
author
Benjamin Auder
<benjamin.auder@somewhere>
Mon, 3 Feb 2020 04:09:31 +0000
(
05:09
+0100)
committer
Benjamin Auder
<benjamin.auder@somewhere>
Mon, 3 Feb 2020 04:09:31 +0000
(
05:09
+0100)
client/src/base_rules.js
patch
|
blob
|
blame
|
history
client/src/components/BaseGame.vue
patch
|
blob
|
blame
|
history
client/src/components/ComputerGame.vue
patch
|
blob
|
blame
|
history
client/src/views/Analyze.vue
patch
|
blob
|
blame
|
history
client/src/views/Game.vue
patch
|
blob
|
blame
|
history
client/src/views/Rules.vue
patch
|
blob
|
blame
|
history
diff --git
a/client/src/base_rules.js
b/client/src/base_rules.js
index
8cf86a8
..
cc8292c
100644
(file)
--- a/
client/src/base_rules.js
+++ b/
client/src/base_rules.js
@@
-512,12
+512,6
@@
export const ChessRules = class ChessRules
return (color=="w" ? "b" : "w");
}
return (color=="w" ? "b" : "w");
}
- // Get next color (for compatibility with 3 and 4 players games)
- static GetNextCol(color)
- {
- return V.GetOppCol(color);
- }
-
// Pieces codes (for a clearer code)
static get PAWN() { return 'p'; }
static get ROOK() { return 'r'; }
// Pieces codes (for a clearer code)
static get PAWN() { return 'p'; }
static get ROOK() { return 'r'; }
diff --git
a/client/src/components/BaseGame.vue
b/client/src/components/BaseGame.vue
index
595f9aa
..
dd8c5c8
100644
(file)
--- a/
client/src/components/BaseGame.vue
+++ b/
client/src/components/BaseGame.vue
@@
-11,6
+11,8
@@
div#baseGame(tabindex=-1 @click="() => focusBg()"
Board(:vr="vr" :last-move="lastMove" :analyze="game.mode=='analyze'"
:user-color="game.mycolor" :orientation="orientation"
:vname="game.vname" @play-move="play")
Board(:vr="vr" :last-move="lastMove" :analyze="game.mode=='analyze'"
:user-color="game.mycolor" :orientation="orientation"
:vname="game.vname" @play-move="play")
+ #turnIndicator(v-if="game.vname=='Dark' && game.mode!='analyze'")
+ | {{ turn }}
#controls
button(@click="gotoBegin") <<
button(@click="() => undo()") <
#controls
button(@click="gotoBegin") <<
button(@click="() => undo()") <
@@
-20,8
+22,10
@@
div#baseGame(tabindex=-1 @click="() => focusBg()"
#pgnDiv
a#download(href="#")
button(@click="download") {{ st.tr["Download PGN"] }}
#pgnDiv
a#download(href="#")
button(@click="download") {{ st.tr["Download PGN"] }}
- button(v-if="game.mode!='analyze'" @click="analyzePosition")
+ button(v-if="game.vname!='Dark' && game.mode!='analyze'"
+ @click="analyzePosition")
| {{ st.tr["Analyze"] }}
| {{ st.tr["Analyze"] }}
+ button(@click="showRules") {{ st.tr["Rules"] }}
#movesList
MoveList(v-if="showMoves" :score="game.score" :message="game.scoreMsg"
:firstNum="firstMoveNumber" :moves="moves" :cursor="cursor"
#movesList
MoveList(v-if="showMoves" :score="game.score" :message="game.scoreMsg"
:firstNum="firstMoveNumber" :moves="moves" :cursor="cursor"
@@
-72,6
+76,15
@@
export default {
showMoves: function() {
return this.game.vname != "Dark" || this.game.mode=="analyze";
},
showMoves: function() {
return this.game.vname != "Dark" || this.game.mode=="analyze";
},
+ turn: function() {
+ let color = "";
+ const L = this.moves.length;
+ if (L == 0 || this.moves[L-1].color == "b")
+ color = "White";
+ else //if (this.moves[L-1].color == "w")
+ color = "Black";
+ return color + " turn";
+ },
},
created: function() {
if (!!this.game.fenStart)
},
created: function() {
if (!!this.game.fenStart)
@@
-128,6
+141,10
@@
export default {
this.play();
}
},
this.play();
}
},
+ showRules: function() {
+ //this.$router.push("/variants/" + this.game.vname);
+ window.open("#/variants/" + this.game.vname, "_blank"); //better
+ },
re_setVariables: function() {
this.endgameMessage = "";
this.orientation = this.game.mycolor || "w"; //default orientation for observed games
re_setVariables: function() {
this.endgameMessage = "";
this.orientation = this.game.mycolor || "w"; //default orientation for observed games
@@
-158,8
+175,10
@@
export default {
analyzePosition: function() {
const newUrl = "/analyze/" + this.game.vname +
"/?fen=" + this.vr.getFen().replace(/ /g, "_");
analyzePosition: function() {
const newUrl = "/analyze/" + this.game.vname +
"/?fen=" + this.vr.getFen().replace(/ /g, "_");
- //window.open("#" + newUrl); //to open in a new tab
- this.$router.push(newUrl); //better
+ if (this.game.type == "live")
+ this.$router.push(newUrl); //open in same tab: against cheating...
+ else
+ window.open("#" + newUrl); //open in a new tab: more comfortable
},
download: function() {
const content = this.getPgn();
},
download: function() {
const content = this.getPgn();
@@
-285,7
+304,7
@@
export default {
else
this.moves = this.moves.slice(0,this.cursor).concat([move]);
}
else
this.moves = this.moves.slice(0,this.cursor).concat([move]);
}
- if (!navigate && this.game.mode
!=
"analyze")
+ if (!navigate && this.game.mode
!=
"analyze")
this.$emit("newmove", move); //post-processing (e.g. computer play)
// Is opponent in check?
this.incheck = this.vr.getCheckSquares(this.vr.turn);
this.$emit("newmove", move); //post-processing (e.g. computer play)
// Is opponent in check?
this.incheck = this.vr.getCheckSquares(this.vr.turn);
@@
-347,7
+366,7
@@
export default {
this.gotoMove(this.moves.length-1);
},
flip: function() {
this.gotoMove(this.moves.length-1);
},
flip: function() {
- this.orientation = V.Get
Next
Col(this.orientation);
+ this.orientation = V.Get
Opp
Col(this.orientation);
},
},
};
},
},
};
@@
-374,6
+393,8
@@
export default {
@media screen and (min-width: 768px)
#controls
max-width: 400px
@media screen and (min-width: 768px)
#controls
max-width: 400px
+#turnIndicator
+ text-align: center
#pgnDiv
text-align: center
margin-left: auto
#pgnDiv
text-align: center
margin-left: auto
diff --git
a/client/src/components/ComputerGame.vue
b/client/src/components/ComputerGame.vue
index
78f6eb4
..
a4a53f6
100644
(file)
--- a/
client/src/components/ComputerGame.vue
+++ b/
client/src/components/ComputerGame.vue
@@
-113,6
+113,8
@@
export default {
this.compWorker.postMessage(["askmove"]);
},
processMove: function(move) {
this.compWorker.postMessage(["askmove"]);
},
processMove: function(move) {
+ if (this.game.score != "*")
+ return;
// Send the move to web worker (including his own moves)
this.compWorker.postMessage(["newmove",move]);
// subTurn condition for Marseille (and Avalanche) rules
// Send the move to web worker (including his own moves)
this.compWorker.postMessage(["newmove",move]);
// subTurn condition for Marseille (and Avalanche) rules
diff --git
a/client/src/views/Analyze.vue
b/client/src/views/Analyze.vue
index
d7e812f
..
0c23a28
100644
(file)
--- a/
client/src/views/Analyze.vue
+++ b/
client/src/views/Analyze.vue
@@
-51,7
+51,13
@@
export default {
created: function() {
this.gameRef.fen = this.$route.query["fen"].replace(/_/g, " ");
this.gameRef.vname = this.$route.params["vname"];
created: function() {
this.gameRef.fen = this.$route.query["fen"].replace(/_/g, " ");
this.gameRef.vname = this.$route.params["vname"];
- this.initialize(this.loadGame);
+ if (this.gameRef.vname != "Dark")
+ this.initialize(this.loadGame);
+ else
+ {
+ alert("Please, analyze in Dark mode makes no sense ~_^");
+ history.back(); //or this.$router.go(-1)
+ }
},
methods: {
initialize: async function(callback) {
},
methods: {
initialize: async function(callback) {
@@
-61,6
+67,7
@@
export default {
callback();
},
loadGame: function() {
callback();
},
loadGame: function() {
+ // NOTE: no need to set score (~unused)
this.game.vname = this.gameRef.vname;
this.game.fen = this.gameRef.fen;
this.curFen = this.game.fen;
this.game.vname = this.gameRef.vname;
this.game.fen = this.gameRef.fen;
this.curFen = this.game.fen;
diff --git
a/client/src/views/Game.vue
b/client/src/views/Game.vue
index
e6cb1e7
..
8f9b946
100644
(file)
--- a/
client/src/views/Game.vue
+++ b/
client/src/views/Game.vue
@@
-551,7
+551,8
@@
export default {
document.getElementById("chatBtn").style.backgroundColor = "#e2e2e2";
},
finishSendChat: function(chat) {
document.getElementById("chatBtn").style.backgroundColor = "#e2e2e2";
},
finishSendChat: function(chat) {
- if (this.game.type == "corr")
+ // NOTE: anonymous chats in corr games are not stored on server (TODO?)
+ if (this.game.type == "corr" && this.st.user.id > 0)
GameStorage.update(this.gameRef.id, {chat: chat});
},
processChat: function() {
GameStorage.update(this.gameRef.id, {chat: chat});
},
processChat: function() {
diff --git
a/client/src/views/Rules.vue
b/client/src/views/Rules.vue
index
82a4a40
..
2541661
100644
(file)
--- a/
client/src/views/Rules.vue
+++ b/
client/src/views/Rules.vue
@@
-10,7
+10,8
@@
main
| Practice
button(v-show="gameInProgress" @click="() => stopGame()")
| Stop game
| Practice
button(v-show="gameInProgress" @click="() => stopGame()")
| Stop game
- button(@click="gotoAnalyze") Analyze
+ button(v-if="gameInfo.vname!='Dark'" @click="gotoAnalyze")
+ | {{ st.tr["Analyze"] }}
.section-content(v-show="display=='rules'" v-html="content")
ComputerGame(v-show="display=='computer'" :game-info="gameInfo"
@game-over="stopGame" @game-stopped="gameStopped")
.section-content(v-show="display=='rules'" v-html="content")
ComputerGame(v-show="display=='computer'" :game-info="gameInfo"
@game-over="stopGame" @game-stopped="gameStopped")