Improve last move highlighting colors
[vchess.git] / client / src / components / Board.vue
index 5a21771..7827af1 100644 (file)
@@ -60,10 +60,13 @@ export default {
     if (!!lm) {
       if (!Array.isArray(lm)) lm = [lm];
       lm.forEach(m => {
-        if (V.OnBoard(m.start.x, m.start.y))
+        if (!m.start.noHighlight && V.OnBoard(m.start.x, m.start.y))
           lmHighlights[m.start.x + sizeX * m.start.y] = true;
-        if (V.OnBoard(m.end.x, m.end.y))
+        if (!m.end.noHighlight && V.OnBoard(m.end.x, m.end.y))
           lmHighlights[m.end.x + sizeX * m.end.y] = true;
+        if (!!m.start.toplay)
+          // For Dice variant (at least?)
+          lmHighlights[m.start.toplay[0] + sizeX * m.start.toplay[1]] = true;
       });
     }
     const showLight = (
@@ -182,13 +185,12 @@ export default {
                   "middle-square": V.Notoodark,
                   [this.settings.bcolor]: true,
                   "in-shadow": inShadow(ci, cj),
-                  "highlight-light": inHighlight(ci, cj) && lightSquare,
-                  "highlight-dark":
-                    inHighlight(ci, cj) && (V.Monochrome || !lightSquare),
+                  "highlight": inHighlight(ci, cj),
                   "incheck-light":
                     showCheck && lightSquare && incheckSq[ci][cj],
                   "incheck-dark":
-                    showCheck && !lightSquare && incheckSq[ci][cj]
+                    showCheck && !lightSquare && incheckSq[ci][cj],
+                  "hover-highlight": this.vr.hoverHighlight(ci, cj)
                 },
                 attrs: {
                   id: getSquareId({ x: ci, y: cj })
@@ -637,6 +639,7 @@ export default {
           const color = this.analyze ? this.vr.turn : this.userColor;
           if (this.vr.canIplay(color, startSquare))
             this.possibleMoves = this.vr.getPossibleMovesFrom(startSquare);
+          else return;
           // For potential drag'n drop, remember start coordinates
           // (to center the piece on mouse cursor)
           const rect = parent.getBoundingClientRect();
@@ -901,23 +904,36 @@ img.ghost
 
 // TODO: no predefined highlight colors, but layers. How?
 
-.light-square.lichess.highlight-light
-  background-color: #cdd26a
-.dark-square.lichess.highlight-dark
-  background-color: #aaa23a
+.hover-highlight:hover
+  // TODO: color dependant on board theme, or inner border...
+  background-color: #C571E6 !important
 
-.light-square.chesscom.highlight-light
-  background-color: #f7f783
-.dark-square.chesscom.highlight-dark
-  background-color: #bacb44
-
-.light-square.chesstempo.highlight-light
-  background-color: #9f9fff
-.dark-square.chesstempo.highlight-dark
-  background-color: #557fff
-
-.light-square.orangecc.highlight-light
-  background-color: #fef273
-.dark-square.orangecc.highlight-dark
-  background-color: #e8c525
+.highlight
+  &.light-square
+    &.lichess
+      background-color: #cdd26a
+    &.chesscom
+      background-color: #f7f783
+    &.chesstempo
+      background-color: #9f9fff
+    &.orangecc
+      background-color: #fef273
+  &.dark-square
+    &.lichess
+      background-color: #aaa23a
+    &.chesscom
+      background-color: #bacb44
+    &.chesstempo
+      background-color: #557fff
+    &.orangecc
+      background-color: #e8c525
+  &.middle-square
+    &.lichess
+      background-color: #BCBA52
+    &.chesscom
+      background-color: #D9E164
+    &.chesstempo
+      background-color: #7A8FFF
+    &.orangecc
+      background-color: #F3DC4C
 </style>