From a0df0be86213d77e041c894963f154c54b04b8c5 Mon Sep 17 00:00:00 2001 From: henry Date: Thu, 2 Jul 2026 08:24:02 +0100 Subject: [PATCH] Minor testing logic update. --- scripts/power_up_spawner.gd | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/scripts/power_up_spawner.gd b/scripts/power_up_spawner.gd index bfabd6d..716eecf 100644 --- a/scripts/power_up_spawner.gd +++ b/scripts/power_up_spawner.gd @@ -26,8 +26,36 @@ func _on_spawn_timer_timeout() -> void: if test_mode: _spawn_test_pickups() else: - # TODO: normal mode — spawn a single random pickup. - pass + _spawn_normal_pickup() + + +func _spawn_normal_pickup() -> void: + # Spawn a single random pickup at a position near the player. + if all_weapon_shots.is_empty(): + return + + var pickup := _spawn_pickup( + all_weapon_shots[randi() % all_weapon_shots.size()] + ) + if pickup == null or not is_instance_valid(pickup): + return + + # Position: centered horizontally, above the player with vertical padding. + var player_node := get_node_or_null("../Player") + if player_node != null: + pickup.position = Vector2( + randf_range(40.0, screensize.x - 40.0), + player_node.position.y - randf_range(80.0, 200.0) + ) + else: + pickup.position = Vector2( + randf_range(40.0, screensize.x - 40.0), + randf_range(30.0, screensize.y * 0.4) + ) + + add_child(pickup) + _pickups_spawned += 1 + _pickups_remaining = max(_pickups_remaining, _pickups_spawned) func _spawn_test_pickups() -> void: