basketball-tactics/scripts/ui/ability_container.gd

40 lines
1.2 KiB
GDScript3
Raw Normal View History

2026-02-21 02:13:53 +00:00
@tool
2026-02-19 17:25:10 +00:00
class_name AbilityContainer
extends HBoxContainer
2026-02-21 02:13:53 +00:00
@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
2026-02-19 17:25:10 +00:00
@onready var ability_label: Label = $AbilityLabel
2026-02-21 02:13:53 +00:00
@onready var ability_score_box: SpinBox = $AbilityScoreBox
@onready var modifier_box: SpinBox = $ModifierBox
2026-02-19 17:25:10 +00:00
func _ready() -> void:
2026-02-21 02:13:53 +00:00
_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 + ": "
2026-02-19 17:25:10 +00:00
2026-02-21 02:13:53 +00:00
func set_ability_score(score: int) -> void:
ability_score = score
if ability_score_box:
ability_score_box.value = score
2026-02-20 02:47:23 +00:00
2026-02-21 02:13:53 +00:00
func _connect_signals() -> void:
ability_score_box.connect("value_changed", on_ability_score_value_changed)