extends Node2D const EFFECT := preload("res://scripts/game/enemy_destruction_effect.gd") const SHIPS := preload("res://scripts/items/alien_ship_catalog.gd") func _ready() -> void: RenderingServer.set_default_clear_color(Color("070e1c")) get_window().size = Vector2i(1280,900) get_window().content_scale_size = Vector2i(1280,900) var rng := RandomNumberGenerator.new() rng.seed = 18 for index in 250: var star := Polygon2D.new() star.polygon = PackedVector2Array([Vector2(-0.6,0),Vector2(0,-0.6),Vector2(0.6,0),Vector2(0,0.6)]) star.position = Vector2(rng.randf()*1280,rng.randf()*900) star.color = Color(0.65,0.8,1,rng.randf_range(0.1,0.5)) add_child(star) label_at("ROZERWANIE KADŁUBA / EKSPLOZJE WROGÓW",Vector2(35,20),22) for tier in 3: label_at(["ZWYKŁY STATEK","ELITA","BOSS"][tier],Vector2(100+tier*410,75),16) for row in 3: var sprite := Sprite2D.new() sprite.texture = SHIPS.TEXTURES[tier*4] sprite.scale = Vector2.ONE * [56.0,68.0,112.0][tier] / maxf(sprite.texture.get_width(),sprite.texture.get_height()) sprite.position = Vector2(210+tier*410,215+row*245) add_child(sprite) var effect := Node2D.new() effect.set_script(EFFECT) effect.play_audio = false effect.configure(sprite,Vector2.ZERO,tier) add_child(effect) effect.set_process(false) effect._elapsed = [0.07,0.3,0.9][row] effect._update_fireballs() effect.queue_redraw() sprite.queue_free() label_at(["Błysk · 0,07 s","Fala i ogień · 0,30 s","Odłamki · 0,90 s"][row],Vector2(110+tier*410,320+row*245),13) if "--capture" in OS.get_cmdline_user_args(): await get_tree().process_frame await RenderingServer.frame_post_draw get_viewport().get_texture().get_image().save_png("res://artifacts/enemy_explosion_preview.png") print("EXPLOSION_PREVIEW_CAPTURED") get_tree().quit() func label_at(value: String, origin: Vector2, font_size: int) -> void: var label := Label.new() label.text = value label.position = origin label.add_theme_font_size_override("font_size",font_size) label.modulate = Color("a8becf") add_child(label)