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:
itanasi
2022-03-08 04:19:13 -08:00
committed by GitHub
parent 6391a5c881
commit a4cb49ea63

View File

@ -609,8 +609,12 @@ open class TileInfo {
tileMap.getTilesAtDistance(position, distance)
fun getDefensiveBonus(): Float {
var bonus = 0F
getAllTerrains().forEach{bonus += it.defenceBonus}
var bonus = baseTerrainObject.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()
if (tileImprovement != null) {
for (unique in tileImprovement.getMatchingUniques(UniqueType.DefensiveBonus, StateForConditionals(tile = this)))