extends Node const GAME := preload("res://scenes/game/game.tscn") func _ready() -> void: GameState.start_new_run() GameState.captain.skills["reactor_overload"] = 1 GameState.captain.equipped_skills[0] = "reactor_overload" GameState.captain.skill_cooldowns["reactor_overload"] = 25.0 GameState.captain.skill_durations["reactor_overload"] = 3.0 var game := GAME.instantiate() as Node2D add_child(game) await get_tree().process_frame game.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) for enemy in get_tree().get_nodes_in_group("enemies"): enemy.set_physics_process(false) assert(GameState.captain.skill_cooldowns.is_empty()) assert(GameState.captain.skill_durations.is_empty()) var hud := game.get_node("HUD") var captain := hud.get_node("HUDRoot/CaptainPanel") as PanelContainer assert(captain.size.x <= 250) assert(captain.get_theme_stylebox("panel").bg_color.a > 0.0) assert(captain.get_node("Contents/PortraitRow/AvatarFrame/CaptainAvatar").custom_minimum_size == Vector2(54, 54)) assert(hud.get_node("HUDRoot/TopNavigation").get_child_count() == 1) assert(hud.get_node("HUDRoot/TopNavigation").get_child(0).get_node("RoundedArtwork").texture != null) var inventory := ship.get_node("ShipInventory") as ShipInventory var item := ItemInstance.new() item.definition = preload("res://resources/items/cloak.tres") assert(inventory.add_item(item)) assert(inventory.move_item("cargo", inventory.cargo.find(item), "extension", 0)) assert(ship.call("activate_ability", 0)) assert(ship.call("is_cloaked")) assert(GameState.captain.activate_skill("reactor_overload", ship)) assert(ship.call("get_ability_cooldown", 0) > 0.0) assert(not GameState.captain.skill_cooldowns.is_empty()) ship.call("take_damage", 100000.0) assert(ship.get("_is_destroyed")) assert(not ship.call("is_cloaked")) assert(ship.call("get_ability_cooldown", 0) == 0.0) assert(GameState.captain.skill_cooldowns.is_empty()) assert(GameState.captain.skill_durations.is_empty()) inventory.preserve_for_restart() game.free() GameState.system_level += 1 GameState.system_seed = GameState.create_system_seed() GameState.captain.skill_cooldowns["reactor_overload"] = 12.0 GameState.captain.skill_durations["reactor_overload"] = 2.0 var next_game := GAME.instantiate() as Node2D add_child(next_game) await get_tree().process_frame var next_ship := next_game.get_node("PlayerShip") assert(next_ship.call("get_ability_cooldown", 0) == 0.0) assert(GameState.captain.skill_cooldowns.is_empty()) assert(GameState.captain.skill_durations.is_empty()) assert(GameState.captain.get_skill_rank("reactor_overload") == 1) assert(next_ship.get_node("ShipInventory").extension_slots[0].definition == item.definition) print("HUD_COOLDOWN_RESET_TEST: PASS (death/new board reset captain and extension cooldowns/effects, equipment and learned skills retained, compact transparent captain, new artwork)") get_tree().quit()