summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjake <jake@jakes-mail.top>2023-02-19 04:06:56 -0500
committerjake <jake@jakes-mail.top>2023-02-19 04:06:56 -0500
commit76b16ada7a284ff81e7828eb72a375c8866d0604 (patch)
tree72fc98cccee5c18a38a9ec6372b814320f2ec827
parent573909c7d718ea2089bac134f5a9bc1c3aa35f53 (diff)
pawn promotion (to queen)
-rw-r--r--Main.gd12
-rw-r--r--Sprite.gd5
2 files changed, 14 insertions, 3 deletions
diff --git a/Main.gd b/Main.gd
index e2a0a97..489e5ac 100644
--- a/Main.gd
+++ b/Main.gd
@@ -51,6 +51,7 @@ func _process(_delta):
func new_turn():
update_capture_tables()
is_king_checked()
+ check_for_promotion()
turn += 1
print("Turn: %s" % turn)
@@ -94,8 +95,17 @@ func update_capture_tables():
# move_tile.set_color("red")
# move_tile.position = in_square(Vector2(i * board_cell, k * board_cell))
+func check_for_promotion():
+ var pieces = get_tree().get_nodes_in_group("piece")
+ for e in pieces:
+ if e.get_piece() == "pawn":
+ var y = position_to_board_cell(e.position)[1]
+ if y == 0 or y == 7:
+ print("pawn is elligable for promotion")
+ # TODO: player option
+ e.set_piece("queen", e.get_piece_color_by_region())
+
func is_king_checked():
- print(team2_king)
if team2_king:
var coords_team2 = position_to_board_cell(team2_king.position)
if team1_capture[coords_team2[0]][coords_team2[1]] >= 1:
diff --git a/Sprite.gd b/Sprite.gd
index 263addc..d535946 100644
--- a/Sprite.gd
+++ b/Sprite.gd
@@ -51,15 +51,16 @@ func _ready():
func init(new_piece, color, new_team = 0):
get_texture().set_region(Rect2(new_piece, color, CELL_W, CELL_H))
- self.set_piece(self.get_piece_name_by_region())
+ self.set_piece(self.get_piece_name_by_region(), self.get_piece_color_by_region())
self.set_team(new_team)
func _on_Area2D_input_event(_viewport, event, _shape_idx):
if event.is_action_pressed("mouse1"):
emit_signal("clicked")
-func set_piece(new_piece):
+func set_piece(new_piece, color):
piece = new_piece
+ get_texture().set_region(Rect2(self.piece_map.get(new_piece), self.piece_color.get(color), CELL_W, CELL_H))
func get_piece():
return piece