basketball-tactics/scripts/ui/character_creator.gd

35 lines
1.6 KiB
GDScript

extends Control
const ABILITY_CONTAINER = preload("uid://cj2817cl63cf")
var ability_containers: Array[Node]
@onready var character_class_options: OptionButton = %CharacterClassOptions
@onready var abilities_grid: HBoxContainer = %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 = get_tree().get_nodes_in_group("ability_containers")
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)