Beispiel #1
0
    public bool processCustomLevel(string name, Dictionary <string, string> rawData)
    {
        if (_levels.ContainsKey(name))
        {
            return(true);
        }

        try {
            int levelIndex    = -1;
            int unlockedLevel = -1;

            BiomeEnum biome = (BiomeEnum)System.Enum.Parse(typeof(BiomeEnum), rawData ["biome"]);

            float spawnPace       = float.Parse(rawData ["mob_spawn_pace_seconds"]);
            int   startingCredits = int.Parse(rawData ["starting_credits"]);
            int   numWaves        = int.Parse(rawData ["num_waves"]);

            LevelData lvl = createLevel(name, levelIndex, unlockedLevel, numWaves, spawnPace, biome, startingCredits, true);

            for (int i = 0; i < numWaves; i++)
            {
                string waveName = "wave_" + (i + 1) + "_enemy";
                string rawStr   = rawData [waveName];

                string[] enemies = rawStr.Split(';');
                foreach (string s in enemies)
                {
                    string[] enemyData = s.Split(',');
                    if (enemyData.Length > 1)
                    {
                        addSubWaveData(lvl, i, enemyData [0], int.Parse(enemyData [1]));
                    }
                }
            }
        } catch (System.Exception e) {
            Debug.Log(e);
            return(false);
        }

        return(true);
    }
Beispiel #2
0
    public static Biome intantiateBiome(BiomeEnum biomeType, int seed = 0)
    {
        if (biomeType == BiomeEnum.BIOME_RANDOM)
        {
            List <BiomeEnum> biomesToChoose = new List <BiomeEnum> ();
            biomesToChoose.Add(BiomeEnum.BIOME_DESSERT);
            biomesToChoose.Add(BiomeEnum.BIOME_GREEN);
            biomesToChoose.Add(BiomeEnum.BIOME_ICE_LAKE);
            biomesToChoose.Add(BiomeEnum.BIOME_LAVA_LAKE);
            biomesToChoose.Add(BiomeEnum.BIOME_LAVA_VALLEY);
            biomesToChoose.Add(BiomeEnum.BIOME_SNOW);

            seed = seed == -1 ? Random.Range(0, int.MaxValue) : seed;

            Random.InitState(seed);
            biomeType = biomesToChoose.ToArray() [Random.Range(0, biomesToChoose.Count)];
        }

        switch (biomeType)
        {
        case BiomeEnum.BIOME_DESSERT:
            return(new DessertBiome());

        //case BiomeEnum.BIOME_GREEN:
        //	return new GreenBiome ();
        case BiomeEnum.BIOME_ICE_LAKE:
            return(new FrozenLakeBiome());

        case BiomeEnum.BIOME_LAVA_LAKE:
            return(new LavaLakeBiome());

        case BiomeEnum.BIOME_LAVA_VALLEY:
            return(new LavaValleyBiome());

        case BiomeEnum.BIOME_SNOW:
            return(new SnowBiome());
        }

        // Default biome
        return(new GreenBiome());
    }
Beispiel #3
0
    private LevelData createLevel(string name, int levelIndex, int unlockLevel, int waveCount, float spawnPace, BiomeEnum biomeType, int startingCredits, bool isCustom = false)
    {
        LevelData d = new LevelData();

        d._isCustom        = isCustom;
        d._levelIndex      = levelIndex;
        d._unlockLevel     = unlockLevel;
        d._waveCount       = waveCount;
        d._wavesData       = new WaveData[waveCount];
        d._startingCredits = startingCredits;

        for (int i = 0; i < waveCount; i++)
        {
            d._wavesData [i] = new WaveData();
        }

        d._spawnPace = spawnPace;
        d._biomeType = biomeType;

        _levels.Add(name, d);

        return(d);
    }