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

45 lines
1.7 KiB
GDScript

extends Node
func _ready() -> void:
GameState.start_new_run()
var enemy := preload("res://scenes/game/enemy_ship.tscn").instantiate()
add_child(enemy)
enemy.set_physics_process(false)
enemy.max_hull = 100.0
enemy.max_shields = 200.0
enemy.hull = 9.0
enemy.shields = 0.0
assert(enemy.is_retreating())
enemy.regenerate_defenses(0.5)
assert(is_equal_approx(enemy.hull, 9.5) and is_equal_approx(enemy.shields, 1.0))
assert(enemy.is_retreating())
enemy.regenerate_defenses(0.5)
assert(is_equal_approx(enemy.hull, 10.0) and not enemy.is_retreating())
enemy.regenerate_defenses(1000.0)
assert(enemy.hull == enemy.max_hull and enemy.shields == enemy.max_shields)
enemy.hull = 0.0
enemy.regenerate_defenses(10.0)
assert(enemy.hull == 0.0)
enemy.loot_tier = 2
enemy.hull = 25.0
enemy.shields = 40.0
enemy.regenerate_defenses(1000.0)
assert(enemy.hull == 25.0 and enemy.shields == 40.0)
enemy.loot_tier = 1
enemy.regenerate_defenses(1.0)
assert(enemy.hull == 26.0 and enemy.shields == 42.0)
var button := Button.new()
button.set_script(preload("res://scripts/ui/navigation_button.gd"))
button.configure_navigation(null, Color("b9a0ef"), "KAPITAN")
button.name = "OpenCaptainSkills"
add_child(button)
var original := (button.get_theme_stylebox("normal") as StyleBoxFlat).shadow_size
GameState.captain.learning_points = 1
button._process(0.4)
assert((button.get_theme_stylebox("normal") as StyleBoxFlat).shadow_size > original)
GameState.captain.learning_points = 0
button._process(0.1)
assert((button.get_theme_stylebox("normal") as StyleBoxFlat).shadow_size == original)
print("ENEMY_REPAIR_NOTIFICATION_TEST: PASS 1%/s, retreat threshold, caps, dead enemy, boss regeneration disabled, elite regeneration, notification reset")
get_tree().quit()