X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBoard.vue;h=8b1055bd72a104be50ada23507138daac9bcb265;hp=32738829f6763eb0692c50e9ac1cc953012c09e7;hb=a6088c906bbe6fae95707dc7028e45023fe39981;hpb=e27329232b83700d63c8fb52af6f4c2eec9a569c diff --git a/client/src/components/Board.vue b/client/src/components/Board.vue index 32738829..8b1055bd 100644 --- a/client/src/components/Board.vue +++ b/client/src/components/Board.vue @@ -2,6 +2,8 @@ // This can work for squared boards (2 or 4 players), with some adaptations (TODO) // TODO: for 3 players, write a "board3.js" +// TODO: current clicked square + moving square as parameters, + highlight + import { getSquareId, getSquareFromId } from "@/utils/squareId"; import { ArrayFun } from "@/utils/array"; @@ -9,9 +11,8 @@ export default { name: 'my-board', // Last move cannot be guessed from here, and is required to highlight squares // vr: object to check moves, print board... - // mode: HH, HC or analyze // userColor: for mode HH or HC - props: ["vr","lastMove","mode","orientation","userColor","vname"], + props: ["vr","lastMove","analyze","orientation","userColor","vname"], data: function () { return { hints: (!localStorage["hints"] ? true : localStorage["hints"] === "1"), @@ -98,7 +99,7 @@ export default { let cj = (this.orientation=='w' ? j : sizeY-j-1); let elems = []; if (this.vr.board[ci][cj] != V.EMPTY && (this.vname!="Dark" - || this.gameOver || this.mode == "analyze" + || this.gameOver || this.analyze || this.vr.enlightened[this.userColor][ci][cj])) { elems.push( @@ -111,7 +112,7 @@ export default { && this.selectedPiece.parentNode.id == "sq-"+ci+"-"+cj, }, attrs: { - src: "@/assets/images/pieces/" + + src: "/images/pieces/" + V.getPpath(this.vr.board[ci][cj]) + ".svg", }, } @@ -144,8 +145,7 @@ export default { 'dark-square': (i+j)%2==1, [this.bcolor]: true, 'in-shadow': this.vname=="Dark" && !this.gameOver - && this.mode != "analyze" - && !this.vr.enlightened[this.userColor][ci][cj], + && !this.analyze && !this.vr.enlightened[this.userColor][ci][cj], 'highlight': showLight && !!lm && lm.end.x == ci && lm.end.y == cj, 'incheck': showLight && incheckSq[ci][cj], }, @@ -239,11 +239,11 @@ export default { 'div', { 'class': { - "col-sm-12":true, - "col-md-10":true, - "col-md-offset-1":true, - "col-lg-8":true, - "col-lg-offset-2":true, + "col-sm-12": true, + "col-md-10": true, + "col-md-offset-1": true, + "col-lg-8": true, + "col-lg-offset-2": true, }, // NOTE: click = mousedown + mouseup on: { @@ -291,9 +291,7 @@ export default { this.selectedPiece.style.zIndex = 3000; const startSquare = getSquareFromId(e.target.parentNode.id); this.possibleMoves = []; - const color = this.mode=="analyze" || this.gameOver - ? this.vr.turn - : this.userColor; + const color = (this.analyze || this.gameOver ? this.vr.turn : this.userColor); if (this.vr.canIplay(color,startSquare)) this.possibleMoves = this.vr.getPossibleMovesFrom(startSquare); // Next line add moving piece just after current image @@ -362,3 +360,104 @@ export default { }, }; + +