mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-08 23:08:35 +07:00
Raze Special Cities (#8115)
* Support new ModOptions uniques: Allow raze capital, Allow raze holy city. * Break up long set of boolean checks into if statements.
This commit is contained in:
@ -12,6 +12,7 @@ import com.unciv.logic.map.RoadStatus
|
||||
import com.unciv.logic.map.TileInfo
|
||||
import com.unciv.logic.map.TileMap
|
||||
import com.unciv.models.Counter
|
||||
import com.unciv.models.ruleset.ModOptionsConstants
|
||||
import com.unciv.models.ruleset.Nation
|
||||
import com.unciv.models.ruleset.tile.ResourceSupplyList
|
||||
import com.unciv.models.ruleset.tile.ResourceType
|
||||
@ -590,7 +591,14 @@ class CityInfo : IsPartOfGameInfoSerialization {
|
||||
fun isHolyCityOf(religionName: String?) = isHolyCity() && religion.religionThisIsTheHolyCityOf == religionName
|
||||
|
||||
fun canBeDestroyed(justCaptured: Boolean = false): Boolean {
|
||||
return !isOriginalCapital && !isHolyCity() && (!isCapital() || justCaptured)
|
||||
val allowRazeCapital = civInfo.gameInfo.ruleSet.modOptions.uniques.contains(ModOptionsConstants.allowRazeCapital)
|
||||
val allowRazeHolyCity = civInfo.gameInfo.ruleSet.modOptions.uniques.contains(ModOptionsConstants.allowRazeHolyCity)
|
||||
|
||||
if (isOriginalCapital && !allowRazeCapital) return false;
|
||||
if (isHolyCity() && !allowRazeHolyCity) return false;
|
||||
if (isCapital() && !justCaptured && !allowRazeCapital) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
fun getForceEvaluation(): Int {
|
||||
|
@ -38,6 +38,8 @@ object ModOptionsConstants {
|
||||
const val allowCityStatesSpawnUnits = "Allow City States to spawn with additional units"
|
||||
const val tradeCivIntroductions = "Can trade civilization introductions for [] Gold"
|
||||
const val disableReligion = "Disable religion"
|
||||
const val allowRazeCapital = "Allow raze capital"
|
||||
const val allowRazeHolyCity = "Allow raze holy city"
|
||||
}
|
||||
|
||||
class ModOptions : IHasUniques {
|
||||
|
Reference in New Issue
Block a user