worked more on character creator
This commit is contained in:
parent
9cd1f5c460
commit
2f925561c1
@ -17,11 +17,10 @@ enum CharacterClass {
|
||||
|
||||
var class_info: Dictionary[CharacterClass, Dictionary] = {
|
||||
CharacterClass.BARBARIAN: {
|
||||
"description": "Rage",
|
||||
"known_for": "Rage",
|
||||
"primary_abilities": [
|
||||
Abilities.Ability.STRENGTH
|
||||
],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [
|
||||
Skills.Skill.ANIMAL_HANDLING,
|
||||
Skills.Skill.ATHLETICS,
|
||||
@ -30,7 +29,7 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
|
||||
Skills.Skill.PERCEPTION,
|
||||
Skills.Skill.SURVIVAL,
|
||||
],
|
||||
"skill_proficiency_number_to_choose": 2,
|
||||
"skill_proficiencies_number_to_choose": 2,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 15,
|
||||
Abilities.Ability.DEXTERITY: 13,
|
||||
@ -41,11 +40,10 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
|
||||
}
|
||||
},
|
||||
CharacterClass.BARD: {
|
||||
"description": "Razzle-dazzle",
|
||||
"known_for": "Razzle-dazzle",
|
||||
"primary_abilities": [
|
||||
Abilities.Ability.CHARISMA
|
||||
],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [
|
||||
Skills.Skill.ACROBATICS,
|
||||
Skills.Skill.ANIMAL_HANDLING,
|
||||
@ -66,7 +64,7 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
|
||||
Skills.Skill.STEALTH,
|
||||
Skills.Skill.SURVIVAL,
|
||||
],
|
||||
"skill_proficiency_number_to_choose": 3,
|
||||
"skill_proficiencies_number_to_choose": 3,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 8,
|
||||
Abilities.Ability.DEXTERITY: 14,
|
||||
@ -75,5 +73,172 @@ var class_info: Dictionary[CharacterClass, Dictionary] = {
|
||||
Abilities.Ability.WISDOM: 10,
|
||||
Abilities.Ability.CHARISMA: 15
|
||||
}
|
||||
},
|
||||
CharacterClass.CLERIC: {
|
||||
"known_for": "Devotion",
|
||||
"primary_abilities": [
|
||||
Abilities.Ability.WISDOM
|
||||
],
|
||||
"skill_proficiencies": [
|
||||
Skills.Skill.HISTORY,
|
||||
Skills.Skill.INSIGHT,
|
||||
Skills.Skill.MEDICINE,
|
||||
Skills.Skill.PERSUASION,
|
||||
Skills.Skill.RELIGION,
|
||||
],
|
||||
"skill_proficiencies_number_to_choose": 2,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 14,
|
||||
Abilities.Ability.DEXTERITY: 8,
|
||||
Abilities.Ability.CONSTITUTION: 13,
|
||||
Abilities.Ability.INTELLIGENCE: 10,
|
||||
Abilities.Ability.WISDOM: 15,
|
||||
Abilities.Ability.CHARISMA: 12,
|
||||
}
|
||||
},
|
||||
CharacterClass.DRUID: {
|
||||
"known_for": "Vibes",
|
||||
"primary_abilities": [
|
||||
Abilities.Ability.WISDOM
|
||||
],
|
||||
"skill_proficiencies": [
|
||||
Skills.Skill.ANIMAL_HANDLING,
|
||||
Skills.Skill.ARCANA,
|
||||
Skills.Skill.INSIGHT,
|
||||
Skills.Skill.MEDICINE,
|
||||
Skills.Skill.NATURE,
|
||||
Skills.Skill.PERCEPTION,
|
||||
Skills.Skill.RELIGION,
|
||||
Skills.Skill.SURVIVAL,
|
||||
],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 8,
|
||||
Abilities.Ability.DEXTERITY: 12,
|
||||
Abilities.Ability.CONSTITUTION: 14,
|
||||
Abilities.Ability.INTELLIGENCE: 13,
|
||||
Abilities.Ability.WISDOM: 15,
|
||||
Abilities.Ability.CHARISMA: 10,
|
||||
},
|
||||
},
|
||||
CharacterClass.FIGHTER: {
|
||||
"known_for": "...fighting?",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.MONK: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.PALADIN: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.RANGER: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.ROGUE: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.SORCERER: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.WARLOCK: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
},
|
||||
CharacterClass.WIZARD: {
|
||||
"known_for": "",
|
||||
"primary_abilities": [],
|
||||
"primary_abilities_number_to_choose": 1,
|
||||
"skill_proficiencies": [],
|
||||
"skill_proficiencies_number_to_choose": 1,
|
||||
"default_ability_scores": {
|
||||
Abilities.Ability.STRENGTH: 1,
|
||||
Abilities.Ability.DEXTERITY: 1,
|
||||
Abilities.Ability.CONSTITUTION: 1,
|
||||
Abilities.Ability.INTELLIGENCE: 1,
|
||||
Abilities.Ability.WISDOM: 1,
|
||||
Abilities.Ability.CHARISMA: 1,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +1,21 @@
|
||||
class_name AbilityContainer
|
||||
extends HBoxContainer
|
||||
|
||||
var ability_name : String = "SomeAbility": set = set_ability_name
|
||||
var ability_name: String = "SomeAbility": set = set_ability_name
|
||||
var ability_score: int: set = set_ability_score
|
||||
|
||||
@onready var ability_label: Label = $AbilityLabel
|
||||
@onready var ability_score: OptionButton = $AbilityScore
|
||||
@onready var ability_score_button: OptionButton = $AbilityScore
|
||||
|
||||
func _ready() -> void:
|
||||
for score in 20:
|
||||
ability_score.add_item(str(score + 1))
|
||||
ability_score_button.add_item(str(score + 1))
|
||||
|
||||
func set_ability_name(a_n: String) -> void:
|
||||
print_debug("Creating an Ability Container for %s" % a_n)
|
||||
ability_name = a_n
|
||||
ability_label.text = ability_name
|
||||
|
||||
func set_ability_score(a_s: int) -> void:
|
||||
ability_score = a_s
|
||||
ability_score_button.select(a_s - 1)
|
||||
|
||||
@ -2,18 +2,32 @@ 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:
|
||||
var ability_containers = abilities_grid.get_children()
|
||||
_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()
|
||||
#var new_container: AbilityContainer = ABILITY_CONTAINER.instantiate()
|
||||
#new_container.ability_name = str(ability).to_pascal_case()
|
||||
#abilities_grid.add_child(new_container)
|
||||
|
||||
for character_class in Classes.CharacterClass:
|
||||
print_debug(character_class)
|
||||
character_class_options.add_item(str(character_class).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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user