mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-27 13:55:54 -04:00
Fixed a bug where units requiring nearby units for bonuses could find themselves (#6104)
* Fixed a bug where units requiring nearby units for bonuses could find themselves * Added requested changes
This commit is contained in:
parent
6925fc6909
commit
02c37f19fe
@ -1,6 +1,7 @@
|
|||||||
package com.unciv.models.ruleset.unique
|
package com.unciv.models.ruleset.unique
|
||||||
|
|
||||||
import com.unciv.logic.battle.CombatAction
|
import com.unciv.logic.battle.CombatAction
|
||||||
|
import com.unciv.logic.battle.MapUnitCombatant
|
||||||
import com.unciv.logic.city.CityInfo
|
import com.unciv.logic.city.CityInfo
|
||||||
import com.unciv.models.stats.Stats
|
import com.unciv.models.stats.Stats
|
||||||
import com.unciv.models.translations.*
|
import com.unciv.models.translations.*
|
||||||
@ -75,6 +76,10 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
|||||||
|
|
||||||
fun ruleset() = state.civInfo!!.gameInfo.ruleSet
|
fun ruleset() = state.civInfo!!.gameInfo.ruleSet
|
||||||
val relevantUnitTile by lazy { state.attackedTile ?: state.unit?.getTile() }
|
val relevantUnitTile by lazy { state.attackedTile ?: state.unit?.getTile() }
|
||||||
|
val relevantUnit by lazy {
|
||||||
|
if (state.ourCombatant != null && state.ourCombatant is MapUnitCombatant) state.ourCombatant.unit
|
||||||
|
else state.unit
|
||||||
|
}
|
||||||
|
|
||||||
return when (condition.type) {
|
return when (condition.type) {
|
||||||
UniqueType.ConditionalWar -> state.civInfo?.isAtWar() == true
|
UniqueType.ConditionalWar -> state.civInfo?.isAtWar() == true
|
||||||
@ -142,8 +147,11 @@ class Unique(val text: String, val sourceObjectType: UniqueTarget? = null, val s
|
|||||||
!= state.unit.getTile().getContinent()
|
!= state.unit.getTile().getContinent()
|
||||||
)
|
)
|
||||||
UniqueType.ConditionalAdjacentUnit ->
|
UniqueType.ConditionalAdjacentUnit ->
|
||||||
state.civInfo != null && relevantUnitTile!!.neighbors.any {
|
state.civInfo != null
|
||||||
|
&& relevantUnit != null
|
||||||
|
&& relevantUnitTile!!.neighbors.any {
|
||||||
it.militaryUnit != null
|
it.militaryUnit != null
|
||||||
|
&& it.militaryUnit != relevantUnit
|
||||||
&& it.militaryUnit!!.civInfo == state.civInfo
|
&& it.militaryUnit!!.civInfo == state.civInfo
|
||||||
&& it.militaryUnit!!.matchesFilter(condition.params[0])
|
&& it.militaryUnit!!.matchesFilter(condition.params[0])
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user