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
* 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>
* 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
* Techs with these kinds of conditional bonuses exist in Civ IV and VI
* Phrasing can now include long-term benefits :)
* Capitalization
* Triggered uniques now subject to conditionals
* Removed extraneous parameter
* Conditional placement
* Updated uniques.md to better phrasing
* Typified Obsolete unique, made luxury resources obsoletable
Things that were luxuries in the past become uninteresting as time goes on
* Unified obsolescence handling for buildings, improvements and resources
* Obsolete icons have their x's in the right place
* All images &c are done - we have the skeleton of the mod in place!
* Revert "All images &c are done - we have the skeleton of the mod in place!"
This reverts commit 61553c17
* Find all replaceable uniques, generate replacement text, check for compatibility, and replace!
All of the work up until now has lead up to this point - since we already know what's out and what to replace it with, we can do 90%+ of the work ourselves and spare the sanity of our modders
For an example run:
- Download your favorite mod
- Check its deprecated uniques in the options menu
- Run the autoupdater from the same menu
- See how they disappear
- Bask in the glory
* A few unreplaced uniques raised problems in some of the replacement texts
* Old unusable deprecated uniques are suddenly important again, because they can help autoupdate mods!
I'm wondering if to remove outdated mods entirely from the uniques.md, since they're going to keep accumulating
* Padding for the 'autoupdate' button
* Only display autoupdate button if there are unique to update
Also, fixed some of the revived deprecated unique's replacement text thanks to fancy new tests :)
Tech uniques autoupdate!
* Toast now pops correctly, added translation entries
* 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)
* Since we have the old unique typed, and the new replacement unique typed, we can show modders EXACTLY the new unique they'll need to have!
The final step of this process is having a 'replace old uniques' button which will automagically replace old uniques in a mod with the new versions. This will of course require some manual intervention since it's possible we added some parameters that didn't exist in the old one, but should work well for 95%+ of uniques.
* Also allow "[-amount]" replacements
Better replacements - "[+amount]" etc - where relevant
* Fixed misadded + in unique
* Gradle build tools upgrade
Apparently the magic is rewriting a specific line in the Android build file and downloading Android SDK 30.0.3
* Added wiki change, isn't that nice :)
* 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
* 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>
* Initial Home page
Updated Home (markdown)
Updated Getting Started (markdown)
Created Project structure overview (markdown)
Initial Home page
Updated Project structure overview (markdown)
Updated Project structure overview (markdown)
Created Making a new Civilization (markdown)
Updated Getting Started (markdown)
Updated Home (markdown)
Updated Project structure overview (markdown)
Created From code to deployment (markdown)
Updated Project structure overview (markdown)
Updated Major classes (markdown)
Updated Project structure and major classes (markdown)
Updated Getting Started (markdown)
Updated Project structure and major classes (markdown)
Updated From code to deployment (markdown)
Created Translating (markdown)
Updated Translating (markdown)
Updated Translating (markdown)
Updated Translating (markdown)
Updated Translating (markdown)
Created Coding standards (markdown)
Updated Home (markdown)
Added "why do we clone on NextTurn" explanation
Created Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Translating (markdown)
New translation files location
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Translating (markdown)
Added mod file location on chromebook
Created Scenarios (markdown)
Updated Scenarios (markdown)
Updated Scenarios (markdown)
Updated Scenarios (markdown)
Updated Scenarios (markdown)
Updated Scenarios (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Scenarios (markdown)
Updated Mods (markdown)
Added itch.io release
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Project structure and major classes (markdown)
Updated Mods (markdown)
Created Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Added link to Uniques
Updated Uniques (markdown)
Added 'triggers victory' unique
Updated Making a new Civilization (markdown)
Created Building locally without Android Studio (markdown)
Updated Translating (markdown)
Updated Uniques (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Uniques (markdown)
Added improvement uniques
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Mods (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
I thought a tutorial on how to create a custom tileset in the first place could not hurt
Moved the sentence to the "Creating a custom tileset" page
Updated Making a new Civilization (markdown)
Updated Mods Making a new Civilization (markdown)
Updated Mods Making a new Civilization (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Destroyed Scenarios (markdown)
Updated Uniques (markdown)
Changed Travis documentation to Github actions documentation
Updated Translating (markdown)
Updated Translating (markdown)
Updated From code to deployment (markdown)
Removed "working on templated rule variants" because we currently don't
Updated Uniques (markdown)
Updated uniques based on everything done during the policy update
Misplaced a unique
Updated Making a new Civilization (markdown)
Updated Making a new Civilization (markdown)
Updated Translating (markdown)
Updated Uniques (markdown)
Removed [pending] messages for PR's that were no longer pending
Added uniques from telecommuncations/advanced balistics
Added all the uniques from my PR's (telecommunicatoins -- shrines); added uniques I deprecated at some point
Updated Uniques (markdown)
Added missing deprecated unique
Added uniques changed in #4292
Updated Uniques (markdown)
Added uniques from #4311 and #4301
Added uniques from #4331
Added Discord webhook message
Created page with basic information
Typo
Made information not incorrect
Added units.json
Manual new lines was a terrible idea
Updated JSON files for mods (markdown)
Added link to JSON files for mods explanation
Added eras.json
capitalization
Added a header
Improved example
Added Buildings.json
hmmm
Doesn't work, sad
Added information on Specialists.json
Updated JSON files for mods (markdown)
Added uniques from #4372
Updated Uniques (markdown)
Updated uniques after #4393
Updated uniques after #4423
Add new and deprecated uniques of #4487, #4459
add wonder images
Fixed mod directory
Updated Uniques (markdown)
Updated uniques after #4530, #4505, #4419
Reworked the passages on tileFilter, terrainFilter and improvementFilter from code inspection
Added a more indept guide on how to install UnCiv on macOS
Updated Uniques (markdown)
Created Credits.md (markdown)
Destroyed Credits.md (markdown)
Added installing from source method
Improve Sound chapter, added Civilopedia text chapter
Added after #4619
Added unitTypes.json
Added beliefs.json
Updated Translating (markdown)
Added eras:unitBaseBuyCost
Added after #4568
Added ruins.json
Added after #4771
Added rudimentary Difficulties.json doc
Added ruin-specfic uniques explanation
Added TOC and Nations
Detailed Techs chapter
Fix 1 line - tech uniques
Added Quests.json
Added ModOptions
Added ModOptions
Added UnitPromotions, structured TOC
Added Policies
Added crosslinks
Fixed broken links
Added TileResources
Added more crosslinks
Small fix resource tile graphix aren't toggle-able
Added TileImprovements
Added Terrains
Updated JSON files for mods (markdown)
Updated Getting Started (markdown)
Updated Getting Started (markdown)
Updated Getting Started (markdown)
Updated JSON files for mods (markdown)
Updated Translating (markdown)
Created Civilization-related JSON files (markdown)
Created Map-related JSON files (markdown)
Double title
Double title
Created Unit-related JSON files (markdown)
Moved sounds
Updated Unit related JSON files (markdown)
Moved Stats
Created Miscellaneous JSON files (markdown)
Removed content that has been moved to separate pages, update TOC
Created _Sidebar (markdown)
Updated Uniques (markdown)
test
Fixed broken links. Apparently the way 'preview' links to pages differs from how it links when you view them on a saved page for some reason
Updated Uniques (markdown)
Fix relative `..` link suddenly leaving the wiki
Updated Miscellaneous JSON files (markdown)
Fix relative links
Fix era links to Units.json
Updated Uniques (markdown)
Updated From code to deployment (markdown)
Added uniques & cityFilters up to #4995
Mass deprecation as per 422607
Fixed broken link to redirect to Unit Uniques in Wiki
Fixed broken link to redirect to Unit Uniques in Wiki table
Updated Uniques (markdown)
Updated Getting Started (markdown)
Updated Uniques (markdown)
Added uniques & filters up to #5094
Removed a deprecated unique
Moved some uniques to better sections, removed an outdated unique
fixed a typo
Updated Uniques (markdown)
eras.json is now required
Removed outdated religion section
Added missing terrain uniques
Added resource uniques
Fixed resource unique link
Added missing unique for tile improvements
Fixed broken link
"Disappearing" translations explained
Updated Home (markdown)
Some atlas info, leader portraits
Created Force rating calculation (markdown)
"Not yet" for Image atlas distribution in mods
Updated uniques after #5259
Added information on conditionals
Updated growth unique
Added conditional support up to #5270
Typo
Escape html tags
Add conditionals to table of contents
Updated _Sidebar (markdown)
Created Audiovisual Mods (markdown)
Audiovisual Mods, move Graphics-only info
Updated Audiovisual Mods (markdown)
Audiovisual Mods - Draft done.
Documented translation method
Updated Translations, mods, and modding freedom in Open Source (markdown)
Fix Typos and Links
New Terrain uniques / 2 sections
Atlas control via multiple Images.x folders is now live
Link to atlas paragraph
startBias clarification
Missing bracket
Added uniques & conditionals up to #5345 (my PR's only)
Updated Force rating calculation (markdown)
Updated Getting Started (markdown => asciidoc)
Undid renaming
Updated Getting Started (asciidoc => markdown)
Added fix for Gradle sync fail
Updated Project structure and major classes (markdown)
Bump Java version from JDK 8 to JDK 11 due to gradle upgrade
Updated uniques & conditionals up to #5618 from my PR's
Created Regions (markdown)
Updated Uniques (markdown)
Updated Uniques (markdown)
Mention docs/uniques.md, emphasized Stat capitalization
* Base wiki state.
* Move wiki files into `/docs/wiki`.
Migrate inter-Markdown links.
Fix pre-existing broken links and anchors.
Standardize repository links for AS linting.
Add wiki footer.
Updated Uniques (markdown)
Updated Mods Making a new Civilization (markdown)
Updated Making a new Civilization (markdown)
Add GH Action for updating wiki.
Play it safer, and don't `push -f`. (Should be the same either way though.)
* Base wiki migration state.
* Author: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-02 11:04:38
Committer: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-02 11:04:38
Parent: 8fe9385ee644a74b1c3ae3c6d1fa8200cc952a3f (Mention docs/uniques.md, emphasized Stat capitalization)
Child: 7463af24381cc6b94b949b4419841d303af6bb93 (Expanded documentation on constructionFilters)
Branches: master, remotes/origin/master
Follows:
Precedes:
Added construction filter in the header
* Author: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-02 11:06:59
Committer: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-02 11:06:59
Parent: 49654ec91dcf565685fd6e4ca966456484c578bd (Added construction filter in the header)
Child: d48da00f4fa03f61891ec7396a5d0ba9109f44df (Added actual steps I take when releasing a version)
Branches: master, remotes/origin/master
Follows:
Precedes:
Expanded documentation on constructionFilters
* Author: Yair Morgenstern <yairm210@> 2022-01-02 18:15:10
Committer: Yair Morgenstern <yairm210@> 2022-01-02 18:15:10
Parent: 7463af24381cc6b94b949b4419841d303af6bb93 (Expanded documentation on constructionFilters)
Child: e7873b135204510742017be455c8b73862bb1d75 (Updated From code to deployment (markdown))
Branches: master, remotes/origin/master
Follows:
Precedes:
Added actual steps I take when releasing a version
* Author: Yair Morgenstern <yairm210@> 2022-01-02 19:54:18
Committer: Yair Morgenstern <yairm210@> 2022-01-02 19:54:18
Parent: d48da00f4fa03f61891ec7396a5d0ba9109f44df (Added actual steps I take when releasing a version)
Child: 84a6eb3a44ed2504f157d55e90cfe2363bb70659 (Added buildingFilter and reworded a bit of generated documentation)
Branches: master, remotes/origin/master
Follows:
Precedes:
Updated From code to deployment (markdown)
* Author: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-07 11:48:11
Committer: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-07 11:48:11
Parent: e7873b135204510742017be455c8b73862bb1d75 (Updated From code to deployment (markdown))
Child: 2a4a0add3728a676012ce51bc3f825c8a5c04c84 (Slightly improved wording)
Branches: master, remotes/origin/master
Follows:
Precedes:
Added buildingFilter and reworded a bit of generated documentation
* Author: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-07 11:51:18
Committer: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-07 11:51:18
Parent: 84a6eb3a44ed2504f157d55e90cfe2363bb70659 (Added buildingFilter and reworded a bit of generated documentation)
Child: d4b91ed84a0989ea5205a77390543d268f7a8b22 (Removed a deprecated field)
Branches: master, remotes/origin/master
Follows:
Precedes:
Slightly improved wording
* Author: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-17 16:59:32
Committer: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-17 16:59:32
Parent: 2a4a0add3728a676012ce51bc3f825c8a5c04c84 (Slightly improved wording)
Child: 3cd48433f279bcceaaab4f63c2c48606781c059f (Updated belief type valed values)
Branches: master, remotes/origin/master
Follows:
Precedes:
Removed a deprecated field
* Author: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-17 17:00:14
Committer: Xander Lenstra <71121390+xlenstra@users.noreply.github.com> 2022-01-17 17:00:14
Parent: d4b91ed84a0989ea5205a77390543d268f7a8b22 (Removed a deprecated field)
Child: 2f076df75fc5d112146902c88f240a3ebdac8849 (Updated Getting Started (markdown))
Branches: master, remotes/origin/master
Follows:
Precedes:
Updated belief type valed values
* Author: Yair Morgenstern <yairm210@> 2022-01-22 19:40:43
Committer: Yair Morgenstern <yairm210> 2022-01-22 19:40:43
Parent: 3cd48433f279bcceaaab4f63c2c48606781c059f (Updated belief type valed values)
Child: 5d60469df68e0416ffa815e1366aef191583c451 (Updated Getting Started (markdown))
Branches: master, remotes/origin/master
Follows:
Precedes:
Updated Getting Started (markdown)
* Author: Yair Morgenstern <yairm210@> 2022-01-22 19:46:03
Committer: Yair Morgenstern <yairm210@> 2022-01-22 19:46:03
Parent: 2f076df75fc5d112146902c88f240a3ebdac8849 (Updated Getting Started (markdown))
Child: 73475b37b28934478dc05830d3aeb61cf8ee6b69 (Updated Getting Started (markdown))
Branches: master, remotes/origin/master
Follows:
Precedes:
Updated Getting Started (markdown)
* Normalize some links.
* Author: Yair Morgenstern <yairm210@> 2022-01-22 19:54:23
Committer: Yair Morgenstern <yairm210@> 2022-01-22 19:54:23
Parent: 5d60469df68e0416ffa815e1366aef191583c451 (Updated Getting Started (markdown))
Branches: master, remotes/origin/master
Follows:
Precedes:
Updated Getting Started (markdown)
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