vr: null, //object to check moves, store them, FEN..
orientation: "w", //useful if click on "flip board"
-
+
+// TODO: watch for property change "fen"
+// send event after each move, to notify what was played
const [sizeX,sizeY] = [V.size.x,V.size.y];
// Precompute hints squares to facilitate rendering
);
// Create board element (+ reserves if needed by variant or mode)
const lm = this.vr.lastMove;
- const showLight = this.hints && variant!="Dark" &&
+ const showLight = this.hints && variant.name!="Dark" &&
(this.mode != "idle" ||
(this.vr.moves.length > 0 && this.cursor==this.vr.moves.length));
const gameDiv = h('div',
_.range(sizeY).map(j => {
let cj = (this.mycolor=='w' ? j : sizeY-j-1);
let elems = [];
- if (this.vr.board[ci][cj] != VariantRules.EMPTY && (variant!="Dark"
+ if (this.vr.board[ci][cj] != VariantRules.EMPTY && (variant.name!="Dark"
|| this.score!="*" || this.vr.enlightened[this.mycolor][ci][cj]))
{
elems.push(
'light-square': (i+j)%2==0,
'dark-square': (i+j)%2==1,
[this.bcolor]: true,
- 'in-shadow': variant=="Dark" && this.score=="*"
+ 'in-shadow': variant.name=="Dark" && this.score=="*"
&& !this.vr.enlightened[this.mycolor][ci][cj],
'highlight': showLight && !!lm && _.isMatch(lm.end, {x:ci,y:cj}),
'incheck': showLight && incheckSq[ci][cj],
this.possibleMoves = [];
if (this.score == "*")
{
+
+// TODO: essentially adapt this (all other things do not change much)
+// if inside a real game, mycolor should be provided ? (simplest way)
+
const color = ["friend","problem"].includes(this.mode)
? this.vr.turn
: this.mycolor;