コード例 #1
0
        private void GenerateRoadEndpoints()
        {
            List <int> list = (from wo in Find.WorldObjects.AllWorldObjects
                               where Rand.Value > 0.05f
                               select wo.Tile).ToList();
            int num = GenMath.RoundRandom((float)Find.WorldGrid.TilesCount / 100000f * ExtraRoadNodesPer100kTiles.RandomInRange);

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

            for (int j = 0; j < list.Count; j++)
            {
                int num2 = Mathf.Max(0, 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;
        }
コード例 #2
0
        private void GenerateAncientSites()
        {
            int num = GenMath.RoundRandom((float)Find.WorldGrid.TilesCount / 100000f * this.ancientSitesPer100kTiles.RandomInRange);

            for (int i = 0; i < num; i++)
            {
                Find.World.genData.ancientSites.Add(TileFinder.RandomSettlementTileFor(null, false, null));
            }
        }
コード例 #3
0
 public static int RandomStartingTile()
 {
     return(TileFinder.RandomSettlementTileFor(Faction.OfPlayer, true, null));
 }