mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -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
|
||||
|
||||
import com.unciv.logic.battle.CombatAction
|
||||
import com.unciv.logic.battle.MapUnitCombatant
|
||||
import com.unciv.logic.city.CityInfo
|
||||
import com.unciv.models.stats.Stats
|
||||
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
|
||||
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) {
|
||||
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()
|
||||
)
|
||||
UniqueType.ConditionalAdjacentUnit ->
|
||||
state.civInfo != null && relevantUnitTile!!.neighbors.any {
|
||||
state.civInfo != null
|
||||
&& relevantUnit != null
|
||||
&& relevantUnitTile!!.neighbors.any {
|
||||
it.militaryUnit != null
|
||||
&& it.militaryUnit != relevantUnit
|
||||
&& it.militaryUnit!!.civInfo == state.civInfo
|
||||
&& it.militaryUnit!!.matchesFilter(condition.params[0])
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user