# Action Editor

## Alter Actions

Alter actions always apply to the direct object (which may also be the subject object if the action is reflexive). Many alter actions have three values: relative, minimum, and range.

Generally speaking, if the relative option is checked, than the alteration will change whatever attribute is being altered relative to its current value; if the relative option is not checked, then the change will be absolute.

The minimum value is the lowest quantity by which the attribute will be change. The range is a random additional value to add to the minimum value.

Not all alter actions use these values.

### Damage

Alters the health of the object.The object's health cannot be higher than its base object's initial health. If the health drops below zero, the object will die and execute its destroy action sequence.

You do not have to explicitly execute this action when a missile hits an object; damage is automatically handled by the damage attribute of an object.

This alter action is always relative.

> #### Damage Amount

> The amount of damage to the object. Positive values increase the object's health, negative values decrease its health.

### Velocity

Alters the velocity of the object. This alter action operates in several different ways, depending on whether or not the reflexive option is checked, whether or not the relative option is checked, and whether the minimum value is positive or negative.

If the action is reflexive, and the relative option is checked, then this adds the velocity specified to the direct object at the angle the direct object is facing. If the velocity specified is negative, it's the same as if the velocity is positive and being applied to the object at 180 degrees from the angle it is facing.The object's velocity may exceed its maximum velocity.

If the action is reflexive, and the relative option is not checked, then this sets the absolute velocity of the direct object at the angle it is facing. If the velocity specified is negative, it's the same as if the velocity is positive and being applied to the object at 180 degrees from the angle it is facing. The object's velocity may exceed its maximum velocity.

If the action is not reflexive, and the relative option is checked, then the velocity specified is added to the direct object's velocity at the angle the subject object is facing. If the specified velocity is negative, then the direct object will be slowed down, the same as if the direct object was holding down the stop key, except at it will slow at the velocity specified. The direct object's velocity cannot exceed its maximum velocity.

If the action is not reflexive, and the relative option is not checked, then the velocity specified is assigned to the direct object's velocity at the angle the subject object is facing. If the specified velocity is negative, then the direct object will pushed in the direction opposite toe the angle the subject object is facing. The direct object's velocity may exceed its maximum velocity.

> #### Relative

> Specifies whether or not the alter action is relative. See above for special meaning.

> #### Minimum

> The minimum velocity. May be negative. See above for special meaning.

> #### Range

> A random value added to the minimum. See above for special meaning.

### Thrust

Alters the current thrust of the object. Probably has no lasting effect on thinking objects -- their thrust will be determined by whether or not they are holding down thrust key.

> #### Relative

> Specifies whether to set an absolute thrust value or to add to the object's current thrust.

> #### Minimum

> Minimum thrust value.

> #### Range

> A random value added to the minimum.

### Max Velocity

Alters the top speed of an object.

> #### Minimum

> The new top speed. If negative, object will revert to its original top speed.

### Location

Alters the location of an object.

> #### Relative to Object

> If checked, then the new location will be relative to the direct object if there is one, or to the subject object if there isn't. Otherwise, the new location will be relative to the coordinates 0,0.

> #### Minimum

> The new location will be offset by a random value from 0 to minimum.

### Pulse

Not implemented.

> #### Weapon Object Number

> Not implemented.

### Beam

Not implemented.

> #### Weapon Object Number

> Not implemented.

### Special

Not implemented.

> #### Weapon Object Number

> Not implemented.

### Energy

Alters an object's energy. Always relative.

> #### Energy Value

> The amount of energy to give or take away from an object. Positive values add to the object's energy, negative values take away.

> ### Owner

> Changes ownership of an object.

> #### Use Object's Owner

> If checked, the owner value below is ignored. If the action is reflexive, and use object's owner is checked, this will change the subject object to have the same owner as the direct object. If the action is not reflexive and the use object's owner option is checked, this will change the direct object to have the same owner as the subject object.

> #### Owner Value

> If the use object's owner option is not checked, this is the player number of the new owner of the object (starting with 0).

### Unhide

Reveals initial objects that haven't been revealed yet. "Revealing" an initial object actually creates an object based on the parameters specified by an initial object, so the object's creation action sequence will be executed when it is revealed.

> #### First Initial Object Index

> The index of the first initial object to reveal. Index is 0-based.

> To reveal multiple initial objects with one alter action, the initial objects must have sequential indexes (like 4, 5, 6, and 7).

