From db4c7ba01746a170f2ba7b432723737962b38bc2 Mon Sep 17 00:00:00 2001
From: Alan <alanjfogel@gmail.com>
Date: Fri, 31 Jan 2025 13:35:35 -0600
Subject: [PATCH] Added upgrade for rook

---
 .godot/editor/script_editor_cache.cfg | 12 ++++++++----
 scripts/Pawn.gd                       |  4 ++--
 scripts/Rook.gd                       | 13 +++++++++++++
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg
index d7d2ae4..b3cfa14 100644
--- a/.godot/editor/script_editor_cache.cfg
+++ b/.godot/editor/script_editor_cache.cfg
@@ -45,11 +45,15 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 36,
+"column": 0,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 52,
-"scroll_position": 39.0,
-"selection": false,
+"row": 10,
+"scroll_position": 0.0,
+"selection": true,
+"selection_from_column": 0,
+"selection_from_line": 10,
+"selection_to_column": 43,
+"selection_to_line": 10,
 "syntax_highlighter": "GDScript"
 }
diff --git a/scripts/Pawn.gd b/scripts/Pawn.gd
index bd1c304..bfd4848 100644
--- a/scripts/Pawn.gd
+++ b/scripts/Pawn.gd
@@ -7,8 +7,8 @@ enum Upgrade { DOUBLE_MOVE, DIAGONAL_MOVE }
 func _init(is_white: bool, position: Vector2):
 	super._init(is_white, position)
 	# Testing upgrades
-	upgrades.append(Upgrade.DOUBLE_MOVE)
-	upgrades.append(Upgrade.DIAGONAL_MOVE)
+	# upgrades.append(Upgrade.DOUBLE_MOVE)
+	# upgrades.append(Upgrade.DIAGONAL_MOVE)
 
 
 func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
diff --git a/scripts/Rook.gd b/scripts/Rook.gd
index e39a922..2b53c0f 100644
--- a/scripts/Rook.gd
+++ b/scripts/Rook.gd
@@ -8,6 +8,8 @@ enum Upgrade {
 
 func _init(is_white: bool, position: Vector2):
 	super._init(is_white, position)
+	# Testing upgrades
+	# upgrades.append(Upgrade.DIAGONAL_MOVE_ONE)
 
 func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 	var valid_moves: Array[Vector2] = []
@@ -57,5 +59,16 @@ func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 			break
 		else:
 			break
+			
+	# Check for DIAGONAL_MOVE_ONE upgrade
+	if Upgrade.DIAGONAL_MOVE_ONE in upgrades:
+		if x > 0 and y > 0 and (board_state[x - 1][y - 1] == null or not board_state[x - 1][y - 1].is_white):
+			valid_moves.append(Vector2(x - 1, y - 1))
+		if x < 7 and y > 0 and (board_state[x + 1][y - 1] == null or not board_state[x + 1][y - 1].is_white):
+			valid_moves.append(Vector2(x + 1, y - 1))
+		if x > 0 and y < 7 and (board_state[x - 1][y + 1] == null or not board_state[x - 1][y + 1].is_white):
+			valid_moves.append(Vector2(x - 1, y + 1))
+		if x < 7 and y < 7 and (board_state[x + 1][y + 1] == null or not board_state[x + 1][y + 1].is_white):
+			valid_moves.append(Vector2(x + 1, y + 1))
 
 	return valid_moves
-- 
GitLab