62 lines
3.0 KiB
GDScript
62 lines
3.0 KiB
GDScript
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()
|