* 💡 add some comments providing examples
* ♻ refactor getGeneralModifiers to increase readability
* ♻ refactor getAttackModifiers to increase readability
* 🏗 move constants expressed as magic number to separated class to increase maintainability and expressivity
* ♻ invert condition to remove continue statement and simplify code
* 💚 add some tests for battle damage class
* address unnecessary ruleset checks
* Add missing imports
* Fix units not getting the ability uses set if it the city has your own religion
* Remove unnecessary cityConstructions check
* Remove more cases of unnecessary ruleset checks
* Additional unit tests
* Missing import
* Changing stuff solely to avoid an import
* Example of the test, in different orders
* New PromotionTree test
* Add functions to make PromotionTree easier to work with
* Changing values to be lateinit variables
* Treat remaining untyped Uniques in default rulesets, make unit test catch them
* Change untyped filtering Uniques check to Validation by inclusion in GlobalUniques instead of UniqueType.AircraftMarker
* Wiki for untyped filtering Uniques
* Re-include the "Who knows" of Future Tech on the Tech picker
* Added tests to ensure that resources from buildings behave as expected
* More tests suggested by @SeventhM
* Caught an edge case - if you pillage your own tile improvement, your resources would not have updated!
* Actually every time an improvement changes you could have a resource change
* Update resources eon every improvement change because they could be providing resources via uniques
* City-level resources are...
- Not displayed in civ top bar
- Not considered civ-level resources (for trade, non-city conditionals, etc)
- Are explicitly treated in city conditionals
- ARE considered for constructing buildings requiring resource
- ARE NOT considered for construction units requiring resource
* getCityResources separates resources by origin so we need to sum them - kudos @SeventhM
* CR fixes
* Added new Civilization.getResourceAmount function
* More usages of civInfo.getResourceAmount()
* Don't add city resource table if it's empty
* Do not recreate the Line Chart every time
* Simplifed the Line Chart creation
* Do not create objects in draw(): VictoryScreenCivGroup table
* Do not create objects in draw(): Labels
* Create labels without negative Y
* Lift the X axis if there is an negative number
* Arbitrary number of -Y labels
* Autoscale by Y axis
* Zoom in/out by click
* Autoscale by X axis
* Unit tests for LineChart
* Rework of the line chart rendering
* Record each stat each round for each civilization.
* Implement custom serialization and encapsulate logic in separate CivRankingHistory.kt
* Address comments
* Address comments and add RankingTypeTest.kt
* Slight cleanup of TileStatFunctions
* Make City center minimum tile yields moddable
* Make City center minimum tile yields moddable - patch1
* Make City center minimum tile yields moddable - patch1