public static int EstimatedGlobalNumberOfSites(WorldGeneratorContext context, WorldGeneratorSettings.AlgorithmParameters parameters, PointOfInterestTemplate poiTemplate) { int value = parameters.GetValue("MapSizeSensitivity"); int value2 = parameters.GetValue("EmpireCountSensitivity"); int strategicResourcesAbundancePercent = context.Settings.StrategicResourcesAbundancePercent; if (strategicResourcesAbundancePercent <= 0) { return(0); } int num = (from d in context.Districts.Values where d.Content == District.Contents.Land select d).Sum((District d) => d.Count) / 20; int num2 = (num - 100) * value / 100; num = 100 + num2; int num3 = context.EmpiresCount * 25; num2 = (num3 - 100) * value2 / 100; num3 = 100 + num2; int num4; if (!int.TryParse(poiTemplate.GetPropertyValue("NormalQuantity"), out num4)) { num4 = 1; } else if (num4 == 0) { return(0); } num4 *= strategicResourcesAbundancePercent * num * num3; num4 /= 1000000; if (context.OceanicResourceCounts != null && context.OceanicResourceCounts.ContainsKey(poiTemplate.GetPropertyValue("ResourceName"))) { int num5 = context.OceanicResourceCounts[poiTemplate.GetPropertyValue("ResourceName")]; num4 -= num5; } return(num4); }
public static void FinalizeCoastalSkeleton(WorldGeneratorContext context) { CreateContinents.< > c__DisplayClass19_0 CS$ < > 8__locals1 = new CreateContinents.< > c__DisplayClass19_0(); CS$ < > 8__locals1.context = context; CreateContinents.< > c__DisplayClass19_0 CS$ < > 8__locals2 = CS$ < > 8__locals1; ProximityComputer <District> proximityComputer = new ProximityComputer <District>(CS$ < > 8__locals1.context.Districts); proximityComputer.StartingNodes = new List <District>(from d in CS$ < > 8__locals1.context.Districts.Values where d.Content == District.Contents.Coastal || d.Content == District.Contents.WasteEW || d.Content == District.Contents.WasteNS select d); CS$ < > 8__locals2.proxer = proximityComputer; List <District> list = null; if (CS$ < > 8__locals1.context.IsSymmetrical) { list = new List <District>(from d in CS$ < > 8__locals1.context.Districts.Values where d.Any((HexPos h) => h.Column == 0 || h.Column == CS$ < > 8__locals1.context.Grid.Columns - 1) select d); list.ForEach(delegate(District d) { CS$ < > 8__locals1.proxer.StartingNodes.Add(d); }); } CS$ < > 8__locals1.proxer.Execute(); for (int i = 0; i < CS$ < > 8__locals1.context.Districts.Nodes; i++) { District district = CS$ < > 8__locals1.context.Districts[i]; if (district.Content == District.Contents.Ocean || district.Content == District.Contents.WasteEW) { district.CoastalSkeletonValue = -CS$ < > 8__locals1.proxer.ProximityGraph[i]; } else if (district.Content == District.Contents.Land || district.Content == District.Contents.Coastal) { district.CoastalSkeletonValue = CS$ < > 8__locals1.proxer.ProximityGraph[i]; } else if (district.Content == District.Contents.WasteNS) { district.CoastalSkeletonValue = 99; } int num = -1; if (district.CoastalSkeletonValue > 0) { num = 1; } else if (district.CoastalSkeletonValue == 0) { num = 2; } else if (district.CoastalSkeletonValue < 0) { num = 0; } if (num >= 0 && num <= 3) { foreach (HexPos hexPos in district) { } } } if (CS$ < > 8__locals1.context.IsSymmetrical) { list.ForEach(delegate(District d) { int coastalSkeletonValue = d.CoastalSkeletonValue; d.CoastalSkeletonValue = coastalSkeletonValue - 1; }); } }