コード例 #1
0
ファイル: ModEntry.cs プロジェクト: Fox536/TestMod
        private void AddMineObjs(Farm farm)
        {
            print("adding mine objs");
            // Create Mine Area if needed
            // Mine Area
            //if (modConfig.AddMineArea)
            //{
            Random randomGen = new Random();

            foreach (Vector2 tile in modConfig.GetMineArea())
            {
                if (!modConfig.OreUseMineLevel)
                {
                    if (randomGen.NextDouble() < modConfig.oreChance)
                    {
                        addRandomOre(ref farm, ref randomGen, 4, tile);
                        continue;
                    }
                }
                //calculate ore spawn
                else if (Game1.player.hasSkullKey)
                {
                    if (randomGen.NextDouble() < modConfig.oreChance)
                    {
                        addRandomOre(ref farm, ref randomGen, 4, tile);
                        continue;
                    }
                }
                else
                {
                    //check mine level
                    if (Game1.player.deepestMineLevel > 80)                             //gold level
                    {
                        if (randomGen.NextDouble() < modConfig.oreChance)
                        {
                            addRandomOre(ref farm, ref randomGen, 3, tile);
                            continue;
                        }
                    }
                    else if (Game1.player.deepestMineLevel > 40)                             //iron level
                    {
                        if (randomGen.NextDouble() < modConfig.oreChance)
                        {
                            addRandomOre(ref farm, ref randomGen, 2, tile);
                            continue;
                        }
                    }
                    else
                    {
                        if (randomGen.NextDouble() < modConfig.oreChance)
                        {
                            addRandomOre(ref farm, ref randomGen, 1, tile);
                            continue;
                        }
                    }
                }

                //if ore doesnt spawn then calculate gem spawn
                //1% to spawn gem
                if (randomGen.NextDouble() < modConfig.gemChance)
                {
                    if (!modConfig.OreUseMineLevel)
                    {
                        if (randomGen.Next(0, 100) < 10)
                        {
                            farm.setObject(tile, createOre("mysticStone", tile));
                            continue;
                        }
                    }
                    else if (Game1.player.hasSkullKey)
                    {
                        if (randomGen.Next(0, 100) < 10)
                        {
                            farm.setObject(tile, createOre("mysticStone", tile));
                            continue;
                        }
                        else if (randomGen.Next(0, 500) < 1)
                        {
                            farm.setObject(tile, createOre("mysticStone", tile));
                            continue;
                        }
                    }

                    switch (randomGen.Next(0, 100) % 8)
                    {
                    case 0: farm.setObject(tile, createOre("gemStone", tile)); break;

                    case 1: farm.setObject(tile, createOre("diamond", tile)); break;

                    case 2: farm.setObject(tile, createOre("ruby", tile)); break;

                    case 3: farm.setObject(tile, createOre("jade", tile)); break;

                    case 4: farm.setObject(tile, createOre("amethyst", tile)); break;

                    case 5: farm.setObject(tile, createOre("topaz", tile)); break;

                    case 6: farm.setObject(tile, createOre("emerald", tile)); break;

                    case 7: farm.setObject(tile, createOre("aquamarine", tile)); break;

                    default: break;
                    }
                    continue;
                }
            }
            //}
        }