46 lines
2.1 KiB
GDScript
46 lines
2.1 KiB
GDScript
extends Node
|
|
|
|
const MENU := preload("res://scenes/ui/main_menu.tscn")
|
|
const CATALOG := preload("res://scripts/game/ship_catalog.gd")
|
|
|
|
func _ready() -> void:
|
|
get_tree().create_timer(10.0).timeout.connect(func() -> void:
|
|
push_error("SHIP_SELECTION_DRAWER_TEST: timed out")
|
|
get_tree().quit(1)
|
|
)
|
|
var menu := MENU.instantiate() as Control
|
|
get_tree().root.add_child.call_deferred(menu)
|
|
await get_tree().process_frame
|
|
await get_tree().process_frame
|
|
get_tree().current_scene = menu
|
|
var panel := menu.get_node("ShipSelectionPanel") as Control
|
|
assert(not panel.visible)
|
|
var start := menu.get_node("MenuLayout/StartButton") as Button
|
|
start.pressed.emit()
|
|
assert(get_tree().current_scene == menu and panel.visible)
|
|
assert(is_equal_approx(panel.position.x, menu.size.x))
|
|
await get_tree().create_timer(0.35).timeout
|
|
assert(is_equal_approx(panel.position.x + panel.size.x, menu.size.x))
|
|
var grid := panel.get_node("Layout/ShipScroll/ShipGrid") as GridContainer
|
|
assert(grid.columns == 2 and grid.get_child_count() == 4)
|
|
assert(not panel.get_node("Layout/ShipScroll").get_v_scroll_bar().visible)
|
|
assert(not panel.get_node("Layout/ShipScroll").get_h_scroll_bar().visible)
|
|
assert(not panel.has_node("Layout/Footer/ContinueButton"))
|
|
panel.get_node("Layout/Footer/CloseButton").pressed.emit()
|
|
await get_tree().create_timer(0.25).timeout
|
|
assert(not panel.visible and not start.disabled)
|
|
start.pressed.emit()
|
|
await get_tree().create_timer(0.35).timeout
|
|
GameState.captain.credits = 999
|
|
grid.get_node("Ship7").pressed.emit()
|
|
assert(GameState.selected_ship_path == CATALOG.texture_path(CATALOG.SHIPS[3]))
|
|
await get_tree().process_frame
|
|
await get_tree().process_frame
|
|
await get_tree().process_frame
|
|
var game := get_tree().current_scene
|
|
assert(game.scene_file_path == "res://scenes/game/game.tscn")
|
|
assert(GameState.captain.credits == 0 and GameState.system_level == 1)
|
|
assert(game.get_node("PlayerShip").get("max_energy") == 125.0)
|
|
print("SHIP_SELECTION_DRAWER_TEST: PASS (Start opens drawer in menu, animation, four ships, close/reopen, one-click launch, selected ship stats, fresh run)")
|
|
get_tree().quit()
|