Commit Graph

438 Commits

Author SHA1 Message Date
44b4cb7e9b Add Amphibious promotion to Songhai units (#6306)
* Destroy Arsenal when city is captured

* Update vanilla Songhai

* Add Amphibious promotion to all Songhai units

In Gods and Kings, all Songhai Land units have the Amphibious promotion. This brings our Gods and Kings up to speed with the original.
2022-03-10 19:43:34 +02:00
28ab45ae40 Fix Mughal Fort using UniqueType Stats instead of StatsPerCity (#6289) 2022-03-07 10:22:01 +02:00
bca3d5645a Fix Spaceship production boni (and key binding) (#6247)
* Fix spaceship part boni

* Key binding for 'Add part to spaceship'
2022-02-28 19:42:02 +02:00
651dcff581 Fix Polynesia's Wayfinding (#6238)
* Fix Polynesia's Wayfinding

* Fix mod option to use other unit filters with UnitsMayEnterOcean
2022-02-28 19:41:22 +02:00
f360eda047 Align (reduce) Embarked Defense Strength per Era (#6231)
* Change Embarked Defending Strength per era. Update Tutorial a little

* Use JSON implementation of EmbarkDefense

Co-authored-by: itanasi <spellman23@gmail.com>
2022-02-28 19:41:13 +02:00
09089cb60d Added uniques and deprecations for "Requires" and "Unlocked by" uniques - #6165 2022-02-22 16:55:37 +02:00
90386bd4e7 Made spaceship parts units instead of buildings (#6203)
* Spaceship parts are units now

* Fixed tests

* Removed commented out lines

* `Spaceship Part` unique can also go on buildings in ods
2022-02-22 11:30:20 +02:00
86cbe895be In Civ VI there are certain units available only if a specific building is built, and this was raised as a request by modders as well. (#6160)
Instead of expanding the existing 'requires building' unique to units and adding limiters, it's both easier and more generalizable to add conditionals for cities with and without certain buildings to replace the uniques entirely
2022-02-15 11:40:47 +02:00
97d74a3aef Enabled type check checking for uniques whose deprecation leads to multiple uniques!
This also enables auto-deprecating the Embark+Ocean unique
2022-02-15 11:29:32 +02:00
9d1f463310 Add Amphibious penalty to Land attacking into Water and vice versa (#6127)
* Add Amphibious penalty to Land attacking into Water and vice versa

* Replace Landing with Amphibious in all translation files

* Fix trailing whitespace

* Revert translation files

* Change working of Amphibious
Set penalty to Landing and Boarding

* Type-ify Unique and add Depreciated
Add Promotion to Melee Naval
Add exception that Landing penalty is NOT against cities

* Fix Vanilla

* Rename to Landing Party
Icon doesn't work

* Properly regenerated game.atlas/game.png

Co-authored-by: itanasi <spellman23@gmail.com>
2022-02-14 19:21:53 +01:00
e72dcc8b0d Unified "X is only available under Y conditions" into a single unique (#6133)
* 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
2022-02-12 19:03:30 +02:00
4fb4722e3a Arbitrary conditionals can become timed conditionals! (#6134)
* 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
2022-02-12 19:03:11 +02:00
9696fa59f5 Added unique to convert terrain to other terrain if adjacent to something (#6094)
* Added unique to convert terrain to other terrain if adjacent to something

Terrain converting to other terrain when adjacent to rivers was using hardcoded stuff, so I un-hardcoded it
I thought I could use this to replace the 'coast' hardcoding, and if it wasn't for the maxCoastExtension then I could.
Modders CAN therefore add their own coast (Lava tiles and Ash tiles I dunno) but it will only be for directly close terrains.
This enables Deciv Redux to spawn huge maps.

* Also for Vanilla, which apparently had a different number of tabs than G&K for no apparent reason.

* Apparently terrain name wasn't a uniquetype yet

(cherry picked from commit 593fc257b5)
2022-02-02 00:59:37 -08:00
6bc41a627c Typed all healing uniques (#6087)
* Typed all healing uniques

* Fixed tests by replacing placeholder texts by types in BeliefAutomation
2022-02-01 09:43:37 +02:00
a237e7bf82 Typed all remaining uniques using CityInfo.GetMatchingUniques and removed that function (#6071)
* Typed all remaining uniques using CityInfo.GetMatchingUniques and removed that function

* Fixed two NullPtrExceptions

* Fixed syntax
2022-01-29 23:27:48 +02:00
824efcb1a9 Try to fix potential typos in stock rulesets. (#6028)
* Make mod checker pass status message translatable.

* Try to fix some possibly broken Uniques.

Move comma.
2022-01-26 22:36:24 +02:00
4215ca7a51 Make Indirect Fire a starting promotion instead of Unique for Artillery, Battleship, etc. (#6042) 2022-01-24 21:02:15 +01:00
b69507255f Fixed the problems with the food carry-over unique (#6040) 2022-01-24 19:52:35 +02:00
f6cb2bd0d7 Made unhappiness effects moddable by adding a global uniques json; added revolts when < -20 happiness (#5932)
* Added a json file for unhappiness effects

* Change existing code to handle these effects

* Made a weird and unexpendable way to add unhappiness effects to the civilopedia

* Add the default unhappinesseffects to mods without the json

* Added revolts when at very low happiness

* Renamed a few often-used functions

* Added a file for uniques that are always active

* Fixed tests

* Nullifies [Food] -> Nullifies Growth
2022-01-24 17:19:51 +00:00
39ed8bd269 Typed some uniques, added more examples for parameters in unique documentation (#6020)
* 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>
2022-01-24 11:03:40 +02:00
f483f0a345 Destroy Arsenal when city is captured (#6031)
* Destroy Arsenal when city is captured

* Destroy Arsenal when city is captured
2022-01-24 10:34:32 +02:00
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
e7042d24ea City state permutations normalized to "City-State"
#5963
2022-01-14 12:16:16 +02:00
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
7cb58eb82d Typed all policy uniques (#5955)
* Typed all policy uniques

* Reworded golden age length
2022-01-14 10:11:30 +02:00
7a83f5091a Fix incorrect Archer obsolete (#5947)
* Fix incorrect Archer obsolete

* Sorry, from previous

* Bring back

* Fix other "Archer" forK
2022-01-11 17:04:19 +02:00
d809f3a132 Made all the other constants determining the strength of cities moddable (#5940) 2022-01-10 13:55:22 -08:00
0349e0a776 Updated the natural wonders for vanilla (#5943)
* Updated the natural wonders for vanilla

* Might as well remove the faith ruins bonuses
2022-01-10 13:28:05 -08:00
b2870bc130 Fix missing siege unit resources needs for vanilla (#5925)
* Fix missing siege unit resources needs for vanilla

* Fix unique siege unit who no resources needs
2022-01-07 14:28:08 +02:00
f06242ebe1 Allowed follower beliefs to have more uniques, merged a unique and globalized some uniques (#5882) 2021-12-31 13:47:52 +02:00
687ecb83f1 Merged some uniques and added a new one for not allowing to build units (#5731)
* Print stacktraces in more cases when crashing, useful for debugging

* Conditionalized no oceans before astronomy unique

* Cannot be built on tile before tech conditionalized

* Added "Cannot build unitFilter units" unique

* Fixed tests failing

* Merge branch master into some-uniques

* Fixed typo

* Apparently I made the same mistake twice

* Globalized unique
2021-12-31 12:13:09 +02:00
ee65adb5e4 Fixed a bug where all global unit discounts would always apply, despite only being for certain units (#5879) 2021-12-31 11:07:59 +02:00
ecadfb53fa Typed some uniques and fixed a policy not working (#5848)
* Typed some uniques, fixing a policy not working

* Repurposed an unused function to remove .unit in some places

* Fixed compilation errors
2021-12-25 17:55:14 +02:00
58cc3b517e Fixed an infinite loop where foreign legion upgraded to the unit it replaced (#5808)
* Fixed an infinite loop where foreign legion upgraded to the unit it replaced

* Changed the wrong variable

* Maybe it is useful to also change its unlock tech

* Whoops, should only be for non-null values
2021-12-16 17:50:10 +02:00
24bd2b66b0 Regions part 3 - resource placement, resource settings (#5690)
* placeLuxuries

* map resource settings

* strategic and bonus resources

* terrain fixes

* slight optimizations

* vanilla jsons

* fix luxury terrain distribution

* also for vanilla

* fix ruleset bug

* terrainfilter
2021-12-07 07:25:16 +02:00
8060b69378 Center Agriculture in Tech tree. (#5736)
* Update Techs.json

* Update Techs.json
2021-11-30 19:01:06 +02:00
06dd395efb Fixed a bug where statue off Zeus would not work (#5732) 2021-11-30 14:42:19 +02:00
79f7319a31 Stop putting Wonders as start buildings (#5710)
This will stop the adding of Wonders as starting buildings in the Future era
2021-11-27 20:01:05 +02:00
ce158d0c44 Fixed terrace farms not improving with Civil Service and Fertilizer techs 2021-11-24 18:43:19 +02:00
b72a2c3ebb Make Guided Missile Free (and Maintenance overhaul) (#5698)
* Add new UniqueType.NoMaintenance to support Guided Missile

* revert gradle
Add UnitMaintenanceDiscount
Rename UnitMaintenanceDiscount->UnitMaintenanceDiscountGlobal
Rework maintenance equation to account for overlapping reductions
Add maintenance variable to MapUnit

* Add square brackets in string (apparently didn't check in?)
More robust uniques check code so not assuming only one matching unique
Use toPercent()

* Proper toPercent() math

Co-authored-by: temurakami <spellman23@gmail.com>
2021-11-22 18:21:34 +02:00
defa25f254 Updated vanilla policies and fixed a few oversights from G&K policies (#5681) 2021-11-15 18:38:49 +02:00
b195f0b92c Removed the religions file and favoured religions from the vanilla ruleset (#5682) 2021-11-15 15:35:45 +02:00
e4f686964e Regions part 2 - City state placements, start normalization (#5663)
* start position normalization

* assignLuxuries

* City states placement

* city state normalization

* don't consider tiny islands

* also modify the other json since they are duplicated now
2021-11-11 12:11:48 +02:00
003f2434c1 Differentiating Vanilla & G&K (#5654)
* Fixed tests checking for mod correctness

* Update G&K jsons to current vanilla versions

* First pass over buildings & beliefs

* First pass over nations

* First pass over eras.json

* Fully updated tech tree

* First pass over units

* Second pass over buildings -- fixed techs

* Fixed last prerequisites and row numbers of tech

* Went through the entire tech tree and moved things to their correct spot

* Fixed tests
2021-11-09 06:23:30 +02:00
ac2bc3a404 Second version of G&K / vanilla split (#5647)
* Copied files for Gods & Kings folder

* Added G&K and unified with mods in dropdown

* Split the baseruleset from the mods list in game parameters

* Mod links are checked again when selecting a mod

* The new map editor screen now also uses the base ruleset

* Updated the ruleset change dialog in the map editor; Fixed a crash

* Refactored some code and fixed some bugs
2021-11-08 22:57:09 +02:00
2250d75b4c Removed a wrongly implemented BNW-only building (#5649) 2021-11-08 22:14:27 +02:00
09c40002f0 Regions part 1 - subdivide generated maps into regions, and use to place civs (#5556)
* json definitions

* create regions, define region types

* count terrains

* terrain qualities

* tilesInRectangle

* use even q coords

* major civ start locations

* move to separate file

* remove printlns

* unused imports

* strings

* strings

* reviews

* conditionalize qualities

* guess qualities of terrain types without explicit definitions

* guess qualities of terrain types without explicit definitions

* Update template.properties

* Update template.properties

* add HideInCivilopedia to technical uniques

* reviews
2021-11-05 07:59:48 +02:00
53a0c9b248 Reworked buying buildings & units with stats a bit (#5618)
* Reworked buying buildings & units with stats a bit

* Reviews
2021-10-31 17:59:13 +02:00
045b52c935 Fixed a bug where hagia sophia could be build in non-faith games (#5617) 2021-10-31 14:00:24 +02:00
bfe0b68ab8 Barbarian units (#5589)
* barbarian unique units; barbarian blacklisted units

* credits

* barbarian units do not take resources

* ai fix
2021-10-29 13:33:11 +03:00