From: JP Guerrero Date: Thu, 8 Mar 2018 20:21:20 +0000 (+0100) Subject: White pawn fix X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=3c46a5ddb70287f2a8dd628acbf09d04ea9c9dfd;p=xdecor.git White pawn fix --- 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