Added initial logic for promising not to settle cities near other civs - not yet activated

This commit is contained in:
Yair Morgenstern 2019-06-05 23:21:17 +03:00
parent ab450808b2
commit e8bdb8a2e4
6 changed files with 30 additions and 8 deletions

View File

@ -358,6 +358,8 @@
French:"Vous avez dénoncé nos ennemies"
}
"You betrayed your promise to not settle cities near us":{}
////// Trade

View File

@ -21,8 +21,8 @@ android {
applicationId "com.unciv.app"
minSdkVersion 14
targetSdkVersion 28
versionCode 253
versionName "2.17.2-patch1"
versionCode 254
versionName "2.17.3"
}
// Had to add this crap for Travis to build, it wanted to sign the app

View File

@ -1,8 +1,10 @@
package com.unciv.logic.automation
import com.unciv.Constants
import com.unciv.logic.city.CityInfo
import com.unciv.logic.civilization.*
import com.unciv.logic.civilization.diplomacy.DiplomacyFlags
import com.unciv.logic.civilization.diplomacy.DiplomaticModifiers
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
import com.unciv.logic.civilization.diplomacy.RelationshipLevel
import com.unciv.logic.map.MapUnit
@ -346,4 +348,18 @@ class NextTurnAutomation{
}
}
fun onCitySettledNearBorders(civInfo: CivilizationInfo, newCity: CityInfo){
val diplomacyManager = civInfo.getDiplomacyManager(newCity.civInfo)
if(diplomacyManager.hasFlag(DiplomacyFlags.IgnoreThemSettlingNearUs)) return
if(diplomacyManager.hasFlag(DiplomacyFlags.AgreedToNotSettleNearUs)){
newCity.civInfo.popupAlerts.add(PopupAlert(AlertType.CitySettledNearOtherCivDespiteOurPromise, civInfo.civName))
diplomacyManager.setFlag(DiplomacyFlags.IgnoreThemSettlingNearUs,200)
diplomacyManager.setModifier(DiplomaticModifiers.BetrayedPromiseToNotSettleCitiesNearUs,-20f)
}
else{
newCity.civInfo.popupAlerts.add(PopupAlert(AlertType.CitySettledNearOtherCiv, civInfo.civName))
}
}
}

View File

@ -5,7 +5,9 @@ enum class AlertType{
Defeated,
FirstContact,
CityConquered,
BorderConflict
BorderConflict,
CitySettledNearOtherCiv,
CitySettledNearOtherCivDespiteOurPromise,
}
class PopupAlert {

View File

@ -28,7 +28,9 @@ enum class DiplomacyFlags{
DeclaredWar,
DeclarationOfFriendship,
Denunceation,
BorderConflict
BorderConflict,
AgreedToNotSettleNearUs,
IgnoreThemSettlingNearUs
}
enum class DiplomaticModifiers{
@ -39,6 +41,7 @@ enum class DiplomaticModifiers{
BetrayedDeclarationOfFriendship,
Denunciation,
DenouncedOurAllies,
BetrayedPromiseToNotSettleCitiesNearUs,
YearsOfPeace,
SharedEnemy,
@ -141,7 +144,6 @@ class DiplomacyManager() {
fun canDeclareWar() = (turnsToPeaceTreaty()==0 && diplomaticStatus != DiplomaticStatus.War)
fun goldPerTurn():Int{
var goldPerTurnForUs = 0
for(trade in trades) {
@ -338,9 +340,7 @@ class DiplomacyManager() {
return diplomaticModifiers[modifier.name]!!
}
fun removeModifier(modifier: DiplomaticModifiers) =
diplomaticModifiers.remove(modifier.name)
fun removeModifier(modifier: DiplomaticModifiers) = diplomaticModifiers.remove(modifier.name)
fun hasModifier(modifier: DiplomaticModifiers) = diplomaticModifiers.containsKey(modifier.name)
/** @param amount always positive, so you don't need to think about it */
@ -386,5 +386,6 @@ class DiplomacyManager() {
}
}
}
//endregion
}

View File

@ -74,6 +74,7 @@ class AlertPopup(val worldScreen: WorldScreen, val popupAlert: PopupAlert): Popu
responseTable.add(getCloseButton("Never!"))
add(responseTable)
}
}
open()
isOpen = true