Fix for null pointer in embassy trade (#13699)

* G&K feature - Embassy

* fix spotted errors

* add icon and gameplay test

* fix invalid trade logic

* make embassies work for G&K only

* remove introduced bug

* trade evaluation and decline embassy

* update civilopedia for embassies

* cleanup

* diplomatic modifiers

* fix embassies unique

* make embassies unique global and bugfix

* fix AI can not trade with cs

* add embassies unique for mods

* mods require uniques to enable embassies

* fix mods require uniques to enable embassies

* update uniques.md

* apply reviewed changes

* apply reviewed change 2

* bugfix and cleanup

* remove obsolete import

* null pointer bugfix

* remove toList() and function rename

* fix for null pointer
This commit is contained in:
metablaster 2025-07-24 08:46:52 +02:00 committed by GitHub
parent be6216d2fb
commit 1e4ecab1c3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -113,7 +113,9 @@ class DiplomacyFunctions(val civInfo: Civilization) {
*/ */
@Readonly @Readonly
fun canOfferEmbassyTo(otherCiv: Civilization): Boolean { fun canOfferEmbassyTo(otherCiv: Civilization): Boolean {
if (!canTradeEmbassies() || !otherCiv.isMajorCiv()) return false if (!canTradeEmbassies() || !otherCiv.isMajorCiv() || civInfo.getCapital() == null)
return false
val theirDiploManager = otherCiv.getDiplomacyManager(civInfo)!! val theirDiploManager = otherCiv.getDiplomacyManager(civInfo)!!
return !civInfo.isAtWarWith(otherCiv) && !isDenouncedThisTurn(theirDiploManager) return !civInfo.isAtWarWith(otherCiv) && !isDenouncedThisTurn(theirDiploManager)
&& !theirDiploManager.hasModifier(DiplomaticModifiers.EstablishedEmbassy) && !theirDiploManager.hasModifier(DiplomaticModifiers.EstablishedEmbassy)
@ -125,7 +127,9 @@ class DiplomacyFunctions(val civInfo: Civilization) {
*/ */
@Readonly @Readonly
fun canEstablishEmbassyWith(otherCiv: Civilization): Boolean { fun canEstablishEmbassyWith(otherCiv: Civilization): Boolean {
if (!canTradeEmbassies() || !otherCiv.isMajorCiv()) return false if (!canTradeEmbassies() || !otherCiv.isMajorCiv() || otherCiv.getCapital() == null)
return false
val ourDiploManager = civInfo.getDiplomacyManager(otherCiv)!! val ourDiploManager = civInfo.getDiplomacyManager(otherCiv)!!
return !civInfo.isAtWarWith(otherCiv) && !isDenouncedThisTurn(ourDiploManager) return !civInfo.isAtWarWith(otherCiv) && !isDenouncedThisTurn(ourDiploManager)
&& !ourDiploManager.hasModifier(DiplomaticModifiers.EstablishedEmbassy) && !ourDiploManager.hasModifier(DiplomaticModifiers.EstablishedEmbassy)