dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 54640f8dde8bf97ef8f812c9ee469bcdc2a0a5bc
parent 1774f2738d1d9cab57ce6ef6a9f383a15bd95877
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sat, 17 Jun 2023 17:05:59 -0700

allow castle using king and rook squares

Diffstat:
Mpkg/web/handlers/interceptors/chess.go | 6+++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pkg/web/handlers/interceptors/chess.go b/pkg/web/handlers/interceptors/chess.go @@ -722,7 +722,11 @@ func (b *Chess) SendMove(gameKey string, userID database.UserID, g *ChessGame, c var found bool var mov chess.Move for _, move := range validMoves { - if compareSquares(fst, scd, move) && (move.Promo() == chess.NoPieceType || move.Promo() == promo) { + if (compareSquares(fst, scd, move) && (move.Promo() == chess.NoPieceType || move.Promo() == promo)) || + (((move.S1() == chess.E1 || move.S2() == chess.E1) && move.HasTag(chess.KingSideCastle)) && ((fst == chess.E1 && scd == chess.H1) || (scd == chess.E1 && fst == chess.H1))) || + (((move.S1() == chess.E8 || move.S2() == chess.E8) && move.HasTag(chess.KingSideCastle)) && ((fst == chess.E8 && scd == chess.H8) || (scd == chess.E8 && fst == chess.H8))) || + (((move.S1() == chess.E1 || move.S2() == chess.E1) && move.HasTag(chess.QueenSideCastle)) && ((fst == chess.E1 && scd == chess.A1) || (scd == chess.E1 && fst == chess.A1))) || + (((move.S1() == chess.E8 || move.S2() == chess.E8) && move.HasTag(chess.QueenSideCastle)) && ((fst == chess.E8 && scd == chess.A8) || (scd == chess.E8 && fst == chess.A8))) { moveStr = chess.AlgebraicNotation{}.Encode(game.Position(), move) found = true mov = *move