further tweaks to player creator

This commit is contained in:
Adam Burns 2026-02-20 21:13:53 -05:00
parent 2f925561c1
commit 53a3f1a0db
5 changed files with 202 additions and 114 deletions

View File

@ -11,5 +11,21 @@ layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
text = "AbilityName: " text = "AbilityName: "
[node name="AbilityScore" type="OptionButton" parent="." unique_id=1479575024] [node name="AbilityScoreBox" type="SpinBox" parent="." unique_id=380291644]
layout_mode = 2 layout_mode = 2
min_value = 1.0
max_value = 20.0
value = 7.0
alignment = 1
[node name="ModifierLabel" type="Label" parent="." unique_id=607373909]
layout_mode = 2
text = "Mod: "
[node name="ModifierBox" type="SpinBox" parent="." unique_id=1458861204]
layout_mode = 2
size_flags_horizontal = 3
min_value = -5.0
max_value = 10.0
alignment = 1
editable = false

View File

@ -12,90 +12,143 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_humxe") script = ExtResource("1_humxe")
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=830349662] [node name="CenterContainer" type="CenterContainer" parent="." unique_id=926782341]
layout_mode = 0 layout_mode = 1
offset_right = 40.0 anchors_preset = 15
offset_bottom = 40.0 anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="TitleLabel" type="Label" parent="VBoxContainer" unique_id=1313428113] [node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer" unique_id=830349662]
layout_mode = 2
[node name="TitleLabel" type="Label" parent="CenterContainer/VBoxContainer" unique_id=1313428113]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 64 theme_override_font_sizes/font_size = 64
text = "Character/Player Creation" text = "Player Creation"
horizontal_alignment = 1
[node name="HSeparator" type="HSeparator" parent="VBoxContainer" unique_id=1671161209] [node name="HSeparator" type="HSeparator" parent="CenterContainer/VBoxContainer" unique_id=1671161209]
layout_mode = 2 layout_mode = 2
[node name="VitalsSection" type="VBoxContainer" parent="VBoxContainer" unique_id=1979705440] [node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer" unique_id=528245991]
layout_mode = 2 layout_mode = 2
[node name="SectionLabelVitals" type="Label" parent="VBoxContainer/VitalsSection" unique_id=361033131] [node name="VitalsSection" type="VBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer" unique_id=1979705440]
custom_minimum_size = Vector2(300, 0)
layout_mode = 2
size_flags_horizontal = 3
[node name="SectionLabelVitals" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection" unique_id=361033131]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
text = "Vitals" text = "Vitals"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="CharacterNameField" type="HBoxContainer" parent="VBoxContainer/VitalsSection" unique_id=1144305927] [node name="CharacterNameField" type="HBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection" unique_id=1144305927]
layout_mode = 2 layout_mode = 2
[node name="CharacterNameLabel" type="Label" parent="VBoxContainer/VitalsSection/CharacterNameField" unique_id=377396273] [node name="CharacterNameLabel" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection/CharacterNameField" unique_id=377396273]
layout_mode = 2 layout_mode = 2
text = "Name: " text = "Name: "
[node name="CharacterNameEntry" type="LineEdit" parent="VBoxContainer/VitalsSection/CharacterNameField" unique_id=768350209] [node name="CharacterNameEntry" type="LineEdit" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection/CharacterNameField" unique_id=768350209]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
placeholder_text = "Shaq the Enormous" placeholder_text = "Shaq the Enormous"
[node name="CharacterClassField" type="HBoxContainer" parent="VBoxContainer/VitalsSection" unique_id=285886400] [node name="CharacterClassField" type="HBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection" unique_id=285886400]
layout_mode = 2 layout_mode = 2
[node name="CharacterClassLabel" type="Label" parent="VBoxContainer/VitalsSection/CharacterClassField" unique_id=1412992125] [node name="CharacterClassLabel" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection/CharacterClassField" unique_id=1412992125]
layout_mode = 2 layout_mode = 2
text = "Class: " text = "Class: "
[node name="CharacterClassOptions" type="OptionButton" parent="VBoxContainer/VitalsSection/CharacterClassField" unique_id=1792788958] [node name="CharacterClassOptions" type="OptionButton" parent="CenterContainer/VBoxContainer/HBoxContainer/VitalsSection/CharacterClassField" unique_id=1792788958]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer" unique_id=2049688047] [node name="AbilitiesSection" type="VBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer" unique_id=8891070]
layout_mode = 2 layout_mode = 2
[node name="AbilitiesSection" type="VBoxContainer" parent="VBoxContainer" unique_id=8891070] [node name="SectionLabelAbilities" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection" unique_id=1587217776]
layout_mode = 2
[node name="SectionLabelAbilities" type="Label" parent="VBoxContainer/AbilitiesSection" unique_id=1587217776]
layout_mode = 2 layout_mode = 2
theme_override_font_sizes/font_size = 32 theme_override_font_sizes/font_size = 32
text = "Abilities" text = "Abilities"
horizontal_alignment = 1 horizontal_alignment = 1
[node name="AbilitiesGrid" type="GridContainer" parent="VBoxContainer/AbilitiesSection" unique_id=650359354] [node name="Titles" type="HBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection" unique_id=370884680]
layout_mode = 2
[node name="PhysicalAbilitiesTitle" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/Titles" unique_id=200817169]
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 24
text = "Physical"
horizontal_alignment = 1
[node name="MentalAbilitiesTitle" type="Label" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/Titles" unique_id=896416382]
layout_mode = 2
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 24
text = "Mental"
horizontal_alignment = 1
[node name="AbilitiesGrid" type="HBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection" unique_id=1451988317]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
columns = 2
[node name="AbilityContainer" parent="VBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=711596663 instance=ExtResource("2_50a5s")] [node name="PhysicalAbilities" type="VBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=70778278]
layout_mode = 2
size_flags_horizontal = 3
[node name="STRContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid/PhysicalAbilities" unique_id=711596663 groups=["ability_containers"] instance=ExtResource("2_50a5s")]
layout_mode = 2
tooltip_text = "Strength"
ability_name = "STR"
ability_score = 14
[node name="DEXContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid/PhysicalAbilities" unique_id=875091191 groups=["ability_containers"] instance=ExtResource("2_50a5s")]
layout_mode = 2
tooltip_text = "Dexterity"
ability_name = "DEX"
ability_score = 13
[node name="CONContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid/PhysicalAbilities" unique_id=148762443 groups=["ability_containers"] instance=ExtResource("2_50a5s")]
layout_mode = 2
tooltip_text = "Constitution"
ability_name = "CON"
ability_score = 12
[node name="VSeparator" type="VSeparator" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=288608324]
layout_mode = 2 layout_mode = 2
[node name="AbilityContainer2" parent="VBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=875091191 instance=ExtResource("2_50a5s")] [node name="MentalAbilities" type="VBoxContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=1265879662]
layout_mode = 2
size_flags_horizontal = 3
[node name="INTContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid/MentalAbilities" unique_id=742929374 groups=["ability_containers"] instance=ExtResource("2_50a5s")]
layout_mode = 2
tooltip_text = "Intelligence"
ability_name = "INT"
ability_score = 8
[node name="WISContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid/MentalAbilities" unique_id=1462506418 groups=["ability_containers"] instance=ExtResource("2_50a5s")]
layout_mode = 2
tooltip_text = "Wisdom"
ability_name = "WIS"
ability_score = 11
[node name="CHAContainer" parent="CenterContainer/VBoxContainer/HBoxContainer/AbilitiesSection/AbilitiesGrid/MentalAbilities" unique_id=113539656 groups=["ability_containers"] instance=ExtResource("2_50a5s")]
layout_mode = 2
tooltip_text = "Charisma"
ability_name = "CHA"
[node name="HSeparator3" type="HSeparator" parent="CenterContainer/VBoxContainer" unique_id=1942684785]
layout_mode = 2 layout_mode = 2
[node name="AbilityContainer3" parent="VBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=148762443 instance=ExtResource("2_50a5s")] [node name="FinishButton" type="Button" parent="CenterContainer/VBoxContainer" unique_id=586398404]
layout_mode = 2
[node name="AbilityContainer4" parent="VBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=742929374 instance=ExtResource("2_50a5s")]
layout_mode = 2
[node name="AbilityContainer5" parent="VBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=1462506418 instance=ExtResource("2_50a5s")]
layout_mode = 2
[node name="AbilityContainer6" parent="VBoxContainer/AbilitiesSection/AbilitiesGrid" unique_id=113539656 instance=ExtResource("2_50a5s")]
layout_mode = 2
[node name="HSeparator3" type="HSeparator" parent="VBoxContainer" unique_id=1942684785]
layout_mode = 2
[node name="FinishButton" type="Button" parent="VBoxContainer" unique_id=586398404]
layout_mode = 2 layout_mode = 2
text = "Finish" text = "Finish"

View File

@ -40,7 +40,7 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
} }
}, },
CharacterClass.BARD: { CharacterClass.BARD: {
"known_for": "Razzle-dazzle", "known_for": "Performance",
"primary_abilities": [ "primary_abilities": [
Abilities.Ability.CHARISMA Abilities.Ability.CHARISMA
], ],
@ -75,7 +75,7 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
} }
}, },
CharacterClass.CLERIC: { CharacterClass.CLERIC: {
"known_for": "Devotion", "known_for": "Miracles",
"primary_abilities": [ "primary_abilities": [
Abilities.Ability.WISDOM Abilities.Ability.WISDOM
], ],
@ -97,7 +97,7 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
} }
}, },
CharacterClass.DRUID: { CharacterClass.DRUID: {
"known_for": "Vibes", "known_for": "Primal power; vibes",
"primary_abilities": [ "primary_abilities": [
Abilities.Ability.WISDOM Abilities.Ability.WISDOM
], ],
@ -122,123 +122,123 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
}, },
}, },
CharacterClass.FIGHTER: { CharacterClass.FIGHTER: {
"known_for": "...fighting?", "known_for": "Fighting",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 15,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 14,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 8,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 10,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 12,
}, },
}, },
CharacterClass.MONK: { CharacterClass.MONK: {
"known_for": "", "known_for": "Focus; Tim Duncan",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 12,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 15,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 10,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 14,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 8,
}, },
}, },
CharacterClass.PALADIN: { CharacterClass.PALADIN: {
"known_for": "", "known_for": "Devotion",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 15,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 10,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 8,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 12,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 14,
}, },
}, },
CharacterClass.RANGER: { CharacterClass.RANGER: {
"known_for": "", "known_for": "Instincts; primal magic",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 12,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 15,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 8,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 14,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 10,
}, },
}, },
CharacterClass.ROGUE: { CharacterClass.ROGUE: {
"known_for": "", "known_for": "Stealth, subterfuge",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 12,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 15,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 14,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 10,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 8,
}, },
}, },
CharacterClass.SORCERER: { CharacterClass.SORCERER: {
"known_for": "", "known_for": "Raw power; natural talent",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 10,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 13,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 14,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 8,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 12,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 15,
}, },
}, },
CharacterClass.WARLOCK: { CharacterClass.WARLOCK: {
"known_for": "", "known_for": "Occult; Kyrie or Rodman",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 8,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 14,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 12,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 10,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 15,
}, },
}, },
CharacterClass.WIZARD: { CharacterClass.WIZARD: {
"known_for": "", "known_for": "Studying; Kobe?",
"primary_abilities": [], "primary_abilities": [],
"primary_abilities_number_to_choose": 1, "primary_abilities_number_to_choose": 1,
"skill_proficiencies": [], "skill_proficiencies": [],
"skill_proficiencies_number_to_choose": 1, "skill_proficiencies_number_to_choose": 1,
"default_ability_scores": { "default_ability_scores": {
Abilities.Ability.STRENGTH: 1, Abilities.Ability.STRENGTH: 8,
Abilities.Ability.DEXTERITY: 1, Abilities.Ability.DEXTERITY: 12,
Abilities.Ability.CONSTITUTION: 1, Abilities.Ability.CONSTITUTION: 13,
Abilities.Ability.INTELLIGENCE: 1, Abilities.Ability.INTELLIGENCE: 15,
Abilities.Ability.WISDOM: 1, Abilities.Ability.WISDOM: 14,
Abilities.Ability.CHARISMA: 1, Abilities.Ability.CHARISMA: 10,
}, },
} }
} }

