Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    /*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);
    }