From 2a139ff732da5309b7fa1268d0bf3e38b2c89610 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Sun, 24 Nov 2019 00:02:28 +0200 Subject: [PATCH] Resolved #1364 - Policy picker screen won't appear from the world screen if there are no possible policies to pick --- .gitignore | 1 + .../unciv/logic/civilization/PolicyManager.kt | 10 ++++- .../com/unciv/ui/worldscreen/WorldScreen.kt | 2 +- desktop/build.gradle | 38 +++++++++---------- out-mac/config.json | 9 ----- 5 files changed, 29 insertions(+), 31 deletions(-) delete mode 100644 out-mac/config.json diff --git a/.gitignore b/.gitignore index f83e397c18..ee78ba217f 100644 --- a/.gitignore +++ b/.gitignore @@ -136,3 +136,4 @@ android/assets/maps/ android/release/android.aab.sig android/release/android-release.aab tests/build/ +desktop/packr/ diff --git a/core/src/com/unciv/logic/civilization/PolicyManager.kt b/core/src/com/unciv/logic/civilization/PolicyManager.kt index 214c5a8fd9..5a67671d17 100644 --- a/core/src/com/unciv/logic/civilization/PolicyManager.kt +++ b/core/src/com/unciv/logic/civilization/PolicyManager.kt @@ -50,7 +50,15 @@ class PolicyManager { return true } - fun canAdoptPolicy(): Boolean = freePolicies > 0 || storedCulture >= getCultureNeededForNextPolicy() + fun canAdoptPolicy(): Boolean { + if (freePolicies == 0 && storedCulture < getCultureNeededForNextPolicy()) + return false + + val hasAdoptablePolicies = GameBasics.PolicyBranches.values + .flatMap { it.policies.union(listOf(it)) } + .any { civInfo.policies.isAdoptable(it) } + return hasAdoptablePolicies + } fun adopt(policy: Policy, branchCompletion: Boolean = false) { diff --git a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt index 765b69eafe..bb873d03aa 100644 --- a/core/src/com/unciv/ui/worldscreen/WorldScreen.kt +++ b/core/src/com/unciv/ui/worldscreen/WorldScreen.kt @@ -188,7 +188,7 @@ class WorldScreen(val viewingCiv:CivilizationInfo) : CameraStageBaseScreen() { if(!isSomethingOpen && isPlayersTurn) { when { !gameInfo.oneMoreTurnMode && gameInfo.civilizations.any { it.victoryManager.hasWon() } -> game.setScreen(VictoryScreen()) - viewingCiv.policies.freePolicies > 0 -> game.setScreen(PolicyPickerScreen(this)) + viewingCiv.policies.freePolicies > 0 && viewingCiv.policies.canAdoptPolicy() -> game.setScreen(PolicyPickerScreen(this)) viewingCiv.greatPeople.freeGreatPeople > 0 -> game.setScreen(GreatPersonPickerScreen()) viewingCiv.popupAlerts.any() -> AlertPopup(this, viewingCiv.popupAlerts.first()) viewingCiv.tradeRequests.isNotEmpty() -> TradePopup(this) diff --git a/desktop/build.gradle b/desktop/build.gradle index 78772f5f5d..168cb0a693 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -1,3 +1,6 @@ +import com.badlogicgames.packr.Packr +import com.badlogicgames.packr.PackrConfig + apply plugin: "kotlin" sourceCompatibility = 1.6 @@ -39,20 +42,20 @@ task dist(dependsOn: classes, type: Jar) { } } -//task packrWindows(){ -// PackrConfig config = new PackrConfig(); -// config.platform = PackrConfig.Platform.Windows32; -// config.jdk = "/User/badlogic/Downloads/openjdk-for-mac.zip"; -// config.executable = "myapp"; -// config.classpath = Arrays.asList("myjar.jar"); -// config.removePlatformLibs = config.classpath; -// config.mainClass = "com.my.app.MainClass"; -// config.vmArgs = Arrays.asList("Xmx1G"); -// config.minimizeJre = "soft"; -// config.outDir = new File("out-mac"); -// -// new Packr().pack(config); -//} +task packrWindows(){ + PackrConfig config = new PackrConfig() + config.platform = PackrConfig.Platform.Windows64 + config.jdk = "https://github.com/ojdkbuild/ojdkbuild/releases/download/java-1.8.0-openjdk-1.8.0.232-1.b09/java-1.8.0-openjdk-1.8.0.232-1.b09.ojdkbuild.windows.x86_64.zip" + config.executable = "Unciv" + config.classpath = Arrays.asList("desktop/build/libs/${appName}.jar".toString()) + config.removePlatformLibs = config.classpath + config.mainClass = project.ext.mainClassName + config.vmArgs = Arrays.asList("Xmx1G") + config.minimizeJre = "soft" + config.outDir = new File("desktop/packr") + + new Packr().pack(config) +} eclipse { project { @@ -70,9 +73,4 @@ task afterEclipseImport(description: "Post processing after project generation", printer.setPreserveWhitespace(true) printer.print(classpath) } -} -// -//dependencies { -// implementation "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-desktop" -// implementation project(path: ':core') -//} \ No newline at end of file +} \ No newline at end of file diff --git a/out-mac/config.json b/out-mac/config.json deleted file mode 100644 index b133ce6533..0000000000 --- a/out-mac/config.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "classPath": [ - "myjar.jar" - ], - "mainClass": "com.my.app.MainClass", - "vmArgs": [ - "-Xmx1G" - ] -} \ No newline at end of file