42 lines
1.2 KiB
GDScript
42 lines
1.2 KiB
GDScript
class_name CharacterPreview extends PanelContainer
|
|
|
|
@export var tower_label_scene: PackedScene
|
|
@export var tower_label_container: VBoxContainer
|
|
@export var hero_name_label: Label
|
|
|
|
var added_tags: Array[TowerLabel] = []
|
|
var regular_label: Label = null
|
|
|
|
|
|
func set_preview(hero: HeroClass) -> void:
|
|
hero_name_label.text = hero.hero_name
|
|
if regular_label:
|
|
regular_label.queue_free()
|
|
regular_label = null
|
|
for tag: TowerLabel in added_tags:
|
|
tag.queue_free()
|
|
added_tags = []
|
|
var added_labels: Array[Card] = []
|
|
for card: Card in hero.deck:
|
|
if !added_labels.has(card):
|
|
var new_label: TowerLabel = tower_label_scene.instantiate() as TowerLabel
|
|
new_label.change_label(card.display_name, str(hero.deck.count(card)))
|
|
added_labels.append(card)
|
|
tower_label_container.add_child(new_label)
|
|
added_tags.append(new_label)
|
|
|
|
|
|
func setup_with_basic_text(hero: HeroClass, text: String) -> void:
|
|
hero_name_label.text = hero.hero_name
|
|
if regular_label:
|
|
regular_label.queue_free()
|
|
regular_label = null
|
|
for tag: TowerLabel in added_tags:
|
|
tag.queue_free()
|
|
added_tags = []
|
|
var added_labels: Array[Card] = []
|
|
var new_label: Label = Label.new()
|
|
new_label.text = text
|
|
tower_label_container.add_child(new_label)
|
|
regular_label = new_label
|