Esempio n. 1
0
        private void GenerateRoadEndpoints()
        {
            List <int> list = (from wo in Find.WorldObjects.AllWorldObjects
                               where Rand.Value > 0.05000000074505806
                               select wo.Tile).ToList();
            int num = GenMath.RoundRandom((float)((float)Find.WorldGrid.TilesCount / 100000.0 * WorldGenStep_Roads.ExtraRoadNodesPer100kTiles.RandomInRange));

            for (int i = 0; i < num; i++)
            {
                list.Add(TileFinder.RandomFactionBaseTileFor(null, false, null));
            }
            List <int> list2 = new List <int>();

            for (int j = 0; j < list.Count; j++)
            {
                int num2 = Mathf.Max(0, WorldGenStep_Roads.RoadDistanceFromSettlement.RandomInRange);
                int num3 = list[j];
                for (int k = 0; k < num2; k++)
                {
                    Find.WorldGrid.GetTileNeighbors(num3, list2);
                    num3 = list2.RandomElement();
                }
                if (Find.WorldReachability.CanReach(list[j], num3))
                {
                    list[j] = num3;
                }
            }
            list = list.Distinct().ToList();
            Find.World.genData.roadNodes = list;
        }
        private void GenerateAncientSites()
        {
            int num = GenMath.RoundRandom((float)((float)Find.WorldGrid.TilesCount / 100000.0 * this.ancientSitesPer100kTiles.RandomInRange));

            for (int i = 0; i < num; i++)
            {
                Find.World.genData.ancientSites.Add(TileFinder.RandomFactionBaseTileFor(null, false, null));
            }
        }
Esempio n. 3
0
 public static int RandomStartingTile()
 {
     return(TileFinder.RandomFactionBaseTileFor(Faction.OfPlayer, true, null));
 }