mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 06:16:37 -04:00
Added initial logic for promising not to settle cities near other civs - not yet activated
This commit is contained in:
parent
ab450808b2
commit
e8bdb8a2e4
@ -358,6 +358,8 @@
|
||||
French:"Vous avez dénoncé nos ennemies"
|
||||
}
|
||||
|
||||
"You betrayed your promise to not settle cities near us":{}
|
||||
|
||||
|
||||
////// Trade
|
||||
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,9 @@ enum class AlertType{
|
||||
Defeated,
|
||||
FirstContact,
|
||||
CityConquered,
|
||||
BorderConflict
|
||||
BorderConflict,
|
||||
CitySettledNearOtherCiv,
|
||||
CitySettledNearOtherCivDespiteOurPromise,
|
||||
}
|
||||
|
||||
class PopupAlert {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -74,6 +74,7 @@ class AlertPopup(val worldScreen: WorldScreen, val popupAlert: PopupAlert): Popu
|
||||
responseTable.add(getCloseButton("Never!"))
|
||||
add(responseTable)
|
||||
}
|
||||
|
||||
}
|
||||
open()
|
||||
isOpen = true
|
||||
|
Loading…
x
Reference in New Issue
Block a user