61 lines
2.6 KiB
GDScript
61 lines
2.6 KiB
GDScript
extends Node
|
|
|
|
const GAME := preload("res://scenes/game/game.tscn")
|
|
|
|
func _ready() -> void:
|
|
get_tree().create_timer(10.0).timeout.connect(func() -> void:
|
|
push_error("CAPTAIN_SHIP_DRAWER_TEST: timed out")
|
|
get_tree().quit(1)
|
|
)
|
|
GameState.start_new_run()
|
|
var game := GAME.instantiate() as Node2D
|
|
add_child(game)
|
|
await get_tree().process_frame
|
|
for enemy in get_tree().get_nodes_in_group("enemies"):
|
|
enemy.set_physics_process(false)
|
|
var ship := game.get_node("PlayerShip") as CharacterBody2D
|
|
ship.set_physics_process(false)
|
|
ship.get_node("WeaponController").set_physics_process(false)
|
|
var hud := game.get_node("HUD")
|
|
var root := hud.get_node("HUDRoot") as Control
|
|
var drawer := root.get_node("CaptainShipDrawer") as Control
|
|
var toggle := root.get_node("CaptainShipToggle") as Button
|
|
var captain := drawer.get_node("Scroll/Contents/CaptainPanel")
|
|
var equipment := drawer.get_node("Scroll/Contents/ShipEquipmentPanel")
|
|
assert(captain.get_parent() == equipment.get_parent())
|
|
assert(not drawer.visible)
|
|
toggle.pressed.emit()
|
|
await get_tree().create_timer(0.3).timeout
|
|
assert(drawer.visible and is_equal_approx(drawer.position.x + drawer.size.x, root.size.x - 8.0))
|
|
GameState.captain.learning_points = 1
|
|
GameState.captain.emit_changed()
|
|
captain.get_node("Contents/Skills/gunner/Train_gunner").pressed.emit()
|
|
assert(GameState.captain.get_skill_rank("gunner") == 1)
|
|
equipment.get_node("Contents/InventoryButton").pressed.emit()
|
|
await get_tree().create_timer(0.3).timeout
|
|
var inventory_panel: Control = hud.get("inventory_panel")
|
|
assert(inventory_panel.visible and inventory_panel.get("_drawer_open"))
|
|
var inventory := ship.get_node("ShipInventory") as ShipInventory
|
|
var item := ItemInstance.new()
|
|
item.definition = preload("res://resources/items/engine_extension.tres")
|
|
assert(inventory.add_item(item))
|
|
assert(inventory.move_item("cargo", inventory.cargo.find(item), "module", 0))
|
|
assert(ship.get("max_speed") > ship.get("base_max_speed"))
|
|
toggle.pressed.emit()
|
|
await get_tree().create_timer(0.3).timeout
|
|
assert(not drawer.visible and not inventory_panel.visible)
|
|
toggle.pressed.emit()
|
|
await get_tree().create_timer(0.3).timeout
|
|
assert(drawer.visible and not inventory_panel.visible)
|
|
var original_size := root.size
|
|
root.size = Vector2(root.size.x, 480)
|
|
hud.call("_layout_sidebar")
|
|
await get_tree().process_frame
|
|
await get_tree().process_frame
|
|
var scroll := drawer.get_node("Scroll") as ScrollContainer
|
|
assert(scroll.get_v_scroll_bar().visible)
|
|
root.size = original_size
|
|
hud.call("_layout_sidebar")
|
|
print("CAPTAIN_SHIP_DRAWER_TEST: PASS (merged panel, slide, close/reopen, skills, inventory, equipment stats)")
|
|
get_tree().quit()
|