mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -04:00
Start bias includes neighboring tiles for better effect (#6019)
This also means we don't need a special coastal check, since it's caught by the regular check IIRC there are nations in Original Civ that have 'mountain' start bias - if so this will also enable that :)
This commit is contained in:
parent
8461032a52
commit
822f0603fb
@ -12,6 +12,8 @@ import com.unciv.models.ruleset.ModOptionsConstants
|
||||
import com.unciv.models.ruleset.Ruleset
|
||||
import com.unciv.models.ruleset.RulesetCache
|
||||
import com.unciv.models.ruleset.unique.UniqueType
|
||||
import com.unciv.models.translations.equalsPlaceholderText
|
||||
import com.unciv.models.translations.getPlaceholderParameters
|
||||
import java.util.*
|
||||
import kotlin.collections.HashMap
|
||||
import kotlin.collections.HashSet
|
||||
@ -436,13 +438,20 @@ object GameStarter {
|
||||
var preferredTiles = freeTiles.toList()
|
||||
for (startBias in civ.nation.startBias) {
|
||||
preferredTiles = when {
|
||||
startBias.startsWith("Avoid [") -> {
|
||||
val tileToAvoid = startBias.removePrefix("Avoid [").removeSuffix("]")
|
||||
preferredTiles.filter { !it.matchesTerrainFilter(tileToAvoid) }
|
||||
startBias.equalsPlaceholderText("Avoid []") -> {
|
||||
val tileToAvoid = startBias.getPlaceholderParameters()[0]
|
||||
preferredTiles.filter { tile ->
|
||||
!tile.getTilesInDistance(1).any {
|
||||
it.matchesTerrainFilter(tileToAvoid)
|
||||
}
|
||||
}
|
||||
}
|
||||
startBias == Constants.coast -> preferredTiles.filter { it.isCoastalTile() }
|
||||
startBias in tileMap.naturalWonders -> preferredTiles // passthrough: already failed
|
||||
else -> preferredTiles.filter { it.matchesTerrainFilter(startBias) }
|
||||
else -> preferredTiles.filter { tile ->
|
||||
tile.getTilesInDistance(1).any {
|
||||
it.matchesTerrainFilter(startBias)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return preferredTiles.lastOrNull() ?: freeTiles.last()
|
||||
|
Loading…
x
Reference in New Issue
Block a user