|
|
|
|
@@ -222,6 +222,7 @@ namespace Northbound
|
|
|
|
|
{
|
|
|
|
|
_generatedResources = resources;
|
|
|
|
|
success = true;
|
|
|
|
|
Debug.Log($"<color=green>[MapGenerator] Normal resource generation succeeded on attempt {attempt + 1}</color>");
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
@@ -232,8 +233,9 @@ namespace Northbound
|
|
|
|
|
|
|
|
|
|
if (!success)
|
|
|
|
|
{
|
|
|
|
|
Debug.LogWarning("[MapGenerator] All resource generation attempts failed, using fallback layout");
|
|
|
|
|
Debug.LogWarning("<color=yellow>[MapGenerator] All resource generation attempts failed, using fallback layout</color>");
|
|
|
|
|
GenerateResourceFallbackLayout();
|
|
|
|
|
Debug.Log($"<color=yellow>[MapGenerator] Fallback layout X coordinates: {string.Join(", ", System.Array.ConvertAll(_generatedResources, r => r.position.x.ToString("F1")))}</color>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SpawnResources();
|
|
|
|
|
@@ -298,6 +300,7 @@ namespace Northbound
|
|
|
|
|
if (IsValidResourcePosition(candidatePosition, existingResources, currentIndex))
|
|
|
|
|
{
|
|
|
|
|
position = candidatePosition;
|
|
|
|
|
Debug.Log($"[MapGenerator] Generated valid resource position: X={position.x:F2} (range: {-playableAreaWidth/2f:F2} to {playableAreaWidth/2f:F2})");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@@ -367,15 +370,15 @@ namespace Northbound
|
|
|
|
|
{
|
|
|
|
|
_generatedResources = new ResourceData[]
|
|
|
|
|
{
|
|
|
|
|
new ResourceData { position = new Vector2(30, 100), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(50, 200), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(20, 300), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(60, 400), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(35, 500), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(55, 600), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(25, 700), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(45, 150), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(65, 250), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction }
|
|
|
|
|
new ResourceData { position = new Vector2(-30, 100), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(30, 200), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(-20, 300), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(20, 400), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(0, 500), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(-35, 600), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(35, 700), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(-15, 150), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction },
|
|
|
|
|
new ResourceData { position = new Vector2(15, 250), baseProduction = additionalResourceBaseProduction, qualityModifier = 0f, finalProduction = additionalResourceBaseProduction }
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
float totalProduction = initialResourceProduction;
|
|
|
|
|
@@ -559,7 +562,8 @@ namespace Northbound
|
|
|
|
|
float x = Random.Range(-playableAreaWidth / 2f, playableAreaWidth / 2f);
|
|
|
|
|
float z = Random.Range(startZ, endZ);
|
|
|
|
|
|
|
|
|
|
return new Vector3(x, center.y, z);
|
|
|
|
|
Vector3 result = new Vector3(x, center.y, z);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool IsValidObstaclePosition(Vector3 position)
|
|
|
|
|
|