37 lines
953 B
C#
37 lines
953 B
C#
using Godot;
|
|
using Godot.Collections;
|
|
using System.Linq;
|
|
|
|
public partial class Level : Node3D
|
|
{
|
|
[Export]
|
|
private Array<PackedScene> _enemyScenes;
|
|
[Export]
|
|
private Array<Node3D> _spawnPoints;
|
|
|
|
private Array<Node3D> _enemies = new Array<Node3D>();
|
|
|
|
private GameManager _gameManager;
|
|
|
|
public override void _Ready()
|
|
{
|
|
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
|
|
for (var i = 0; i < _enemyScenes.Count; i++)
|
|
{
|
|
var enemy = _enemyScenes[i].Instantiate();
|
|
var convertedNode = (Node3D)enemy;
|
|
GetTree().Root.AddChild(convertedNode);
|
|
_enemies.Add(convertedNode);
|
|
//convertedNode.Transform = _spawnPoints[i].Transform;
|
|
}
|
|
}
|
|
|
|
public void OnEnemyDefeated(Node3D enemyDefeated)
|
|
{
|
|
GD.Print("On enemy defeated");
|
|
_enemies.Remove(enemyDefeated);
|
|
if (!_enemies.Any())
|
|
_gameManager.OnAllEnemiesDefeated();
|
|
}
|
|
}
|