Files
idle/big_number_museum.gd
2026-03-08 12:10:08 +01:00

50 lines
1.7 KiB
GDScript

extends Control
@onready var _generator: CurrencyGenerator = $VBoxContainer2/HBoxContainerGenerators/BuyOneButton
@onready var _name_label: Label = $VBoxContainer2/Label
@onready var _owned_value: Label = $VBoxContainer2/GeneratorStatsGrid/OwnedValue
@onready var _next_cost_value: Label = $VBoxContainer2/GeneratorStatsGrid/NextCostValue
@onready var _production_value: Label = $VBoxContainer2/GeneratorStatsGrid/ProductionValue
func _ready() -> void:
_generator.purchase_completed.connect(_on_generator_updated)
_generator.production_tick.connect(_on_generator_updated)
_generator.purchase_failed.connect(_on_generator_updated)
match _generator.currency:
GameState.CurrencyType.gold:
GameState.gold_changed.connect(_on_currency_changed)
GameState.CurrencyType.gems:
GameState.gems_changed.connect(_on_currency_changed)
_name_label.text = _generator.data.name
_refresh_generator_ui()
func _on_buy_max_pressed() -> void:
_generator.buy_max()
_refresh_generator_ui()
func _on_debug_income_pressed() -> void:
_generator.grant_currency(BigNumber.from_float(100.0))
_refresh_generator_ui()
func _on_currency_changed(_new_value: BigNumber) -> void:
_refresh_generator_ui()
func _on_generator_updated(_a = null, _b = null, _c = null, _d = null) -> void:
_refresh_generator_ui()
func _refresh_generator_ui() -> void:
_owned_value.text = str(_generator.owned)
_next_cost_value.text = _generator.get_next_cost().to_string_suffix(2)
var production_per_second: float = 0.0
if _generator.data != null:
production_per_second = _generator.data.production_per_second(
_generator.owned,
_generator.run_multiplier,
_generator.purchased_count
)
_production_value.text = BigNumber.from_float(production_per_second).to_string_suffix(2)