feat: Implement core game mechanics including player, enemies, bullets, HUD, and level setup.

This commit is contained in:
2025-11-21 13:18:53 +01:00
commit 245e3e141d
39 changed files with 823 additions and 0 deletions

34
scripts/ammo_spawner.gd Normal file
View 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)