mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 13:27:22 -04:00
Fix Educated Elite (#5416)
* fix educated elite * unique-ify prophet uniques
This commit is contained in:
parent
44fd987160
commit
22ebe2b9af
@ -7,6 +7,7 @@ import com.unciv.logic.civilization.ReligionState
|
||||
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
||||
import com.unciv.logic.map.MapUnit
|
||||
import com.unciv.logic.map.TileInfo
|
||||
import com.unciv.models.ruleset.unique.UniqueType
|
||||
import com.unciv.ui.worldscreen.unit.UnitActions
|
||||
|
||||
object UnitAutomation {
|
||||
@ -106,13 +107,13 @@ object UnitAutomation {
|
||||
if (unit.hasUniqueToBuildImprovements)
|
||||
return WorkerAutomation.automateWorkerAction(unit)
|
||||
|
||||
if (unit.hasUnique("May found a religion")
|
||||
if (unit.hasUnique(UniqueType.MayFoundReligion)
|
||||
&& unit.civInfo.religionManager.religionState < ReligionState.Religion
|
||||
&& unit.civInfo.religionManager.mayFoundReligionAtAll(unit)
|
||||
)
|
||||
return SpecificUnitAutomation.foundReligion(unit)
|
||||
|
||||
if (unit.hasUnique("May enhance a religion")
|
||||
if (unit.hasUnique(UniqueType.MayEnhanceReligion)
|
||||
&& unit.civInfo.religionManager.religionState < ReligionState.EnhancedReligion
|
||||
&& unit.civInfo.religionManager.mayEnhanceReligionAtAll(unit)
|
||||
)
|
||||
|
@ -73,14 +73,14 @@ class CityStateFunctions(val civInfo: CivilizationInfo) {
|
||||
/** Gain a random great person from the city state */
|
||||
fun giveGreatPersonToPatron(receivingCiv: CivilizationInfo) {
|
||||
|
||||
var giftableUnits = civInfo.gameInfo.ruleSet.units.values.filter { it.isGreatPerson() }
|
||||
if (!civInfo.gameInfo.isReligionEnabled()) giftableUnits = giftableUnits
|
||||
.filterNot { it.uniques.contains("Hidden when religion is disabled")}
|
||||
// Great Prophets can't be gotten from CS
|
||||
val giftableUnits = civInfo.gameInfo.ruleSet.units.values.filter { it.isGreatPerson()
|
||||
&& !it.hasUnique(UniqueType.MayFoundReligion) }
|
||||
if (giftableUnits.isEmpty()) // For badly defined mods that don't have great people but do have the policy that makes city states grant them
|
||||
return
|
||||
val giftedUnit = giftableUnits.random()
|
||||
val cities = NextTurnAutomation.getClosestCities(receivingCiv, civInfo)
|
||||
val placedUnit = receivingCiv.addUnit(giftedUnit.name, cities.city1)
|
||||
val placedUnit = receivingCiv.placeUnitNearTile(cities.city1.location, giftedUnit.name)
|
||||
?: return
|
||||
val locations = LocationAction(listOf(placedUnit.getTile().position, cities.city2.location))
|
||||
receivingCiv.addNotification( "[${civInfo.civName}] gave us a [${giftedUnit.name}] as a gift!", locations, civInfo.civName, giftedUnit.name)
|
||||
|
@ -139,7 +139,7 @@ class ReligionManager {
|
||||
}
|
||||
|
||||
fun getGreatProphetEquivalent(): String? {
|
||||
return civInfo.gameInfo.ruleSet.units.values.firstOrNull { it.hasUnique("May found a religion") }?.name
|
||||
return civInfo.gameInfo.ruleSet.units.values.firstOrNull { it.hasUnique(UniqueType.MayFoundReligion) }?.name
|
||||
}
|
||||
|
||||
private fun generateProphet() {
|
||||
|
@ -161,6 +161,8 @@ enum class UniqueType(val text:String, vararg targets: UniqueTarget) {
|
||||
Movement("[amount] Movement", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
Sight("[amount] Sight", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
SpreadReligionStrength("[amount]% Spread Religion Strength", UniqueTarget.Unit, UniqueTarget.Global),
|
||||
MayFoundReligion("May found a religion", UniqueTarget.Unit),
|
||||
MayEnhanceReligion("May enhance a religion", UniqueTarget.Unit),
|
||||
|
||||
@Deprecated("As of 3.17.5", ReplaceWith("[amount] Movement <for [mapUnitFilter] units>"), DeprecationLevel.WARNING)
|
||||
MovementUnits("+[amount] Movement for all [mapUnitFilter] units", UniqueTarget.Global),
|
||||
|
@ -481,7 +481,7 @@ object UnitActions {
|
||||
}
|
||||
|
||||
private fun addFoundReligionAction(unit: MapUnit, actionList: ArrayList<UnitAction>) {
|
||||
if (!unit.hasUnique("May found a religion")) return
|
||||
if (!unit.hasUnique(UniqueType.MayFoundReligion)) return
|
||||
if (!unit.civInfo.religionManager.mayFoundReligionAtAll(unit)) return
|
||||
actionList += UnitAction(UnitActionType.FoundReligion,
|
||||
action = getFoundReligionAction(unit).takeIf { unit.civInfo.religionManager.mayFoundReligionNow(unit) }
|
||||
@ -497,7 +497,7 @@ object UnitActions {
|
||||
}
|
||||
|
||||
private fun addEnhanceReligionAction(unit: MapUnit, actionList: ArrayList<UnitAction>) {
|
||||
if (!unit.hasUnique("May enhance a religion")) return
|
||||
if (!unit.hasUnique(UniqueType.MayEnhanceReligion)) return
|
||||
if (!unit.civInfo.religionManager.mayEnhanceReligionAtAll(unit)) return
|
||||
actionList += UnitAction(UnitActionType.EnhanceReligion,
|
||||
title = "Enhance [${unit.civInfo.religionManager.religion!!.getReligionDisplayName()}]",
|
||||
|
Loading…
x
Reference in New Issue
Block a user