basketball-tactics/scripts/ui/ability_container.gd

40 lines
1.2 KiB
GDScript

@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)