mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 14:24:43 -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.civilization.diplomacy.DiplomaticStatus
|
||||||
import com.unciv.logic.map.MapUnit
|
import com.unciv.logic.map.MapUnit
|
||||||
import com.unciv.logic.map.TileInfo
|
import com.unciv.logic.map.TileInfo
|
||||||
|
import com.unciv.models.ruleset.unique.UniqueType
|
||||||
import com.unciv.ui.worldscreen.unit.UnitActions
|
import com.unciv.ui.worldscreen.unit.UnitActions
|
||||||
|
|
||||||
object UnitAutomation {
|
object UnitAutomation {
|
||||||
@ -106,13 +107,13 @@ object UnitAutomation {
|
|||||||
if (unit.hasUniqueToBuildImprovements)
|
if (unit.hasUniqueToBuildImprovements)
|
||||||
return WorkerAutomation.automateWorkerAction(unit)
|
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.religionState < ReligionState.Religion
|
||||||
&& unit.civInfo.religionManager.mayFoundReligionAtAll(unit)
|
&& unit.civInfo.religionManager.mayFoundReligionAtAll(unit)
|
||||||
)
|
)
|
||||||
return SpecificUnitAutomation.foundReligion(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.religionState < ReligionState.EnhancedReligion
|
||||||
&& unit.civInfo.religionManager.mayEnhanceReligionAtAll(unit)
|
&& unit.civInfo.religionManager.mayEnhanceReligionAtAll(unit)
|
||||||
)
|
)
|
||||||
|
@ -73,14 +73,14 @@ class CityStateFunctions(val civInfo: CivilizationInfo) {
|
|||||||
/** Gain a random great person from the city state */
|
/** Gain a random great person from the city state */
|
||||||
fun giveGreatPersonToPatron(receivingCiv: CivilizationInfo) {
|
fun giveGreatPersonToPatron(receivingCiv: CivilizationInfo) {
|
||||||
|
|
||||||
var giftableUnits = civInfo.gameInfo.ruleSet.units.values.filter { it.isGreatPerson() }
|
// Great Prophets can't be gotten from CS
|
||||||
if (!civInfo.gameInfo.isReligionEnabled()) giftableUnits = giftableUnits
|
val giftableUnits = civInfo.gameInfo.ruleSet.units.values.filter { it.isGreatPerson()
|
||||||
.filterNot { it.uniques.contains("Hidden when religion is disabled")}
|
&& !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
|
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
|
return
|
||||||
val giftedUnit = giftableUnits.random()
|
val giftedUnit = giftableUnits.random()
|
||||||
val cities = NextTurnAutomation.getClosestCities(receivingCiv, civInfo)
|
val cities = NextTurnAutomation.getClosestCities(receivingCiv, civInfo)
|
||||||
val placedUnit = receivingCiv.addUnit(giftedUnit.name, cities.city1)
|
val placedUnit = receivingCiv.placeUnitNearTile(cities.city1.location, giftedUnit.name)
|
||||||
?: return
|
?: return
|
||||||
val locations = LocationAction(listOf(placedUnit.getTile().position, cities.city2.location))
|
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)
|
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? {
|
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() {
|
private fun generateProphet() {
|
||||||
|
@ -161,6 +161,8 @@ enum class UniqueType(val text:String, vararg targets: UniqueTarget) {
|
|||||||
Movement("[amount] Movement", UniqueTarget.Unit, UniqueTarget.Global),
|
Movement("[amount] Movement", UniqueTarget.Unit, UniqueTarget.Global),
|
||||||
Sight("[amount] Sight", UniqueTarget.Unit, UniqueTarget.Global),
|
Sight("[amount] Sight", UniqueTarget.Unit, UniqueTarget.Global),
|
||||||
SpreadReligionStrength("[amount]% Spread Religion Strength", 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)
|
@Deprecated("As of 3.17.5", ReplaceWith("[amount] Movement <for [mapUnitFilter] units>"), DeprecationLevel.WARNING)
|
||||||
MovementUnits("+[amount] Movement for all [mapUnitFilter] units", UniqueTarget.Global),
|
MovementUnits("+[amount] Movement for all [mapUnitFilter] units", UniqueTarget.Global),
|
||||||
|
@ -481,7 +481,7 @@ object UnitActions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun addFoundReligionAction(unit: MapUnit, actionList: ArrayList<UnitAction>) {
|
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
|
if (!unit.civInfo.religionManager.mayFoundReligionAtAll(unit)) return
|
||||||
actionList += UnitAction(UnitActionType.FoundReligion,
|
actionList += UnitAction(UnitActionType.FoundReligion,
|
||||||
action = getFoundReligionAction(unit).takeIf { unit.civInfo.religionManager.mayFoundReligionNow(unit) }
|
action = getFoundReligionAction(unit).takeIf { unit.civInfo.religionManager.mayFoundReligionNow(unit) }
|
||||||
@ -497,7 +497,7 @@ object UnitActions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun addEnhanceReligionAction(unit: MapUnit, actionList: ArrayList<UnitAction>) {
|
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
|
if (!unit.civInfo.religionManager.mayEnhanceReligionAtAll(unit)) return
|
||||||
actionList += UnitAction(UnitActionType.EnhanceReligion,
|
actionList += UnitAction(UnitActionType.EnhanceReligion,
|
||||||
title = "Enhance [${unit.civInfo.religionManager.religion!!.getReligionDisplayName()}]",
|
title = "Enhance [${unit.civInfo.religionManager.religion!!.getReligionDisplayName()}]",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user