void SpawnEnemy(EnemyType.EnemyTypes setEnemyType) { while (!spawnArea.SpawnNewAgent()) { GameObject.Destroy(spawnArea._ThisAgentReference); Debug.Log("This is a test enemy"); } for (int p = 0; p < enemyProperties.Length; p++) { //Assign enemy if (setEnemyType == enemyProperties[p].GetEnemyType()) { int i = spawnedEnemies.Count; spawnedEnemies.Add((GameObject)Instantiate(enemyPrefabs[p], spawnArea.GetThisAgent(), Quaternion.identity)); spawnedEnemies[i].GetComponent <EnemyTestAI>().InitializeEnemy(enemyProperties[p], spawnArea.GetThisAgent(), spawnState, i); } } GameObject.Destroy(spawnArea._ThisAgentReference); }
/*void SpawnRandomEnemy(List<EnemyType.EnemyTypes> randomEnemyTypes) * { * EnemyType.EnemyTypes setEnemyType; * * /* * * * double numericValue = r.NextDouble() * RatioSum; * * foreach (var parameter in Parameters) * { * numericValue -= parameter.Ratio; * * if (!(numericValue <= 0)) * continue; * * parameter.Func(); * return; * * * * * int setRandomRange = rng.Next(0,spawnRatioTotal); * * int indexOfType = 0; * int checkSpawnRatio = spawnRatioTotal; * * foreach (KeyValuePair<EnemyType.EnemyTypes, int> setRandomEnemyType in SpawnRatio) * { * //setRandomRange -= setRandomEnemyType.Value; * * * * * if (setRandomRange <= 0) * { * continue; * } * * * setEnemyType = setRandomEnemyType.Key; * indexOfType++; * } * * * * * while (!spawnArea.SpawnNewAgent()) * { * GameObject.Destroy(spawnArea._ThisAgentReference); * Debug.Log("This is a test enemy"); * } * * for (int p = 0; p < enemyProperties.Length; p++) * { * //Assign enemy * if (setEnemyType == enemyProperties[p].GetEnemyType()) * { * int i = spawnedEnemies.Count; * spawnedEnemies.Add((GameObject)Instantiate(enemyPrefabs[p], spawnArea.GetThisAgent(), Quaternion.identity)); * spawnedEnemies[i].GetComponent<EnemyTestAI>().InitializeEnemy(enemyProperties[p], spawnArea.GetThisAgent(), spawnState, i); * } * } * }*/ void SpawnRandomEnemy(List <EnemyType.EnemyTypes> randomEnemyTypes) { EnemyType.EnemyTypes setEnemyType = EnemyType.EnemyTypes._NoEnemy; /* * * * double numericValue = r.NextDouble() * RatioSum; * * foreach (var parameter in Parameters) * { * numericValue -= parameter.Ratio; * * if (!(numericValue <= 0)) * continue; * * parameter.Func(); * return; * * */ //--------------------Get Random Enemy------------------------ int setRandomRange = rng.Next(0, spawnRatioTotal); foreach (KeyValuePair <EnemyType.EnemyTypes, int> setRandomEnemyType in SpawnRatio) { //setEnemyType setRandomRange -= setRandomEnemyType.Value; if (setRandomRange <= 0) { Debug.Log("---------------Output Spawned Enemy------------- " + setRandomEnemyType.Key); setEnemyType = setRandomEnemyType.Key; break; } } /*int setEnemyTypeValue = spawnRatioTotal; * * foreach (KeyValuePair<EnemyType.EnemyTypes, int> setRandomEnemyType in SpawnRatio) * { * //setEnemyType * setEnemyTypeValue -= setRandomEnemyType.Value; * * setRandomRange -= setRandomEnemyType; * * if (setRandomRange <= 0) * { * setEnemyType = setRandomEnemyType.Key; * } * }*/ //--------------------Spawn Enemy------------------------ while (!spawnArea.SpawnNewAgent()) { GameObject.Destroy(spawnArea._ThisAgentReference); Debug.Log("This is a test enemy"); } for (int p = 0; p < enemyProperties.Length; p++) { //Assign enemy if (setEnemyType != EnemyType.EnemyTypes._NoEnemy) { if (setEnemyType == enemyProperties[p].GetEnemyType()) { int i = spawnedEnemies.Count; spawnedEnemies.Add((GameObject)Instantiate(enemyPrefabs[p], spawnArea.GetThisAgent(), Quaternion.identity)); spawnedEnemies[i].GetComponent <EnemyTestAI>().InitializeEnemy(enemyProperties[p], spawnArea.GetThisAgent(), spawnState, i); } } else { Debug.Log("No Enemy Assigned"); } } GameObject.Destroy(spawnArea._ThisAgentReference); }