extends Control const ABILITY_CONTAINER = preload("uid://cj2817cl63cf") var ability_containers: Array[Node] @onready var character_class_options: OptionButton = %CharacterClassOptions @onready var abilities_grid: GridContainer = %AbilitiesGrid func _ready() -> void: _connect_signals() for character_class in Classes.CharacterClass: character_class_options.add_item(str(character_class).to_pascal_case()) var character_class_info: Dictionary = Classes.class_info[Classes.CharacterClass[character_class]] if character_class_info.get("known_for"): character_class_options.set_item_tooltip(Classes.CharacterClass[character_class], character_class_info.get("known_for")) ability_containers = abilities_grid.get_children() for ability in Abilities.Ability: var ability_container: AbilityContainer = ability_containers[Abilities.Ability[ability]] ability_container.ability_name = str(ability).to_pascal_case() func on_class_selected(index_of_class_selected: int) -> void: print_debug("You chose %s" % index_of_class_selected) var selected_class_info: Dictionary = Classes.class_info[index_of_class_selected] var selected_class_ability_scores = selected_class_info.get("default_ability_scores") print_debug("Here's the stats: %s" % selected_class_ability_scores) for index_of_default_ability_score in selected_class_ability_scores: var ability_container = ability_containers[index_of_default_ability_score] as AbilityContainer ability_container.ability_score = selected_class_ability_scores[index_of_default_ability_score] func _connect_signals() -> void: character_class_options.connect("item_selected", on_class_selected)