mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 05:46:43 -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.Ruleset
|
||||||
import com.unciv.models.ruleset.RulesetCache
|
import com.unciv.models.ruleset.RulesetCache
|
||||||
import com.unciv.models.ruleset.unique.UniqueType
|
import com.unciv.models.ruleset.unique.UniqueType
|
||||||
|
import com.unciv.models.translations.equalsPlaceholderText
|
||||||
|
import com.unciv.models.translations.getPlaceholderParameters
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.HashMap
|
import kotlin.collections.HashMap
|
||||||
import kotlin.collections.HashSet
|
import kotlin.collections.HashSet
|
||||||
@ -436,13 +438,20 @@ object GameStarter {
|
|||||||
var preferredTiles = freeTiles.toList()
|
var preferredTiles = freeTiles.toList()
|
||||||
for (startBias in civ.nation.startBias) {
|
for (startBias in civ.nation.startBias) {
|
||||||
preferredTiles = when {
|
preferredTiles = when {
|
||||||
startBias.startsWith("Avoid [") -> {
|
startBias.equalsPlaceholderText("Avoid []") -> {
|
||||||
val tileToAvoid = startBias.removePrefix("Avoid [").removeSuffix("]")
|
val tileToAvoid = startBias.getPlaceholderParameters()[0]
|
||||||
preferredTiles.filter { !it.matchesTerrainFilter(tileToAvoid) }
|
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
|
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()
|
return preferredTiles.lastOrNull() ?: freeTiles.last()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user