37 lines
998 B
GDScript
37 lines
998 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:
|
|
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)
|