# Action Editor

The Action Editor is the most intricate editor in Hera. The action data it allows you to edit is not difficult to understand, but there are many different types of actions which require detailed explanations.

Actions are instructions that tell the Ares engine what to do. For example, when a ship is destroyed, Ares looks at that ship's destroy action sequence. The sequence contains a command to "create explosion object," so Ares makes an explosion. The explosion object, in turn, has a creation action sequence that is executed every time an explosion is created. The sequence tells Ares to "play the explosion sound effect," so Ares players the explosion sound.

Just about anything that happens in Ares is controlled by actions.

#### Who and Where?

Actions are normally associated with objects; they are applied by objects on objects. The object executing the sequence is called the subject object, and the object on the receiving end of the sequence is called the direct object.

The simplest case is when two objects collide. Imagine a missile hitting a ship. Here, the missile is the subject object, and the ship is the direct object (although, if the ship happened to have a collision sequence which ships normally don't have, Ares would first consider "missile hits ship", where the missile the subject and the ship the direct object, and then the other case, "ship hits missile" where the ship was the subject and the missile was the direct object).

When the missile executes the action "alter damage by 100," it is applying this action on the direct object, the ship.

Actions always take place at the location of the object they are being applied to. So if the missile executes an action which creates an explosion, and the missile is applying that action to the ship the missile is hitting, then the explosion will be created at the center of the ship being hit.

### Sequences

A sequence is simply a list of actions. When a sequence is executed, all the actions in the sequence are executed in order.

You can choose any sequence used by any object or condition from the sequence list. Editing a pre-existing sequence means you will be changing the behavior of the object or condition.

Click the Add button to create a new sequence to edit. The currently selected sequence will be duplicated, so select a sequence similar to the one you wish to create.

### Sequence Actions

From the Sequence Actions list you can select, add, and remove actions from a sequence.

Click the add button to add an action. The currently selected action will be duplicated.

Click remove to delete the currently selected action.

### Qualifiers

The Qualifiers panel determine if and how an action will be executed. The panel applies to the currently selected action in the currently selected sequence.

#### Reflexive

Normally an action will apply to the direct object. Checking this box will make the action apply to the subject object. In the case above of the missile hitting a ship, if you wanted the explosion to appear at the center of the missile instead of the ship (and typically you would) you would make the action which created the explosion reflexive.

When an action is reflexive, consider the subject object to be the direct object. Anything in an action which applies to the direct object is actually applied to the subject object.

#### Inclusive Filter

The inclusive filter determines what sort of an object an action can be applied to. Typically, all actions in a sequence will have the same inclusive filter.

Usually, you don't have to set the inclusive filter. In the case of the missile hitting a ship, where the actions are being executed from the missile's collision sequence, you already know that the ship is something that the missile is capable of hitting -- you don't need to make sure that the ship has certain flags set.

When you do set the inclusive filter flags, if the object to which the action is being applied (be it the subject object or the direct object) that does not have a corresponding attribute flag set, then the action will not be executed. This is actually rarely used.

The last four flags of the inclusive filter have another function which is used more frequently: if use level key flags is set, then the exclusive filter is ignored and the inclusive filter ignores all flags but the last four, which are treated as level key flags.

For example, in the Ares factory scenarios, transports can only land on planets. Planets have all four level key flags set, A, B, C, and D. Transports have a two action arrive sequence, "land at" at "play sound." For these two actions, all the exclusive filter flags are set, which tells the Ares engine to ignore all inclusive and exclusive flags except the last four inclusive flags, which it treats as level key flags.

Therefore, if a transport is sent to, say, a bunker station, and it comes within landing distance, the Ares engine goes to execute the arrive action sequence. When it executes the "land at" action, it compares the last four inclusive filter flags to the bunker station flags (the bunker station being the direct object). Since the bunker station does not have the same flags set, the action is ignored.

This is how all special interaction is done in Ares.

#### Use Level Key Flags

When checked, the exclusive filter is ignored and the last four flags of the inclusive filter are treated as level key flags (see Inclusive Filter above).

#### Exclusive Filter

The exclusive filter can prevent actions from being performed on objects with certain attribute flags. However, this is never used in Ares' factory scenarios.

When all exclusive filter flags are set, the exclusive filter is ignored and the inclusive filter is treated as level key flags (see above). This has the same effect as checking the Use level key flags option.

Press the Set... button, then click "Check All" to quickly set all exclusive filter flags.

#### Delay

To delay an action, and all following actions in a sequence, from executing, enter a time value in 1/20ths of a second here. The execution of the action sequence will be postponed. Normally this value should be 0.

IMPORTANT: Use sparingly. This is a potentially expensive operation. It shouldn't be used for common objects. It can slow the game down or eat up memory.

#### Subject Override

To have the subject object be a fixed initial object, enter an initial object index here. Since initial object indexes are unique to their scenarios, this should only be used by action sequences invoked by scenario conditions, or by special objects designed for specific scenarios.

To use the default subject object, enter -1.

#### Direct Override

To have the direct object be a fixed initial object, enter an initial object index here. Since initial object indexes are unique to their scenarios, this should only be used by action sequences invoked by scenario conditions, or by special objects designed for specific scenarios.

To use the default direct object, enter -1.

#### Owner

To ensure that an action only takes place if the direct object and the subject object have the same or different owners, select a relationship in the Owner radio button group.

For example, in the Ares factory scenarios, transports can only land on planets that aren't already owned by them. For the example given above under "Inclusive Filter," you would also check "different" in the Owner group to make sure that a transport didn't try to land on a planet it already owned.

#### Action

The action panel allows you to select the action to perform and the parameters to use in the action's execution.

The descriptions of the different types of actions is broken in to two sections: "Standard Actions" and "Alter Actions." Alter actions have their own section because of there are several different types of alter actions.