diff --git a/game.tscn b/game.tscn index 4e81701..8995bf5 100644 --- a/game.tscn +++ b/game.tscn @@ -186,7 +186,6 @@ disabled = true text = "Play Card" [node name="BetContainer" type="VBoxContainer" parent="HBoxContainer/GameUI"] -visible = false layout_mode = 1 anchors_preset = 2 anchor_top = 1.0 @@ -197,7 +196,10 @@ offset_right = 327.0 offset_bottom = -114.0 grow_vertical = 0 -[node name="BetInput" type="LineEdit" parent="HBoxContainer/GameUI/BetContainer" node_paths=PackedStringArray("submit_button")] +[node name="DisallowedBetLabel" type="Label" parent="HBoxContainer/GameUI/BetContainer"] +layout_mode = 2 + +[node name="BetInput" type="LineEdit" parent="HBoxContainer/GameUI/BetContainer" node_paths=PackedStringArray("error_label", "disallowed_bet_label", "submit_button")] layout_mode = 2 max_length = 2 context_menu_enabled = false @@ -207,12 +209,18 @@ shortcut_keys_enabled = false middle_mouse_paste_enabled = false drag_and_drop_selection_enabled = false script = ExtResource("4_vef74") +error_label = NodePath("../ErrorLabel") +disallowed_bet_label = NodePath("../DisallowedBetLabel") submit_button = NodePath("../SubmitBetButton") [node name="SubmitBetButton" type="Button" parent="HBoxContainer/GameUI/BetContainer"] layout_mode = 2 text = "submit bet" +[node name="ErrorLabel" type="Label" parent="HBoxContainer/GameUI/BetContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(1, 0.21, 0.21, 1) + [node name="Label" type="Label" parent="HBoxContainer/GameUI"] visible = false layout_mode = 1 @@ -303,6 +311,7 @@ playing_card_scene = ExtResource("6_eow3j") [connection signal="new_round_started" from="WebClientTCP" to="EnvironmentManager" method="_on_web_client_tcp_new_round_started"] [connection signal="notify_play_card_request" from="WebClientTCP" to="HBoxContainer/GameUI" method="_on_web_client_tcp_notify_play_card_request"] [connection signal="received_bet_request" from="WebClientTCP" to="HBoxContainer/GameUI" method="_on_web_client_tcp_received_bet_request"] +[connection signal="received_bet_request" from="WebClientTCP" to="HBoxContainer/GameUI/BetContainer/BetInput" method="_on_web_client_tcp_received_bet_request"] [connection signal="received_chat_message" from="WebClientTCP" to="HBoxContainer/ClientInterface" method="_on_web_client_tcp_received_chat_message"] [connection signal="received_client_id" from="WebClientTCP" to="EnvironmentManager" method="_on_web_client_tcp_received_client_id"] [connection signal="received_connection_message" from="WebClientTCP" to="HBoxContainer/ClientInterface" method="_on_web_client_tcp_received_connection_message"] diff --git a/number_input.gd b/number_input.gd index 4b4a975..735cd77 100644 --- a/number_input.gd +++ b/number_input.gd @@ -4,14 +4,35 @@ extends LineEdit ## Only allows numeric input, discards everything else. var _regex: RegEx = RegEx.new() +var _disallowed_bet: String = "3" +@export var error_label: Label +@export var disallowed_bet_label: Label @export var submit_button: Button func _ready() -> void: _regex.compile("[^\\d]") submit_button.disabled = true +func set_disallowed_bet(bet: int) -> void: + _disallowed_bet = str(bet) + func _on_text_changed(new_text: String) -> void: - if new_text.is_empty() or _regex.search(new_text): + if new_text.is_empty(): submit_button.disabled = true + error_label.text = "" + elif _regex.search(new_text): + submit_button.disabled = true + error_label.text = "Numbers only!" + elif new_text == _disallowed_bet: + submit_button.disabled = true + error_label.text = "Not allowed!" else: submit_button.disabled = false + error_label.text = "" + +func _on_web_client_tcp_received_bet_request(disallowed_bet: int) -> void: + set_disallowed_bet(disallowed_bet) + if disallowed_bet == -1: + disallowed_bet_label.text = "Bet anything" + else: + disallowed_bet_label.text = "Disallowed bet: {bet}".format({"bet": disallowed_bet})