* Add gain stat modified by speed and improvement speed by filter uniques
* Fix rulesets
* Remove nonfunctional leftover resource text
* Reword improvement unqiue as suggested
* Fixed G&K policy eras
Patronage should be Medieval and Freedom should be Industrial in G&K
* Added 'priorities' object to policy branch entries
* Fixed Vanilla policy eras
Also set testing priorities in advance
* Partial code formatting
* Reworked how the AI chooses a policy to newly adopt
* Removed debugging codes
* Update Civilization-related-JSON-files.md
Added Branch priorities
* Assigned actual priorities to each branch
Also fixed a debugging value in Ruleset.kt (-1 -> 0)
* Generalized trade route percent bonuses
* Unified two uniques using populationFilter; deprecated a deprecated uniq
* Made some renamings to improve clarity & fixed tests
* Fixed tests again
* Fixed typo
* Unified "X is only available under Y conditions" into a single unique
There were a few problems with existing uniques - they weren't really composable, the offered things they didn't keep, etc
For example, "Incompatible with [policy/tech/promotion]", UniqueTarget.Policy, UniqueTarget.Tech, UniqueTarget.Promotion. In fact, promotions only checked promotion incompatibility, promotions - promotion incompat, etc
Additionally, with a few more changes, this could cover several other uniques - "Hidden until [amount] social policy branches have been completed", "Requires at least [amount] population", perhaps others
I have to say I think conditionals are the best thing ever and they make amazing composability possible :)
* Autoupdate correctly recognizes parameters
Updated ruleset jsons
* Deprecation texts should be allowed to forward to other deprecated uniques so we only need to change the leaves when introducing new uniques, not go through the whole tree
* Arbitrary conditionals can become timed conditionals!
triggerCivwideUniques is activated in 3 situations:
- Tech complete
- Policy adopted
- Building complete
So for each of the unique containers for these I added a catch saying 'if this unique is a temporary unique then don't save it yourself
This has been lying around in todos for a while and generalizes one of the nasty hardcoded messes that I hate about Civ V. Why would you introduce ONE timed effect in the whole game?! You can use them all the time like Humankind or never use them like Civ IV, but why have just one whyyy
One more thing in this PR, that needed to be solved by the by, is allowing parameters to have a '2' on the end so we can autoreplace multiple parameters of the same type.
Using a regex is slightly more inefficient, but since this is A. only used once per UniqueType.kt, and B. allows us to have as many 'amount's as we want which is important if we have a lot of conditionals, I feel this is justified.
* Fixed comments from PR
* Typed some uniques, etc.
* Missed a few square braces
* Missed a parameter
* Missed another parameter
* Made a conditional, spelling, added check to `isStatRelated`
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* 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
* Added support for conditionals to some more uniques
* Implemented a new conditional
* Added the new conditional to the translations file
* Fixed tests
* Implemented requested changes
* Implementation of conditionals, but better than before
* Updated the unique while I was at it
* Fixed bug where conditionals would never apply
* Capitalization
* Minor code cleaning
* Better documentation & variable names
* Changed translation strategy
* Added missing import?
* Refactored free buildings from civ.policies to civ.constructions
* Made CN tower function like in the base game
* Fixed random buildings being marked culture buildings
* Generalize the concept of founding religions in preparation of enhancing
* Implemented enhancing religions
* Added all enhancer beliefs (mostly correctly, mostly tested)
* You can now found a religion without a pantheon, requiring you to choose a pantheon as well
* Parameterized 'enhance religion' action, fixed tests
* Implemented requested changes & simplified beliefContainer a lot
* Fixed rename
* Updated code to include features added in the meantime
* Merge branch 'master' into enhanceReligions
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Added missionairy units, which can spread religion and bought with faith
* Forgot an include, minor additions
* Forgot credit for the missionary image
* Large refactor, enabling buying with almost all stats, split IConstruction into IConstruction & INonPerpetualConstruction
* Does this fix the tests
* Fixed accidentally removing all trailing spaces in template.properties
* Thanks to someTroglodyte for paying more attention than I do :)
* Implemented requested changes
* Fixed large amount of question marks
* Missing space, of course
* Fixed function name change
* Fixed merge problems
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* Created Patronage policy branch -- draft
* Patronage branch is now functional
* Added images for the policies
* Temporarily bandaged backwards compatability, added incompatabilities
* Implemented recommended changes
* Fixed acquirement of 'patronage complete' not being saved
* Reverted change I was unhappy with
* Implemented requested changes
* Fixed build errors
* Implemented recommended changes
* City States can now give any great person, including unique ones, conform Ravignirs tests