update fix 2 bug

One where city couldn't spawn naval unit.
The other when naval unit spawned they could get pushed to a costal tile.
This commit is contained in:
Emandac 2025-08-01 22:09:17 +02:00
parent 3220d3c52b
commit 1daec65ee2
2 changed files with 9 additions and 3 deletions

View File

@ -55,9 +55,14 @@ class UnitManager(val civInfo: Civilization) {
val unit = civInfo.getEquivalentUnit(baseUnit) val unit = civInfo.getEquivalentUnit(baseUnit)
val citiesNotInResistance = civInfo.cities.filterNot { it.isInResistance() } val citiesNotInResistance = civInfo.cities.filterNot { it.isInResistance() }
var canSpwanUnitOnWater = false
if (city != null) {
canSpwanUnitOnWater = city.getCenterTile().matchesFilter("Water")
}
val cityToAddTo = when { val cityToAddTo = when {
unit.isWaterUnit && (city == null || !city.isCoastal()) -> unit.isWaterUnit && (city == null || !city.isCoastal()) && !canSpwanUnitOnWater ->
citiesNotInResistance.filter { it.isCoastal() }.randomOrNull() ?: citiesNotInResistance.filter { it.isCoastal() }.randomOrNull() ?:
civInfo.cities.filter { it.isCoastal() }.randomOrNull() civInfo.cities.filter { it.isCoastal() }.randomOrNull()
city != null -> city city != null -> city

View File

@ -220,8 +220,9 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
): Sequence<RejectionReason> = sequence { ): Sequence<RejectionReason> = sequence {
val stateForConditionals = city?.state ?: civ.state val stateForConditionals = city?.state ?: civ.state
if (city != null && isWaterUnit && !city.isCoastal()) // !city.getCenterTile().matchesFilter("Water") to allow the cities on Water tile to spwan naval units.
if (city != null && isWaterUnit && !city.isCoastal() && !city.getCenterTile().matchesFilter("Water"))
yield(RejectionReasonType.WaterUnitsInCoastalCities.toInstance()) yield(RejectionReasonType.WaterUnitsInCoastalCities.toInstance())
for (unique in getMatchingUniques(UniqueType.OnlyAvailable, GameContext.IgnoreConditionals)) for (unique in getMatchingUniques(UniqueType.OnlyAvailable, GameContext.IgnoreConditionals))