mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-23 03:23:17 -04:00
fix: user only receives yellow resource notification if it is researched (#12337)
* When resource is not researched, don't allow the user to scan the map for it * inline ruleset.getResource() in getExploredResourcesNotification (resolved review comment) * changed TechManager.isRevealed (review feedback) --------- Co-authored-by: M. Rittweger <m.rittweger@mvolution.de>
This commit is contained in:
parent
e348b7c388
commit
32247fe437
@ -536,7 +536,7 @@ class GameInfo : IsPartOfGameInfoSerialization, HasGameInfoSerializationVersion
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Generate a notification pointing out resources.
|
/** Generate a notification pointing out resources. Only researched Resources are considered.
|
||||||
* @param maxDistance from next City, default removes distance limitation.
|
* @param maxDistance from next City, default removes distance limitation.
|
||||||
* @param filter optional tile filter predicate, e.g. to exclude foreign territory.
|
* @param filter optional tile filter predicate, e.g. to exclude foreign territory.
|
||||||
* @return `null` if no resources were found, otherwise a Notification instance.
|
* @return `null` if no resources were found, otherwise a Notification instance.
|
||||||
@ -548,6 +548,12 @@ class GameInfo : IsPartOfGameInfoSerialization, HasGameInfoSerializationVersion
|
|||||||
maxDistance: Int = Int.MAX_VALUE,
|
maxDistance: Int = Int.MAX_VALUE,
|
||||||
filter: (Tile) -> Boolean = { true }
|
filter: (Tile) -> Boolean = { true }
|
||||||
): Notification? {
|
): Notification? {
|
||||||
|
|
||||||
|
val resource = ruleset.tileResources[resourceName] ?: return null
|
||||||
|
if (!civ.tech.isRevealed(resource)) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
data class CityTileAndDistance(val city: City, val tile: Tile, val distance: Int)
|
data class CityTileAndDistance(val city: City, val tile: Tile, val distance: Int)
|
||||||
|
|
||||||
// Include your city-state allies' cities with your own for the purpose of showing the closest city
|
// Include your city-state allies' cities with your own for the purpose of showing the closest city
|
||||||
|
@ -17,6 +17,7 @@ import com.unciv.logic.map.tile.RoadStatus
|
|||||||
import com.unciv.models.ruleset.INonPerpetualConstruction
|
import com.unciv.models.ruleset.INonPerpetualConstruction
|
||||||
import com.unciv.models.ruleset.tech.Era
|
import com.unciv.models.ruleset.tech.Era
|
||||||
import com.unciv.models.ruleset.tech.Technology
|
import com.unciv.models.ruleset.tech.Technology
|
||||||
|
import com.unciv.models.ruleset.tile.TileResource
|
||||||
import com.unciv.models.ruleset.unique.StateForConditionals
|
import com.unciv.models.ruleset.unique.StateForConditionals
|
||||||
import com.unciv.models.ruleset.unique.UniqueMap
|
import com.unciv.models.ruleset.unique.UniqueMap
|
||||||
import com.unciv.models.ruleset.unique.UniqueTriggerActivation
|
import com.unciv.models.ruleset.unique.UniqueTriggerActivation
|
||||||
@ -155,6 +156,12 @@ class TechManager : IsPartOfGameInfoSerialization {
|
|||||||
|
|
||||||
fun isResearched(construction: INonPerpetualConstruction): Boolean = construction.requiredTechs().all{ requiredTech -> isResearched(requiredTech) }
|
fun isResearched(construction: INonPerpetualConstruction): Boolean = construction.requiredTechs().all{ requiredTech -> isResearched(requiredTech) }
|
||||||
|
|
||||||
|
/** resources which need no research count as researched */
|
||||||
|
fun isRevealed(resource: TileResource): Boolean {
|
||||||
|
val revealedBy = resource.revealedBy ?: return true
|
||||||
|
return isResearched(revealedBy)
|
||||||
|
}
|
||||||
|
|
||||||
fun isObsolete(unit: BaseUnit): Boolean = unit.techsThatObsoleteThis().any{ obsoleteTech -> isResearched(obsoleteTech) }
|
fun isObsolete(unit: BaseUnit): Boolean = unit.techsThatObsoleteThis().any{ obsoleteTech -> isResearched(obsoleteTech) }
|
||||||
|
|
||||||
fun isUnresearchable(tech: Technology): Boolean {
|
fun isUnresearchable(tech: Technology): Boolean {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user