@tool class_name AbilityContainer extends HBoxContainer @export var ability_name: String = "AbilityName"#: set = set_ability_name @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_score_box: SpinBox = $AbilityScoreBox @onready var modifier_box: SpinBox = $ModifierBox func _ready() -> void: _connect_signals() ability_score_box.value = ability_score ability_label.text = ability_name + ": " func on_ability_score_value_changed(value: float) -> void: modifier_value = floor((value - 10.0) / 2.0) _modifier_box_display_value = abs(floor((value - 10.0) / 2.0)) modifier_box.value = _modifier_box_display_value if modifier_value < 0: modifier_box.prefix = "-" else: modifier_box.prefix = "+" #func set_ability_name(new_name: String) -> void: #ability_name = new_name #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)