game: add enemy manager

This commit is contained in:
2025-08-19 04:31:45 +02:00
parent b1733905ad
commit 0268789c54
4 changed files with 39 additions and 2 deletions

View File

@@ -0,0 +1,24 @@
class_name EnemyManager
extends Node2D
@export var max_enemies: int
@export var spawn_rate: float
@export var target: CollisionObject2D
@onready var timer: Timer = $Timer
var enemy_scene = preload("res://scenes/enemies/enemy.tscn")
func _ready() -> void:
timer.wait_time = spawn_rate / 1
timer.start()
func _on_timer_timeout() -> void:
var enemies = get_tree().get_nodes_in_group(GlobalConst.GROUP_ENEMY)
GlobalConst.sig_debug_stats_set.emit("enemy_count", "%s" % len(enemies))
if len(enemies) < max_enemies:
var new_enemy = enemy_scene.instantiate()
new_enemy.position = target.position + Vector2(50, 50)
new_enemy.target = target
add_child(new_enemy)

View File

@@ -0,0 +1 @@
uid://bccq4dt00s2ej

View File

@@ -0,0 +1,12 @@
[gd_scene load_steps=2 format=3 uid="uid://dy73qrxcgrwg3"]
[ext_resource type="Script" uid="uid://bccq4dt00s2ej" path="res://scenes/managers/enemy_manager.gd" id="1_tfsap"]
[node name="EnemyManager" type="Node2D"]
script = ExtResource("1_tfsap")
max_enemies = 50
spawn_rate = 1.0
[node name="Timer" type="Timer" parent="."]
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]