Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }