mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-20 20:59:18 +07:00
Resolved #3476 - captured civilian units can no longer move on the same turn
This commit is contained in:
@ -132,7 +132,7 @@ object Battle {
|
|||||||
var damageToAttacker = BattleDamage.calculateDamageToAttacker(attacker, attacker.getTile(), defender)
|
var damageToAttacker = BattleDamage.calculateDamageToAttacker(attacker, attacker.getTile(), defender)
|
||||||
|
|
||||||
if (defender.getUnitType().isCivilian() && attacker.isMelee()) {
|
if (defender.getUnitType().isCivilian() && attacker.isMelee()) {
|
||||||
captureCivilianUnit(attacker, defender)
|
captureCivilianUnit(attacker, defender as MapUnitCombatant)
|
||||||
} else if (attacker.isRanged()) {
|
} else if (attacker.isRanged()) {
|
||||||
defender.takeDamage(damageToDefender) // straight up
|
defender.takeDamage(damageToDefender) // straight up
|
||||||
} else {
|
} else {
|
||||||
@ -318,7 +318,7 @@ object Battle {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun captureCivilianUnit(attacker: ICombatant, defender: ICombatant){
|
private fun captureCivilianUnit(attacker: ICombatant, defender: MapUnitCombatant) {
|
||||||
// barbarians don't capture civilians
|
// barbarians don't capture civilians
|
||||||
if (attacker.getCivInfo().isBarbarian()
|
if (attacker.getCivInfo().isBarbarian()
|
||||||
|| (defender as MapUnitCombatant).unit.hasUnique("Uncapturable")) {
|
|| (defender as MapUnitCombatant).unit.hasUnique("Uncapturable")) {
|
||||||
@ -338,10 +338,10 @@ object Battle {
|
|||||||
val tile = capturedUnit.getTile()
|
val tile = capturedUnit.getTile()
|
||||||
capturedUnit.destroy()
|
capturedUnit.destroy()
|
||||||
attacker.getCivInfo().placeUnitNearTile(tile.position, Constants.worker)
|
attacker.getCivInfo().placeUnitNearTile(tile.position, Constants.worker)
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
capturedUnit.civInfo.removeUnit(capturedUnit)
|
capturedUnit.civInfo.removeUnit(capturedUnit)
|
||||||
capturedUnit.assignOwner(attacker.getCivInfo())
|
capturedUnit.assignOwner(attacker.getCivInfo())
|
||||||
|
capturedUnit.currentMovement = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
destroyIfDefeated(defenderCiv, attacker.getCivInfo())
|
destroyIfDefeated(defenderCiv, attacker.getCivInfo())
|
||||||
|
Reference in New Issue
Block a user