Another new version! Same
download page as always!
This time I've added a fairly big new feature: generic functionalities. Things like Embassies, Trade Routes, and Defensive Pacts are now represented on the tree within the Editor (some examples shown below on Animal Husbandry, Sailing, and Writing):
But just having those icons by themselves doesn't really let you manage them quickly while in the Editor, you need to know what each generic does, like you do in-game by mousing over them on the tree. So, in the Editor, when you mouse over:
In the process of making that available, I've added tooltips to all of the unlocks on the tree, which should be particularly helpful for very crowded techs:
Those of you who are familiar with how CiV's database is laid out will know that, unlike Units and Buildings, which are their own set of tables that exist independently of techs, most generic functionalities are simply properties on the actual Technologies table. (So, the Animal Husbandry tech is marked up as giving the player 1 international trade route.) To address this difference, if you drag and drop any of the generic functionalities on the tree itself, then the relevant fields will be updated on the underlying technology in order for that change to be reflected in game.
The upshot of all of that is that if you drag Embassy trading off of writing onto Mining, and then load the Editor's exported data into your mod, then Embassy trading should be moved as expected onto Mining.
Another consequence of that is that if you modify a technology and change a relevant property this may "create" a generic functionality icon on that tech. (If you tick the "OpenBordersTradingAllowed" box on a tech, then a generic functionality icon with that tooltip will pop up on the tech.)
And then! There are those of us who are making mods that have new generic functionality and want a way to represent that within the Editor while designing tech tree changes. You
can represent those by creating your own functionality within the Editor:
Right click a tech:
Fill in the fields:
Look at your new functionality:
The string in the tooltip of any generic functionality is the one from the text key in the "Effect" property on the created functionality. (For all units, buildings, etc. the Description property is used.)
Note that newly created generic functionality in the Editor
does not affect the behavior of the game when loaded by a mod. It is solely there for organization of your mod's tech tree. You will need to implement the specifics of said functionality as a part of your mod, through Lua, C++, or otherwise.
Also,
not all base game generics are supported yet. Yield bonuses for certain improvement types (and some in only certain conditions, such as access to fresh water) are more complex to evaluate and I haven't added support for them yet. Only the "simple" functionalities that are flags on the techs are included for now.
A full list of those functionalities:
- International Trade route changes
- Enhancements to embarked movement
- Allowing embarkation
- Allowing embarked units to cross oceans
- Embassies
- Open borders
- Defensive pact
- Research agreements
- Bridges over water
- Reveal the whole map
- Tourism modifier
- Unlocking the World Congress
- Extra votes per diplomat
I've also made some other more minor changes to the Editor:
- Added support for Projects (Manhattan Project, Apollo Program), so they can be modified from within the Editor in the same way as Units, Buildings, Resources, and Builds.
- Fixed a bug introduced in the last version that sometimes caused new rows created within the Row Editor to not be created correctly. (They were left out whenever you did an Export.)
Advanced user's note:
You may notice that the Editor now creates a new table of exported data called GenericFunctionalities. It contains the data that the Editor uses to keep track of the generic functionalities' information on the tree, and can be safely discarded when you load the exported data into your mod. (All entries associated with it should be in the GenericFunctionalities xml file, along with any relevant text keys that may have been created in the GameText xml file.) This table does not serve any purpose within CiV itself.