import { processModalClick } from "@/utils/modalClick";
import { playMove, getFilteredMove } from "@/utils/playUndo";
import { ArrayFun } from "@/utils/array";
+import afterRawLoad from "@/utils/afterRawLoad";
import params from "@/parameters";
export default {
name: "my-game",
},
getGameType: function(game) {
if (!!game.id.toString().match(/^i/)) return "import";
- return (
- game.cadence.indexOf("d") >= 0
- ? "corr"
- : (game.cadence.indexOf("/") >= 0 ? "simul" : "live")
- );
+ return (game.cadence.indexOf("d") >= 0 ? "corr" : "live");
},
// Notify something after a new move (to opponent and me on MyGames page)
notifyMyGames: function(thing, data) {
case "newmove": {
// DEBUG:
-console.log("Receive move");
-console.log(data.data);
-//moveslist not updated when receiving a move? (see in baseGame)
+//console.log("Receive move");
+//console.log(data.data);
+//moveslist not updated when receiving a move? (see in BaseGame)
const movePlus = data.data;
const movesCount = this.game.moves.length;
let gameInfo = {
id: getRandString(), //ignored if corr
fen: V.GenRandInitFen(this.game.randomness),
+ randomness: this.game.randomness,
players: [this.game.players[1], this.game.players[0]],
vid: this.game.vid,
cadence: this.game.cadence
"/games",
"POST",
{
- // cid is useful to delete the challenge:
data: { gameInfo: gameInfo },
success: (response) => {
gameInfo.id = response.gameId;
window.V = vModule[game.vname + "Rules"];
this.loadGame(game, callback);
});
- // (AJAX) Request to get rules content (plain text, HTML)
this.rulesContent =
- require(
- "raw-loader!@/translations/rules/" +
- game.vname + "/" +
- this.st.lang + ".pug"
- )
- // Next two lines fix a weird issue after last update (2019-11)
- .replace(/\\n/g, " ")
- .replace(/\\"/g, '"')
- .replace('module.exports = "', "")
- .replace(/"$/, "")
- .replace(/(fen:)([^:]*):/g, replaceByDiag);
+ afterRawLoad(
+ require(
+ "raw-loader!@/translations/rules/" +
+ game.vname + "/" + this.st.lang + ".pug"
+ ).default
+ ).replace(/(fen:)([^:]*):/g, replaceByDiag);
},
// 3 cases for loading a game:
// - from indexedDB (running or completed live game I play)
!!this.repeat[fenObj]
? this.repeat[fenObj] + 1
: 1;
- if (this.repeat[fenObj] >= 3) this.drawOffer = "threerep";
+ if (this.repeat[fenObj] >= 3) {
+ if (V.LoseOnRepetition)
+ this.gameOver(moveCol == "w" ? "0-1" : "1-0", "Repetition");
+ else this.drawOffer = "threerep";
+ }
else if (this.drawOffer == "threerep") this.drawOffer = "";
if (!!this.game.mycolor && !data.receiveMyMove) {
// NOTE: 'var' to see that variable outside this block