View File

@ -1,21 +1,39 @@
@tool
class_name AbilityContainer class_name AbilityContainer
extends HBoxContainer extends HBoxContainer
var ability_name: String = "SomeAbility": set = set_ability_name @export var ability_name: String = "AbilityName"#: set = set_ability_name
var ability_score: int: set = set_ability_score @export var ability_score: int = 10: set = set_ability_score
var modifier_value: int = 0
var _modifier_box_display_value: int
@onready var ability_label: Label = $AbilityLabel @onready var ability_label: Label = $AbilityLabel
@onready var ability_score_button: OptionButton = $AbilityScore @onready var ability_score_box: SpinBox = $AbilityScoreBox
@onready var modifier_box: SpinBox = $ModifierBox
func _ready() -> void: func _ready() -> void:
for score in 20: _connect_signals()
ability_score_button.add_item(str(score + 1)) ability_score_box.value = ability_score
ability_label.text = ability_name + ": "
func set_ability_name(a_n: String) -> void: func on_ability_score_value_changed(value: float) -> void:
print_debug("Creating an Ability Container for %s" % a_n) modifier_value = floor((value - 10.0) / 2.0)
ability_name = a_n _modifier_box_display_value = abs(floor((value - 10.0) / 2.0))
ability_label.text = ability_name modifier_box.value = _modifier_box_display_value
if modifier_value < 0:
modifier_box.prefix = "-"
else:
modifier_box.prefix = "+"
func set_ability_score(a_s: int) -> void: #func set_ability_name(new_name: String) -> void:
ability_score = a_s #ability_name = new_name
ability_score_button.select(a_s - 1) #ability_label.text = ability_name + ": "
func set_ability_score(score: int) -> void:
ability_score = score
if ability_score_box:
ability_score_box.value = score
func _connect_signals() -> void:
ability_score_box.connect("value_changed", on_ability_score_value_changed)

