From 3c46a5ddb70287f2a8dd628acbf09d04ea9c9dfd Mon Sep 17 00:00:00 2001 From: JP Guerrero Date: Thu, 8 Mar 2018 21:21:20 +0100 Subject: [PATCH] White pawn fix --- src/chess.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/chess.lua b/src/chess.lua index 7d43622..1089da5 100644 --- a/src/chess.lua +++ b/src/chess.lua @@ -161,6 +161,26 @@ function realchess.move(pos, from_list, from_index, to_list, to_index, _, player else return 0 end + + -- if x not changed, + -- ensure that destination cell is empty + -- elseif x changed one unit left or right + -- ensure the pawn is killing opponent piece + -- else + -- move is not legal - abort + + if from_x == to_x then + if pieceTo ~= "" then + return 0 + end + elseif from_x - 1 == to_x or from_x + 1 == to_x then + if not pieceTo:find("black") then + return 0 + end + else + return 0 + end + elseif thisMove == "black" then local pawnBlackMove = inv:get_stack(from_list, xy_to_index(from_x, from_y + 1)):get_name() -- black pawns can go down only