diff --git a/README.md b/README.md index 792810051f..dc8322cfc3 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ Yes! Windows and Linux versions are available at [itch.io](https://yairm210.itch UnCiv can also be installed on macOS, a guide on how to do that can be found [here](https://github.com/yairm210/Unciv/wiki/Installing-on-macOS). If you have Java 8, and are familiar with the command line, there are (considerably smaller) JARs in [Releases](https://github.com/yairm210/UnCiv/releases) which you can run with `java -jar Unciv.jar`. +For Mac users, you'll need to add extra parameters, `java -XstartOnFirstThread -Djava.awt.headless=true -jar Unciv.jar`. If you use Flatpaks, there's a Flatpak by [MayeulC](https://github.com/MayeulC) and you can know more about it [here](https://github.com/flathub/io.github.yairm210.unciv). Flathub link is available in the [Downloads](#downloads) section. diff --git a/desktop/build.gradle.kts b/desktop/build.gradle.kts index b7e6ce7baa..f88dec330c 100644 --- a/desktop/build.gradle.kts +++ b/desktop/build.gradle.kts @@ -21,9 +21,11 @@ val assetsDir = file("../android/assets") val discordDir = file("discord_rpc") val deployFolder = file("../deploy") +// See https://github.com/libgdx/libgdx/wiki/Starter-classes-and-configuration#common-issues +// and https://github.com/yairm210/Unciv/issues/5679 +val jvmArgsForMac = listOf("-XstartOnFirstThread", "-Djava.awt.headless=true") tasks.register("run") { - - jvmArgs = listOf("-XstartOnFirstThread") // See https://github.com/libgdx/libgdx/wiki/Starter-classes-and-configuration#common-issues + jvmArgs = jvmArgsForMac dependsOn(tasks.getByName("classes")) @@ -35,6 +37,7 @@ tasks.register("run") { } tasks.register("debug") { + jvmArgs = jvmArgsForMac dependsOn(tasks.getByName("classes")) main = mainClassName classpath = sourceSets.main.get().runtimeClasspath @@ -132,7 +135,11 @@ for (platform in PackrConfig.Platform.values()) { " --executable Unciv" + " --classpath $jarFile" + " --mainclass $mainClassName" + - " --vmargs Xmx1G " + (if (platform == PackrConfig.Platform.MacOS) "XstartOnFirstThread" else "") + + " --vmargs Xmx1G " + + (if (platform == PackrConfig.Platform.MacOS) jvmArgsForMac.joinToString(" ") { + it.removePrefix("-") + } + else "") + " --output ${config.outDir}" command.runCommand(rootDir) } diff --git a/docs/uniques.md b/docs/uniques.md index d5c299f77a..dd71a0c91d 100644 --- a/docs/uniques.md +++ b/docs/uniques.md @@ -4,10 +4,10 @@ - [Building uniques](#building-uniques) - [CityState uniques](#citystate-uniques) - [Nation uniques](#nation-uniques) - - [Improvement uniques](#improvement-uniques) - [Unit uniques](#unit-uniques) - [Terrain uniques](#terrain-uniques) - [Resource uniques](#resource-uniques) + - [Improvement uniques](#improvement-uniques) - [Conditional uniques](#conditional-uniques) - [Ruins uniques](#ruins-uniques) - [Promotion uniques](#promotion-uniques) @@ -17,7 +17,7 @@ #### [stats] Example: "[+1 Gold, +2 Production]" -Applicable to: Global, Improvement, FollowerBelief +Applicable to: Global, FollowerBelief, Improvement #### [stats] [cityFilter] Example: "[+1 Gold, +2 Production] [in all cities]" @@ -335,6 +335,36 @@ Example: "Remove extra unhappiness from annexed cities" Applicable to: Building +#### Consumes [amount] [resource] +Example: "Consumes [20] [Iron]" + +Applicable to: Building, Unit, Improvement + +#### Provides [amount] [resource] +Example: "Provides [20] [Iron]" + +Applicable to: Building, Improvement + +#### Unbuildable +Example: "Unbuildable" + +Applicable to: Building, Unit + +#### Cannot be purchased +Example: "Cannot be purchased" + +Applicable to: Building, Unit + +#### Can be purchased with [stat] [cityFilter] +Example: "Can be purchased with [Culture] [in all cities]" + +Applicable to: Building, Unit + +#### Can be purchased for [amount] [stat] [cityFilter] +Example: "Can be purchased for [20] [Culture] [in all cities]" + +Applicable to: Building, Unit + #### Cost increases by [amount] per owned city Example: "Cost increases by [20] per owned city" @@ -350,6 +380,11 @@ Example: "Requires a [Library] in this city" Applicable to: Building +#### Not displayed as an available construction without [buildingName/tech/resource/policy] +Example: "Not displayed as an available construction without [buildingName/tech/resource/policy]" + +Applicable to: Building, Unit + #### Must be on [terrainFilter] Example: "Must be on [Grassland]" @@ -417,123 +452,7 @@ Example: "Retain [20]% of the happiness from a luxury after the last copy has be Applicable to: Nation -## Improvement uniques -#### Consumes [amount] [resource] -Example: "Consumes [20] [Iron]" - -Applicable to: Improvement, Unit, Building - -#### Provides [amount] [resource] -Example: "Provides [20] [Iron]" - -Applicable to: Improvement, Building - -#### Tile provides yield without assigned population -Example: "Tile provides yield without assigned population" - -Applicable to: Improvement, Terrain - -#### Can also be built on tiles adjacent to fresh water -Example: "Can also be built on tiles adjacent to fresh water" - -Applicable to: Improvement - -#### [stats] from [tileFilter] tiles -Example: "[+1 Gold, +2 Production] from [Farm] tiles" - -Applicable to: Improvement - -#### [stats] for each adjacent [tileFilter] -Example: "[+1 Gold, +2 Production] for each adjacent [Farm]" - -Applicable to: Improvement - -#### Can be built outside your borders -Example: "Can be built outside your borders" - -Applicable to: Improvement - -#### Can be built just outside your borders -Example: "Can be built just outside your borders" - -Applicable to: Improvement - -#### Cannot be built on [tileFilter] tiles until [tech] is discovered -Example: "Cannot be built on [Farm] tiles until [tech] is discovered" - -Applicable to: Improvement - -#### Cannot be built on [tileFilter] tiles -Example: "Cannot be built on [Farm] tiles" - -Applicable to: Improvement - -#### Does not need removal of [tileFilter] -Example: "Does not need removal of [Farm]" - -Applicable to: Improvement - -#### Gives a defensive bonus of [amount]% -Example: "Gives a defensive bonus of [20]%" - -Applicable to: Improvement - -#### Costs [amount] gold per turn when in your territory -Example: "Costs [20] gold per turn when in your territory" - -Applicable to: Improvement - -#### Deal [amount] damage to adjacent enemy units -Example: "Deal [20] damage to adjacent enemy units" - -Applicable to: Improvement - -#### Great Improvement -Example: "Great Improvement" - -Applicable to: Improvement - -#### Provides a random bonus when entered -Example: "Provides a random bonus when entered" - -Applicable to: Improvement - -#### Unpillagable -Example: "Unpillagable" - -Applicable to: Improvement - -#### Indestructible -Example: "Indestructible" - -Applicable to: Improvement - ## Unit uniques -#### Unbuildable -Example: "Unbuildable" - -Applicable to: Unit, Building - -#### Cannot be purchased -Example: "Cannot be purchased" - -Applicable to: Unit, Building - -#### Can be purchased with [stat] [cityFilter] -Example: "Can be purchased with [Culture] [in all cities]" - -Applicable to: Unit, Building - -#### Can be purchased for [amount] [stat] [cityFilter] -Example: "Can be purchased for [20] [Culture] [in all cities]" - -Applicable to: Unit, Building - -#### Not displayed as an available construction without [buildingName/tech/resource/policy] -Example: "Not displayed as an available construction without [buildingName/tech/resource/policy]" - -Applicable to: Unit, Building - #### Founds a new city Example: "Founds a new city" @@ -654,11 +573,6 @@ Example: "Never appears as a Barbarian unit" Applicable to: Unit -#### Hidden when religion is disabled -Example: "Hidden when religion is disabled" - -Applicable to: Unit, Building, Ruins - ## Terrain uniques #### Must be adjacent to [amount] [simpleTerrain] tiles Example: "Must be adjacent to [20] [simpleTerrain] tiles" @@ -720,6 +634,11 @@ Example: "Provides a one-time Production bonus to the closest city when cut down Applicable to: Terrain +#### Tile provides yield without assigned population +Example: "Tile provides yield without assigned population" + +Applicable to: Terrain, Improvement + #### Nullifies all other stats this tile provides Example: "Nullifies all other stats this tile provides" @@ -851,6 +770,82 @@ Example: "Can only be created by Mercantile City-States" Applicable to: Resource +## Improvement uniques +#### Can also be built on tiles adjacent to fresh water +Example: "Can also be built on tiles adjacent to fresh water" + +Applicable to: Improvement + +#### [stats] from [tileFilter] tiles +Example: "[+1 Gold, +2 Production] from [Farm] tiles" + +Applicable to: Improvement + +#### [stats] for each adjacent [tileFilter] +Example: "[+1 Gold, +2 Production] for each adjacent [Farm]" + +Applicable to: Improvement + +#### Can be built outside your borders +Example: "Can be built outside your borders" + +Applicable to: Improvement + +#### Can be built just outside your borders +Example: "Can be built just outside your borders" + +Applicable to: Improvement + +#### Cannot be built on [tileFilter] tiles until [tech] is discovered +Example: "Cannot be built on [Farm] tiles until [tech] is discovered" + +Applicable to: Improvement + +#### Cannot be built on [tileFilter] tiles +Example: "Cannot be built on [Farm] tiles" + +Applicable to: Improvement + +#### Does not need removal of [tileFilter] +Example: "Does not need removal of [Farm]" + +Applicable to: Improvement + +#### Gives a defensive bonus of [amount]% +Example: "Gives a defensive bonus of [20]%" + +Applicable to: Improvement + +#### Costs [amount] gold per turn when in your territory +Example: "Costs [20] gold per turn when in your territory" + +Applicable to: Improvement + +#### Deal [amount] damage to adjacent enemy units +Example: "Deal [20] damage to adjacent enemy units" + +Applicable to: Improvement + +#### Great Improvement +Example: "Great Improvement" + +Applicable to: Improvement + +#### Provides a random bonus when entered +Example: "Provides a random bonus when entered" + +Applicable to: Improvement + +#### Unpillagable +Example: "Unpillagable" + +Applicable to: Improvement + +#### Indestructible +Example: "Indestructible" + +Applicable to: Improvement + ## Conditional uniques #### when at war Example: "when at war" @@ -1043,6 +1038,11 @@ Example: "This Unit upgrades for free including special upgrades" Applicable to: Ruins +#### Hidden when religion is disabled +Example: "Hidden when religion is disabled" + +Applicable to: Ruins, Building, Unit + #### Hidden before founding a Pantheon Example: "Hidden before founding a Pantheon" @@ -1103,9 +1103,7 @@ Applicable to: Promotion - "Immediately creates the cheapest available cultural building in each of your first [amount] cities for free" - Deprecated As of 3.16.15 - removed 3.18.4, replace with "Provides the cheapest [stat] building in your first [amount] cities for free" - "Immediately creates a [buildingName] in each of your first [amount] cities for free" - Deprecated As of 3.16.15 - removed 3.18.4, replace with "Provides a [buildingName] in your first [amount] cities for free" - "Not displayed as an available construction unless [buildingName] is built" - Deprecated As of 3.16.11, replace with "Not displayed as an available construction without [buildingName]" - - "[stats] on [tileFilter] tiles once [tech] is discovered" - Deprecated As of 3.17.10, replace with "[stats] from [tileFilter] tiles " - "[stats] once [tech] is discovered" - Deprecated As of 3.17.10, replace with "[stats] " - - "Deal 30 damage to adjacent enemy units" - Deprecated As of 3.17.10, replace with "Adjacent enemy units ending their turn take [30] damage" - "+[amount]% Strength" - Deprecated As of 3.17.3 - removed 3.17.13, replace with "[amount]% Strength" - "-[amount]% Strength" - Deprecated As of 3.17.3 - removed 3.17.13, replace with "[amount]% Strength" - "+[amount]% Strength vs [combatantFilter]" - Deprecated As of 3.17.3 - removed 3.17.13, replace with "[amount]% Strength /" @@ -1120,4 +1118,6 @@ Applicable to: Promotion - "Limited Visibility" - Deprecated As of 3.17.5 - removed 3.18.5, replace with "[-1] Sight" - "Double movement in coast" - Deprecated As of 3.17.1 - removed 3.17.13, replace with "Double movement in [terrainFilter]" - "Double movement rate through Forest and Jungle" - Deprecated As of 3.17.1 - removed 3.17.13, replace with "Double movement in [terrainFilter]" - - "Double movement in Snow, Tundra and Hills" - Deprecated As of 3.17.1 - removed 3.17.13, replace with "Double movement in [terrainFilter]" \ No newline at end of file + - "Double movement in Snow, Tundra and Hills" - Deprecated As of 3.17.1 - removed 3.17.13, replace with "Double movement in [terrainFilter]" + - "[stats] on [tileFilter] tiles once [tech] is discovered" - Deprecated As of 3.17.10, replace with "[stats] from [tileFilter] tiles " + - "Deal 30 damage to adjacent enemy units" - Deprecated As of 3.17.10, replace with "Adjacent enemy units ending their turn take [30] damage" \ No newline at end of file