Beispiel #1
0
        private void SpawnEnemyGroup()
        {
            GD.Print($"Spawning Enemy Group: {_currentEnemyGroups}");

            int             randomIndex   = (int)(GD.Randi() % _availableWorldSpawnPoints.Count);
            EnemySpawnPoint spawnNode     = _availableWorldSpawnPoints[randomIndex];
            Vector2         spawnPosition = spawnNode.GetGlobalPosition();

            EnemyGroup enemyGroupInstance = (EnemyGroup)enemyGroupPrefab.Instance();

            spawnNode.AddChild(enemyGroupInstance);
            _enemyGroupsSpawned.Add(enemyGroupInstance);

            enemyGroupInstance.SetEnemyGroupColors(
                enemyGroupColors[GD.Randi() % enemyGroupColors.Length],
                (GradientTexture)enemyGroupGradients[(int)(GD.Randi() % enemyGroupGradients.Count)]
                );

            enemyGroupInstance.ActivateEnemySpawning(spawnNode.GetEnemyDangerLevel());
            enemyGroupInstance.SetGlobalPosition(spawnPosition);

            _availableWorldSpawnPoints.RemoveAt(randomIndex);
        }