I'm having a blast with this update! Very nice work
2.1 - Conquest Update
2.1 is here, with reworks to combat, Maskling AI, and quieter lumberyards.
- Settlements can be Abandoned: Demolish the Admin Center, and the the population will leave as settlers and the settlement will be unclaimed
- Settlements can be Captured: Melee infantry have a Capture command, when targeting an enemy settlement they will try to destroy its admin center, and replace it with one of yours.
- New Maskling AI: Masklings will explore further, and will launch multiple types of raids. They may steal your items, wreck your structures, or even try to capture your settlements. They'll also devote more troops to guarding their own settlements.
- New Maskling units: ranged blowgunners, and swift ratriders.
- Unit and structure stats shown in structure information dialog.
- Structures can be attacked, destroyed, and repaired.
- Units can walk past each-other.
- The city building UI shows icons for structures that can be upgraded (this toggles on and off with the construction grid).
- Lumbaryards are quieter.
- Multiple units can be selected at a time.
- Tribes now each have a color, structures and units are colored accordingly.
New Mod Features
Mods can now change data files instead of replacing them. There are three new XML elements you can add to an xml file to your mod, these will be processed after mods are unpacked, but before data is loaded, changing the XML files themselves.
parent_type="race" parent_id_attribute="id" parent_id_value="race_human"
target_type="available_structure" target_id_attribute="id" target_id_value="human_tower_0"/>
This will remove an element from the data file. This example will remove <available_structure id="human_tower_0" /> from h_r_human.xml (which removes towers from the human race). parent_type, parent_id_attribute, and parent_id_value all identify the element containing the element to remove. target_type, target_id_attribute, and target_id_value, identify the element to remove. So, the above will:
Find an element in the XML file named "race", that has an attribute "id" that has the value "race_human", then remove all of its children that are named "available_structure", with an attribute "id" that has the value "available_structure".
<add_element parent_type="race" parent_id_attribute="id" parent_id_value="race_human"> <available_structure id="maskling_ratpen" /> </add_element>
This adds an element. Like remove_element above, parent_type, parent_id_attribute, and parent_id_value all determine what element will be targeted, if a target is found, the contents of the "add_element" element, will be added to the target. This example adds <available_structure id="maskling_ratpen" /> to the human race definition, which gives humans the ability to build maskling ratpens.
<set_attribute parent_type="race" parent_id_attribute="id" parent_id_value="race_maskling"
The last element changes an attribute value (or adds an attribute with a value). Like the other two, parent_type, parent_id_attribute, and parent_id_value determine the target. attribute is the name of the attribute to change, and value is the value the attribute should have. This example will change the "player_available" attribute to "true" for the maskling race, which makes the race available to pick when starting a new game.
TestMod, which is distributed with Bronze Age has an example of these new data modifiers.