Files
idle/big_number_progress_bar.gd
2026-03-14 09:22:52 +01:00

38 lines
1020 B
GDScript

extends HBoxContainer
@export var currency: GameState.CurrencyType
@onready var _label_start = $LabelStart
@onready var _label_end = $LabelEnd
@onready var _progress_bar = $ProgressBar
var _start: BigNumber
var _end: BigNumber
var _current: BigNumber
func set_limits(start: BigNumber, end: BigNumber) -> void:
_start = start
_end = end
_label_start.text = _start.to_string_suffix(2)
_label_end.text = _end.to_string_suffix(2)
_progress_bar.min_value = _start.get_ratio(_end)
_progress_bar.max_value = _end.get_ratio(_start)
func _ready() -> void:
GameState.currency_changed.connect(_on_currency_changed)
match currency:
GameState.CurrencyType.gold:
_current = GameState.gold
GameState.CurrencyType.gems:
_current = GameState.gems
set_limits(_current, _current.add(BigNumber.new(1, 1)))
func _on_currency_changed(changed_currency: GameState.CurrencyType, amount: BigNumber) -> void:
if changed_currency != currency:
return
_current = amount
_progress_bar.value = amount.get_ratio(_end)