Files
CatTank/scripts/ammo_spawner.gd

35 lines
947 B
GDScript

extends Node
@export var ammo_scene: PackedScene = preload("res://scenes/ammo_pickup.tscn")
@export var spawn_interval_min: float = 5.0
@export var spawn_interval_max: float = 15.0
@export var spawn_radius: float = 300.0
func _ready():
spawn_loop()
func spawn_loop():
var wait_time = randf_range(spawn_interval_min, spawn_interval_max)
await get_tree().create_timer(wait_time).timeout
spawn_ammo()
spawn_loop()
func spawn_ammo():
var player = get_tree().get_first_node_in_group("player")
if not player:
return
var pickup = ammo_scene.instantiate()
# Randomize type
pickup.ammo_type = randi() % 2 # 0 or 1
pickup.amount = 10 if pickup.ammo_type == 0 else 5 # More AP than HE
# Random position around player
var angle = randf() * TAU
var distance = randf_range(100.0, spawn_radius)
var pos = player.global_position + Vector2.RIGHT.rotated(angle) * distance
pickup.global_position = pos
get_parent().add_child(pickup)