mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-16 18:59:15 +07:00
Spectator now receives important diplomatic notifications again (#10880)
This commit is contained in:
@ -324,6 +324,9 @@ class Civilization : IsPartOfGameInfoSerialization {
|
|||||||
fun getKnownCivs() = diplomacy.values.asSequence().map { it.otherCiv() }
|
fun getKnownCivs() = diplomacy.values.asSequence().map { it.otherCiv() }
|
||||||
.filter { !it.isDefeated() && !it.isSpectator() }
|
.filter { !it.isDefeated() && !it.isSpectator() }
|
||||||
|
|
||||||
|
fun getKnownCivsWithSpectators() = diplomacy.values.asSequence().map { it.otherCiv() }
|
||||||
|
.filter { !it.isDefeated() }
|
||||||
|
|
||||||
fun knows(otherCivName: String) = diplomacy.containsKey(otherCivName)
|
fun knows(otherCivName: String) = diplomacy.containsKey(otherCivName)
|
||||||
fun knows(otherCiv: Civilization) = knows(otherCiv.civName)
|
fun knows(otherCiv: Civilization) = knows(otherCiv.civName)
|
||||||
|
|
||||||
|
@ -46,7 +46,7 @@ object DeclareWar {
|
|||||||
NotificationCategory.Diplomacy, NotificationIcon.War, civInfo.civName)
|
NotificationCategory.Diplomacy, NotificationIcon.War, civInfo.civName)
|
||||||
otherCiv.popupAlerts.add(PopupAlert(AlertType.WarDeclaration, civInfo.civName))
|
otherCiv.popupAlerts.add(PopupAlert(AlertType.WarDeclaration, civInfo.civName))
|
||||||
|
|
||||||
diplomacyManager.getCommonKnownCivs().forEach {
|
diplomacyManager.getCommonKnownCivsWithSpectators().forEach {
|
||||||
it.addNotification("[${civInfo.civName}] has declared war on [${diplomacyManager.otherCivName}]!",
|
it.addNotification("[${civInfo.civName}] has declared war on [${diplomacyManager.otherCivName}]!",
|
||||||
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.War, diplomacyManager.otherCivName)
|
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.War, diplomacyManager.otherCivName)
|
||||||
}
|
}
|
||||||
@ -179,7 +179,7 @@ object DeclareWar {
|
|||||||
thirdPartyDiploManager.removeFlag(DiplomacyFlags.DefensivePact)
|
thirdPartyDiploManager.removeFlag(DiplomacyFlags.DefensivePact)
|
||||||
thirdPartyDiploManager.otherCivDiplomacy().removeFlag(DiplomacyFlags.DefensivePact)
|
thirdPartyDiploManager.otherCivDiplomacy().removeFlag(DiplomacyFlags.DefensivePact)
|
||||||
}
|
}
|
||||||
for (civ in diplomacyManager.getCommonKnownCivs().filter { civ -> civ.isMajorCiv() || civ.isSpectator() }) {
|
for (civ in diplomacyManager.getCommonKnownCivsWithSpectators()) {
|
||||||
civ.addNotification("[${diplomacyManager.civInfo.civName}] canceled their Defensive Pact with [${thirdPartyDiploManager.otherCivName}]!",
|
civ.addNotification("[${diplomacyManager.civInfo.civName}] canceled their Defensive Pact with [${thirdPartyDiploManager.otherCivName}]!",
|
||||||
NotificationCategory.Diplomacy, diplomacyManager.civInfo.civName, NotificationIcon.Diplomacy, thirdPartyDiploManager.otherCivName)
|
NotificationCategory.Diplomacy, diplomacyManager.civInfo.civName, NotificationIcon.Diplomacy, thirdPartyDiploManager.otherCivName)
|
||||||
}
|
}
|
||||||
|
@ -405,6 +405,7 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization {
|
|||||||
/** Returns the [civilizations][Civilization] that know about both sides ([civInfo] and [otherCiv]) */
|
/** Returns the [civilizations][Civilization] that know about both sides ([civInfo] and [otherCiv]) */
|
||||||
fun getCommonKnownCivs(): Set<Civilization> = civInfo.getKnownCivs().toSet().intersect(otherCiv().getKnownCivs().toSet())
|
fun getCommonKnownCivs(): Set<Civilization> = civInfo.getKnownCivs().toSet().intersect(otherCiv().getKnownCivs().toSet())
|
||||||
|
|
||||||
|
fun getCommonKnownCivsWithSpectators(): Set<Civilization> = civInfo.getKnownCivsWithSpectators().toSet().intersect(otherCiv().getKnownCivsWithSpectators().toSet())
|
||||||
/** Returns true when the [civInfo]'s territory is considered allied for [otherCiv].
|
/** Returns true when the [civInfo]'s territory is considered allied for [otherCiv].
|
||||||
* This includes friendly and allied city-states and the open border treaties.
|
* This includes friendly and allied city-states and the open border treaties.
|
||||||
*/
|
*/
|
||||||
@ -458,7 +459,7 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization {
|
|||||||
makePeaceOneSide()
|
makePeaceOneSide()
|
||||||
otherCivDiplomacy().makePeaceOneSide()
|
otherCivDiplomacy().makePeaceOneSide()
|
||||||
|
|
||||||
for (civ in getCommonKnownCivs()) {
|
for (civ in getCommonKnownCivsWithSpectators()) {
|
||||||
civ.addNotification(
|
civ.addNotification(
|
||||||
"[${civInfo.civName}] and [$otherCivName] have signed a Peace Treaty!",
|
"[${civInfo.civName}] and [$otherCivName] have signed a Peace Treaty!",
|
||||||
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName
|
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName
|
||||||
@ -501,7 +502,7 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization {
|
|||||||
setFlag(DiplomacyFlags.DeclarationOfFriendship, 30)
|
setFlag(DiplomacyFlags.DeclarationOfFriendship, 30)
|
||||||
otherCivDiplomacy().setFlag(DiplomacyFlags.DeclarationOfFriendship, 30)
|
otherCivDiplomacy().setFlag(DiplomacyFlags.DeclarationOfFriendship, 30)
|
||||||
|
|
||||||
for (thirdCiv in getCommonKnownCivs().filter { it.isMajorCiv() || it.isSpectator() }) {
|
for (thirdCiv in getCommonKnownCivsWithSpectators()) {
|
||||||
thirdCiv.addNotification("[${civInfo.civName}] and [$otherCivName] have signed the Declaration of Friendship!",
|
thirdCiv.addNotification("[${civInfo.civName}] and [$otherCivName] have signed the Declaration of Friendship!",
|
||||||
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName)
|
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName)
|
||||||
thirdCiv.getDiplomacyManager(civInfo).setFriendshipBasedModifier()
|
thirdCiv.getDiplomacyManager(civInfo).setFriendshipBasedModifier()
|
||||||
@ -549,7 +550,7 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization {
|
|||||||
otherCivDiplomacy().diplomaticStatus = DiplomaticStatus.DefensivePact
|
otherCivDiplomacy().diplomaticStatus = DiplomaticStatus.DefensivePact
|
||||||
|
|
||||||
|
|
||||||
for (thirdCiv in getCommonKnownCivs().filter { it.isMajorCiv() || it.isSpectator() }) {
|
for (thirdCiv in getCommonKnownCivsWithSpectators()) {
|
||||||
thirdCiv.addNotification("[${civInfo.civName}] and [$otherCivName] have signed the Defensive Pact!",
|
thirdCiv.addNotification("[${civInfo.civName}] and [$otherCivName] have signed the Defensive Pact!",
|
||||||
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName)
|
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName)
|
||||||
if (thirdCiv.isSpectator()) return
|
if (thirdCiv.isSpectator()) return
|
||||||
@ -597,7 +598,7 @@ class DiplomacyManager() : IsPartOfGameInfoSerialization {
|
|||||||
NotificationCategory.Diplomacy, NotificationIcon.Diplomacy, civInfo.civName)
|
NotificationCategory.Diplomacy, NotificationIcon.Diplomacy, civInfo.civName)
|
||||||
|
|
||||||
// We, A, are denouncing B. What do other major civs (C,D, etc) think of this?
|
// We, A, are denouncing B. What do other major civs (C,D, etc) think of this?
|
||||||
getCommonKnownCivs().filter { it.isMajorCiv() || it.isSpectator() }.forEach { thirdCiv ->
|
getCommonKnownCivsWithSpectators().forEach { thirdCiv ->
|
||||||
thirdCiv.addNotification("[${civInfo.civName}] has denounced [$otherCivName]!",
|
thirdCiv.addNotification("[${civInfo.civName}] has denounced [$otherCivName]!",
|
||||||
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName)
|
NotificationCategory.Diplomacy, civInfo.civName, NotificationIcon.Diplomacy, otherCivName)
|
||||||
if (thirdCiv.isSpectator()) return@forEach
|
if (thirdCiv.isSpectator()) return@forEach
|
||||||
|
Reference in New Issue
Block a user