mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-25 12:54:06 -04:00
Fixed promise not to settle (#10488)
* Settlers now account for the AgreedToNotSettleNearUs * If the two Civs are at war the AI no longer cares about AgreedToNotSettleNearUs
This commit is contained in:
parent
cfeed82800
commit
32639f1ff5
@ -3,6 +3,7 @@ package com.unciv.logic.automation.unit
|
||||
import com.unciv.logic.automation.Automation
|
||||
import com.unciv.logic.city.City
|
||||
import com.unciv.logic.civilization.Civilization
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomacyFlags
|
||||
import com.unciv.logic.map.mapunit.MapUnit
|
||||
import com.unciv.logic.map.tile.Tile
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
@ -51,6 +52,13 @@ object CityLocationTileRanker {
|
||||
if (tile.getOwner() != null && tile.getOwner() != civ) return false
|
||||
for (city in nearbyCities) {
|
||||
val distance = city.getCenterTile().aerialDistanceTo(tile)
|
||||
// todo: AgreedToNotSettleNearUs is hardcoded for now but it may be better to softcode it below in getDistanceToCityModifier
|
||||
if (distance <= 6 && civ.knows(city.civ)
|
||||
&& !civ.isAtWarWith(city.civ)
|
||||
// If the CITY OWNER knows that the UNIT OWNER agreed not to settle near them
|
||||
&& city.civ.getDiplomacyManager(civ)
|
||||
.hasFlag(DiplomacyFlags.AgreedToNotSettleNearUs))
|
||||
return false
|
||||
if (tile.getContinent() == city.getCenterTile().getContinent()) {
|
||||
if (distance <= modConstants.minimalCityDistance) return false
|
||||
} else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user