diff --git a/src/ui/components/card_node.gd b/src/ui/components/card_node.gd index 78ade9d..4bcbad4 100644 --- a/src/ui/components/card_node.gd +++ b/src/ui/components/card_node.gd @@ -1,3 +1,4 @@ +class_name CardNode extends Control signal card_clicked(card_node) diff --git a/src/ui/components/hand_area.gd b/src/ui/components/hand_area.gd index 0ec9115..61848be 100644 --- a/src/ui/components/hand_area.gd +++ b/src/ui/components/hand_area.gd @@ -1,3 +1,4 @@ +class_name HandArea extends HBoxContainer signal cards_selected(selected: Array) @@ -5,38 +6,38 @@ signal hint_requested() signal play_requested() signal pass_requested() -var card_nodes: Array = [] +var card_nodes: Array[CardNode] = [] var selected_cards: Array = [] const CARD_SCENE := preload("res://src/ui/components/card_node.tscn") var training_controller: TrainingController = null func update_hand(hand: Array) -> void: - for cn in card_nodes: - cn.queue_free() - card_nodes.clear() - selected_cards.clear() - for c in hand: - var node: Control = CARD_SCENE.instantiate() - node.setup(c) - node.card_clicked.connect(_on_card_clicked) - node.card_double_clicked.connect(_on_card_double_clicked) - add_child(node) - card_nodes.append(node) + for cn in card_nodes: + cn.queue_free() + card_nodes.clear() + selected_cards.clear() + for c in hand: + var node: CardNode = CARD_SCENE.instantiate() + node.setup(c) + node.card_clicked.connect(_on_card_clicked) + node.card_double_clicked.connect(_on_card_double_clicked) + add_child(node) + card_nodes.append(node) -func _on_card_clicked(card_node: Node) -> void: - card_node.set_selected(not card_node.is_selected) - if card_node.is_selected: - selected_cards.append(card_node.card_data) - else: - selected_cards.erase(card_node.card_data) - cards_selected.emit(selected_cards) +func _on_card_clicked(card_node: CardNode) -> void: + card_node.set_selected(not card_node.is_selected) + if card_node.is_selected: + selected_cards.append(card_node.card_data) + else: + selected_cards.erase(card_node.card_data) + cards_selected.emit(selected_cards) -func _on_card_double_clicked(card_node: Node) -> void: - if not card_node.is_selected: - card_node.set_selected(true) - selected_cards.append(card_node.card_data) - play_requested.emit() +func _on_card_double_clicked(card_node: CardNode) -> void: + if not card_node.is_selected: + card_node.set_selected(true) + selected_cards.append(card_node.card_data) + play_requested.emit() func _on_hint_pressed() -> void: hint_requested.emit() diff --git a/src/ui/scenes/training_room.gd b/src/ui/scenes/training_room.gd index 17538fd..683dbf2 100644 --- a/src/ui/scenes/training_room.gd +++ b/src/ui/scenes/training_room.gd @@ -2,7 +2,7 @@ extends Control var controller: TrainingController -@onready var hand_area: Node = $HandArea +@onready var hand_area: HandArea = $HandArea @onready var play_button: Button = $Buttons/PlayButton @onready var pass_button: Button = $Buttons/PassButton @onready var hint_button: Button = $Buttons/HintButton