Fix generated mountain resource conflicts
This commit is contained in:
parent
58e9d4530d
commit
40bd942db1
@ -132,6 +132,7 @@ namespace Logic
|
||||
|
||||
//修复摇篮城市附近的地形保底和资源保底
|
||||
CivTerrainFeatureCountControl(mapData);
|
||||
NormalizeGeneratedGridLayerConflicts(mapData);
|
||||
|
||||
//生成地脉(所有资源确定后执行)
|
||||
GenerateLeyLines(mapData); //TODO 暂时屏蔽地脉生成
|
||||
@ -730,7 +731,9 @@ namespace Logic
|
||||
}
|
||||
break;
|
||||
case ResourceType.Animal:
|
||||
if (tgrid.Vegetation == Vegetation.Trees && tgrid.Resource != ResourceType.Animal)
|
||||
if (tgrid.Terrain == TerrainType.Land && tgrid.Feature != TerrainFeature.Mountain
|
||||
&& tgrid.Vegetation == Vegetation.Trees
|
||||
&& tgrid.Resource != ResourceType.Animal)
|
||||
{
|
||||
tgrid.Resource = ResourceType.Animal;
|
||||
count++;
|
||||
@ -889,10 +892,33 @@ namespace Logic
|
||||
if (grid == null) return;
|
||||
grid.Feature = TerrainFeature.Mountain;
|
||||
grid.Vegetation = Vegetation.None;
|
||||
if (grid.Resource == ResourceType.Farm)
|
||||
if (grid.Resource is not (ResourceType.None or ResourceType.Metal))
|
||||
grid.Resource = ResourceType.None;
|
||||
}
|
||||
|
||||
private void NormalizeGeneratedGridLayerConflicts(MapData mapData)
|
||||
{
|
||||
if (mapData?.GridMap?.GridList == null) return;
|
||||
|
||||
foreach (var grid in mapData.GridMap.GridList)
|
||||
{
|
||||
if (grid == null) continue;
|
||||
|
||||
if (grid.Feature == TerrainFeature.Mountain)
|
||||
{
|
||||
grid.Vegetation = Vegetation.None;
|
||||
if (grid.Resource is not (ResourceType.None or ResourceType.Metal or ResourceType.CityCenter
|
||||
or ResourceType.Tower))
|
||||
grid.Resource = ResourceType.None;
|
||||
}
|
||||
|
||||
if (grid.Resource == ResourceType.Animal
|
||||
&& (grid.Terrain != TerrainType.Land || grid.Feature == TerrainFeature.Mountain
|
||||
|| grid.Vegetation != Vegetation.Trees))
|
||||
grid.Resource = ResourceType.None;
|
||||
}
|
||||
}
|
||||
|
||||
private bool IsStartingGuaranteeProtectedGrid(GridData grid)
|
||||
{
|
||||
if (grid == null) return true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user