h('button',
{
on: { click: this.clickGameSeek },
- attrs: { "aria-label": translations['New online game'] },
+ attrs: { "aria-label": translations['New live game'] },
'class': {
"tooltip": true,
"play": true,
},
[h('i', { 'class': { "material-icons": true } }, "accessibility")])
);
- if (["idle","chat","computer"].includes(this.mode))
+ if (variant!="Dark" && ["idle","chat","computer"].includes(this.mode))
{
actionArray.push(
h('button',
[h('i', { 'class': { "material-icons": true } }, "computer")])
);
}
- if (["idle","chat","friend"].includes(this.mode))
+ if (variant!="Dark" && ["idle","chat","friend"].includes(this.mode))
{
actionArray.push(
h('button',
);
// Create board element (+ reserves if needed by variant or mode)
const lm = this.vr.lastMove;
- const showLight = this.hints &&
+ const showLight = this.hints && variant!="Dark" &&
(!["idle","chat"].includes(this.mode) || 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)
+ if (this.vr.board[ci][cj] != VariantRules.EMPTY && (variant!="Dark"
+ || this.score!="*" || this.vr.enlightened[this.mycolor][ci][cj]))
{
elems.push(
h(
'light-square': (i+j)%2==0,
'dark-square': (i+j)%2==1,
[this.color]: true,
+ 'in-shadow': variant=="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],
},
h('button',
{
on: { click: () => { this.mycolor = this.vr.getOppCol(this.mycolor) } },
- attrs: { "aria-label": translations['Flip'] },
+ attrs: { "aria-label": translations['Flip board'] },
"class": {
"play": true,
"spaceleft": true,
{
attrs: { "id": "titleFenedit" },
"class": { "section": true },
- domProps: { innerHTML: translations["Position + flags (FEN):"] },
+ domProps: { innerHTML: translations["Game state (FEN):"] },
}
),
h('input',
)
);
}
- // Show current FEN
- elementArray.push(
- h('div',
- {
- attrs: { id: "fen-div" },
- "class": { "section-content": true },
- },
- [
- h('p',
- {
- attrs: { id: "fen-string" },
- domProps: { innerHTML: this.vr.getBaseFen() },
- "class": { "text-center": true },
- }
- )
- ]
- )
- );
+ if (variant != "Dark" || this.score!="*")
+ {
+ // Show current FEN
+ elementArray.push(
+ h('div',
+ {
+ attrs: { id: "fen-div" },
+ "class": { "section-content": true },
+ },
+ [
+ h('p',
+ {
+ attrs: { id: "fen-string" },
+ domProps: { innerHTML: this.vr.getBaseFen() },
+ "class": { "text-center": true },
+ }
+ )
+ ]
+ )
+ );
+ }
}
return h(
'div',
this.newGame("human", data.fen, data.color, data.oppid);
break;
case "newmove": //..he played!
- this.play(data.move, "animate");
+ this.play(data.move, (variant!="Dark" ? "animate" : null));
break;
case "pong": //received if we sent a ping (game still alive on our side)
if (this.gameId != data.gameId)
delete localStorage[prefix+"score"];
},
// HACK because mini-css tooltips are persistent after click...
+ // NOTE: seems to work only in chrome/chromium. TODO...
getRidOfTooltip: function(elt) {
elt.style.visibility = "hidden";
setTimeout(() => { elt.style.visibility="visible"; }, 100);