Commit Graph

4222 Commits

Author SHA1 Message Date
Yair Morgenstern
2b7e279b4d 2-digit numbers no longer clip with the outwards circle.
This is really minor.
2022-01-23 19:07:08 +02:00
Yair Morgenstern
f7b99541a1 Tech order is displayed in a much nicer, more standardized, and overall much more professional way.
This is one of the small things that's been bugging me for a while
2022-01-23 19:04:23 +02:00
Xander Lenstra
6a8f88f202
Added a few more unit tests for global uniques (#6018) 2022-01-23 06:18:15 -08:00
Yair Morgenstern
f9c05997dd
Typified some building uniques (#6017)
* Typified some building uniques
I noticed that the code allows "[stats] from every [buildingFilter]" but the UniqueType was limited to "[stats] from every [buildingName]", so now that that's available we don't actually need the "[stats] from every Wonder" unique :)

* buildings-only unique moved to buildings section
2022-01-23 06:03:50 -08:00
will-ca
fe67dfa1c4
Make "Help" button clearer and translatable, random nation indicators and labels translatable. (#6013)
* Make unknown nation placeholder translatable.

* Make MultiplayerScreen help button clearer and translatable.

* Use `Constants.spectator` more.

* Make random/unknown nation icon translatable.
2022-01-23 09:39:28 +01:00
Yair Morgenstern
7e59e28f1c
Added button to update an installed mod from its action menu (#6005)
Much easier and more intuitive than clicking on it, then on the equivalent online mod, then 'download'
2022-01-22 20:35:19 +02:00
Yair Morgenstern
bebc2c7e21
Converted all stat percent uniques to be iterated on efficiently once! (#6004)
This also makes a specific unique which was previously 'nation-only' to be applicable generally
2022-01-22 20:34:05 +02:00
Yair Morgenstern
080fc245d8
Removed ALL hardcoded decisions in worker AI - we're now fully moddable! (#6003)
I tested this out with RekMOD, 150 simulated turns, to see if this was working.
Not only did I discover that workers were squatting on Antiquity Sites since they had resource improvements that they couldn't build, I also discovered something much worse.
Even after fixing that, most cities were woefully underimproved.
Turns out, the construction automation would limit worker construction to a measly *3 workers* even for a *10 city* civ!
After removing this limitation and making civs aim for a 1:1 ratio between cities and workers, everything started looking much, much better.
I'm not sure what the exact effect on the AI will be but I'm _sure_ that this leads to a major improvement. More improved tiles means more stats means more everything.
2022-01-22 16:47:39 +00:00
Xander Lenstra
feb9b19d11
Removed a probably unnecessary check in unit.mayPassThrough() (#6008) 2022-01-22 08:32:55 -08:00
Xander Lenstra
f4716689a3
Fixed a conversion error in "% city strength from defensive buildings" unique (#6007) 2022-01-22 18:22:35 +02:00
yairm210
06c8eca43c More simplification and readability through naming 2022-01-19 19:47:04 +02:00
yairm210
30b7e0f343 Separated data download and data handling for more readable download flow and less indentation 2022-01-19 19:33:12 +02:00
yairm210
7ea5a12079 Deprecation text, label and cell were never actually in use. 2022-01-19 19:21:46 +02:00
yairm210
ab0ff2e33e Made some of this stuff more readable
I came to the mod management screen to add a functionality to download the latest version of an installed mod by adding a 'download latest version' button to its action menu.
I did not expect the code to be this intractable. I've been reading and writing Kotlin daily for the past 5 years now, and even I struggle to understand what's going on here.
(also instead of adding button and counting duplicate entries just to remove them from both UI and count, just - don't add them to begin with)
2022-01-19 19:20:34 +02:00
yairm210
871dcfaf7d Deprecated old uniques 2022-01-19 14:42:09 +02:00
Yair Morgenstern
8df762a2dd
Iterate once through all uniques to find those relevant to sat percent bonuses, instead of per-type (#5999)
The same change we made in the move to getStatsFromUniquesBySource()
This should be faster, more generic, more accurate (buildings vs wonders), and catch all usecases (i.e. stat bonuses from uniques attached to *techs* or who knows what else
2022-01-19 14:16:51 +02:00
Yair Morgenstern
0279adadb9
Worker AI for mods, step 2 (#5998)
* Worker AI for mods, step 2

Support for removing terrain features, both when we need to get rid of them for a resource, and when they plain reduce the yield of a tile

Note that the "Remove <improvement>" was implemented WAY before templating and uniques were a thing - the correct solution in these enlightened times would be to separate the improvement *name* from the *effect*, so we could have e.g. a "Deforestation" improvement which would contain botth ["Removes [Jungle]", "Removes [Forest]"] or whatnot.

For now I Constant'D the "Remove " so we can at least follow where it's used.

* Reverted some of the auto-formatting so the PR is cleaner

* Caught 'nullify yields' unique for terrain removal
2022-01-19 14:16:33 +02:00
will-ca
19927d89ba
Use .toTextButton() in more places. (#5994)
* Use toTextButton for WorldScreenTopbar "Overview".

* Use toTextButton for AddMultiplayerGameScreen "Paste gameID from clipboard".

* Use toTextButton in MultiplayerScreen.

* Use toTextButton for CityOverviewTable city.name.
2022-01-19 14:16:21 +02:00
will-ca
b0ffae0da0
Refactor and unify some buttons that have a label next to an icon. (#5992)
* Take Actor instead of image String for String.toButton icon.

* Remove superfluous Group size wrapper.

* Builder-style configuration for string icon buttons.

* Add a function to the big unify picker screen option buttons.

* Unify unit action string icon button.

* Unify TabbedPager string icon buttons.

* Unify EmpireOverviewScreen string icon buttons.

* Unify CivilopediaScreen string icon buttons.

* Unify GreaterPersonPickerScreen string icon buttons.

* Unify PromotionPickerScreen string icon buttons.

* Unify ImprovementPickerScreen string icon buttons.

* Unify DiplomaticVotePickerScreen string icon buttons.

* Unify OffersListScroll string icon buttons. (Also moves icon to left.)

* Unify UnitOverviewTable string icon buttons.

* Turn IconTextButton into a class.

* Separate icon parameters.

* Remove outdated arg and comment.

* Remove obsolete generic.
2022-01-19 14:16:08 +02:00
Yair Morgenstern
8846c158fb
Resolved #5988 - Allow modded improvements (#5989)
Current worker automation assumes A LOT about the current ruleset.
This is only step 1, which allows skipping irrelevant improvements to reach actually useful improvements.
Comments welcome.
2022-01-18 01:58:43 +00:00
yairm210
b4214baf1f Smaller stars on the promotions, so they don't 'leak' outside the promotion image 2022-01-16 22:07:44 +02:00
yairm210
e074ed7546 Added civ icon to Battle Table when attacking cities 2022-01-16 21:09:43 +02:00
yairm210
dd90b2bacc NewGameScreen threading normalized.
The NewGameScreen was written by a past version of myself that had no idea how to handle threading, and thus was extremely strange. Checking an object _on render_ and if it's set then activate? Totally clueless.
2022-01-16 19:10:30 +02:00
will-ca
9b121a478a
Clean up refactored pixel unit resolving. (#5979) 2022-01-16 18:43:49 +02:00
will-ca
f68c41e369
Explain when cities can't be razed. (#5976)
* Explain when cities can't be razed.

* Light refactoring and reword.

* Add update notice in translation strings.
2022-01-16 18:43:33 +02:00
ravignir
b1517f0cde
Made attacked civilians lose 40 hp as in civ5. (#5978)
Is it the smallest commit ever? xD
2022-01-16 18:39:41 +02:00
will-ca
ec59533f82
Tint colour and not alpha in CityTileGroup. (#5969) 2022-01-16 03:03:23 +01:00
will-ca
b7d3a6c581
Fix a tiny and limited memory leak. (#5968) 2022-01-16 03:03:06 +01:00
yairm210
f8e9b6912e Merge remote-tracking branch 'origin/master' 2022-01-15 23:16:42 +02:00
yairm210
790bfc10b7 Resolved #5980 - "Cannot be built with" catches building equivalents as well 2022-01-15 23:16:28 +02:00
itanasi
9584389864
Capturing Civilians Not an Attack (#5974)
* Change to not count civilian attacks

* Change to not count civilian attacks

Co-authored-by: temurakami <spellman23@gmail.com>
2022-01-15 22:43:11 +02:00
yairm210
a2f5941927 chore - Minor improvements to science and culture tutorial capitalization 2022-01-15 22:09:33 +02:00
Xander Lenstra
2986052397
Typed all tech uniques (#5967) 2022-01-14 17:44:53 +00:00
yairm210
8311e65120 Victory types capitalized 2022-01-14 12:21:53 +02:00
yairm210
e7042d24ea City state permutations normalized to "City-State"
#5963
2022-01-14 12:16:16 +02:00
yairm210
4dcb45408d Unique deprecation 2022-01-14 11:00:38 +02:00
Yair Morgenstern
6e95a07572
More unit unique typing (#5952)
* There are so many of these my gosh

* Fixed, good thing we have tests :)

* Fixed
2022-01-14 10:43:13 +02:00
Yair Morgenstern
398e7903ef
Resolved #5930 - removed extraneous stat icons + resolved sorting problem they caused in Civilopedia tutorials. (#5959) 2022-01-14 10:11:45 +02:00
Xander Lenstra
7cb58eb82d
Typed all policy uniques (#5955)
* Typed all policy uniques

* Reworded golden age length
2022-01-14 10:11:30 +02:00
Yair Morgenstern
826b8f4826
Handling for multiplayer download errors (#5958) 2022-01-14 10:09:10 +02:00
Yair Morgenstern
4cce74253d
Abstracted file storage from the multiplayer data retrieval - this should allow implementations of both #5866 and #2679 for other implementations of IFileStorage (#5960) 2022-01-13 16:33:21 +00:00
Xander Lenstra
74d3854e45
Very likely fixed a bug that occasionally placed hills on top of mountains (#5946) 2022-01-11 23:30:25 +00:00
Xander Lenstra
8b846f8087
Typed a few unit uniques (#5951)
* Typed a few unit uniques

* Fixed tests

* Actually implemented a unique type :)
2022-01-11 23:24:58 +00:00
Yair Morgenstern
4308ad44ed
Removed silly crash for unteneble mods, and a try/catch that due to changes no longer caught hat it should have. (#5950) 2022-01-11 23:17:41 +00:00
Xander Lenstra
d809f3a132
Made all the other constants determining the strength of cities moddable (#5940) 2022-01-10 13:55:22 -08:00
Xander Lenstra
93a109b082
Fixed a bug where citadels did not damage nearby units (#5941)
* Fixed a bug where citadels did not damage nearby units

* Fixed tests
2022-01-10 13:32:48 -08:00
Xander Lenstra
3e6a190ab4
Unit tests for uniques (#5945)
* Added a unit test file for uniques

* Added a few tests
2022-01-10 22:01:14 +02:00
yairm210
1999364b9e Chore - more typified unit uniques 2022-01-10 21:53:13 +02:00
yairm210
c6a9f6a857 Chore - typified unit uniques 2022-01-10 21:13:59 +02:00
Xander Lenstra
86f8dff39b
Fixed a crash when using conditionals in transient unit uniques (#5939) 2022-01-10 11:53:00 +02:00