fix: StackOverflow in King.GetAvailableMoves -> IsInCheck recursion

CheckDetector.IsInCheck used GetAvailableMoves() which for King calls
GameManager.IsInCheck -> CheckDetector.IsInCheck -> King.GetAvailableMoves
creating infinite recursion. Changed to GetAttackSquares() which King
overrides to return attack squares without the check test.
This commit is contained in:
2026-08-17 22:42:17 -03:00
parent 801de792ab
commit 351f9e12db
4 changed files with 23116 additions and 10051 deletions
@@ -34,7 +34,7 @@ public class CheckDetector
{
if (piece != null && piece.isWhite != forWhite)
{
var moves = piece.GetAvailableMoves(board);
var moves = piece.GetAttackSquares(board);
if (moves.Contains(king.currentPos))
return true;
}
File diff suppressed because it is too large Load Diff
+9369 -5014
View File
File diff suppressed because it is too large Load Diff
+9388 -5033
View File
File diff suppressed because it is too large Load Diff