online multiplayer chess game (note server currently down)
Diffstat (limited to 'Square.gd')
| -rw-r--r-- | Square.gd | 35 |
1 files changed, 17 insertions, 18 deletions
@@ -7,28 +7,28 @@ signal right_clicked var move_indicators := [] var square: String -var piece_above := false onready var circle: TextureRect = $CircleHolder/Circle onready var move_indicator: ColorRect = $MoveIndicator func _ready() -> void: - Events.connect("turn_over", self, "check_piece_above") connect("clicked", self, "clicked") - check_piece_above() move_indicator.color = Globals.grid.last_move_indicator_color - circle.rect_min_size = Globals.grid.piece_size / 4 circle.material.set_shader_param("color", Globals.grid.overlay_color) - rect_min_size = Globals.grid.piece_size if Globals.spectating: mouse_default_cursor_shape = CURSOR_FORBIDDEN else: mouse_default_cursor_shape = CURSOR_POINTING_HAND + size() + + +func size(): + circle.rect_min_size = Globals.grid.piece_size / 4 -func check_piece_above(): - piece_above = is_instance_valid(Globals.grid.get_piece(square)) +func check_piece_above() -> bool: + return is_instance_valid(Globals.grid.get_piece(square)) func _gui_input(event: InputEvent): @@ -38,7 +38,7 @@ func _gui_input(event: InputEvent): func _focus_exited(): - if piece_above: + if check_piece_above(): Globals.grid.get_piece(square).background.hide() for m in move_indicators: if is_instance_valid(m): @@ -48,13 +48,12 @@ func _focus_exited(): func clicked(): var b = Globals.grid - var p = b.get_piece(square) - if piece_above and b.chess.turn == Globals.team and not Globals.spectating and p.color == Globals.team: - p.background.show() - var movs = b.chess.__generate_moves({"square": square, "verbose": true}) - for m in movs: - if m.flags & Chess.BITS.CAPTURE: - move_indicators.append(b.board[m.to].frame) - else: - move_indicators.append(b.background_array[m.to].circle) - move_indicators[-1].show() + if check_piece_above() and b.chess.turn == Globals.team and not Globals.spectating: + var p = b.get_piece(square) + if p.color == Globals.team: + p.background.show() + var movs = b.chess.__generate_moves({"square": square, "verbose": true}) + for m in movs: + var i = b.board[m.to].frame if m.flags & Chess.BITS.CAPTURE else b.background_array[m.to].circle + move_indicators.append(i) + i.show() |