generating number of roads dynamically
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user