From 6f529e3ffd097c4050b50fea3ec3526e73d8b035 Mon Sep 17 00:00:00 2001 From: Artur David Date: Thu, 18 Jun 2026 10:42:29 +0200 Subject: [PATCH] purge summon: continuous light jitter during animation, short sharp shake on unleash --- scripts/purge.gd | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/scripts/purge.gd b/scripts/purge.gd index d25ebf6..ba76cab 100644 --- a/scripts/purge.gd +++ b/scripts/purge.gd @@ -2,8 +2,12 @@ extends Node2D const ELITE_DAMAGE_PCT := 0.75 const FLASH_FADE_DURATION := 0.6 +const SUMMON_SHAKE := 2.0 @onready var summon_circle: AnimatedSprite2D = $SummonCircle/AnimatedSprite2D +@onready var camera = get_node("/root/Game/Camera2D") + +var is_summoning := true func _ready() -> void: summon_circle.sprite_frames = summon_circle.sprite_frames.duplicate() @@ -11,9 +15,18 @@ func _ready() -> void: summon_circle.animation_finished.connect(_unleash) summon_circle.play("default") +func _process(delta: float) -> void: + if is_summoning: + camera.offset = Vector2( + randf_range(-SUMMON_SHAKE, SUMMON_SHAKE), + randf_range(-SUMMON_SHAKE, SUMMON_SHAKE) + ) + func _unleash() -> void: - var camera = get_node("/root/Game/Camera2D") - camera.shake(0.5, 1.5) + is_summoning = false + set_process(false) + camera.offset = Vector2.ZERO + camera.shake(0.2, 6.0) for enemy in get_tree().get_nodes_in_group("enemies"): if not is_instance_valid(enemy):