mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-30 07:21:34 -04:00
Open Borders is now only available with Civil Service, as per Civ V
This commit is contained in:
parent
c81c81fe8f
commit
07a8b97ed2
@ -24,7 +24,7 @@
|
|||||||
hateYes:["Yes!"],
|
hateYes:["Yes!"],
|
||||||
|
|
||||||
afterPeace:"Foolish, foolish – letting me live.",
|
afterPeace:"Foolish, foolish – letting me live.",
|
||||||
tradeRequest:" It appears that you do have a reason for existing – to make this deal with me.",
|
tradeRequest:"It appears that you do have a reason for existing – to make this deal with me.",
|
||||||
|
|
||||||
mainColor:[27,53,63],
|
mainColor:[27,53,63],
|
||||||
secondaryColor:[213,249,255],
|
secondaryColor:[213,249,255],
|
||||||
|
@ -156,7 +156,8 @@
|
|||||||
{
|
{
|
||||||
name:"Civil Service",
|
name:"Civil Service",
|
||||||
row:5,
|
row:5,
|
||||||
prerequisites:["Currency","Horseback Riding","Philosophy"]
|
prerequisites:["Currency","Horseback Riding","Philosophy"],
|
||||||
|
uniques:["Enables Open Borders agreements"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name:"Guilds",
|
name:"Guilds",
|
||||||
|
@ -2850,6 +2850,8 @@
|
|||||||
Simplified_Chinese:"文官制度"
|
Simplified_Chinese:"文官制度"
|
||||||
Portuguese:"Serviço cívil"
|
Portuguese:"Serviço cívil"
|
||||||
}
|
}
|
||||||
|
"Enables Open Borders agreements":{}
|
||||||
|
|
||||||
"Guilds":{
|
"Guilds":{
|
||||||
Italian:"Gilde"
|
Italian:"Gilde"
|
||||||
Russian:"Гильдии"
|
Russian:"Гильдии"
|
||||||
@ -4815,13 +4817,6 @@
|
|||||||
Romanian:"[leaderName] de [nation]"
|
Romanian:"[leaderName] de [nation]"
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
"[leaderName] of [adjective] Empire":{ // e.g. Ramesses of Egyptian Empire, Napoleon of French Empire (so it should be [adjective] instead of [nation]
|
|
||||||
Italian:"[leaderName] dell'Impero [adjective]" //es. Ramses II dell'Impero egiziano, Napoleone dell'Impero francese
|
|
||||||
French:"[leaderName] de l'Empire [adjective]"
|
|
||||||
Simplified_Chinese:"[adjective]帝国的[leaderName]"
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
"You'll pay for this!":{
|
"You'll pay for this!":{
|
||||||
Italian:"Pagherai caro questo affronto!"
|
Italian:"Pagherai caro questo affronto!"
|
||||||
@ -4836,17 +4831,22 @@ Simplified_Chinese:"[adjective]帝国的[leaderName]"
|
|||||||
"Very well.":{
|
"Very well.":{
|
||||||
Italian:"Molto bene."
|
Italian:"Molto bene."
|
||||||
French:"Très bien."
|
French:"Très bien."
|
||||||
Simplified_Chinese:"很好."
|
Simplified_Chinese:"很好."
|
||||||
}
|
}
|
||||||
"Farewell.":{
|
"Farewell.":{
|
||||||
Italian:"Addio."
|
Italian:"Addio."
|
||||||
French:"Adieu."
|
French:"Adieu."
|
||||||
Simplified_Chinese:"再见."
|
Simplified_Chinese:"再见."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
"Not this time.":{} // declining trade text
|
||||||
|
"Excellent!":{} // AI statement after we accept a trade they proposed
|
||||||
|
"How about something else...":{} // Counteroffer to AI offer
|
||||||
|
|
||||||
"A pleasure to meet you.":{
|
"A pleasure to meet you.":{
|
||||||
Italian:"Lieto di incontrarvi."
|
Italian:"Lieto di incontrarvi."
|
||||||
French:"Un plaisir de vous rencontrez"
|
French:"Un plaisir de vous rencontrez"
|
||||||
Simplified_Chinese:"很高兴见到你."
|
Simplified_Chinese:"很高兴见到你."
|
||||||
}
|
}
|
||||||
|
|
||||||
// Overview screen
|
// Overview screen
|
||||||
|
@ -84,7 +84,7 @@ class CityStats {
|
|||||||
private fun getStatPercentBonusesFromComputers(): Stats {
|
private fun getStatPercentBonusesFromComputers(): Stats {
|
||||||
val stats = Stats()
|
val stats = Stats()
|
||||||
|
|
||||||
if (cityInfo.civInfo.tech.getUniques().contains("+10% science and production in all cities")) {
|
if (cityInfo.civInfo.tech.getTechUniques().contains("+10% science and production in all cities")) {
|
||||||
stats.production += 10f
|
stats.production += 10f
|
||||||
stats.science += 10f
|
stats.science += 10f
|
||||||
}
|
}
|
||||||
|
@ -24,12 +24,12 @@ open class SpecialConstruction(override var name: String, override val descripti
|
|||||||
fun getSpecialConstructions(): List<SpecialConstruction> {
|
fun getSpecialConstructions(): List<SpecialConstruction> {
|
||||||
val science = object:SpecialConstruction("Science", "Convert production to science at a rate of 4 to 1"){
|
val science = object:SpecialConstruction("Science", "Convert production to science at a rate of 4 to 1"){
|
||||||
override fun isBuildable(construction: CityConstructions): Boolean {
|
override fun isBuildable(construction: CityConstructions): Boolean {
|
||||||
return construction.cityInfo.civInfo.tech.getUniques().contains("Enables conversion of city production to science")
|
return construction.cityInfo.civInfo.tech.getTechUniques().contains("Enables conversion of city production to science")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val gold = object:SpecialConstruction("Gold", "Convert production to gold at a rate of 4 to 1"){
|
val gold = object:SpecialConstruction("Gold", "Convert production to gold at a rate of 4 to 1"){
|
||||||
override fun isBuildable(construction: CityConstructions): Boolean {
|
override fun isBuildable(construction: CityConstructions): Boolean {
|
||||||
return construction.cityInfo.civInfo.tech.getUniques().contains("Enables conversion of city production to gold")
|
return construction.cityInfo.civInfo.tech.getTechUniques().contains("Enables conversion of city production to gold")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val idle = object:SpecialConstruction("Nothing", "The city will not produce anything."){
|
val idle = object:SpecialConstruction("Nothing", "The city will not produce anything."){
|
||||||
|
@ -63,7 +63,7 @@ class TechManager {
|
|||||||
return GameBasics.Technologies[TechName]!!.prerequisites.all { isResearched(it) }
|
return GameBasics.Technologies[TechName]!!.prerequisites.all { isResearched(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getUniques() = researchedTechUniques
|
fun getTechUniques() = researchedTechUniques
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ class MapUnit {
|
|||||||
|
|
||||||
fun getEmbarkedMovement(): Int {
|
fun getEmbarkedMovement(): Int {
|
||||||
var movement=2
|
var movement=2
|
||||||
movement += civInfo.tech.getUniques().count { it == "Increases embarked movement +1" }
|
movement += civInfo.tech.getTechUniques().count { it == "Increases embarked movement +1" }
|
||||||
return movement
|
return movement
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ class UnitMovementAlgorithms(val unit:MapUnit) {
|
|||||||
|
|
||||||
if (from.roadStatus !== RoadStatus.None && to.roadStatus !== RoadStatus.None) //Road
|
if (from.roadStatus !== RoadStatus.None && to.roadStatus !== RoadStatus.None) //Road
|
||||||
{
|
{
|
||||||
if (unit.civInfo.tech.getUniques().contains("Improves movement speed on roads")) return 1 / 3f
|
if (unit.civInfo.tech.getTechUniques().contains("Improves movement speed on roads")) return 1 / 3f
|
||||||
else return 1 / 2f
|
else return 1 / 2f
|
||||||
}
|
}
|
||||||
if (unit.ignoresTerrainCost) return 1f
|
if (unit.ignoresTerrainCost) return 1f
|
||||||
|
@ -16,8 +16,12 @@ class TradeLogic(val ourCivilization:CivilizationInfo, val otherCivilization: Ci
|
|||||||
val offers = TradeOffersList()
|
val offers = TradeOffersList()
|
||||||
if(civInfo.isAtWarWith(otherCivilization))
|
if(civInfo.isAtWarWith(otherCivilization))
|
||||||
offers.add(TradeOffer("Peace Treaty", TradeType.Treaty, 20))
|
offers.add(TradeOffer("Peace Treaty", TradeType.Treaty, 20))
|
||||||
if(!otherCivilization.getDiplomacyManager(civInfo).hasOpenBorders())
|
|
||||||
|
if(!otherCivilization.getDiplomacyManager(civInfo).hasOpenBorders()
|
||||||
|
&& civInfo.tech.getTechUniques().contains("Enables Open Borders agreements")
|
||||||
|
&& otherCivilization.tech.getTechUniques().contains("Enables Open Borders agreements"))
|
||||||
offers.add(TradeOffer("Open Borders", TradeType.Agreement, 30))
|
offers.add(TradeOffer("Open Borders", TradeType.Agreement, 30))
|
||||||
|
|
||||||
for(entry in civInfo.getCivResources().filterNot { it.key.resourceType == ResourceType.Bonus }) {
|
for(entry in civInfo.getCivResources().filterNot { it.key.resourceType == ResourceType.Bonus }) {
|
||||||
val resourceTradeType = if(entry.key.resourceType== ResourceType.Luxury) TradeType.Luxury_Resource
|
val resourceTradeType = if(entry.key.resourceType== ResourceType.Luxury) TradeType.Luxury_Resource
|
||||||
else TradeType.Strategic_Resource
|
else TradeType.Strategic_Resource
|
||||||
|
@ -46,7 +46,7 @@ class TradePopup(worldScreen: WorldScreen): PopupTable(worldScreen){
|
|||||||
add(otherCivLeaderName.toLabel()).colspan(2)
|
add(otherCivLeaderName.toLabel()).colspan(2)
|
||||||
addSeparator()
|
addSeparator()
|
||||||
addGoodSizedLabel("Excellent!").row()
|
addGoodSizedLabel("Excellent!").row()
|
||||||
addButton("Goodbye."){
|
addButton("Farewell."){
|
||||||
this.remove()
|
this.remove()
|
||||||
worldScreen.shouldUpdate=true
|
worldScreen.shouldUpdate=true
|
||||||
// in all cases, worldScreen.shouldUpdate should be set to true when we remove the last of the popups
|
// in all cases, worldScreen.shouldUpdate should be set to true when we remove the last of the popups
|
||||||
|
@ -324,7 +324,7 @@ class WorldScreen : CameraStageBaseScreen() {
|
|||||||
displayTutorials("ApolloProgram")
|
displayTutorials("ApolloProgram")
|
||||||
if(currentPlayerCiv.getCivUnits().any { it.type == UnitType.Siege })
|
if(currentPlayerCiv.getCivUnits().any { it.type == UnitType.Siege })
|
||||||
displayTutorials("SiegeUnitTrained")
|
displayTutorials("SiegeUnitTrained")
|
||||||
if(currentPlayerCiv.tech.getUniques().contains("Enables embarkation for land units"))
|
if(currentPlayerCiv.tech.getTechUniques().contains("Enables embarkation for land units"))
|
||||||
displayTutorials("CanEmbark")
|
displayTutorials("CanEmbark")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user