The upgrade XML in GAE is also cleaned up and expanded a bit. All tags are now optional, thus allowing you to skip those which you do not use. The biggest change is the addition of the static-modifier and multiplier tags, which allow you to better define how unit's stats are modified as well as which stats can be modified.
Stats that are modified statically go up or down by a set amount for all effected units. This is basically the old upgrade system.
Multiplied stats are multiplied by a number instead of being increased or decreased by a set amount. Instead of increasing a wide variety of unit's attack by a certain, set amount which may or may not be accurate for their abilities, you can increase it by a percentage. For example, you could give them a static multiplier if 1.1 for attack, which means a 10% increase. This helps ensure that a wide variety of units get their stats raised proportionally instead of by fixed values. This is multiplied as it is, and not a percentage, thus a multiplier of 2 would double that stat, while a multiplier of 0.5 would half it.
As previously mentioned, there's more stats that can be modified as well. See GAE/Enhancements for a full list.
These can all be children of the <static-modifiers> or <multipliers> tags, and have a single "value" attribute each which defines how much to increase, decrease, or multiply by.
Point boosts work like max-ep and max-hp, but instead of increasing the maximum, they increase the current. This makes it possible for a unit without EP regeneration to gain one time use EP. Each of these use a single value attribute to define how much to boost by, which must be a positive number. The two possible tags are <ep-boost /> and <hp-boost />. These are both a child of <point-boosts>.
The enhancements tag is a new method of making upgrades for GAE. It allows individual units to receive their own boosts. It still allows the usage of the above tag types, and is meant to replace the depreciated original Glest and GAE methods. The effects tag will hold the <static-modifiers>, <multipliers>, and <point-boosts> tags, as well as adds support for additional <cost-modifiers> and <store-modifiers> (see below). This also allows you to specify the effects based on a tag, which are applied to units in the unit XML. There can be multiple enhancement tags inside the enhancements parent.
Cost and store modifiersEdit
These new tags can be used in enhancements as a child of the <effects> tag. They are done with <cost-modifiers> and <store-modifiers> and have <resource> children. These resource tags have two attributes, name, which is the name of the resource, and one of either addition (works like a static modifier) or multiplier (multiplies the resources). Cost modifiers change the production cost of the affected units, so you could make units cheaper with that upgrade. Store modifiers increase the amount of storage that unit has, such as allowing the main building to store more gold.
An advanced example of the current upgrade syntax. This increases the worker's harvest speed and makes them cheaper to produce, as well as makes all units with the tag "building" have increased storage for gold and stone.
<?xml version="1.0" standalone="no"?> <upgrade> <image path="image.bmp"/> <image-cancel path="image.bmp"/> <time value="300"/> <resource-requirements> <resource name="gold" amount="200"/> </resource-requirements> <enhancements> <enhancement> <affects> <unit name="worker" /> </affects> <effects> <multipliers> <harvest-speed value="1.2"/> </multipliers> <cost-modifiers> <resource name="food" addition="-1" /> <resource name="gold" multiplier="1.1" /> </cost-modifiers> </effects> </enhancement> <enhancement> <affects> <tag name="building" /> </affects> <effects> <store-modifiers> <resource name="gold" addition="600" /> <resource name="stone" addition="250" /> </store-modifiers> </effects> </enhancement> </enhancements> </upgrade>
This is using the old, depreciated upgrade syntax. In this example, the guard's EP is boosted by +20, his move speed increases by 20%, and gives a 20 EP point boost (after all, they lack regeneration for EP).
<?xml version="1.0" standalone="no"?> <upgrade> <image path="image.bmp"/> <image-cancel path="image.bmp"/> <time value="300"/> <resource-requirements> <resource name="gold" amount="200"/> </resource-requirements> <effects> <unit name="guard"/> </effects> <static-modifiers> <max-ep value="20"/> </static-modifiers> <multipliers> <move-speed value="1.2"/> </multipliers> <point-boosts> <ep-boost value="20"/> </point-boosts> </upgrade>