mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-20 04:38:18 +07:00
Return Stacking Terrain Bonus to Civ5 Rules (#6249)
* Make multiple defense bonuses stack * Switch to check base terrin and Natural Wonders using getAllTerrains() * Improved Tile Defense stacking * Change to using 0f since no other maths happening Co-authored-by: itanasi <spellman23@gmail.com>
This commit is contained in:
@ -609,8 +609,12 @@ open class TileInfo {
|
|||||||
tileMap.getTilesAtDistance(position, distance)
|
tileMap.getTilesAtDistance(position, distance)
|
||||||
|
|
||||||
fun getDefensiveBonus(): Float {
|
fun getDefensiveBonus(): Float {
|
||||||
var bonus = 0F
|
var bonus = baseTerrainObject.defenceBonus
|
||||||
getAllTerrains().forEach{bonus += it.defenceBonus}
|
if (terrainFeatureObjects.isNotEmpty()) {
|
||||||
|
val otherTerrainBonus = terrainFeatureObjects.maxOf { it.defenceBonus }
|
||||||
|
if (otherTerrainBonus != 0f) bonus = otherTerrainBonus // replaces baseTerrainObject
|
||||||
|
}
|
||||||
|
if (naturalWonder != null) bonus += getNaturalWonder().defenceBonus
|
||||||
val tileImprovement = getTileImprovement()
|
val tileImprovement = getTileImprovement()
|
||||||
if (tileImprovement != null) {
|
if (tileImprovement != null) {
|
||||||
for (unique in tileImprovement.getMatchingUniques(UniqueType.DefensiveBonus, StateForConditionals(tile = this)))
|
for (unique in tileImprovement.getMatchingUniques(UniqueType.DefensiveBonus, StateForConditionals(tile = this)))
|
||||||
|
Reference in New Issue
Block a user