tli/scripts/ui/buy_ants.gd

64 lines
1.6 KiB
GDScript

extends FollowingUI
class_name BuyAnts
const COUNTER_SIZE: float = 32
var _anthill: Anthill
@onready var buy_nitwit_button: BaseButton = $BuyNitwitButton
@onready var nitwit_price_counter: HoneydewCounter = $NitwitPriceCounter
@onready var buy_gatherer_button: BaseButton = $BuyGathererButton
@onready var gatherer_price_counter: HoneydewCounter = $GathererPriceCounter
@onready var counter: HoneydewCounter = $HoneydewCounter
func _ready() -> void:
assert(buy_nitwit_button != null, "buy_nitwit_button missing!")
assert(nitwit_price_counter != null, "nitwit_price_counter missing!")
assert(buy_gatherer_button != null, "buy_gatherer_button missing!")
assert(gatherer_price_counter != null, "gatherer_price_counter missing!")
assert(counter != null, "counter missing!")
super._ready()
buy_nitwit_button.pressed.connect(_on_buy_nitwit_button_pressed)
buy_gatherer_button.pressed.connect(_on_buy_gatherer_button_pressed)
func _process(delta: float) -> void:
super._process(delta)
if _anthill == null or not visible:
return
counter.update_counter(_anthill.honeydew)
func open(at: Anthill) -> void:
visible = true
_anthill = at
nitwit_price_counter.initialize(
AntNitwit.get_cost(),
AntNitwit.get_cost(),
COUNTER_SIZE,
)
gatherer_price_counter.initialize(
AntGatherer.get_cost(),
AntGatherer.get_cost(),
COUNTER_SIZE,
)
set_target(_anthill.ui_origin)
counter.initialize(_anthill.honeydew, _anthill.max_honeydew)
_open_animation(self)
func close() -> void:
super.close()
_anthill = null
func _on_buy_nitwit_button_pressed() -> void:
_anthill.spawn_nitwit()
func _on_buy_gatherer_button_pressed() -> void:
_anthill.spawn_gatherer()