Randoloot/tests/previews/enemy_explosion_preview.gd
2026-10-31 16:08:17 +01:00

51 lines
2.0 KiB
GDScript

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)