generating number of roads dynamically

This commit is contained in:
grimsace
2026-04-06 09:20:39 -05:00
parent 31e3b3ba80
commit fdac5ef45a
9 changed files with 9 additions and 44 deletions
+9 -18
View File
@@ -997,28 +997,19 @@ func estimateRoadTarget(settings *Settings) int {
if settings.NumBuildings < 10 {
return settings.NumBuildings
}
divisor := float64(max(settings.BuildingsPerRoad, 1))
buildings := float64(max(settings.NumBuildings, 1))
baseRoads := buildings / divisor
scale := 1.0
if buildings > 400 {
scale *= 0.96
roads := buildings / 5.25
if buildings > 80 {
roads += math.Pow(buildings-80.0, 0.70) * 0.28
}
if buildings > 1200 {
scale *= 0.92
if buildings > 500 {
roads += math.Pow((buildings-500.0)/2.2, 0.66) * 0.18
}
if buildings > 3000 {
scale *= 0.88
if buildings > 1800 {
roads *= 0.95
}
roads := baseRoads * scale
if buildings > 200 {
roads += math.Pow((buildings-200.0)/divisor, 0.72) * 0.35
}
if buildings > 1200 {
roads += math.Pow((buildings-1200.0)/(divisor*1.8), 0.68) * 0.22
}
if buildings > 1000 {
roads *= 0.97
if buildings > 4000 {
roads *= 0.90
}
result := int(math.Round(roads))
if result < 1 {