Merge pull request #8623 from Gualdimar/politicsRealtion

Fixed diplomacy exception
This commit is contained in:
vegeta1k95 2023-02-08 13:45:17 +01:00 committed by GitHub
commit be054a98fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 17 deletions

View File

@ -317,7 +317,7 @@ class Civilization : IsPartOfGameInfoSerialization {
/** Returns only undefeated civs, aka the ones we care about */
fun getKnownCivs() = diplomacy.values.map { it.otherCiv() }.filter { !it.isDefeated() }
fun knows(otherCivName: String) = (civName == otherCivName || diplomacy.containsKey(otherCivName))
fun knows(otherCivName: String) = diplomacy.containsKey(otherCivName)
fun knows(otherCiv: Civilization) = knows(otherCiv.civName)
fun getCapital() = cities.firstOrNull { it.isCapital() }

View File

@ -168,7 +168,7 @@ class GlobalPoliticsOverviewTable (
}
private fun getCivName(otherciv: Civilization): String {
if (viewingPlayer.knows(otherciv)){
if (viewingPlayer.knows(otherciv) || otherciv.civName == viewingPlayer.civName) {
return otherciv.civName
}
return "an unknown civilization"
@ -177,11 +177,11 @@ class GlobalPoliticsOverviewTable (
private fun getPoliticsOfCivTable(civ: Civilization): Table {
val politicsTable = Table(skin)
if (!viewingPlayer.knows(civ) && civ.civName != viewingPlayer.civName)
return politicsTable
// wars
for (otherCiv in civ.getKnownCivs()) {
if (!viewingPlayer.knows(civ))
continue
if(civ.isAtWarWith(otherCiv)) {
println(getCivName(otherCiv))
val warText = "At war with [${getCivName(otherCiv)}]".toLabel()
@ -193,9 +193,6 @@ class GlobalPoliticsOverviewTable (
// declaration of friendships
for (otherCiv in civ.getKnownCivs()) {
if (!viewingPlayer.knows(otherCiv))
continue
if(civ.diplomacy[otherCiv.civName]?.hasFlag(DiplomacyFlags.DeclarationOfFriendship) == true) {
val friendText = "Friends with [${getCivName(otherCiv)}]".toLabel()
friendText.color = Color.GREEN
@ -208,9 +205,6 @@ class GlobalPoliticsOverviewTable (
// denounced civs
for (otherCiv in civ.getKnownCivs()) {
if (!viewingPlayer.knows(otherCiv))
continue
if(civ.diplomacy[otherCiv.civName]?.hasFlag(DiplomacyFlags.Denunciation) == true) {
val denouncedText = "Denounced [${getCivName(otherCiv)}]".toLabel()
denouncedText.color = Color.RED
@ -223,9 +217,6 @@ class GlobalPoliticsOverviewTable (
//allied CS
for (cityState in gameInfo.getAliveCityStates()) {
if (!viewingPlayer.knows(cityState))
continue
if (cityState.diplomacy[civ.civName]?.relationshipLevel() == RelationshipLevel.Ally) {
val alliedText = "Allied with [${getCivName(cityState)}]".toLabel()
alliedText.color = Color.GREEN

View File

@ -89,7 +89,7 @@ class ReligionOverviewTab(
val existingReligions: List<Religion> = gameInfo.civilizations.mapNotNull { it.religionManager.religion }
for (religion in existingReligions) {
val image = if (religion.isPantheon()) {
if (viewingPlayer.knows(religion.foundingCivName))
if (viewingPlayer.knows(religion.foundingCivName) || viewingPlayer.civName == religion.foundingCivName)
ImageGetter.getNationPortrait(religion.getFounder().nation, 60f)
else
ImageGetter.getRandomNationPortrait(60f)
@ -136,7 +136,7 @@ class ReligionOverviewTab(
statsTable.add(religion.getReligionDisplayName().toLabel()).right().row()
statsTable.add("Founding Civ:".toLabel())
val foundingCivName =
if (viewingPlayer.knows(religion.foundingCivName))
if (viewingPlayer.knows(religion.foundingCivName) || viewingPlayer.civName == religion.foundingCivName)
religion.foundingCivName
else Constants.unknownNationName
statsTable.add(foundingCivName.toLabel()).right().row()

View File

@ -217,7 +217,7 @@ class DiplomacyScreen(
var ally = otherCiv.getAllyCiv()
if (ally != null) {
val allyInfluence = otherCiv.getDiplomacyManager(ally).getInfluence().toInt()
if (!viewingCiv.knows(ally))
if (!viewingCiv.knows(ally) && ally != viewingCiv.civName)
ally = "Unknown civilization"
diplomacyTable
.add("Ally: [$ally] with [$allyInfluence] Influence".toLabel())