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