mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-28 14:24:43 -04:00
Replaced "Diplomatic Incident" with more generic "Popup Alert"
This commit is contained in:
parent
86ed7c2ec3
commit
6cd925cf78
Binary file not shown.
Before Width: | Height: | Size: 954 KiB After Width: | Height: | Size: 950 KiB |
@ -17,7 +17,7 @@ class UnCivGame(val version: String) : Game() {
|
|||||||
* This exists so that when debugging we can see the entire map.
|
* This exists so that when debugging we can see the entire map.
|
||||||
* Remember to turn this to false before commit and upload!
|
* Remember to turn this to false before commit and upload!
|
||||||
*/
|
*/
|
||||||
val viewEntireMapForDebug = true
|
val viewEntireMapForDebug = false
|
||||||
|
|
||||||
// For when you need to test something in an advanced game and don't have time to faff around
|
// For when you need to test something in an advanced game and don't have time to faff around
|
||||||
val superchargedForDebug = false
|
val superchargedForDebug = false
|
||||||
|
@ -28,7 +28,7 @@ class NextTurnAutomation{
|
|||||||
automateUnits(civInfo)
|
automateUnits(civInfo)
|
||||||
reassignWorkedTiles(civInfo)
|
reassignWorkedTiles(civInfo)
|
||||||
trainSettler(civInfo)
|
trainSettler(civInfo)
|
||||||
civInfo.diplomaticIncidents.clear()
|
civInfo.popupAlerts.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun buyBuildingOrUnit(civInfo: CivilizationInfo) {
|
private fun buyBuildingOrUnit(civInfo: CivilizationInfo) {
|
||||||
|
@ -4,8 +4,8 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.unciv.logic.GameInfo
|
import com.unciv.logic.GameInfo
|
||||||
import com.unciv.logic.automation.UnitAutomation
|
import com.unciv.logic.automation.UnitAutomation
|
||||||
import com.unciv.logic.city.CityInfo
|
import com.unciv.logic.city.CityInfo
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticIncident
|
import com.unciv.logic.civilization.AlertType
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticIncidentType
|
import com.unciv.logic.civilization.PopupAlert
|
||||||
import com.unciv.logic.map.TileInfo
|
import com.unciv.logic.map.TileInfo
|
||||||
import com.unciv.models.gamebasics.unit.UnitType
|
import com.unciv.models.gamebasics.unit.UnitType
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@ -194,7 +194,7 @@ class Battle(val gameInfo:GameInfo) {
|
|||||||
for(civ in gameInfo.civilizations)
|
for(civ in gameInfo.civilizations)
|
||||||
civ.addNotification("The civilization of [${enemyCiv.civName}] has been destroyed!", null, Color.RED)
|
civ.addNotification("The civilization of [${enemyCiv.civName}] has been destroyed!", null, Color.RED)
|
||||||
enemyCiv.getCivUnits().forEach { it.destroy() }
|
enemyCiv.getCivUnits().forEach { it.destroy() }
|
||||||
attacker.getCivInfo().diplomaticIncidents.add(DiplomaticIncident(enemyCiv.civName,DiplomaticIncidentType.Defeated))
|
attacker.getCivInfo().popupAlerts.add(PopupAlert(AlertType.Defeated,enemyCiv.civName))
|
||||||
}
|
}
|
||||||
else if(enemyCiv.cities.isNotEmpty()){
|
else if(enemyCiv.cities.isNotEmpty()){
|
||||||
enemyCiv.cities.first().cityConstructions.addBuilding("Palace") // relocate palace
|
enemyCiv.cities.first().cityConstructions.addBuilding("Palace") // relocate palace
|
||||||
|
@ -7,8 +7,6 @@ import com.unciv.UnCivGame
|
|||||||
import com.unciv.logic.GameInfo
|
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.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
|
||||||
@ -63,7 +61,7 @@ class CivilizationInfo {
|
|||||||
var victoryManager=VictoryManager()
|
var victoryManager=VictoryManager()
|
||||||
var diplomacy = HashMap<String, DiplomacyManager>()
|
var diplomacy = HashMap<String, DiplomacyManager>()
|
||||||
var notifications = ArrayList<Notification>()
|
var notifications = ArrayList<Notification>()
|
||||||
val diplomaticIncidents = ArrayList<DiplomaticIncident>()
|
val popupAlerts = ArrayList<PopupAlert>()
|
||||||
|
|
||||||
// if we only use lists, and change the list each time the cities are changed,
|
// if we only use lists, and change the list each time the cities are changed,
|
||||||
// we won't get concurrent modification exceptions.
|
// we won't get concurrent modification exceptions.
|
||||||
@ -296,12 +294,13 @@ class CivilizationInfo {
|
|||||||
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.popupAlerts.add(PopupAlert(AlertType.FirstContact,civName))
|
||||||
|
|
||||||
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))
|
popupAlerts.add(PopupAlert(AlertType.FirstContact,otherCiv.civName))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun toString(): String {return civName} // for debug
|
override fun toString(): String {return civName} // for debug
|
||||||
|
9
core/src/com/unciv/logic/civilization/PopupAlert.kt
Normal file
9
core/src/com/unciv/logic/civilization/PopupAlert.kt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package com.unciv.logic.civilization
|
||||||
|
|
||||||
|
enum class AlertType{
|
||||||
|
WarDeclaration,
|
||||||
|
Defeated,
|
||||||
|
FirstContact
|
||||||
|
}
|
||||||
|
|
||||||
|
class PopupAlert (val type:AlertType, val value:String)
|
@ -1,7 +1,9 @@
|
|||||||
package com.unciv.logic.civilization.diplomacy
|
package com.unciv.logic.civilization.diplomacy
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
|
import com.unciv.logic.civilization.AlertType
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
|
import com.unciv.logic.civilization.PopupAlert
|
||||||
import com.unciv.logic.trade.Trade
|
import com.unciv.logic.trade.Trade
|
||||||
import com.unciv.logic.trade.TradeType
|
import com.unciv.logic.trade.TradeType
|
||||||
import com.unciv.models.Counter
|
import com.unciv.models.Counter
|
||||||
@ -97,9 +99,11 @@ class DiplomacyManager() {
|
|||||||
|
|
||||||
fun declareWar(){
|
fun declareWar(){
|
||||||
diplomaticStatus = DiplomaticStatus.War
|
diplomaticStatus = DiplomaticStatus.War
|
||||||
otherCiv().diplomacy[civInfo.civName]!!.diplomaticStatus = DiplomaticStatus.War
|
val otherCiv = otherCiv()
|
||||||
otherCiv().addNotification("[${civInfo.civName}] has declared war on us!",null, Color.RED)
|
|
||||||
otherCiv().diplomaticIncidents.add(DiplomaticIncident(civInfo.civName,DiplomaticIncidentType.WarDeclaration))
|
otherCiv.diplomacy[civInfo.civName]!!.diplomaticStatus = DiplomaticStatus.War
|
||||||
|
otherCiv.addNotification("[${civInfo.civName}] has declared war on us!",null, Color.RED)
|
||||||
|
otherCiv.popupAlerts.add(PopupAlert(AlertType.WarDeclaration,civInfo.civName))
|
||||||
}
|
}
|
||||||
//endregion
|
//endregion
|
||||||
}
|
}
|
@ -1,5 +0,0 @@
|
|||||||
package com.unciv.logic.civilization.diplomacy
|
|
||||||
|
|
||||||
import com.unciv.logic.trade.Trade
|
|
||||||
|
|
||||||
class DiplomaticIncident(val civName:String, val type: DiplomaticIncidentType, val trade: Trade?=null)
|
|
@ -1,7 +0,0 @@
|
|||||||
package com.unciv.logic.civilization.diplomacy
|
|
||||||
|
|
||||||
enum class DiplomaticIncidentType{
|
|
||||||
WarDeclaration,
|
|
||||||
Defeated,
|
|
||||||
FirstContact
|
|
||||||
}
|
|
@ -8,9 +8,9 @@ import com.badlogic.gdx.scenes.scene2d.ui.Table
|
|||||||
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
import com.badlogic.gdx.scenes.scene2d.ui.TextButton
|
||||||
import com.unciv.UnCivGame
|
import com.unciv.UnCivGame
|
||||||
import com.unciv.logic.GameSaver
|
import com.unciv.logic.GameSaver
|
||||||
|
import com.unciv.logic.civilization.AlertType
|
||||||
import com.unciv.logic.civilization.CivilizationInfo
|
import com.unciv.logic.civilization.CivilizationInfo
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticIncident
|
import com.unciv.logic.civilization.PopupAlert
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticIncidentType
|
|
||||||
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
import com.unciv.logic.civilization.diplomacy.DiplomaticStatus
|
||||||
import com.unciv.models.gamebasics.GameBasics
|
import com.unciv.models.gamebasics.GameBasics
|
||||||
import com.unciv.models.gamebasics.tile.ResourceType
|
import com.unciv.models.gamebasics.tile.ResourceType
|
||||||
@ -171,8 +171,8 @@ class WorldScreen : CameraStageBaseScreen() {
|
|||||||
else if(currentPlayerCiv.greatPeople.freeGreatPeople>0) game.screen = GreatPersonPickerScreen()
|
else if(currentPlayerCiv.greatPeople.freeGreatPeople>0) game.screen = GreatPersonPickerScreen()
|
||||||
|
|
||||||
if(game.screen==this && !tutorials.isTutorialShowing
|
if(game.screen==this && !tutorials.isTutorialShowing
|
||||||
&& currentPlayerCiv.diplomaticIncidents.any() && !DiplomaticIncidentPopup.isOpen){
|
&& currentPlayerCiv.popupAlerts.any() && !AlertPopup.isOpen){
|
||||||
DiplomaticIncidentPopup(this,currentPlayerCiv.diplomaticIncidents.first())
|
AlertPopup(this,currentPlayerCiv.popupAlerts.first())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -329,7 +329,7 @@ class WorldScreen : CameraStageBaseScreen() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class DiplomaticIncidentPopup(val worldScreen: WorldScreen, val diplomaticIncident: DiplomaticIncident):PopupTable(worldScreen){
|
class AlertPopup(val worldScreen: WorldScreen, val popupAlert: PopupAlert):PopupTable(worldScreen){
|
||||||
fun getCloseButton(text:String): TextButton {
|
fun getCloseButton(text:String): TextButton {
|
||||||
val button = TextButton(text.tr(), skin)
|
val button = TextButton(text.tr(), skin)
|
||||||
button.onClick { close() }
|
button.onClick { close() }
|
||||||
@ -337,25 +337,25 @@ class DiplomaticIncidentPopup(val worldScreen: WorldScreen, val diplomaticIncide
|
|||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val otherCiv = worldScreen.gameInfo.getCivilization(diplomaticIncident.civName)
|
val otherCiv = worldScreen.gameInfo.getCivilization(popupAlert.value)
|
||||||
val translatedNation = otherCiv.getTranslatedNation()
|
val translatedNation = otherCiv.getTranslatedNation()
|
||||||
val otherCivLeaderName = "[${translatedNation.leaderName}] of [${translatedNation.getNameTranslation()}]".tr()
|
val otherCivLeaderName = "[${translatedNation.leaderName}] of [${translatedNation.getNameTranslation()}]".tr()
|
||||||
add(otherCivLeaderName.toLabel())
|
add(otherCivLeaderName.toLabel())
|
||||||
addSeparator()
|
addSeparator()
|
||||||
|
|
||||||
when(diplomaticIncident.type){
|
when(popupAlert.type){
|
||||||
DiplomaticIncidentType.WarDeclaration -> {
|
AlertType.WarDeclaration -> {
|
||||||
addGoodSizedLabel(translatedNation.declaringWar).row()
|
addGoodSizedLabel(translatedNation.declaringWar).row()
|
||||||
val responseTable = Table()
|
val responseTable = Table()
|
||||||
responseTable.add(getCloseButton("You'll pay for this!"))
|
responseTable.add(getCloseButton("You'll pay for this!"))
|
||||||
responseTable.add(getCloseButton("Very well."))
|
responseTable.add(getCloseButton("Very well."))
|
||||||
add(responseTable)
|
add(responseTable)
|
||||||
}
|
}
|
||||||
DiplomaticIncidentType.Defeated -> {
|
AlertType.Defeated -> {
|
||||||
addGoodSizedLabel(translatedNation.defeated).row()
|
addGoodSizedLabel(translatedNation.defeated).row()
|
||||||
add(getCloseButton("Farewell."))
|
add(getCloseButton("Farewell."))
|
||||||
}
|
}
|
||||||
DiplomaticIncidentType.FirstContact -> {
|
AlertType.FirstContact -> {
|
||||||
addGoodSizedLabel(translatedNation.introduction).row()
|
addGoodSizedLabel(translatedNation.introduction).row()
|
||||||
add(getCloseButton("A pleasure to meet you."))
|
add(getCloseButton("A pleasure to meet you."))
|
||||||
}
|
}
|
||||||
@ -365,7 +365,7 @@ class DiplomaticIncidentPopup(val worldScreen: WorldScreen, val diplomaticIncide
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun close(){
|
fun close(){
|
||||||
worldScreen.currentPlayerCiv.diplomaticIncidents.remove(diplomaticIncident)
|
worldScreen.currentPlayerCiv.popupAlerts.remove(popupAlert)
|
||||||
isOpen = false
|
isOpen = false
|
||||||
remove()
|
remove()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user