online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/board/Board.gd')
| -rw-r--r-- | ui/board/Board.gd | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/ui/board/Board.gd b/ui/board/Board.gd index eb71113..04ea5f2 100644 --- a/ui/board/Board.gd +++ b/ui/board/Board.gd @@ -10,9 +10,12 @@ signal clear_pgn signal load_pgn(moves) signal remove_last +var move_indicators: PoolIntArray = [] + const piece_size := Vector2(80, 80) export(Color) var overlay_color := Color(0.078431, 0.333333, 0.117647, 0.498039) +export(Color) var last_move_indicator_color := Color(0.74902, 0.662745, 0.223529, 0.498039) export(Color) var clockrunning_color := Color(0.219608, 0.278431, 0.133333) export(Color) var clockrunninglow := Color(0.47451, 0.172549, 0.164706) export(Color) var clocklow := Color(0.313726, 0.156863, 0.14902) @@ -72,7 +75,7 @@ func init_board() -> void: # create the board var square := Square.instance() # create a square square.name = alg square.hint_tooltip = alg - square.color = Globals.board_color1 if Chess.square_color(alg) == "light" else Globals.board_color2 # set the color + square.color = (Globals.board_color1 if Chess.square_color(alg) == "light" else Globals.board_color2) # set the color background.add_child(square) # add the square to the background square.connect("clicked", self, "square_clicked", [alg]) # connect the clicked event background_array[i] = square # add the square to the background array @@ -283,7 +286,7 @@ func load_pgn(pgn: String) -> void: emit_signal("clear_pgn") var movs: PoolStringArray = Pgn.parse(pgn).moves emit_signal("load_pgn", movs) - check_game_over() + Events.emit_signal("turn_over") func undo(two: bool = false) -> void: @@ -295,10 +298,12 @@ func undo(two: bool = false) -> void: clear_pieces() clear_circles() create_pieces() + Events.emit_signal("turn_over") func _on_turn_over(): check_game_over() + create_last_move_indicators() func check_game_over(): @@ -313,3 +318,14 @@ func check_game_over(): draw("insufficient material") elif chess.in_threefold_repetition(): draw("threefold repetition") + + +func create_last_move_indicators(): + for i in move_indicators: + background_array[i].move_indicator.hide() + if !chess.__history: + return + var m: Dictionary = chess.__history[-1].move + background_array[m.from].move_indicator.show() + background_array[m.to].move_indicator.show() + move_indicators = [m.from, m.to] |