mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -04:00
Civs now have unique responses for introduction, greeting, trade acceptance and refusal
This commit is contained in:
parent
d080f37a94
commit
0788141054
@ -22,7 +22,7 @@ android {
|
|||||||
minSdkVersion 14
|
minSdkVersion 14
|
||||||
targetSdkVersion 28
|
targetSdkVersion 28
|
||||||
versionCode 201
|
versionCode 201
|
||||||
versionName "2.13.2"
|
versionName "2.13.3"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Had to add this crap for Travis to build, it wanted to sign the app
|
// Had to add this crap for Travis to build, it wanted to sign the app
|
||||||
|
@ -6,6 +6,7 @@ import com.unciv.logic.GameInfo
|
|||||||
import com.unciv.logic.city.CityInfo
|
import com.unciv.logic.city.CityInfo
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomacyManager
|
import com.unciv.logic.civilization.diplomacy.DiplomacyManager
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticIncident
|
import com.unciv.logic.civilization.diplomacy.DiplomaticIncident
|
||||||
|
import com.unciv.logic.civilization.diplomacy.DiplomaticIncidentType
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
||||||
import com.unciv.logic.map.BFS
|
import com.unciv.logic.map.BFS
|
||||||
import com.unciv.logic.map.MapUnit
|
import com.unciv.logic.map.MapUnit
|
||||||
@ -265,18 +266,24 @@ class CivilizationInfo {
|
|||||||
for(unit in tile.getUnits()) viewedCivs+=unit.civInfo
|
for(unit in tile.getUnits()) viewedCivs+=unit.civInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
for(otherCiv in viewedCivs.filterNot { it==this || it.isBarbarianCivilization() })
|
if(!isBarbarianCivilization()) {
|
||||||
if(!diplomacy.containsKey(otherCiv.civName)){
|
for (otherCiv in viewedCivs.filterNot { it == this || it.isBarbarianCivilization() })
|
||||||
meetCivilization(otherCiv)
|
if (!diplomacy.containsKey(otherCiv.civName)) {
|
||||||
addNotification("We have encountered [${otherCiv.civName}]!".tr(),null, Color.GOLD)
|
meetCivilization(otherCiv)
|
||||||
}
|
addNotification("We have encountered [${otherCiv.civName}]!".tr(), null, Color.GOLD)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun meetCivilization(otherCiv: CivilizationInfo) {
|
fun meetCivilization(otherCiv: CivilizationInfo) {
|
||||||
diplomacy[otherCiv.civName] = DiplomacyManager(this, otherCiv.civName)
|
diplomacy[otherCiv.civName] = DiplomacyManager(this, otherCiv.civName)
|
||||||
.apply { diplomaticStatus = DiplomaticStatus.Peace }
|
.apply { diplomaticStatus = DiplomaticStatus.Peace }
|
||||||
|
otherCiv.diplomaticIncidents.add(DiplomaticIncident(civName, DiplomaticIncidentType.FirstContact))
|
||||||
|
|
||||||
otherCiv.diplomacy[civName] = DiplomacyManager(otherCiv, civName)
|
otherCiv.diplomacy[civName] = DiplomacyManager(otherCiv, civName)
|
||||||
.apply { diplomaticStatus = DiplomaticStatus.Peace }
|
.apply { diplomaticStatus = DiplomaticStatus.Peace }
|
||||||
|
|
||||||
|
diplomaticIncidents.add(DiplomaticIncident(otherCiv.civName, DiplomaticIncidentType.FirstContact))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun toString(): String {return civName} // for debug
|
override fun toString(): String {return civName} // for debug
|
||||||
|
@ -2,5 +2,6 @@ package com.unciv.logic.civilization.diplomacy
|
|||||||
|
|
||||||
enum class DiplomaticIncidentType{
|
enum class DiplomaticIncidentType{
|
||||||
WarDeclaration,
|
WarDeclaration,
|
||||||
Defeated
|
Defeated,
|
||||||
|
FirstContact
|
||||||
}
|
}
|
@ -11,6 +11,11 @@ class Nation : INamed {
|
|||||||
lateinit var declaringWar:String
|
lateinit var declaringWar:String
|
||||||
lateinit var attacked:String
|
lateinit var attacked:String
|
||||||
lateinit var defeated:String
|
lateinit var defeated:String
|
||||||
|
lateinit var introduction:String
|
||||||
|
|
||||||
|
var neutralLetsHearIt = ArrayList<String>()
|
||||||
|
var neutralYes = ArrayList<String>()
|
||||||
|
var neutralNo = ArrayList<String>()
|
||||||
|
|
||||||
lateinit var mainColor: List<Int>
|
lateinit var mainColor: List<Int>
|
||||||
var unique:String?=null
|
var unique:String?=null
|
||||||
|
@ -15,7 +15,7 @@ class TradeTable(val otherCivilization: CivilizationInfo, stage: Stage, onTradeC
|
|||||||
var tradeLogic = TradeLogic(currentPlayerCiv,otherCivilization)
|
var tradeLogic = TradeLogic(currentPlayerCiv,otherCivilization)
|
||||||
var offerColumnsTable = OfferColumnsTable(tradeLogic, stage) { onChange() }
|
var offerColumnsTable = OfferColumnsTable(tradeLogic, stage) { onChange() }
|
||||||
var offerColumnsTableWrapper = Table() // This is so that after a trade has been traded, we can switch out the offers to start anew - this is the easiest way
|
var offerColumnsTableWrapper = Table() // This is so that after a trade has been traded, we can switch out the offers to start anew - this is the easiest way
|
||||||
val tradeText = Label("What do you have in mind?".tr(), CameraStageBaseScreen.skin)
|
val tradeText = Label(otherCivilization.getNation().neutralLetsHearIt.random().tr(), CameraStageBaseScreen.skin)
|
||||||
val offerButton = TextButton("Offer trade".tr(), CameraStageBaseScreen.skin)
|
val offerButton = TextButton("Offer trade".tr(), CameraStageBaseScreen.skin)
|
||||||
|
|
||||||
|
|
||||||
@ -30,14 +30,14 @@ class TradeTable(val otherCivilization: CivilizationInfo, stage: Stage, onTradeC
|
|||||||
offerButton.onClick {
|
offerButton.onClick {
|
||||||
if(offerButton.text.toString() == "Offer trade".tr()) {
|
if(offerButton.text.toString() == "Offer trade".tr()) {
|
||||||
if(tradeLogic.currentTrade.theirOffers.size==0 && tradeLogic.currentTrade.ourOffers.size==0){
|
if(tradeLogic.currentTrade.theirOffers.size==0 && tradeLogic.currentTrade.ourOffers.size==0){
|
||||||
tradeText.setText("There's nothing on the table.".tr())
|
tradeText.setText(otherCivilization.getNation().neutralLetsHearIt.random().tr())
|
||||||
}
|
}
|
||||||
else if (tradeLogic.isTradeAcceptable()){
|
else if (tradeLogic.isTradeAcceptable()){
|
||||||
tradeText.setText("That is acceptable.".tr())
|
tradeText.setText(otherCivilization.getNation().neutralYes.random().tr())
|
||||||
offerButton.setText("Accept".tr())
|
offerButton.setText("Accept".tr())
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
tradeText.setText("I think not.".tr())
|
tradeText.setText(otherCivilization.getNation().neutralNo.random().tr())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(offerButton.text.toString() == "Accept".tr()){
|
else if(offerButton.text.toString() == "Accept".tr()){
|
||||||
@ -48,7 +48,7 @@ class TradeTable(val otherCivilization: CivilizationInfo, stage: Stage, onTradeC
|
|||||||
offerColumnsTableWrapper.add(offerColumnsTable)
|
offerColumnsTableWrapper.add(offerColumnsTable)
|
||||||
tradeText.setText("Pleasure doing business with you!".tr())
|
tradeText.setText("Pleasure doing business with you!".tr())
|
||||||
onTradeComplete()
|
onTradeComplete()
|
||||||
tradeText.setText("Offer trade".tr())
|
offerButton.setText("Offer trade".tr())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ class TradeTable(val otherCivilization: CivilizationInfo, stage: Stage, onTradeC
|
|||||||
private fun onChange(){
|
private fun onChange(){
|
||||||
offerColumnsTable.update()
|
offerColumnsTable.update()
|
||||||
offerButton.setText("Offer trade".tr())
|
offerButton.setText("Offer trade".tr())
|
||||||
tradeText.setText("What do you have in mind?".tr())
|
tradeText.setText(otherCivilization.getNation().neutralLetsHearIt.random().tr())
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -335,6 +335,10 @@ class DiplomaticIncidentPopup(val worldScreen: WorldScreen, val diplomaticIncide
|
|||||||
addGoodSizedLabel(otherCiv.getNation().defeated).row()
|
addGoodSizedLabel(otherCiv.getNation().defeated).row()
|
||||||
add(getCloseButton("Farewell."))
|
add(getCloseButton("Farewell."))
|
||||||
}
|
}
|
||||||
|
DiplomaticIncidentType.FirstContact -> {
|
||||||
|
addGoodSizedLabel(otherCiv.getNation().introduction).row()
|
||||||
|
add(getCloseButton("A pleasure to meet you."))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
open()
|
open()
|
||||||
isOpen = true
|
isOpen = true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user