diff --git a/elements/player_hand.gd b/elements/player_hand.gd index 5b9a1b6..012933e 100644 --- a/elements/player_hand.gd +++ b/elements/player_hand.gd @@ -25,6 +25,7 @@ var _is_owned: bool var _selected_card: PlayingCard = null var _cards_in_hand_ids: Array[int] = [] +var _allow_clicking_cards: bool = false var _trump_id: int = -1 var _first_played_card_id: int = -1 @@ -109,6 +110,9 @@ func _get_card_distance(card_count: int) -> float: return _card_distance_min_others + ((_card_distance_max_others - _card_distance_min_others) * (1.0 - (float(card_count) / 19.0))) func _on_card_clicked(playing_card: PlayingCard) -> void: + if not _allow_clicking_cards: + return + print("check card is " + str(_first_played_card_id)) if not _is_card_allowed( playing_card.card_details.card_id, @@ -139,6 +143,13 @@ func _on_play_card_button_pressed() -> void: remove_card(_selected_card) _selected_card = null card_selected.emit(-1) + _allow_clicking_cards = false + +func allow_clicking_cards() -> void: + _allow_clicking_cards = true + +func disallow_clicking_cards() -> void: + _allow_clicking_cards = false func display_rank(rank: int, score: int) -> void: rank_label.text = "#{rank} ({pts} pts)".format({ diff --git a/environment_manager.gd b/environment_manager.gd index 0e349c8..8242bf3 100644 --- a/environment_manager.gd +++ b/environment_manager.gd @@ -28,7 +28,6 @@ var _own_client_id: String @export var card_scene: PackedScene var _bets: Dictionary[String, Array] # Array[BetResult] - ## Cards played in the current play. var _plays: Array[Play] var _trump_id: int = -1 diff --git a/game.tscn b/game.tscn index e1370bb..d688290 100644 --- a/game.tscn +++ b/game.tscn @@ -143,7 +143,7 @@ size_flags_horizontal = 3 layout_mode = 2 text = "Send" -[node name="GameUI" type="Control" parent="HBoxContainer" node_paths=PackedStringArray("web_client", "start_game_button", "play_card_button", "bet_container", "bet_input", "round_label")] +[node name="GameUI" type="Control" parent="HBoxContainer" node_paths=PackedStringArray("web_client", "start_game_button", "play_card_button", "bet_container", "bet_input", "round_label", "player_hand")] layout_mode = 2 size_flags_horizontal = 3 mouse_filter = 2 @@ -154,6 +154,7 @@ play_card_button = NodePath("PlayCardButton") bet_container = NodePath("BetContainer") bet_input = NodePath("BetContainer/BetInput") round_label = NodePath("RoundLabel") +player_hand = NodePath("../../EnvironmentManager/PlayerHand0") [node name="StartGameButton" type="Button" parent="HBoxContainer/GameUI"] visible = false diff --git a/game_client.gd b/game_client.gd index 9687f57..28ee8c4 100644 --- a/game_client.gd +++ b/game_client.gd @@ -7,6 +7,7 @@ extends Node @export var bet_container: Control @export var bet_input: LineEdit @export var round_label: Label +@export var player_hand: PlayerHand var _is_host: bool = false var _current_player_count: int = 0 @@ -96,6 +97,7 @@ func _on_player_hand_0_card_played(card_id: int) -> void: func _on_web_client_tcp_notify_play_card_request() -> void: $Label.show() + player_hand.allow_clicking_cards() func _on_web_client_tcp_received_win() -> void: $WinLabel.show()