feat: Implement core game mechanics including player, enemies, bullets, HUD, and level setup.
This commit is contained in:
34
scripts/ammo_spawner.gd
Normal file
34
scripts/ammo_spawner.gd
Normal file
@@ -0,0 +1,34 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user