View File

@ -5,17 +5,18 @@ const ABILITY_CONTAINER = preload("uid://cj2817cl63cf")
var ability_containers: Array[Node] var ability_containers: Array[Node]
@onready var character_class_options: OptionButton = %CharacterClassOptions @onready var character_class_options: OptionButton = %CharacterClassOptions
@onready var abilities_grid: GridContainer = %AbilitiesGrid @onready var abilities_grid: HBoxContainer = %AbilitiesGrid
func _ready() -> void: func _ready() -> void:
_connect_signals() _connect_signals()
for character_class in Classes.CharacterClass: for character_class in Classes.CharacterClass:
character_class_options.add_item(str(character_class).to_pascal_case()) character_class_options.add_item(str(character_class).to_pascal_case())
var character_class_info: Dictionary = Classes.class_info[Classes.CharacterClass[character_class]] var character_class_info: Dictionary = Classes.class_info[Classes.CharacterClass[character_class]]
if character_class_info.get("known_for"): if character_class_info.get("known_for"):
character_class_options.set_item_tooltip(Classes.CharacterClass[character_class], 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() ability_containers = get_tree().get_nodes_in_group("ability_containers")
for ability in Abilities.Ability: for ability in Abilities.Ability:
var ability_container: AbilityContainer = ability_containers[Abilities.Ability[ability]] var ability_container: AbilityContainer = ability_containers[Abilities.Ability[ability]]
ability_container.ability_name = str(ability).to_pascal_case() ability_container.ability_name = str(ability).to_pascal_case()