diff --git a/core/src/com/unciv/logic/battle/Battle.kt b/core/src/com/unciv/logic/battle/Battle.kt index 345a49429d..337e4242f0 100644 --- a/core/src/com/unciv/logic/battle/Battle.kt +++ b/core/src/com/unciv/logic/battle/Battle.kt @@ -399,8 +399,14 @@ object Battle { } private fun postBattleAddXp(attacker: ICombatant, defender: ICombatant) { - if (!attacker.isMelee()) { // ranged attack - addXp(attacker, 2, defender) + if (attacker.isAirUnit()) { + addXp(attacker, 4, defender) + addXp(defender, 2, attacker) + } else if (attacker.isRanged()) { // ranged attack + if(defender.isCity()) + addXp(attacker, 3, defender) + else + addXp(attacker, 2, defender) addXp(defender, 2, attacker) } else if (!defender.isCivilian()) // unit was not captured but actually attacked { @@ -804,6 +810,8 @@ object Battle { attacker.takeDamage(damage) interceptor.attacksThisTurn++ + if (damage > 0) + addXp(MapUnitCombatant(interceptor), 2, attacker) val attackerName = attacker.getName() val interceptorName = interceptor.name diff --git a/core/src/com/unciv/logic/battle/ICombatant.kt b/core/src/com/unciv/logic/battle/ICombatant.kt index 2b41c3ff4b..41a76537da 100644 --- a/core/src/com/unciv/logic/battle/ICombatant.kt +++ b/core/src/com/unciv/logic/battle/ICombatant.kt @@ -26,6 +26,10 @@ interface ICombatant { if (this is CityCombatant) return true return (this as MapUnitCombatant).unit.baseUnit.isRanged() } + fun isAirUnit(): Boolean { + if (this is CityCombatant) return false + return (this as MapUnitCombatant).unit.baseUnit.isAirUnit() + } fun isCity(): Boolean { return this is CityCombatant }