diff options
author | jake <jake@jakes-mail.top> | 2023-02-19 04:06:56 -0500 |
---|---|---|
committer | jake <jake@jakes-mail.top> | 2023-02-19 04:06:56 -0500 |
commit | 76b16ada7a284ff81e7828eb72a375c8866d0604 (patch) | |
tree | 72fc98cccee5c18a38a9ec6372b814320f2ec827 | |
parent | 573909c7d718ea2089bac134f5a9bc1c3aa35f53 (diff) |
pawn promotion (to queen)
-rw-r--r-- | Main.gd | 12 | ||||
-rw-r--r-- | Sprite.gd | 5 |
2 files changed, 14 insertions, 3 deletions
@@ -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: @@ -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 |