> #### Number of Objects to Reveal

> The number of initial objects to reveal. For example, to reveal just the first initial object, you'd enter "0" in the First initial object index field and "1" in the Number of objects to reveal field.

### Cloak

Cloaks an object, even if it doesn't have cloaking.

### Offline

Takes on object temporarily "offline." This only has significance for thinking objects. If the object wants to press a key (even if controlled by a human) then there's a chance that the key press won't be registered. For the human player, also flashes the controls.

The longer the offline time, the more likely it is that early on in the offline period the object will be seriously disabled.

> #### Minimum Offline Time

> An arbitrary value used in conjunction with the object's mass to determine how long the object should be offline for. For an object with a mass of 1.000, this will be interpreted as 20ths of a second.

> #### Range

> A random value to add to the minimum offline time value.

### Spin

For objects which can turn, altering their spin alters their turning velocity. However, this will have no real effect unless the object is also offline (see above).

> #### Minimum Spin

> The minimum turning velocity. The more massive an object is, the less effect this value will have.

> #### Range

> A random value added to the minimum spin value.

### Base Type

This is a powerful, dangerous, potentially expensive alteration. It changes an object's type. Use it sparingly.

Do not change an object's fundamental type (such as from a beam to a sprite object). Do not change a thinking object into a non-thinking object, or vise-versa.

You can create complicated behaviors using this alter action. For example, in the net scenario "Flagpod," when ships run out of health, instead of dying, their base type is changed to an identical looking object that is incapable of moving. When they are freed, their base type is changed back to the original type of ship.

> #### Retain Ammo

> Normally, when you alter an object's base type, it will regain all the default characteristics of its new base type. If you want the object to retain its ammo counts, check this option.

> #### New Object Index

> The id of the object's new base type.

### Condition True Yet

Changes whether or not a scenario's condition is evaluated, essentially turning conditions on and off.

You can create complicated scenarios using this alter action. For example, in the single player scenario "Shoplifter 2," there are's a set of conditions to determine whether or not to release humans from the player's ship. One condition determines the player's destroyer's distance from the Ares ship. If that distance is below a certain value, it enables another condition. The other condition determines if the player's destroyer is traveling below a certain speed. If it is, that enables yet another condition. The third condition determines whether or not a certain score is above 1 (the score is used to keep track of how many humans are on board the player's ship). If the third condition is true, a special human object is created, and the relevant score is decremented.

> #### Condition True

> If checked, the condition will not be evaluated. If not checked, the condition will be evaluated.

> #### First Condition Index

> The first condition index to check. Note that this action is scenario-specific, and so shouldn't be used by non-scenario specific objects. Usually it will be invoked by other scenario conditions, not by objects.

> #### Number of Conditions to Set

> How many conditions, starting with the first, to set. The conditions must be sequential.

### Occupation

Alters the occupation count of the object. When a destination object's occupation count for a particular player reaches its required level (actually determined by the age range field in the attributes panel) the object belongs to that player.

The occupation count is manually altered by this action. In the Ares factory scenarios, for examples, EVATs use this action to increase the bunker station's occupation count by 1.

This always uses the subject object's owner.

> #### Occupation Count

> The quantity to add to the the direct object's occupation count. Negative values subtract from the count.

### Absolute Cash

Gives a player an absolute quantity of money.

> #### Use Object's Owner

> If checked, the player number value below will be ignored, and the direct object's owner (the subject object's owner if the action is reflexive) will be used.

> #### Cash Amount

> The amount of money to give. Enter a negative value to take money away.

> #### Player Number

> Which player (starting with 0) to give the money to. Ignored if use object's owner is checked.

### Age

Alters an object age. Should probably only use on objects which have a positive initial age.

> #### Relative

> Check to add the value below to the object's age. Leave unchecked to set the object's age to the value specified.

> #### Minimum Age

> The minimum age to use. May be negative.

> #### Age Range

> A random value to add to the minimum age.

### Absolute Location

Changes the location of an object. Different from alter location because it specifies x and y coordinates, and can take into account the random orientation of the scenario.

> #### Relative

> If checked, the x and y values below will be added to the object's current location, and the scenario's orientation will not be taken into account. If unchecked, the x and y values will be treated as absolute coordinates, taking into account the scenario's random orientation.

> #### X

> The x coordinate.

> #### Y

> The y coordinate.

####

####

####

####

####

####

####