Randoloot/tests/ships/construction_resources_test.gd
2026-10-19 22:33:24 +02:00

34 lines
1.5 KiB
GDScript

extends Node
const RECIPES := preload("res://scripts/items/crafting_recipes.gd")
func _ready() -> void:
GameState.start_new_run()
var captain: Resource = GameState.captain
var hud := preload("res://scripts/game/flight_hud.gd").new()
hud._give_debug_resources()
for mineral in preload("res://scripts/planets/planet_rewards.gd").MATERIAL_KEYS:
if mineral != "parts": assert(captain.minerals[mineral] == 100)
assert(captain.parts == 100 and captain.expedition.analysis_samples == 100)
hud._give_debug_resources()
assert(captain.parts == 200 and captain.expedition.analysis_samples == 200)
hud.free()
var screen := preload("res://scenes/planets/freighter_interior.tscn").instantiate()
add_child(screen)
captain.minerals.iron = 99
screen._construct_room("expansion_2")
assert(not screen.deck.is_built("expansion_2") and captain.minerals.titanium == 200)
captain.minerals.iron = 200
screen._select_section("expansion_2")
screen._construct_room("expansion_2")
assert(screen.deck.is_built("expansion_2"))
for mineral in RECIPES.MINERALS: assert(captain.minerals[mineral] == 100)
assert(captain.minerals.silicon == 200 and captain.parts == 200)
screen._construct_room("expansion_2")
assert(captain.minerals.iron == 100)
screen._construct_room("cabin_1")
for mineral in RECIPES.MINERALS: assert(captain.minerals[mineral] == 0)
screen._select_section("storage")
for frame in 5: await get_tree().process_frame
print("CONSTRUCTION_RESOURCES_TEST_OK")
screen.free()
get_tree().quit()