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: match currency: GameState.CurrencyType.gold: GameState.gold_changed.connect(_on_currency_changed) _current = GameState.gold GameState.CurrencyType.gems: GameState.gems_changed.connect(_on_currency_changed) _current = GameState.gems set_limits(_current, _current.add(BigNumber.new(1, 1))) func _on_currency_changed(currency: BigNumber) -> void: _current = currency _progress_bar.value = currency.get_ratio(_end)