mirror of
https://github.com/yairm210/Unciv.git
synced 2025-02-21 20:18:28 +07:00
Modding: Added "[relativeAmount] Air Interception Range" unique
This commit is contained in:
parent
870c146e34
commit
2b0568f025
@ -803,10 +803,16 @@ class MapUnit : IsPartOfGameInfoSerialization {
|
||||
|
||||
fun canIntercept(attackedTile: Tile): Boolean {
|
||||
if (!canIntercept()) return false
|
||||
if (currentTile.aerialDistanceTo(attackedTile) > baseUnit.interceptRange) return false
|
||||
if (currentTile.aerialDistanceTo(attackedTile) > getInterceptionRange()) return false
|
||||
return true
|
||||
}
|
||||
|
||||
fun getInterceptionRange():Int {
|
||||
val rangeFromUniques = getMatchingUniques(UniqueType.AirInterceptionRange, checkCivInfoUniques = true)
|
||||
.sumOf { it.params[0].toInt() }
|
||||
return baseUnit.interceptRange + rangeFromUniques
|
||||
}
|
||||
|
||||
fun canIntercept(): Boolean {
|
||||
if (interceptChance() == 0) return false
|
||||
// Air Units can only Intercept if they didn't move this turn
|
||||
|
@ -355,6 +355,7 @@ enum class UniqueType(val text: String, vararg targets: UniqueTarget, val flags:
|
||||
Movement("[amount] Movement", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
Sight("[amount] Sight", UniqueTarget.Unit, UniqueTarget.Global, UniqueTarget.Terrain),
|
||||
Range("[amount] Range", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
AirInterceptionRange("[relativeAmount] Air Interception Range", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
Heal("[amount] HP when healing", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
|
||||
SpreadReligionStrength("[relativeAmount]% Spread Religion Strength", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
|
@ -13,13 +13,13 @@ import com.unciv.logic.city.City
|
||||
import com.unciv.logic.map.mapunit.MapUnit
|
||||
import com.unciv.logic.map.tile.Tile
|
||||
import com.unciv.models.translations.tr
|
||||
import com.unciv.ui.components.widgets.UnitGroup
|
||||
import com.unciv.ui.components.extensions.addSeparator
|
||||
import com.unciv.ui.components.extensions.center
|
||||
import com.unciv.ui.components.extensions.darken
|
||||
import com.unciv.ui.components.extensions.toImageButton
|
||||
import com.unciv.ui.components.extensions.toLabel
|
||||
import com.unciv.ui.components.input.onClick
|
||||
import com.unciv.ui.components.widgets.UnitGroup
|
||||
import com.unciv.ui.images.ImageGetter
|
||||
import com.unciv.ui.screens.basescreen.BaseScreen
|
||||
import com.unciv.ui.screens.civilopediascreen.CivilopediaCategories
|
||||
@ -177,10 +177,10 @@ class UnitTable(val worldScreen: WorldScreen) : Table() {
|
||||
unitDescriptionTable.add(unit.getRange().toString()).padRight(10f)
|
||||
}
|
||||
|
||||
if (unit.baseUnit.interceptRange > 0) {
|
||||
val interceptionRange = unit.getInterceptionRange()
|
||||
if (interceptionRange > 0) {
|
||||
unitDescriptionTable.add(ImageGetter.getStatIcon("InterceptRange")).size(20f)
|
||||
val range = if (unit.baseUnit.isRanged()) unit.getRange() else unit.baseUnit.interceptRange
|
||||
unitDescriptionTable.add(range.toString()).padRight(10f)
|
||||
unitDescriptionTable.add(interceptionRange.toString()).padRight(10f)
|
||||
}
|
||||
|
||||
if (!unit.isCivilian()) {
|
||||
|
Loading…
Reference in New Issue
Block a user