39 lines
976 B
GDScript
39 lines
976 B
GDScript
extends "res://ui/menus/ModalMenu.gd"
|
|
|
|
@onready var panel: Control = $Panel
|
|
@onready var status: Label = $StatusLabel
|
|
|
|
var building_id: int = 0
|
|
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
panel.changed.connect(refresh)
|
|
|
|
|
|
func open_for(next_building_id: int) -> void:
|
|
building_id = next_building_id
|
|
panel.building_id = building_id
|
|
open_menu()
|
|
refresh()
|
|
|
|
|
|
func close_menu() -> void:
|
|
super.close_menu()
|
|
building_id = 0
|
|
panel.building_id = 0
|
|
|
|
|
|
func refresh() -> void:
|
|
if building_id == 0:
|
|
return
|
|
panel.building_id = building_id
|
|
panel.refresh()
|
|
var ordered: int = GameState.garrison_desired_total(building_id)
|
|
var crewed: int = GameState.garrison_crew(building_id).size()
|
|
if ordered == 0:
|
|
status.text = "No vessels ordered. Only armed vessels can hold a position."
|
|
elif crewed >= ordered:
|
|
status.text = "Garrison at full strength"
|
|
else:
|
|
status.text = "%d of %d berths crewed - vessels are sent from the mothership as they become available" % [crewed, ordered]
|