spaceship/tests/_boss_planet_preview.gd

52 lines
1.6 KiB
GDScript3
Raw Normal View History

2026-09-03 10:33:05 +02:00
extends Node2D
# Stable portrait composition for visually checking #188. The real surface,
# encounter, fleet, UI, minions, open eyes and laser telegraph are all used;
# only their timers are frozen once the representative second phase is laid
# out so a screenshot does not depend on capture timing.
var surface: Node
var laid_out: bool = false
func _ready() -> void:
GameState.reset_new_game()
GameState.intro_active = false
GameState.reset_quests(false)
GameState.planet_name = "Many-Eyed Deep"
GameState.planet_id = "preview:boss"
GameState.planet_definition_id = "boss"
GameState.surviving_ship_count = 3
GameState.surviving_vessel_types = PackedStringArray([
GameState.VESSEL_INTERCEPTOR,
GameState.VESSEL_GAS_BOMBER,
GameState.VESSEL_LASER,
])
surface = load("res://surface/PlanetSurface.tscn").instantiate()
add_child(surface)
surface.get_node("FadeOverlay/FadeRect").visible = false
func _process(_delta: float) -> void:
if laid_out:
return
laid_out = true
var encounter: Node = surface.get_node("SurfaceFeatures/BossEncounter")
var boss: Node2D = encounter.get_node("Boss")
boss.wave_timer = 999.0
boss.laser_timer = 999.0
for i in range(3):
boss.eyes[i].open_eye()
boss.eyes_opened += 1
2026-09-03 11:49:51 +02:00
boss.eyes[i].take_damage(999)
# Show one of the remaining weak points in its attackable state while the
# aggregate bar truthfully sits at half health.
boss.open_next_eye()
2026-09-03 10:33:05 +02:00
boss.spawn_wave()
for minion in get_tree().get_nodes_in_group("boss_minions"):
minion.speed = 0.0
minion.acceleration = 0.0
boss.laser_charge_time = 999.0
boss.fire_laser_volley()
2026-09-03 11:49:51 +02:00
encounter._refresh_status()
2026-09-03 10:33:05 +02:00
get_tree().paused = true