data: {
display: "undefined", //default to main hall; see "created()" function
gameid: undefined, //...yet
-
+ queryHash: "",
conn: null,
+ // Settings initialized with values from localStorage
+ settings: {
+ bcolor: localStorage["bcolor"] || "lichess",
+ sound: parseInt(localStorage["sound"]) || 2,
+ hints: parseInt(localStorage["hints"]) || 1,
+ coords: !!eval(localStorage["coords"]),
+ highlight: !!eval(localStorage["highlight"]),
+ sqSize: parseInt(localStorage["sqSize"]),
+ },
+
// TEMPORARY: DEBUG
mode: "analyze",
orientation: "w",
userColor: "w",
-
allowChat: false,
allowMovelist: true,
fen: V.GenRandInitFen(),
},
created: function() {
- // TODO: navigation becomes a little more complex
- this.setDisplay();
+ if (!!localStorage["variant"])
+ {
+ location.hash = "#game?id=" + localStorage["gameId"];
+ this.display = location.hash.substr(1);
+ }
+ else
+ this.setDisplay();
window.onhashchange = this.setDisplay;
-
this.myid = "abcdefghij";
//console.log(this.myid + " " + variant);
//myid: localStorage.getItem("myid"), //our ID, always set
//this.vr = new VariantRules( V.GenRandInitFen() );
},
methods: {
+ updateSettings: function(event) {
+ const propName =
+ event.target.id.substr(3).replace(/^\w/, c => c.toLowerCase())
+ localStorage[propName] = ["highlight","coords"].includes(propName)
+ ? event.target.checked
+ : event.target.value;
+ },
setDisplay: function() {
-
-//TODO: prevent set display if there is a running game
-
+ // Prevent set display if there is a running game
+ if (!!localStorage["variant"])
+ return;
if (!location.hash)
location.hash = "#room"; //default
- this.display = location.hash.substr(1);
+ const hashParts = location.hash.substr(1).split("?");
+ this.display = hashParts[0];
+ this.queryHash = hashParts[1]; //may be empty, undefined...
// Close menu on small screens:
let menuToggle = document.getElementById("drawer-control");
if (!!menuToggle)
menuToggle.checked = false;
},
-
- // TEMPORARY: DEBUG (duplicate code)
- play: function(move) {
- // Not programmatic, or animation is over
- if (!move.notation)
- move.notation = this.vr.getNotation(move);
- this.vr.play(move);
- if (!move.fen)
- move.fen = this.vr.getFen();
- if (this.sound == 2)
- new Audio("/sounds/move.mp3").play().catch(err => {});
- // Is opponent in check?
- this.incheck = this.vr.getCheckSquares(this.vr.turn);
- const score = this.vr.getCurrentScore();
- },
- undo: function(move) {
- this.vr.undo(move);
- if (this.sound == 2)
- new Audio("/sounds/undo.mp3").play().catch(err => {});
- this.incheck = this.vr.getCheckSquares(this.vr.turn);
- },
},
});
//const continuation = (localStorage.getItem("variant") === variant.name);
// if (continuation) //game VS human has priority
// this.continueGame("human");
-
-// TODO:
-// si quand on arrive il y a une continuation "humaine" : display="game" et retour à la partie !