diff --git a/core/src/com/unciv/logic/automation/UnitAutomation.kt b/core/src/com/unciv/logic/automation/UnitAutomation.kt index 44efdc1fba..2ca10503a4 100644 --- a/core/src/com/unciv/logic/automation/UnitAutomation.kt +++ b/core/src/com/unciv/logic/automation/UnitAutomation.kt @@ -401,7 +401,7 @@ class UnitAutomation{ } fun tryGoToRuin(unit:MapUnit, unitDistanceToTiles: HashMap): Boolean { - if(unit.civInfo.isBarbarianCivilization()) return false // barbs don't have anything to do in ruins + if(!unit.civInfo.isMajorCiv()) return false // barbs don't have anything to do in ruins val tileWithRuin = unitDistanceToTiles.keys.firstOrNull{unit.canMoveTo(it) && it.improvement == Constants.ancientRuins} if(tileWithRuin==null) return false unit.moveToTile(tileWithRuin) diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index aecbb1a7a4..03edd9f327 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -234,14 +234,12 @@ class Battle(val gameInfo:GameInfo) { } fun captureCivilianUnit(attacker: ICombatant, defender: ICombatant){ - if(attacker.getCivInfo().isBarbarianCivilization()){ + if(attacker.getCivInfo().isBarbarianCivilization() + || (attacker.getCivInfo().isCityState() && defender.getName()==Constants.settler)){ defender.takeDamage(100) return } // barbarians don't capture civilians! - if (attacker.getCivInfo().isCityState() && defender.getName() == Constants.settler) { - defender.takeDamage(100) - return - } + if (defender.getCivInfo().isDefeated()) {//Last settler captured defender.getCivInfo().destroy() attacker.getCivInfo().popupAlerts.add(PopupAlert(AlertType.Defeated,defender.getCivInfo().civName)) diff --git a/core/src/com/unciv/logic/map/MapUnit.kt b/core/src/com/unciv/logic/map/MapUnit.kt index d654d8a209..d1a5ad1d28 100644 --- a/core/src/com/unciv/logic/map/MapUnit.kt +++ b/core/src/com/unciv/logic/map/MapUnit.kt @@ -456,7 +456,7 @@ class MapUnit { tile.civilianUnit=this else tile.militaryUnit=this currentTile = tile - if(tile.improvement==Constants.ancientRuins && !civInfo.isBarbarianCivilization()) + if(tile.improvement==Constants.ancientRuins && civInfo.isMajorCiv()) getAncientRuinBonus() if(tile.improvement==Constants.barbarianEncampment && !civInfo.isBarbarianCivilization()) clearEncampment(tile)