mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 22:06:05 -04:00
Resolved #3331 - resources for city-state quests are taken from resources on the map, to avoid unfinishable quests
This commit is contained in:
parent
d0a59889c4
commit
03ddd3c410
@ -190,10 +190,6 @@ class CivilizationInfo {
|
|||||||
return newResourceSupplyList
|
return newResourceSupplyList
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getViewableResources(): List<TileResource> =
|
|
||||||
gameInfo.ruleSet.tileResources.values
|
|
||||||
.filter { it.revealedBy == null || tech.isResearched(it.revealedBy!!) }
|
|
||||||
|
|
||||||
fun isCapitalConnectedToCity(city: CityInfo): Boolean = citiesConnectedToCapitalToMediums.keys.contains(city)
|
fun isCapitalConnectedToCity(city: CityInfo): Boolean = citiesConnectedToCapitalToMediums.keys.contains(city)
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@ import com.unciv.models.ruleset.QuestName
|
|||||||
import com.unciv.models.ruleset.tile.ResourceType
|
import com.unciv.models.ruleset.tile.ResourceType
|
||||||
import com.unciv.models.ruleset.tile.TileResource
|
import com.unciv.models.ruleset.tile.TileResource
|
||||||
import com.unciv.models.ruleset.unit.BaseUnit
|
import com.unciv.models.ruleset.unit.BaseUnit
|
||||||
import com.unciv.models.translations.equalsPlaceholderText
|
|
||||||
import com.unciv.models.translations.fillPlaceholders
|
import com.unciv.models.translations.fillPlaceholders
|
||||||
import com.unciv.ui.utils.randomWeighted
|
import com.unciv.ui.utils.randomWeighted
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
@ -453,11 +452,15 @@ class QuestManager {
|
|||||||
val ownedByCityStateResources = civInfo.detailedCivResources.map { it.resource }
|
val ownedByCityStateResources = civInfo.detailedCivResources.map { it.resource }
|
||||||
val ownedByMajorResources = challenger.detailedCivResources.map { it.resource }
|
val ownedByMajorResources = challenger.detailedCivResources.map { it.resource }
|
||||||
|
|
||||||
val notOwnedResources = challenger.getViewableResources().filter {
|
val resourcesOnMap = civInfo.gameInfo.tileMap.values.asSequence().mapNotNull { it.resource }.distinct()
|
||||||
|
val viewableResourcesForChallenger = resourcesOnMap.map { civInfo.gameInfo.ruleSet.tileResources[it]!! }
|
||||||
|
.filter { it.revealedBy == null || challenger.tech.isResearched(it.revealedBy!!) }
|
||||||
|
|
||||||
|
val notOwnedResources = viewableResourcesForChallenger.filter {
|
||||||
it.resourceType != ResourceType.Bonus &&
|
it.resourceType != ResourceType.Bonus &&
|
||||||
!ownedByCityStateResources.contains(it) &&
|
!ownedByCityStateResources.contains(it) &&
|
||||||
!ownedByMajorResources.contains(it)
|
!ownedByMajorResources.contains(it)
|
||||||
}
|
}.toList()
|
||||||
|
|
||||||
if (notOwnedResources.isNotEmpty())
|
if (notOwnedResources.isNotEmpty())
|
||||||
return notOwnedResources.random()
|
return notOwnedResources.random()
|
||||||
|
@ -279,7 +279,7 @@ object UnitActions {
|
|||||||
|
|
||||||
val canConstruct = !tile.isCityCenter()
|
val canConstruct = !tile.isCityCenter()
|
||||||
&& unit.civInfo.gameInfo.ruleSet.tileImprovements.values
|
&& unit.civInfo.gameInfo.ruleSet.tileImprovements.values
|
||||||
.any { tile.canBuildImprovement(it, unit.civInfo) }
|
.any { tile.canBuildImprovement(it, unit.civInfo) }
|
||||||
actionList += UnitAction(
|
actionList += UnitAction(
|
||||||
type = UnitActionType.ConstructImprovement,
|
type = UnitActionType.ConstructImprovement,
|
||||||
isCurrentAction = unit.currentTile.hasImprovementInProgress(),
|
isCurrentAction = unit.currentTile.hasImprovementInProgress(),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user