Example #1
0
    void OnDestroy()
    {
        instance = null;

        levelController = null;
        currentLevel    = null;
    }
Example #2
0
    public void StartLevel()
    {
        currentLevel = GetLevelData(level);

        //Debug.Log("StartLevel, currentLevel : " + (currentLevel != null) + ", " + currentLevel.level);
        if (currentLevel != null)
        {
            levelController = new LevelController(currentLevel);
        }

        //Debug.Log("StartLevel, levelController : " + (levelController != null));
    }
 public void LoadLevelEnemyData(int level)
 {
     data = null;
     data = EnemyManager.instance.GetEnemyLevelData(level);
     if (data == null)
     {
         return;
     }
     ResetCurrentLevelEnemyData();
     for (int i = 0; i < data.initialEnemyNumber; i++)
     {
         SpawnSpecificTypeEnemy(GameEnum.EnemyType.Type_2);
     }
 }
Example #4
0
    public LevelController(EnemyLevelData data)
    {
        level    = data.level;
        spawners = new SpawnController[data.spawnData.Length];

        int created = 0;

        for (int i = 0; i < data.spawnData.Length; i++)
        {
            EnemySpawnData spawnData = data.spawnData[i];
            spawners[i] = SpawnController.CreateController(spawnData, i);

            if (spawners[i] != null)
            {
                created++;

                // Setting extremes of spawn times as the level time range.
                if (minTime < 0f)
                {
                    minTime = spawnData.startSpawnTime;
                }
                else
                {
                    if (minTime > spawnData.startSpawnTime)
                    {
                        minTime = spawnData.startSpawnTime;
                    }
                }

                if (maxTime < 0f)
                {
                    maxTime = spawnData.endSpawnTime;
                }
                else
                {
                    if (maxTime < spawnData.endSpawnTime)
                    {
                        maxTime = spawnData.endSpawnTime;
                    }
                }
            }
        }
        //Debug.Log("spawners.Length : " + spawners.Length + ", created: " + created);
    }
    public EnemyLevelData GetEnemyLevelData(int levelNumber)
    {
        EnemyLevelDataScriptable levelDataScriptable = GetEnemyLevelScriptable(levelNumber);
        EnemyLevelData           data = new EnemyLevelData();

        if (levelDataScriptable != null)
        {
            data.levelNumber                        = levelDataScriptable.levelNumber;
            data.numberOfWave                       = levelDataScriptable.numberOfWave;
            data.initialEnemyNumber                 = levelDataScriptable.initialEnemyNumber;
            data.initialEnemySpawnDelay             = levelDataScriptable.initialEnemySpawnDelay;
            data.enemySpawnDelayReduceFactorPerWave = levelDataScriptable.enemySpawnDelayReduceFactorPerWave;
            data.initialNumberOfEnemyInAWave        = levelDataScriptable.initialNumberOfEnemyInAWave;
            data.multiplierOfEnemyNumberPerWave     = levelDataScriptable.multiplierOfEnemyNumberPerWave;
            data.enemyTypeAndPercentageDictionary   = GenerateDictionary(levelDataScriptable);
            return(data);
        }
        return(null);
    }
Example #6
0
    //적 레벨 정보 데이터 리스트에 추가.
    public void AddEnemyLevelData(int id, int wave)
    {
        EnemyLevelData data = new EnemyLevelData(id, wave);

        enemyLevelDataList.Add(id, data);
    }