Unpurchaseable units are properly unpurchaseable

This commit is contained in:
Yair Morgenstern
2023-05-24 00:16:49 +03:00
parent 206adb954d
commit 00b52851f3

View File

@ -2,12 +2,12 @@ package com.unciv.models.ruleset.unit
import com.unciv.logic.city.City import com.unciv.logic.city.City
import com.unciv.logic.city.CityConstructions import com.unciv.logic.city.CityConstructions
import com.unciv.models.ruleset.INonPerpetualConstruction
import com.unciv.models.ruleset.RejectionReason
import com.unciv.models.ruleset.RejectionReasonType
import com.unciv.logic.civilization.Civilization import com.unciv.logic.civilization.Civilization
import com.unciv.logic.map.mapunit.MapUnit import com.unciv.logic.map.mapunit.MapUnit
import com.unciv.models.Counter import com.unciv.models.Counter
import com.unciv.models.ruleset.INonPerpetualConstruction
import com.unciv.models.ruleset.RejectionReason
import com.unciv.models.ruleset.RejectionReasonType
import com.unciv.models.ruleset.Ruleset import com.unciv.models.ruleset.Ruleset
import com.unciv.models.ruleset.RulesetObject import com.unciv.models.ruleset.RulesetObject
import com.unciv.models.ruleset.unique.StateForConditionals import com.unciv.models.ruleset.unique.StateForConditionals
@ -88,6 +88,7 @@ class BaseUnit : RulesetObject(), INonPerpetualConstruction {
override fun canBePurchasedWithStat(city: City?, stat: Stat): Boolean { override fun canBePurchasedWithStat(city: City?, stat: Stat): Boolean {
if (city == null) return super.canBePurchasedWithStat(null, stat) if (city == null) return super.canBePurchasedWithStat(null, stat)
if (hasUnique(UniqueType.CannotBePurchased)) return false
if (getRejectionReasons(city.civ, city).any { it.type != RejectionReasonType.Unbuildable }) if (getRejectionReasons(city.civ, city).any { it.type != RejectionReasonType.Unbuildable })
return false return false
if (costFunctions.canBePurchasedWithStat(city, stat)) return true if (costFunctions.canBePurchasedWithStat(city, stat)) return true