public void rollMapGenerationSubtype(World world) { //if (true) if (world.difficulty > 3 && rand.NextDouble() < Math.Atan((float)metaDifficulty / 25)) { worldGenSubtype = WorldGenSubtype.CENOTE; waterLevel = 0; float waterAccumulator = 0; int samples = 200; for (int i = 0; i < samples; i++) { waterAccumulator += world.noise.octavePerlin1D((float)(i) / 25) * getTerrainMultiplier(); } waterAccumulator /= samples; waterLevel = (int)waterAccumulator - 1; isCity = false; } else { worldGenSubtype = WorldGenSubtype.STANDARD; } Console.WriteLine("World gen subtype: " + worldGenSubtype); }
public ChunkDecorator(WorldBase world) { worldGenSubtype = WorldGenSubtype.STANDARD; metaDifficulty = Math.Max(0, world.difficulty + MetaData.difficultyModifier * MetaData.adaptiveDifficulty); /*Console.WriteLine("World-difficulty: " + world.difficulty); * Console.WriteLine("Universe-difficulty: " + UniverseProperties.difficultyModifier); * Console.WriteLine("Combined-difficulty: " + (world.difficulty + UniverseProperties.difficultyModifier)); * Console.WriteLine("Meta-difficulty: " + metaDifficulty);*/ if (world.difficulty == Game1.findGirlWorld) { metaDifficulty = -1; } content = new ContentManager(Game1.instance.Content.ServiceProvider, Game1.instance.Content.RootDirectory); if (nonWorldRand == null) { nonWorldRand = new Random(); } this.world = world; rand = world.rand; foliage = new List <Decoration>(); foliageBiome2 = new List <Decoration>(); subTerranianFoliage = new List <Decoration>(); critters = new List <Type>(); monsters = new List <Type>(); decorativeCritters = new List <Type>(); foliageChance = .35f + (float)(rand.NextDouble() * .1); terrainRoughness = (float)(.7f + rand.NextDouble() * .1 * metaDifficulty); spawnCritterChance -= (float)(rand.NextDouble() * .08 * (1f / Math.Max(1, metaDifficulty * 1.5f))); chanceCritterIsMonster += (float)metaDifficulty / 35; if (metaDifficulty <= 1) { chanceCritterIsMonster = 0; } if (metaDifficulty >= 1) { if (rand.NextDouble() < Math.Atan((float)metaDifficulty / 20)) { isCity = true; } } caveThreshold = .585f; if (metaDifficulty == 0) { caveThreshold -= .015f; } else if (metaDifficulty > 0) { caveThreshold += (float)(rand.NextDouble() * (world.difficulty + 2) * .1f * .01f); } dayTemp += (float)((rand.NextDouble() * (metaDifficulty) * .2) - (rand.NextDouble() * (metaDifficulty) * .2 * .5)); nightTemp += (float)((rand.NextDouble() * (metaDifficulty) * .2) - (rand.NextDouble() * (metaDifficulty) * .2 * .5)); colorManager = new ColorManager(this); }