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); }
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()); }
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); }