extends Control class_name CardDisplay var card_displays = [] var selected_card = null const CARD_WIDTH = 100 const CARD_HEIGHT = 150 const CARD_MARGIN = 10 var container: HBoxContainer func _ready(): container = HBoxContainer.new() container.name = "CardContainer" container.set_position(Vector2(10, 500)) add_child(container) func update_hand(hand: Array): clear_cards() for card in hand: add_card_display(card) func add_card_display(card: Card): var card_panel = PanelContainer.new() card_panel.custom_minimum_size = Vector2(CARD_WIDTH, CARD_HEIGHT) var vbox = VBoxContainer.new() card_panel.add_child(vbox) var name_label = Label.new() name_label.text = card.card_name name_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER vbox.add_child(name_label) var rank_label = Label.new() rank_label.text = "Rank " + str(card.rank) rank_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER vbox.add_child(rank_label) var desc_label = Label.new() desc_label.text = card.description desc_label.autowrap_mode = TextServer.AUTOWRAP_WORD desc_label.custom_minimum_size = Vector2(CARD_WIDTH - 10, 0) vbox.add_child(desc_label) card_displays.append(card_panel) container.add_child(card_panel) func _on_card_clicked(event: InputEvent, card: Card): if event is InputEventMouseButton and event.pressed: selected_card = card highlight_selected_card(card) func highlight_selected_card(selected: Card): for display in card_displays: var style = StyleBoxFlat.new() style.bg_color = Color(0.2, 0.2, 0.2, 1) if display.get_child(0).get_child(0).text == selected.card_name: style.bg_color = Color(0.4, 0.6, 0.4, 1) display.add_theme_stylebox_override("panel", style) func get_selected_card() -> Card: return selected_card func clear_cards(): for display in card_displays: display.queue_free() card_displays.clear() selected_card = null