12062 Commits

Author SHA1 Message Date
SomeTroglodyte
dbf28c675a
Speed and Difficulty uniques treated as part of GlobalUniques (#13513)
* Linting

* Make Difficulty a full RulesetObject

* Make Speed and Difficulty uniques work as if part of GlobalUniques

* Now that they have an effect, they should be visible in Civilopedia

* Autogenerated docs

* Fix lost import

* Fix unit test encapsulation
2025-06-29 18:02:01 +03:00
Rob Loach
d0b43599d9
Fix mod names with dashes in them (#13523)
* Fix mod names with three dashes

* Fix display of mods with three dashes in the name

* Remove unneeded Ruleset call
2025-06-29 18:00:47 +03:00
yairm210
7adf726580 Fix linting 2025-06-29 18:00:00 +03:00
yairm210
7b106eeb7b chore: ArrayList.getOrPut is now an extension 2025-06-29 11:50:46 +03:00
yairm210
cad7bd70a0 Perf(cpu): Convert passThroughCache from a hashmap to an arraylist, using the zero-based index for tiles 2025-06-29 00:22:00 +03:00
yairm210
1ad113e363 doc: updates 2025-06-28 23:13:36 +03:00
yairm210
e8fd27bf34 Fixed dev console requiring scrolling on small UI settings 2025-06-28 23:13:04 +03:00
SomeTroglodyte
f3c8e2d009
UniqueDocsWriter escapes examples that include conditionals (#13525)
* Escape`<>` in docDescription rendering, and don't glue the "Applies to" to its end

* gitignore mkdocs output
2025-06-28 22:51:09 +03:00
SomeTroglodyte
15e09ceb1f
Improve wiki - Clarify "modName" parameter and check links (#13529)
* Correct all Warnings and Info's thrown by mkdocs

* Clarify modFilter documentation
2025-06-27 14:37:14 +03:00
yairm210
fe9423d9e7 4.17.0 4.17.0 2025-06-27 00:09:20 +03:00
Yair Morgenstern
bd60575584
Version rollout (#13524)
* Bump version and create initial changelog entry

* update galician translate gl_ES (#13520)

* Update Galician.properties

update translate

* Update Galician.properties

update translate

* Update Galician.properties

fix error in line 1124

* Update Galician.properties

fix in line 380

* Update Italian.properties (#13516)

* Update Brazilian_Portuguese.properties (#13515)

* Update Korean.properties (#13514)

* Update French.properties (#13511)

* Update Indonesian.properties (#13510)

* update croatian translation (#13508)

---------

Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: ninjum <138787523+ninjum@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: Vitor Gabriel <59321138+Ranbut@users.noreply.github.com>
Co-authored-by: Charmtese <saud2410@naver.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: X2003 <158255876+Xenia2003@users.noreply.github.com>
Co-authored-by: metablaster <44481081+metablaster@users.noreply.github.com>
2025-06-27 00:05:52 +03:00
yairm210
f6d859e0ec Resolved #13174 - AI considers tile damage when deciding on which tile to heal on 2025-06-27 00:04:43 +03:00
SomeTroglodyte
9f3f6ea0ca
Improve ModChecker UI (#13507)
* Minor linting

* Move error severity icon to where the color is, fixing "Orange-level bad" being a "positive" Checkmark

* Move 'open unique builder' to helper, fixing the premature expensive instantiation of another copy of the combined ruleset

* Move the per-mod UI code to helper function for readability

* Make background coroutine cancellable and use that

* Fix base out of sync between SelectBox and actual check after autoUpdateUniques

* Make changes to search while a check is running work properly

* Use LoadingImage instead of moving label to indicate in progress

* Skip mods that we know won't work with the current base selection

* Default base to check against: determined automatically

* Add lost check for changed search while a check is still running

* Cleaner Job Cleanup
2025-06-26 23:46:06 +03:00
SomeTroglodyte
2d3b6047f3
Allow mods with no global uniques, no ruins or no difficulties file (#13521)
* Allow mods with no GlobalUniques

* Allow mods omitting Difficulties to fall back to Vanilla

* Allow mods with no Ancient Ruins + Checks
2025-06-26 23:45:34 +03:00
EmperorPinguin
86d7324298
AI: update CreatesOneImprovement handling (#13497)
* Update

* Update Automation.kt

* Update Automation.kt

* Update Automation.kt

* Update Automation.kt
2025-06-26 23:45:06 +03:00
SomeTroglodyte
fce04aaddd
Under-the-hood improvements around Speed and Years (#13482)
* Mini-refactor: YearsPerTurn can be immutable, support destructuring

* Lint: Replace non-rendering unicode points with escapes

* Wiki: Describe `Speed.turns` better

* A unit test for turn-to-year conversion

* Faster turn-to-year math

* Readability changes
2025-06-26 23:44:54 +03:00
SomeTroglodyte
4ac0400c2e
Update wiki - fix oversights, clarify what is optional in base ruleset mods, new features (#13522)
* Modder wiki: Fix personalities breaking up rendering, open them up and lint

* Modder wiki: Fix incomplete table of contents (oops, the link for the later "Add a table" commit is in here)

* Modder wiki: Emphasize and explain more basic Json rules - @SpacedOutChicken's "but modders may copy examples verbatim without knowing quotes meant to be part of literals must be escaped"

* Modder wiki: Add a table documenting base ruleset fallbacks / what can be empty

* Modder wiki: Add documentation for PR #13513

* Modder wiki: Add or clarify fallbacks used for base ruleset Mods

* Clear up question marks - the template mod works with no objects of those types

* Remove duplicate Personalities paragraph

* Revert "Remove duplicate Personalities paragraph"

This reverts commit d785b546af1537a1e3add56a4ff83a9b178d404d.

* Revert more Personality changes, leaving only the file link

* Minor fixes
2025-06-26 23:43:38 +03:00
yairm210
89f6b6fe8b Fixed building maintenance unique 2025-06-26 23:41:10 +03:00
yairm210
5b5495397f 4.16.19 4.16.19 2025-06-23 23:23:47 +03:00
Yair Morgenstern
91bda736ff
Version rollout (#13506)
* Bump version and create initial changelog entry

* Update French.properties (#13505)

* Fixed wrongly translated line (#13502)

* Update Italian.properties (#13501)

* Update Ukrainian translation (#13499)

* Update Brazilian_Portuguese.properties (#13498)

* Update Indonesian.properties (#13487)

* update croatian translation (#13486)

---------

Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: Crsi <47722349+CrsiX@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: Kostiantyn Ko <mormat.iam@gmail.com>
Co-authored-by: Vitor Gabriel <59321138+Ranbut@users.noreply.github.com>
Co-authored-by: X2003 <158255876+Xenia2003@users.noreply.github.com>
Co-authored-by: metablaster <44481081+metablaster@users.noreply.github.com>
2025-06-23 23:20:30 +03:00
EmperorPinguin
b4bc02839f
Update CivilianUnitAutomation.kt (#13503) 2025-06-23 23:18:48 +03:00
Rob Loach
d18b78d5f4
Fix number popup with commas in the number (#13495)
* Fix trade gold popup with locale code

* Be verbose and rename the function to toIntOrNullTranslated()
2025-06-23 23:18:25 +03:00
EmperorPinguin
50de8e65c6
AI: update getStatDifferenceFromBuilding (#13492)
* Update

* Update ConstructionAutomation.kt
2025-06-23 23:18:15 +03:00
Rob Loach
9cce7b21bd
Add Gain control over [positiveAmount] tiles [cityFilter] Triggerable (#13489)
* Add 'Expand the border [cityFilter]' Unique

* Update OneTimeExpandBorder

* Add quantifier

* Clean up the code

* Rename and add a test

* Update docs
2025-06-23 23:18:06 +03:00
SomeTroglodyte
fe10b96837
Improve ruleset validator (#13488)
* Mini-refactor: YearsPerTurn can be immutable, support destructuring

* Fixing pass over RulesetValidator

* Make builtin Ruleset clones keep their name and isBaseRuleset

* Prevent repeated cloning in Ruleset.load (borderline optimization)

* Teach AtlasPreview to load complex Rulesets

* Fix filtering Unique check

* Fix ModRequires on base rulesets check

* Add absolutely minimal ModConstants checking
2025-06-23 23:17:57 +03:00
yairm210
435e5805f9 Optimized getMovementToTilesAtPosition tilesToIgnore to a bitset instead of a hashset, saving 7.4% of next turn calculation time! 2025-06-22 20:10:26 +03:00
Yair Morgenstern
be8935439c
chore: Updated kotlin compiler JVM target (#13490)
* chore: Updated kotlin compiler JVM target

* .
2025-06-22 11:06:03 +03:00
yairm210
895be43d2f 4.16.18 4.16.18 2025-06-22 00:03:04 +03:00
yairm210
6390383b15 Resolved #13472 - Sprites do not change to base color when moving 2025-06-21 23:59:29 +03:00
Yair Morgenstern
b299813214
Version rollout (#13485)
* Bump version and create initial changelog entry

* Update Korean.properties (#13480)

* Update Korean.properties

* Update Korean.properties

* Update Korean.properties

* Update Japanese.properties (#13476)

* Update French.properties (#13474)

* Update German translation (#13471)

* Update Brazilian_Portuguese.properties (#13467)

* Update Italian.properties (#13464)

* update croatian translation (#13463)

* Update Indonesian.properties (#13462)

---------

Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: Charmtese <saud2410@naver.com>
Co-authored-by: cknight828 <128895471+cknight828@users.noreply.github.com>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: mape6 <mape6@posteo.de>
Co-authored-by: Vitor Gabriel <59321138+Ranbut@users.noreply.github.com>
Co-authored-by: Giuseppe D'Addio <41149920+Smashfanful@users.noreply.github.com>
Co-authored-by: metablaster <44481081+metablaster@users.noreply.github.com>
Co-authored-by: X2003 <158255876+Xenia2003@users.noreply.github.com>
2025-06-21 23:59:20 +03:00
Rob Loach
37037b3c41
Add [relativeAmount]% [resourceFilter] resource production Unique (#13468)
* Add unique [relativeAmount]% [resourceFilter] resource production

* Add up the percentage modifiers

* Revert "Add up the percentage modifiers"

This reverts commit f8dc3f35a5dfc45526e29b3b98906a05b9fa2ea5.

* Update tests

* Use additive percent

* Switch to additive

* Update documentation around production

* Apply the [relativeAmount] changes first, then double them if needed

* Add deprecation notice on 'Quantity of strategic resources produced'

* Update deprecation version

* Update core/src/com/unciv/logic/civilization/Civilization.kt

* Deprecate the Double quantity of [resource] production
2025-06-21 23:51:47 +03:00
SomeTroglodyte
61182a1b07
Refactor RulesetValidator into two files (#13458)
* Refactor RulesetValidator into three files

* Unit tests need to use the factory too

* Switch refactor RulesetValidator to a 2-class model
2025-06-21 23:51:31 +03:00
metablaster
911c26e5d6
Fix broken chart in victory status (#13454)
* fix broken chart

* update comment and minor optimization

* rename misleading variable
2025-06-21 23:50:00 +03:00
yairm210
1ff10700b9 chore: Generic'd demand alerts 2025-06-21 23:27:02 +03:00
yairm210
a0a6fc670d console: Can set game turn 2025-06-20 17:52:15 +03:00
yairm210
a82906bc5f Resolved #13473 - barbarian workers no longer construct improvements if they land on them 2025-06-19 17:39:44 +03:00
yairm210
bfff0ec23a modding(validation): Catch empty altases.json file 2025-06-18 18:38:40 +03:00
yairm210
3d3fc302c6 Add stacktrace to ruleset validation exceptions 2025-06-18 18:23:03 +03:00
yairm210
5fdaa1a052 4.16.17-patch1 4.16.17-patch1 2025-06-18 06:13:49 +00:00
hackedpassword
bdbce2e297
Edge restructure update (#13470)
* HexaRealm edges restructure

* Resolved missing assets
2025-06-18 09:13:40 +03:00
yairm210
adb7b2eaee chore: research agreements -> Research Agreements, as per #13439 2025-06-17 19:29:15 +03:00
yairm210
aaf4167ad7 Allow autoupdates for uniques with the same parameter appearing twice - e.g. 'from [amount] to [amount]' 2025-06-17 18:51:15 +03:00
yairm210
6952ce04ac Allow autoupdates for uniques with the same parameter appearing twice - e.g. 'from [amount] to [amount]' 2025-06-17 18:50:39 +03:00
yairm210
44e6827728 Allowed stat reserve to get happiness 2025-06-17 18:06:23 +03:00
yairm210
6bb0ddd2ca 4.16.17 4.16.17 2025-06-17 16:50:31 +03:00
yairm210
4c637374a1 Increased font size so it's less blurry on large screens
At 2048x2048 this should be enough for 400 characters
Hope this doesn't cause problems for e.g. chinese -_-
2025-06-17 16:49:52 +03:00
Yair Morgenstern
302004e3aa
Version rollout (#13461)
* Bump version and create initial changelog entry

* Typo error in Italian (#13435) (#13460)

* Update French.properties (#13459)

* Update Brazilian_Portuguese.properties (#13456)

* Update Indonesian.properties (#13449)

* Update Korean.properties (#13448)

* edit Korean.properties

* Update Korean.properties

* Update Croatian translation (#13446)

---------

Co-authored-by: yairm210 <yairm210@users.noreply.github.com>
Co-authored-by: info-david <contact@infodavid.org>
Co-authored-by: Ouaz <Ouaz@users.noreply.github.com>
Co-authored-by: Vitor Gabriel <59321138+Ranbut@users.noreply.github.com>
Co-authored-by: X2003 <158255876+Xenia2003@users.noreply.github.com>
Co-authored-by: Charmtese <saud2410@naver.com>
Co-authored-by: metablaster <44481081+metablaster@users.noreply.github.com>
2025-06-17 16:44:00 +03:00
EmperorPinguin
aefbeae6bc
Autoplay: don't assign citizens according to AI Personality (#13453)
* Update Automation.kt

* Update core/src/com/unciv/logic/automation/Automation.kt

---------

Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
2025-06-17 16:09:56 +03:00
yairm210
3515445bf8 Resolved #13451 - 'connect road' works when railroads don't exist in the ruleset 2025-06-17 16:09:13 +03:00
yairm210
b01e1df24d Bug 1/2 of #13451 - 'connect road' acknowledges availability uniques on road/railroad 2025-06-17 16:07:04 +03:00