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)); } }
public static int RandomStartingTile() { return(TileFinder.RandomFactionBaseTileFor(Faction.OfPlayer, true, null)); }