Remove all unavailable resource when scenario-ing a map

This commit is contained in:
Yair Morgenstern
2020-08-09 23:10:55 +03:00
parent be51735fdf
commit c17de11c35
3 changed files with 8 additions and 3 deletions

View File

@ -64,7 +64,8 @@ object Automation {
return city.cityConstructions.currentConstructionFromQueue
// This is so that the AI doesn't use all its aluminum on units and have none left for spaceship parts
if (city.civInfo.getCivResourcesByName()["Aluminum"]!! < 2)
val aluminum = city.civInfo.getCivResourcesByName()["Aluminum"]
if (aluminum!=null && aluminum < 2) // mods may have no aluminum
militaryUnits.filter { it.requiredResource != "Aluminum" }
val findWaterConnectedCitiesAndEnemies = BFS(city.getCenterTile()) { it.isWater || it.isCityCenter() }

View File

@ -24,8 +24,6 @@ class TradeLogic(val ourCivilization:CivilizationInfo, val otherCivilization: Ci
&& !otherCivilization.isCityState()
&& civInfo.tech.getTechUniques().contains("Enables Open Borders agreements")
&& otherCivilization.tech.getTechUniques().contains("Enables Open Borders agreements")) {
val relationshipLevel = otherCivilization.getDiplomacyManager(civInfo).relationshipLevel()
offers.add(TradeOffer(Constants.openBorders, TradeType.Agreement))
}

View File

@ -39,6 +39,12 @@ class GameParametersScreen(var mapEditorScreen: MapEditorScreen): IPreviousScree
mapEditorScreen.ruleset.clear()
mapEditorScreen.ruleset.add(ruleset)
mapEditorScreen.tileEditorOptions.update()
// Remove resources that are not applicable to this scenario
for(tile in mapEditorScreen.tileMap.values){
if(tile.resource!=null && !ruleset.tileResources.containsKey(tile.resource!!))
tile.resource=null
}
mapEditorScreen.mapHolder.updateTileGroups()
UncivGame.Current.setScreen(mapEditorScreen)
dispose()