Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 74fbd0eb33bb08f719b79951bc4e329e > files > 99

xconq-7.5.0-1.20050612.5mdv2009.1.i586.rpm

<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.39
     from ./xcdesign.texi on 12 June 2005 -->

<TITLE>Designing Games with Xconq - Actions</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="xcdesign_1.html">first</A>, <A HREF="xcdesign_49.html">previous</A>, <A HREF="xcdesign_51.html">next</A>, <A HREF="xcdesign_61.html">last</A> section, <A HREF="xcdesign_toc.html">table of contents</A>.
<HR>


<H2><A NAME="SEC240" HREF="xcdesign_toc.html#SEC240">Actions</A></H2>

<P>
The parameters in this section define and regulate the various actions
that are available to units during a game.

</P>
<P>
Actions always start and complete (including all of their effects)
within the same turn, and a unit can only do one at a time.

</P>
<P>
All actions are potentially available to all units, but the parameters
can be set so as to deny any action type to any unit type.  See the
descriptions with each action type.

</P>
<P>
All action is limited by action points.  Each unit gets a certain number
at the beginning of each turn and expends them in the course of doing
things.  The usual expenditure is one point per action, but may be more,
as defined for each type of action.  A unit action must always consume
at least one action point.  Units can accumulate acp from turn to turn,
and they can also reduce acp below zero.

</P>

<UL>
<LI><A HREF="xcdesign_50.html#SEC241">Actions in General</A>
<LI><A HREF="xcdesign_50.html#SEC242">Action Ordering</A>
<LI><A HREF="xcdesign_50.html#SEC243">Movement Action</A>
<LI><A HREF="xcdesign_50.html#SEC244">Entry Action</A>
<LI><A HREF="xcdesign_50.html#SEC245">Develop Action</A>
<LI><A HREF="xcdesign_50.html#SEC246">Toolup Action</A>
<LI><A HREF="xcdesign_50.html#SEC247">Unit Creation Actions</A>
<LI><A HREF="xcdesign_50.html#SEC248">Unit Completion Action</A>
<LI><A HREF="xcdesign_50.html#SEC249">Repair Action</A>
<LI><A HREF="xcdesign_50.html#SEC250">Material Production Action</A>
<LI><A HREF="xcdesign_50.html#SEC251">Material Extraction Action</A>
<LI><A HREF="xcdesign_50.html#SEC252">Material Transfer Action</A>
<LI><A HREF="xcdesign_50.html#SEC253">Side Change Action</A>
<LI><A HREF="xcdesign_50.html#SEC254">Disband Action</A>
<LI><A HREF="xcdesign_50.html#SEC255">Part Transfer Action</A>
<LI><A HREF="xcdesign_50.html#SEC256">Type Change Action</A>
<LI><A HREF="xcdesign_50.html#SEC257">Combat Actions</A>
<LI><A HREF="xcdesign_50.html#SEC258">Capture Action</A>
<LI><A HREF="xcdesign_50.html#SEC259">Detonation Action</A>
<LI><A HREF="xcdesign_50.html#SEC260">Terrain Alteration Actions</A>
</UL>



<H3><A NAME="SEC241" HREF="xcdesign_toc.html#SEC241">Actions in General</A></H3>

<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-per-turn</CODE></B> <I>acp</I><P>
<A NAME="IDX624"></A>
This property is the basic allowance of action points that a unit gets
each turn.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-min</CODE></B> <I>acp</I><P>
<A NAME="IDX625"></A>
This property specifies how far into "action debt" a unit can go
during a turn before it is prevented entirely from acting.  A unit with
acp &#60; 1 at the beginning of a turn cannot do anything at all.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-max</CODE></B> <I>acp</I><P>
<A NAME="IDX626"></A>
This property is the maximum number of action points that a unit can
save up.  The value <CODE>-1</CODE> means that <CODE>acp-max</CODE> is equal to
<CODE>acp</CODE>.  Extra acp is silently lost.  Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>free-acp</CODE></B> <I>acp</I><P>
<A NAME="IDX627"></A>
This is the amount by which the acp for some action can exceed the 
difference between the unit's currently available acp and its minimum acp, 
and still allow that action.  By default, no free acp is awarded.

</P>
<P>
Note that a unit with an acp of 0 and an acp-min of 0 is completely
unintelligent, about like a cow patty.  Cow patties can be useful for
blocking paths, hiding behind, and suchlike, and have the advantage that
once they're in place, you don't have to manage them.  Other units will
have to pick them up and put them down, of course.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-act</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX628"></A>
This table is a minimum amount of <VAR>m</VAR> needed for <VAR>u</VAR> to be able
to act.  The material is not consumed.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-damage-effect</CODE></B> <I>interpolation-list</I><P>
<A NAME="IDX629"></A>
This property is the effect of a unit's hp on its acp.  The input value
is hp, while the output value is the acp to be added instead of
<CODE>acp-per-turn</CODE>.  This list does not extrapolate.  Defaults to
<CODE>()</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>night-adds-acp</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX630"></A>
Action points can be added to an unit of type <VAR>u</VAR> if it is night 
at the cell of type <VAR>t</VAR> where it is located. Subtraction can be 
done as a negative addition.<BR>
NOTE: Currently applies only to cell terrain subtypes.<BR>
NOTE: This can generally be expected to be only applied at the start of 
a turn.

</P>
<P>
<U>TableUT:</U> <B><CODE>night-multiplies-acp</CODE></B> <I>u t -&#62; .01n</I><P>
<A NAME="IDX631"></A>
Available action points can be multiplied against a factor <VAR>n</VAR> if 
an unit of type <VAR>u</VAR> is on a cell with terrain <VAR>t</VAR> when it is 
night. Defaults to <CODE>1.00</CODE>.<BR>
NOTE: Currently applies only to cell terrain subtypes.<BR>
NOTE: This can generally be expected to be only applied at the start of 
a turn.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-adds-acp</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX632"></A>
If an occupant of type <VAR>u2</VAR> is in a transport of type <VAR>u1</VAR>, 
then the occupant can confer <VAR>n</VAR> action points upon the transport.<BR>
NOTE: Presently, the available ACP of an unit is only updated at the 
beginning of turns. So, available ACP will not immediately change upon 
entry of the ACP-affecting occupant. This behvaior may change in the 
near future, so that the effect will be immediate.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-multiplies-acp</CODE></B> <I>u1 u2 -&#62; .01n</I><P>
<A NAME="IDX633"></A>
If an occupant of type <VAR>u2</VAR> is in a transport of type <VAR>u1</VAR>, 
then the occupant may have a multiplicative effect on the 
transport's action points by a factor <VAR>n</VAR>. Defaults to <CODE>1.00</CODE>.<BR>
NOTE: Presently, the available ACP of an unit is only updated at the 
beginning of turns. So, available ACP will not immediately change upon 
entry of the ACP-affecting occupant. This behvaior may change in the 
near future, so that the effect will be immediate.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-morale-effect</CODE></B> <I>interpolation-list</I><P>
<A NAME="IDX634"></A>
This property is the effect of morale on acp.  The input value is
morale, and the result value is multiplied with acp, after it has been
modified for night effect, but before modification for temperature.  The
result is divided by 100, so an effect &#60; 100 reduces acp, an effect of
100 has no effect, and an effect &#62; 100 increases acp.  Defaults to
<CODE>()</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-per-turn-min</CODE></B> <I>acp</I><P>
<A NAME="IDX635"></A>
This property sets a lower limit on the effect of occupants, damage, and
other modifiers on the acp to be added at the beginning of the turn.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-per-turn-max</CODE></B> <I>acp</I><P>
<A NAME="IDX636"></A>
This property sets the upper limit on the effect of occupants and other
modifiers to the acp added at the beginning of the turn.  Defaults to
<CODE>-1</CODE>, which indicates that there is no limit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-independent</CODE></B> <I>t/f</I><P>
<A NAME="IDX637"></A>
This property indicates that the unit's actions are to be limited by
materials, rather than by a fixed number of acp each turn.

</P>



<H3><A NAME="SEC242" HREF="xcdesign_toc.html#SEC242">Action Ordering</A></H3>

<P>
<U>GlobalVariable:</U> <B><CODE>use-side-priority</CODE></B> <I>t/f</I><P>
<A NAME="IDX638"></A>
This variable is <CODE>true</CODE> if the sides may only act one at a time;
otherwise, all sides and units may move simultaneously during a turn.
Defaults to <CODE>false</CODE>.  This variable is also set by the
<CODE>sequential</CODE> variant.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>action-priority</CODE></B> <I>n</I><P>
<A NAME="IDX639"></A>
This property is the order in which units of this type will act.  Higher
numbers act earlier.  If the difference between the priority of one type
and another is greater than 100, then the earlier-acting units must
finish acting before the later-acting units, otherwise a player can
rearrange the actual acting order as desired.

</P>



<H3><A NAME="SEC243" HREF="xcdesign_toc.html#SEC243">Movement Action</A></H3>

<P>
Movement is the most common sort of action.
This section covers movement over open terrain;
the next section discusses interaction with transports.

</P>
<P>
The general theory of movement is that a unit not in a transport
crosses its current cell terrain to the edge of the cell,
crosses any border terrain, and then moves into the destination cell,
OR it moves onto connection terrain,
travels along connection terrain to the new cell, and maybe
moves off the connection.
If the unit starts in a transport, then the transport may ferry
the unit over some of the intervening terrain,
possibly as far as the unit's destination.

</P>
<P>
A unit's basic movement rate is defined by its <STRONG>speed</STRONG>,
which is a ratio of the the unit's acp.
A speed of 100% means that the unit can potentially
enter as many cells as it has acp,
while a speed of 20% means that the unit uses at least
5 acp to enter a cell.

</P>
<P>
Movement can only succeed if several conditions are met:
the unit must be able to cross
the border terrain, the destination must be inside the world (but see below),
it must be able to exist on the terrain of the destination.

</P>
<P>
<U>ActionType:</U> <B><CODE>move</CODE></B> <I>x y z</I><P>
<A NAME="IDX640"></A>
This is the action that a unit performs to go from its current
location to the cell at <VAR>x</VAR>,<VAR>y</VAR> at altitude <VAR>z</VAR>.
The destination must be within the <CODE>move-range</CODE> of the unit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-move</CODE></B> <I>acp</I><P>
<A NAME="IDX641"></A>
This property is the number of acp a unit uses to do one move action.
Defaults to <CODE>1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>speed</CODE></B> <I>n</I><P>
<A NAME="IDX642"></A>
This property is the basic multiplier relating acp to the number
of cells that may be entered during a turn.
Defaults to <CODE>100</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>speed-damage-effect</CODE></B> <I>interpolation-list</I><P>
<A NAME="IDX643"></A>
This property is the unit's speed if it is damaged.
The input value is the unit's hp, while the result value is the
unit speed to use instead of <CODE>speed</CODE>.
Defaults to <CODE>()</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-adds-speed</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX644"></A>
Each value in this table is the amount of speed 
that an occupant <VAR>u2</VAR> adds to transport <VAR>u1</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-multiplies-speed</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX645"></A>
Each value in this table is the factor an occupant 
<VAR>u2</VAR> multiplies the accumulated speed (including 
additive effects) of a transport <VAR>u1</VAR> by.
Defaults to <CODE>100%</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>speed-wind-effect</CODE></B> <I>list</I><P>
<A NAME="IDX646"></A>
This property is a list that describes the effect of wind on the unit's
speed.  The effect is calculated using a combination of the cells being
left and entered.
The format of the list is

<PRE>
<CODE>((<VAR>angle-list</VAR> ) ...)</CODE>
</PRE>

<P>
where <I>angle-list</I> is a single number, list of number, or the symbol
<CODE>all</CODE>, and the <VAR>value</VAR> is either a number, or a list of the
form

<PRE>
<CODE>((<VAR>force</VAR> <VAR>number</VAR>) (<VAR>force</VAR> <VAR>number</VAR>) ...)</CODE>
</PRE>

<P>
For hex areas, the angles are 0 for downwind (same direction), 1, 2, and
3 for directly upwind (opposite direction).  The <I>force</I> is the wind
force in the cell, and <I>number</I> is the multiplier for the speed, with
<CODE>100</CODE> having no effect, numbers less than <CODE>100</CODE> decreasing the
unit's speed, and numbers greater than <CODE>100</CODE> increasing it.
Defaults to <CODE>()</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>speed-min</CODE></B> <I>mp</I><P>
<A NAME="IDX647"></A>
This property is the worst-case speed of a unit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>speed-max</CODE></B> <I>mp</I><P>
<A NAME="IDX648"></A>
This property is the upper bound on a unit's movement in one turn. (?)

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>move-range</CODE></B> <I>n</I><P>
<A NAME="IDX649"></A>
This property is the maximum distance allowed to the destination cell.
Defaults to <CODE>1</CODE>.

</P>
<P>
The product of a unit's acp and its speed is its available <STRONG>movement points</STRONG>.
Any move between cells will cost at least one movement point.
Some mp costs may be negative, but the total mp for a move will always
be at least 1.

</P>
<P>
<U>TableUT:</U> <B><CODE>mp-to-leave-terrain</CODE></B> <I>u t -&#62; mp</I><P>
<A NAME="IDX650"></A>
This table is the mp cost to leave a cell of type <VAR>t</VAR>.
If <VAR>t</VAR> is a border type, this cost is never used.
If <VAR>t</VAR> is a connection type, this cost is the cost of leaving the
connection terrain for the open terrain of the cell.
If <VAR>t</VAR> is a coating type, then this value adds to the cost
of leaving the cell.

</P>
<P>
<U>TableUT:</U> <B><CODE>mp-to-enter-terrain</CODE></B> <I>u t -&#62; mp</I><P>
<A NAME="IDX651"></A>
This table is the mp cost to enter a cell of type <VAR>t</VAR>.
If <VAR>t</VAR> is a border type, this cost is the
cost of crossing the border.
If <VAR>t</VAR> is a connection type, this cost is the cost of entering the
connection terrain from the open terrain of the cell.
If <VAR>t</VAR> is a coating type, then this value adds to the cost
of entering the cell.
Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>mp-to-traverse</CODE></B> <I>u t -&#62; mp</I><P>
<A NAME="IDX652"></A>
This table gives the cost to travel along a connection or border of the
given type.  (note that the other costs are irrelevant if unit starts
and ends its movement on the connection).

</P>
<P>
A special type of move known as a <STRONG>border slide</STRONG> can occur when the
endpoints of a border touch on the start and destination cells.  Sliding
works like normal movement that happens to end up on a nonadjacent cell.
Same rules for permissibility apply.  If the value is negative, then
border sliding is not possible.

</P>
<P>
Defaults to <CODE>-1</CODE>.

</P>
<P>
If both enter/traverse/leave and enter/leave movement is possible,
then <I>Xconq</I> will automatically choose the cheapest alternative.

</P>
<P>
Each unit type has a range of altitudes within which it normally operates.

</P>
<P>
<U>TableUT:</U> <B><CODE>altitude-min</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX653"></A>
This table is the minimum altitude possible for each type of unit
on each type of terrain.

</P>
<P>
<U>TableUT:</U> <B><CODE>altitude-max</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX654"></A>
This table is the maximum altitude possible for each type of unit
on each type of terrain.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>mp-to-leave-world</CODE></B> <I>mp</I><P>
<A NAME="IDX655"></A>
This property is an additional move cost to leave the world entirely.
To leave, the unit must be within its <CODE>move-range</CODE> of an edge, and
have sufficient mp to move into the terrain in the edge cell designated
as the destination of the move.  If the value is <CODE>-1</CODE>, then the
unit may never leave.  Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>free-mp</CODE></B> <I>mp</I><P>
<A NAME="IDX656"></A>
This property is the amount by which the move points can "go into the
red" and still allow one more move.

</P>
<P>
ZOC is exerted only over units out in the open, has no effect on
occupants, unless they leave their transport.  Occupants can themselves
exert a ZOC, if <CODE>occupant-can-fight</CODE> is true.  ZOC applies to all
units on a hostile side.

</P>
<P>
<U>TableUU:</U> <B><CODE>zoc-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX657"></A>
This table is the maximum distance at which type <VAR>u1</VAR> exerts a ZOC
over type <VAR>u2</VAR>.  A value of <CODE>0</CODE> means that the unit controls
only its own cell, and a value of <CODE>-1</CODE> means that the unit does not
exert a ZOC at all.  Defaults to <CODE>0</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>zoc-into-terrain</CODE></B> <I>u t -&#62; t/f</I><P>
<A NAME="IDX658"></A>
This table is <CODE>true</CODE> if the unit exerts its ZOC into terrain
<VAR>t</VAR>.  Defaults to <CODE>true</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>zoc-from-terrain-effect</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX659"></A>
Defaults to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>mp-to-enter-zoc</CODE></B> <I>u1 u2 -&#62; mp</I><P>
<A NAME="IDX660"></A>
This table specifies extra movement points needed to enter the ZOC.
<CODE>-1</CODE> prevents entry entirely.  Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>mp-to-leave-zoc</CODE></B> <I>u1 u2 -&#62; mp</I><P>
<A NAME="IDX661"></A>
This table specifies extra movement points needed to leave the ZOC.
<CODE>-1</CODE> prevents departure entirely.

</P>
<P>
<U>TableUU:</U> <B><CODE>mp-to-traverse-zoc</CODE></B> <I>u1 u2 -&#62; mp</I><P>
<A NAME="IDX662"></A>
This table specifies extra movement points needed to move within the
ZOC.  <CODE>-1</CODE> prevents traversal entirely.

</P>
<P>
If multiple units exert a ZOC into the same cell, then the mp cost is
the maximum of the different ZOC costs.

</P>
<P>
<U>TableUU:</U> <B><CODE>mp-to-enter-own</CODE></B> <I>u1 u2 -&#62; mp</I><P>
<A NAME="IDX663"></A>
This table specifies extra movement points needed to enter a unit's own
cell, irrespective of ZOC.  <CODE>-1</CODE> prevents entry entirely.  Defaults
to <CODE>-1</CODE>.

</P>
<P>
Units may use up some of their materials when they move.  Consumption
happens after the move action, and only for successful moves.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-move</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX664"></A>
This table is the amount of each material that a unit of type <VAR>u</VAR>
must have in order to be able to move.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-move</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX665"></A>
This table is the amount of each material used by a unit to do one move
action.  The amount taken is independent of terrain.  If the unit has
less than the required amount of any of these materials, it is
immobilized until it gets more (this is tested before each move action;
note that this does not affect any other action, including entering and
leaving transports).

</P>
<P>
<U>TableUT:</U> <B><CODE>control-range</CODE></B> <I>u t -&#62; dist</I><P>
<A NAME="IDX666"></A>
This table is the distance out to which a unit's entry into a cell
changes control of the surrounding terrain.  A distance of 0 means that
the unit only changes control for its own cell, while a distance of -1
means that the unit does not affect control.  Defaults to <CODE>-1</CODE>.

</P>
<P>
At present, the maximum value for this is 0 (in other words, a unit
cannot change control in adjacent cells).

</P>



<H3><A NAME="SEC244" HREF="xcdesign_toc.html#SEC244">Entry Action</A></H3>

<P>
Units can be inside other units, and have units inside them, in a
tree-like fashion.  There is no limit on the depth of the tree, but most
occupant-transport relationships have other limits.

</P>
<P>
<U>ActionType:</U> <B><CODE>enter</CODE></B> <I>unit</I><P>
<A NAME="IDX667"></A>
This is the action to enter the given <VAR>unit</VAR>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-enter-unit</CODE></B> <I>acp</I><P>
<A NAME="IDX668"></A>
This property is the number of acp a unit uses to do one entry action.
Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-enter-independent</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX669"></A>
This table is true if a unit <VAR>u1</VAR> can enter an independent unit
<VAR>u2</VAR>.  Defaults to <CODE>false</CODE>.<BR>
NOTE: The ability to enter an independent unit implies a form of trust 
between the independent unit, <VAR>u2</VAR>, and its non-independent occupant, 
<VAR>u1</VAR>. So, for example, <VAR>u1</VAR> can take supplies from <VAR>u2</VAR>.

</P>
<P>
Entering and leaving incur mp costs as does movment, but units with a
speed of 0 may enter and leave transports.

</P>
<P>
<U>TableUU:</U> <B><CODE>mp-to-enter-unit</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX670"></A>
This table is the extra movement points required for <VAR>u1</VAR> to enter
the transport <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>mp-to-leave-unit</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX671"></A>
Similar to entry cost.

</P>
<P>
<U>TableUU:</U> <B><CODE>ferry-on-entry</CODE></B> <I>u1 u2 -&#62; ferry-type</I><P>
<A NAME="IDX672"></A>
<U>TableUU:</U> <B><CODE>ferry-on-departure</CODE></B> <I>u1 u2 -&#62; ferry-type</I><P>
<A NAME="IDX673"></A>
This table specifies how much intervening terrain the unit <VAR>u2</VAR>
entering or leaving transport <VAR>u1</VAR> will have to cross on its own
(and thus incur the terrain's mp costs and limitations).  Defaults to
<CODE>over-border</CODE>.

</P>
<P>
<U>GlobalConstant:</U> <B><CODE>over-nothing</CODE></B><P>
<A NAME="IDX674"></A>
This constant indicates no ferrying, occupant must pay all costs to go
to destination cell.

</P>
<P>
<U>GlobalConstant:</U> <B><CODE>over-own</CODE></B><P>
<A NAME="IDX675"></A>
This constant indicates that the transport ferries over terrain of its
own cell.

</P>
<P>
<U>GlobalConstant:</U> <B><CODE>over-border</CODE></B><P>
<A NAME="IDX676"></A>
This constant indicates that the transport ferries over any border
terrain also.

</P>
<P>
<U>GlobalConstant:</U> <B><CODE>over-all</CODE></B><P>
<A NAME="IDX677"></A>
This constant indicates that the transport ferries to destination cell,
effectively putting occupant on middle of cell, on connection terrain if
necessary.

</P>



<H3><A NAME="SEC245" HREF="xcdesign_toc.html#SEC245">Develop Action</A></H3>

<P>
Development is an action performed by a unit with the sole effect of
increasing its side's tech level.  Development cannot be performed by
independent units.

</P>
<P>
<U>ActionType:</U> <B><CODE>develop</CODE></B> <I>u</I><P>
<A NAME="IDX678"></A>
This is the action of developing the unit type <VAR>u</VAR>.  If the action
is valid, then the tech level of the side will increase.  Unit types
with any tech crossover will also have their tech levels adjusted.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-develop</CODE></B> <I>acp</I><P>
<A NAME="IDX679"></A>
This property is the number of action points used up by one develop
action.  Defaults to <CODE>0</CODE>, which disallows development.

</P>
<P>
<U>TableUU:</U> <B><CODE>tech-per-develop</CODE></B> <I>u1 u2 -&#62; .01n</I><P>
<A NAME="IDX680"></A>
This table is the gain in tech level resulting from a develop action,
expressed as 1/100 of a level.  This value is stochastic.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-per-turn-max</CODE></B> <I>tl</I><P>
<A NAME="IDX681"></A>
This property is a ceiling on the total gain of tech level possible in
one turn for each side and this unit type.  Defaults to <CODE>9999</CODE>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-develop</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX682"></A>
This table is the amount of each material a unit must have in order to
do any development.

</P>



<H3><A NAME="SEC246" HREF="xcdesign_toc.html#SEC246">Toolup Action</A></H3>

<P>
There are several stages in the construction of a unit: tooling up,
creation, and completion.  Tooling up is where the building unit
prepares to build, creation is the step where the new unit comes into
existence, and completion is where the new unit is brought up to being
operational.

</P>
<P>
For the player, this is mostly automatic; if tooling must be done first,
a user command to build will generate the appropriate actions.

</P>
<P>
Once the technology has been achieved, a unit that intends to construct
other units may need to tool up.  This is expressed as <STRONG>tool points</STRONG>
or <STRONG>tp</STRONG>.  Tool points start at zero, can be increased by tooling
actions, and may gradually decline (representing wear and tear on the
equipment).

</P>
<P>
<U>ActionType:</U> <B><CODE>toolup</CODE></B> <I>u</I><P>
<A NAME="IDX683"></A>
This is the action of tooling up to build a unit of type <CODE>u</CODE>.  The
result is an increase in the tp for the acting unit.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-toolup-for</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX684"></A>
If true, then an unit of type <VAR>u1</VAR> can toolup to construct an unit 
of type <VAR>u2</VAR>.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-toolup</CODE></B> <I>acp</I><P>
<A NAME="IDX685"></A>
This property gives the number of acp needed to do a toolup action.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-toolup</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX686"></A>
The amount of a material type <VAR>m</VAR> required to be on hand, but not 
necessarily consumed, by an unit of type <VAR>u1</VAR> tooling up for any 
construction task.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-tooledup</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX687"></A>
The amount of a material type <VAR>m</VAR> that is consumed by one toolup action 
by the unit doing the tooling up, but based on, <VAR>u2</VAR>, 
the type of unit being tooled up for.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-tooledup</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX688"></A>
The amount of a material type <VAR>m</VAR> that is consumed by one toolup action 
by the unit doing the tooling up, based on its type, <VAR>u1</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-tp</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX689"></A>
The amount of a material type <VAR>m</VAR> that is consumed by <CODE>1</CODE> TP worth 
of tooling by the unit doing the tooling up, based on its type, <VAR>u1</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>tp-per-toolup</CODE></B> <I>u1 u2 -&#62; tp</I><P>
<A NAME="IDX690"></A>
This table is the number of tp gained by one tooling action.

</P>
<P>
<U>TableUU:</U> <B><CODE>tp-to-build</CODE></B> <I>u1 u2 -&#62; tp</I><P>
<A NAME="IDX691"></A>
This table is the number of toolup points needed before a unit of type
<VAR>u1</VAR> can create or build a unit of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>tp-max</CODE></B> <I>u1 u2 -&#62; tp</I><P>
<A NAME="IDX692"></A>
This table is the maximum possible tooling.

</P>
<P>
<U>TableUU:</U> <B><CODE>tp-attrition</CODE></B> <I>u1 u2 -&#62; tp</I><P>
<A NAME="IDX693"></A>
This table is the number of .01 tool points automatically lost at the
end of each turn.

</P>
<P>
<U>TableUU:</U> <B><CODE>tp-crossover</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX694"></A>
This table is the number of tool points for <VAR>u2</VAR> that is guaranteed
to exist, expressed as a percentage of the tool points for <VAR>u1</VAR>.

</P>
<P>
For instance, if <CODE>tp-crossover</CODE> is 80, and a unit's tool points for
<VAR>u1</VAR> is 10 out of a max of 20, and the max for <VAR>u2</VAR> is also 20,
then the unit will have tool points for <VAR>u2</VAR> at least 8.

</P>



<H3><A NAME="SEC247" HREF="xcdesign_toc.html#SEC247">Unit Creation Actions</A></H3>

<P>
When a constructing unit is tooled up, the create action creates a unit
immediately and puts it in its designated location, whether inside the
unit doing the building or somewhere nearby.  This new unit, however, is
incomplete, representing the keel of the ship or the surveyor's
lines for an airstrip.  Incomplete units are thus basically skeletons,
with some unit characteristics, but unable to move or act in any way.
They also cannot have any occupants, unless the occupants are of a type
that can complete the unit.  Those occupants do not derive any protection
or other advantages from occupying the incomplete unit, and they are not
affected by the <CODE>occupant-can-build</CODE> limitation.

</P>
<P>
<U>ActionType:</U> <B><CODE>create-in</CODE></B> <I>u unit</I><P>
<A NAME="IDX695"></A>
This action creates a new unit of type <VAR>u</VAR> occupying the given unit
<VAR>unit</VAR>.  The unit <VAR>unit</VAR> must have room for the new unit.

</P>
<P>
<U>ActionType:</U> <B><CODE>create-at</CODE></B> <I>u x y z</I><P>
<A NAME="IDX696"></A>
This action creates a new unit of type <VAR>u</VAR> in the open at
<VAR>x</VAR>,<VAR>y</VAR>,<VAR>z</VAR>.  The cell must have room for this new unit.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-create</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX697"></A>
If an unit of type <VAR>u1</VAR> can create an unit of type <VAR>u2</VAR>, 
then this it true.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>create-as-build</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX698"></A>
If you intend for creation to cost and construct at the same rate as 
building, then set this to true, and look at the <CODE>build</CODE> action 
documentation.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-create</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX699"></A>
This table is the acp used by a unit of type <VAR>u1</VAR> to create a a unit
of type <VAR>u2</VAR>. 

</P>
<P>
<U>TableUU:</U> <B><CODE>create-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX700"></A>
This table is the maximum distance at which a unit of type <VAR>u1</VAR> can
create a unit of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>cp-on-creation</CODE></B> <I>u1 u2 -&#62; cp</I><P>
<A NAME="IDX701"></A>
This table is the completeness of a unit of type <VAR>u2</VAR> when created
by a unit of type <VAR>u1</VAR>.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-create</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX702"></A>
This table is the total amount of a material type <VAR>m</VAR> required by 
a unit of type <VAR>u1</VAR> to create anything. This material is not 
consumed.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-on-creation</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX703"></A>
This table is the amount of a material type <VAR>m</VAR> consumed to create a
unit of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-create</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX704"></A>
This is the amount of a material type <VAR>m</VAR> consumed by an unit of type 
<VAR>u1</VAR> while creating any other unit.
This may be negative, in which case, the creator gains <VAR>m</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>takes-from-treasury</CODE></B> <I>u m -&#62; t/f</I><P>
<A NAME="IDX705"></A>
This table is <CODE>true</CODE> if a constructing unit of type <VAR>u</VAR> can take
material <VAR>m</VAR> if its own supply is insufficient to meet the
<CODE>consumption-on-creation</CODE> or <CODE>consumption-per-build</CODE> (see
below) requirements.  It should be noted that, unless the storage 
capacity for the material is <CODE>0</CODE>, then the amount taken from the 
treasury is only sufficient to close the deficit between the amount of 
<VAR>m</VAR> an unit of type <VAR>u</VAR> has on hand and the amount of <VAR>m</VAR> that 
<VAR>u</VAR> can store.  If <VAR>u</VAR> has a <CODE>0</CODE> storage capacity for <VAR>m</VAR>, 
then an unlimited amount of <VAR>m</VAR> can be used from the treasury.

</P>
<P>
<U>TableUM:</U> <B><CODE>treasury-gain-per-create</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX706"></A>
This is the amount of <VAR>m</VAR> gained when <VAR>u</VAR> is created.  This material 
is added to the treasury of the side that created <VAR>u</VAR>.  This is not yet
implemented.

</P>
<P>
<U>TableUM:</U> <B><CODE>treasury-loss-per-create</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX707"></A>
This is the amount of <VAR>m</VAR> lost when <VAR>u</VAR> is created.  This material 
is taken from the treasury of the side that created <VAR>u</VAR>.  This is not yet
implemented.

</P>
<P>
<U>TableUM:</U> <B><CODE>supply-on-creation</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX708"></A>
This table is the amount of supply of each material type <VAR>m</VAR> to give
a newly created unit of type <VAR>u</VAR>.  This supply is newly generated,
does not come from anywhere else.  (Note that players could cheat by
creating units, taking their supply, and never completing them.)

</P>
<P>
<U>TableUU:</U> <B><CODE>morale-on-creation</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX709"></A>
This table is the ratio of morale of a unit of type <VAR>u2</VAR> to the
morale of its creator <VAR>u1</VAR>, with 100 meaning that the new unit has
the same morale as its creator.  Defaults to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>opinions-on-creation</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX710"></A>
This table is the ratio of the opinions of a unit of type <VAR>u2</VAR> to
the opinions of its creator <VAR>u1</VAR>, with 100 meaning that the new unit
has the same opinions as its creator.  Defaults to <CODE>100</CODE>.

</P>



<H3><A NAME="SEC248" HREF="xcdesign_toc.html#SEC248">Unit Completion Action</A></H3>

<P>
Once an incomplete unit has been created, other units can help to
complete it.

</P>
<P>
<U>ActionType:</U> <B><CODE>build</CODE></B> <I>unit</I><P>
<A NAME="IDX711"></A>
This action adds to the completeness of <VAR>unit</VAR>.  If the unit becomes
complete, it will be given its initial supply, acp, name, etc.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-build</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX712"></A>
If an unit of type <VAR>u1</VAR> can build upon an unit of type <VAR>u2</VAR>, 
then this it true.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-build</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX713"></A>
This table is the acp used up by one build action by a unit of type
<VAR>u1</VAR> when buiding a unit of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>cp-per-build</CODE></B> <I>u1 u2 -&#62; cp</I><P>
<A NAME="IDX714"></A>
This table is the amount of completeness of a unit of type <VAR>u2</VAR>
added by each completion action performed by a unit of type <VAR>u1</VAR>.
If <CODE>0</CODE>, then <VAR>u1</VAR> cannot contribute to completing <VAR>u2</VAR>.
Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-build</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX715"></A>
This table is the amount of any material type <VAR>m</VAR> that <VAR>u1</VAR>
must have in order to build anything at all.  This material is not 
consumed.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-build</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX716"></A>
This is the amount of material type <VAR>m</VAR> that is consumed by the 
building unit type <VAR>u1</VAR> while building any unit type.
This may be negative, in which case, <VAR>m</VAR> will be gained by the builder.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-built</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX717"></A>
This table is the amount of each material type <VAR>m</VAR> consumed by
the builder performing a single build action on a unit of type <VAR>u2</VAR>.  
This may be negative, in which case, <VAR>m</VAR> will be gained by the builder.
This is compatible with the <CODE>unit-consumption-per-cp</CODE> table.

</P>
<P>
<U>TableUM:</U> <B><CODE>unit-consumption-per-cp</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX718"></A>
This table is the amount of each material type <VAR>m</VAR> consumed by
the builder adding 1 CP to a unit of type <VAR>u2</VAR>.  
This may be negative, in which case, <VAR>m</VAR> will be gained by the builder.
This is compatible with the <CODE>consumption-per-built</CODE> table.

</P>
<P>
<U>TableUU:</U> <B><CODE>build-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX719"></A>
This table is the maximum distance allowed between a unit of type
<VAR>u1</VAR> and the incomplete unit of type <VAR>u2</VAR> it is working on.
Defaults to <CODE>0</CODE>, which requires the two units to be in the same
cell.

</P>
<P>
At a given point, incomplete units can make progress towards completion
on their own.  This is automatic because incomplete units are unable to
act, and occurs at a constant specified rate.  Automatic completion
always occurs, even if other units are doing build actions at the same
time.  The incomplete unit must have any necessary supplies.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>cp-to-self-build</CODE></B> <I>cp</I><P>
<A NAME="IDX720"></A>
This property is the minimum completeness of the unit necessary before
it can work on itself.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>cp-per-self-build</CODE></B> <I>cp</I><P>
<A NAME="IDX721"></A>
This property is the completeness added each turn when a unit works on
itself.

</P>
<P>
<U>TableUM:</U> <B><CODE>supply-on-completion</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX722"></A>
This table is the minimum amount of supply of each material type <VAR>m</VAR>
guaranteed to a newly completed unit of type <VAR>u</VAR>.  If not already
available to the unit, it will be newly generated.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>cp-attrition</CODE></B> <I>.01n%</I><P>
<A NAME="IDX723"></A>
This property is the chance that an incomplete unit will lose cp.  If
the unit loses all of its cp, it vanishes.

</P>
<P>
Cancelled build tasks can result in the disbanding of the incomplete
unit and recovery of the cp and materials in the unfinished unit.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>disband-unfinished-units</CODE></B> <I>t/f</I><P>
<A NAME="IDX724"></A>
This variable is true if incomplete units not being worked on are
automatically disbanded.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>salvage-unfinished-cps</CODE></B> <I>t/f</I><P>
<A NAME="IDX725"></A>
This is true if the disbanded incomplete unit returns its completeness
points.

</P>
<P>
<U>UnitProperty:</U> <B><CODE>cpstash</CODE></B> <I>n</I><P>
<A NAME="IDX726"></A>
This property records unused completeness points.

</P>
<P>
<U>TableUU:</U> <B><CODE>builder-can-reuse-cp</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX727"></A>
This is true if a builder of type <VAR>u1</VAR> can use its cpstash to add to
the completeness of a unit of type <VAR>u2</VAR>.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>salvage-unfinished-materials</CODE></B> <I>t/f</I><P>
<A NAME="IDX728"></A>
This is true if the disbanded incomplete unit returns the materials used
while building it.

</P>
<P>
A creator which creates complete units or a builder which completes an 
incomplete unit may be absorbed by the completed unit. This kind of 
behavior is often useful for colonizer games, when one does not wish for 
the colonizer to continue to be around after it has colonized.

</P>
<P>
<U>TableUU:</U> <B><CODE>constructor-absorbed-by</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX729"></A>
If true, then <CODE>hp-per-garrison</CODE> HP are taken out of the constructing 
unit when it completes an unit.  Note that this is not a guarantee that 
the constructor will vanish; its HP must go to 0 for that to happen.
Defaults to <CODE>false</CODE>.

</P>
<P>
An unit may automatically be given occupants upon completion.

</P>
<P>
<U>TableUU:</U> <B><CODE>complete-occs-on-completion</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX730"></A>
The number of complete occupants of type <VAR>u2</VAR> placed inside an 
unit of type <VAR>u1</VAR> upon its completion.

</P>
<P>
<U>TableUU:</U> <B><CODE>incomplete-occs-on-completion</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX731"></A>
The number of incomplete occupants of type <VAR>u2</VAR> placed inside an 
unit of type <VAR>u1</VAR> upon its completion.

</P>



<H3><A NAME="SEC249" HREF="xcdesign_toc.html#SEC249">Repair Action</A></H3>

<P>
Units can restore their own and each other's hp by doing repairs.
Repair requires a repair action.

</P>
<P>
<U>ActionType:</U> <B><CODE>repair</CODE></B> <I>unit</I><P>
<A NAME="IDX732"></A>
This is the action of repairing the given <VAR>unit</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-repair</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX733"></A>
True, if an unit of type <VAR>u1</VAR> can repair an unit of type <VAR>u2</VAR>.
Defaults to <CODE>false</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-repair</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX734"></A>
The number of action points used up by a unit of type <VAR>u1</VAR>
doing one repair action on a unit of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>hp-per-repair</CODE></B> <I>u1 u2 -&#62; .01hp</I><P>
<A NAME="IDX735"></A>
This table is the hundredths of a hp that a single repair action
by a unit of type <VAR>u1</VAR> restores to a unit of type <VAR>u2</VAR>.
The fraction of this over 100 is added to hp directly,
while the &#60; 100 fraction is added probabilistically.
(For example, a value of <CODE>160</CODE>, or <CODE>1.60</CODE>, means that 1 hp 
will be added for each action, and there is a 60% chance for an additional 
1 hp to be added as well.)

</P>
<P>
Materials may be needed and/or consumed during repair.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-repair</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX736"></A>
This table is the amount of each material type <VAR>m</VAR> needed
for one repair action.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-repair</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX737"></A>
This table is the amount of each material type <VAR>m</VAR> 
used up by a repair action performed by the repairer unit of type <VAR>u1</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-repaired</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX738"></A>
This table is the amount of each material type <VAR>m</VAR> 
used up by a repair action performed on the repairee unit of type <VAR>u2</VAR>.

</P>
<P>
The following are not really part of the repair action definition, since
they occur automatically, but they share many of the tables above.

</P>
<P>
<U>TableUU:</U> <B><CODE>auto-repair</CODE></B> <I>u1 u2 -&#62; .01hp</I><P>
<A NAME="IDX739"></A>
This table is the amount of repair (in 1/100 hp) that <VAR>u1</VAR> will do
on any unit of type <VAR>u2</VAR> within range (<CODE>auto-repair-range</CODE>).
As with <CODE>hp-per-repair</CODE>,
the &#60; 1.00 part is average, and &#62; 1.00 is guaranteed.
Material requirements and usage are as for repair actions.
Defaults to <CODE>0</CODE>, which disallows auto-repair.

</P>
<P>
<U>TableUU:</U> <B><CODE>auto-repair-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX740"></A>
This table is the distance out to which <VAR>u1</VAR> will auto-repair
any damaged <VAR>u2</VAR>.  A value of <CODE>0</CODE> requires the two units
to be in the same cell, while a value of <CODE>-1</CODE> means that
<VAR>u2</VAR> must be either an occupant or transport of <VAR>u1</VAR>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>hp-recovery</CODE></B> <I>.01hp</I><P>
<A NAME="IDX741"></A>
This property is the number of 1/100 hp recovered per turn.  Recovery
happens automatically at the end of each turn.  The amount <I>n</I> / 100
is recovered automatically each turn, while <I>n</I> mod 100 is the percent
chance of recovering an additional 1 hit point.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>hp-to-recover</CODE></B> <I>hp</I><P>
<A NAME="IDX742"></A>
This property is the minimum number of hp that the unit must have for hp
recovery to work.

</P>



<H3><A NAME="SEC250" HREF="xcdesign_toc.html#SEC250">Material Production Action</A></H3>

<P>
Units can produce materials by explicit action.

</P>
<P>
<U>ActionType:</U> <B><CODE>produce</CODE></B> <I>m</I><P>
<A NAME="IDX743"></A>
This action results in a quantity of material <VAR>m</VAR>
coming into existence.

</P>
<P>
<U>TableUM:</U> <B><CODE>acp-to-produce</CODE></B> <I>u m -&#62; acp</I><P>
<A NAME="IDX744"></A>
This table is the acp used up by one <CODE>produce</CODE> action.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-per-production</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX745"></A>
This table is the amount of material produced by <VAR>u</VAR>
when acting to produce type <VAR>m</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-produce</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX746"></A>
This table is the amount of each material a unit must have
in order to produce any material.  This material is not
consumed by the production action.

</P>



<H3><A NAME="SEC251" HREF="xcdesign_toc.html#SEC251">Material Extraction Action</A></H3>

<P>
Units can extract materials from the terrain or from nearby units.

</P>
<P>
<U>ActionType:</U> <B><CODE>extract</CODE></B> <I>x y m n</I><P>
<A NAME="IDX747"></A>
This action results in the transfer of a quantity <VAR>n</VAR> of material
<VAR>m</VAR> from the cell at <VAR>x</VAR>,<VAR>y</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>acp-to-extract</CODE></B> <I>u m -&#62; acp</I><P>
<A NAME="IDX748"></A>
This table is the acp used up by one action to extract material
of type <VAR>m</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-extract</CODE></B> <I>u m -&#62; acp</I><P>
<A NAME="IDX749"></A>
This table is the material required to do any extraction actions.

</P>



<H3><A NAME="SEC252" HREF="xcdesign_toc.html#SEC252">Material Transfer Action</A></H3>

<P>
Although most movement of materials between units happens automatically
(see backdrop economy description), players can also do it explicitly.
Players can both take materials from other units, and give a unit's
materials to others.

</P>
<P>
<U>ActionType:</U> <B><CODE>transfer</CODE></B> <I>unit m n</I><P>
<A NAME="IDX750"></A>
This is the action of transferring supply to the given unit <VAR>unit</VAR>.
The desired amount is <VAR>n</VAR>; if <VAR>m</VAR> is a valid material type, then
only that type will be transferred, otherwise the action will transfer
all types of materials possible.  The actual transfer amounts may be
less than <VAR>n</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>acp-to-unload</CODE></B> <I>u1 m -&#62; acp</I><P>
<A NAME="IDX751"></A>
<U>TableUM:</U> <B><CODE>acp-to-load</CODE></B> <I>u1 m -&#62; acp</I><P>
<A NAME="IDX752"></A>
These tables are the number of action points used up by one material
transfer action from <VAR>u1</VAR> to <VAR>u2</VAR>.  The amount is independent of
the material type being transferred.  If either value is <CODE>0</CODE>, then
the material cannot be transferred.

</P>
<P>
<U>TableUM:</U> <B><CODE>unload-max</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX753"></A>
<U>TableUM:</U> <B><CODE>load-max</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX754"></A>
These two tables determine how much of material <VAR>m</VAR> can be
transferred out of a unit of type <VAR>u1</VAR> and into one of type <VAR>u2</VAR>
in one transfer action.  The actual quantity transferred by the action
is the minimum of these two values.  A value of <CODE>0</CODE> disallows
manual transfer.  Both default to <CODE>-1</CODE>, which allows any amount to
be transferred.

</P>



<H3><A NAME="SEC253" HREF="xcdesign_toc.html#SEC253">Side Change Action</A></H3>

<P>
<U>ActionType:</U> <B><CODE>change-side</CODE></B> <I>side</I><P>
<A NAME="IDX755"></A>
This is the action of changing the unit's side to <VAR>side</VAR>.  The
<VAR>side</VAR> can be any allowable side, and the unit may be any unit
controlled by the actor's side.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-change-side</CODE></B> <I>acp</I><P>
<A NAME="IDX756"></A>
If the value of this property is greater than 0, then this type of unit
can be ordered to change to another given side.  If the unit is not a
type that can act, then the side change happens immediately, instead of
as an action, and no acp cost is incurred.  The type must also be
allowed to be on the new side.

</P>



<H3><A NAME="SEC254" HREF="xcdesign_toc.html#SEC254">Disband Action</A></H3>

<P>
Disbanding is the voluntary and controlled destruction of a unit,
performed by the unit itself or another unit.  A disbanded unit always
vanishes, rather than changing to its <CODE>wrecked-type</CODE>.

</P>
<P>
<U>ActionType:</U> <B><CODE>disband</CODE></B> <I>unit</I><P>
<A NAME="IDX757"></A>
This is the action of removing hp from <VAR>unit</VAR>.  The unit will vanish
if all its hit points are gone.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-disband</CODE></B> <I>acp</I><P>
<A NAME="IDX758"></A>
If the value of this property is greater than 0, then this is the acp
that will be used up to do one disband action.  If the unit is not a
type that can act, then the disband happens immediately, instead of as
an action, and no acp cost is incurred.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>hp-per-disband</CODE></B> <I>hp</I><P>
<A NAME="IDX759"></A>
This table is the number of hp lost in a disband action.  Defaults to
<CODE>0</CODE>, which disallows disbanding.

</P>
<P>
A disbanded unit can be scavenged for materials.

</P>
<P>
<U>TableUM:</U> <B><CODE>supply-per-disband</CODE></B> <I>u m -&#62; n%</I><P>
<A NAME="IDX760"></A>
This table is the percentage of the unit's supply that is recovered from
a single disband action.  If the value is zero, then the unit's supply
will not be recovered by the disbanding process, and be lost
permanently.  If any supply remains when the unit's hp is 0, then that
supply will be lost also.  Defaults to <CODE>100</CODE>, which means that the
entire supply will be recovered on the first disband action.

</P>
<P>
Note that if an essential supply is 100% recovered before the unit is
completely disbanded, then it may die from starvation first.  A
partly-disbanded unit may still acquire supply from nearby units, via
the backdrop economy.

</P>
<P>
<U>TableUM:</U> <B><CODE>recycleable-material</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX761"></A>
This table is the quantity of each type of material that becomes
available when a unit is completely disbanded.  The materials go to
transports, occupants, and nearby units, in that order.  Any materials
exceeding capacities of these units will be discarded.  These materials
become available only when the unit vanishes.

</P>



<H3><A NAME="SEC255" HREF="xcdesign_toc.html#SEC255">Part Transfer Action</A></H3>

<P>
Units of variable size can transfer parts of themselves to other
units, or create a new unit.

</P>
<P>
<U>ActionType:</U> <B><CODE>transfer-part</CODE></B> <I>n unit</I><P>
<A NAME="IDX762"></A>
This action moves <VAR>n</VAR> parts of the actee to <VAR>unit</VAR>,
or creates a new unit if <VAR>unit</VAR> is omitted.
If <VAR>n</VAR> is negative, this takes from <VAR>unit</VAR> instead.
If the action takes all the parts of any involved unit,
then it vanishes.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-transfer-parts-to</CODE></B> <I>u1 u2 t/f</I><P>
<A NAME="IDX763"></A>
If <VAR>u1</VAR> can transfer parts to <VAR>u2</VAR>, then set this to <CODE>true</CODE>.  

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-transfer-part</CODE></B> <I>acp</I><P>
<A NAME="IDX764"></A>
This property is the number of acp used up by the unit
when doing a part transfer action.

</P>



<H3><A NAME="SEC256" HREF="xcdesign_toc.html#SEC256">Type Change Action</A></H3>

<P>
Units may change their type. This can be set up to happen automatically, or only with manual intervention from the player.

</P>
<P>
<U>ActionType:</U> <B><CODE>change-type</CODE></B> <I>u</I><P>
<A NAME="IDX765"></A>
This action changes the type of the actee unit to the type <VAR>u</VAR>.
Upon changing, the relationships of the unit with the world and
with other units will be recalculated; occupants that can no longer
stay in the unit will be ejected or disappear.  The unit itself
may vanish or wreck, if it is in the open on a terrain type that will
cause units of the new type to vanish or wreck.

</P>
<P>
<U>TableUU:</U> <B><CODE>can-change-type-to</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX766"></A>
True, if a unit of type <VAR>u1</VAR> is allowed to be change its type to 
<VAR>u2</VAR>. If not allowed, then false. The default is <CODE>false</CODE>.
Not relevant for automatic change-type actions.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>auto-upgrade-to</CODE></B> <I>u</I><P>
<A NAME="IDX767"></A>
Automatically upgrade a unit to unit type <VAR>u</VAR> at the beginning of 
a turn if the change-type criteria are met for this upgrade. Defaults 
to <CODE>nonutype</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-change-type</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX768"></A>
This table is the number of acp needed to change a unit of
type <VAR>u1</VAR> into a unit of type <VAR>u2</VAR>.
If the value is 0, then the change is never possible.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupants-to-change-type</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX769"></A>
The number of occupants of unit type <VAR>u2</VAR> required to change a 
unit of type <VAR>u1</VAR> into another unit type.

</P>
<P>
<U>TableUA:</U> <B><CODE>advance-to-change-type</CODE></B> <I>u a -&#62; t/f</I><P>
<A NAME="IDX770"></A>
Indicate whether an advance type <VAR>a</VAR> is needed by a unit of type 
<VAR>u</VAR> to change type. The default is <CODE>false</CODE>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-change-type</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX771"></A>
This is the amount of each material type <VAR>m</VAR> required for an 
unit of type <VAR>u</VAR> to change type.

</P>
<P>
<U>TableUU:</U> <B><CODE>cxp-to-change-type</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX772"></A>
Minimum combat experience for a unit of type <VAR>u1</VAR> to change to 
unit type <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>size-to-change-type</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX773"></A>
Minimum size for a unit of type <VAR>u1</VAR> to change to unit type 
<VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>turn-to-change-type</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX774"></A>
Minimum turn for a unit of type <VAR>u1</VAR> to change to unit type 
<VAR>u2</VAR>.

</P>



<H3><A NAME="SEC257" HREF="xcdesign_toc.html#SEC257">Combat Actions</A></H3>

<P>
<I>Xconq</I> combat is somewhat abstract; the attacking player decides what sort
of attack to mount and perhaps when to retreat, but all else happens
automatically.

</P>
<P>
The attacker/defender distinction applies only to a single action.

</P>
<P>
<U>ActionType:</U> <B><CODE>attack</CODE></B> <I>unit commit</I><P>
<A NAME="IDX775"></A>
This action is a direct attack on the given <VAR>unit</VAR>, at a commitment
level of <VAR>commit</VAR>.  The <VAR>unit</VAR> must be known to the attacking
unit's side.

</P>
<P>
<U>ActionType:</U> <B><CODE>overrun</CODE></B> <I>x y z commit</I><P>
<A NAME="IDX776"></A>
This action is a combined attack/capture/move action.  The basic theory
of an overrun is that the actor will attack, capture, or co-occupy the
cell at <VAR>x</VAR>,<VAR>y</VAR>, elevation <CODE>z</CODE>, with a commitment of
<VAR>commit</VAR>.  The exact effects depend on the types and sides of units
in the destination.

</P>
<P>
[The commitment levels are currently ignored.]

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-attack</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX777"></A>
This table is the number of action points used up by a unit <VAR>u1</VAR>
when attacking a unit of type <VAR>u2</VAR>.  If the value is 0, attack is
not allowed.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-defend</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX778"></A>
This table is the number of action points used up by a unit <VAR>u1</VAR>
when defending against an attack by a unit of type <VAR>u2</VAR>.  If the
value is 0, attack is not allowed.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>attack-range-min</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX779"></A>
This table is the minimum distance at which a unit can attack another.
A value of 0 means that units in the same cell can fight.

</P>
<P>
<U>TableUU:</U> <B><CODE>attack-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX780"></A>
This table is the maximum distance at which a unit can attack another.
A value of 1 means that units in adjacent cells may fight, while a value
of 0 means that only units in the same cell may fight.  Defaults to
<CODE>1</CODE>.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>combat-model</CODE></B> <I>n</I><P>
<A NAME="IDX781"></A>
This variable specifies the algorithm used for combat resolution.

</P>
<P>
A value of 0 specifies single attack/counterattack with odds determined
by the <CODE>hit-chance</CODE> table.

</P>
<P>
A value of 1 specifies multi-round combat with odds computed from attack
and defend strength, combat continuing until a participant is destroyed.
Combat model one is not fully described in this document.  For further
details beyond those here, look at the comments in table.def in the
xconq source code, at variables such as occupant-affects-attack,
occupant-affects-defense, transport-affects-attack,
transport-affects-defense, terrain-affects-attack,
terrain-affects-defense, neighbour-affects-attack, and
neighbour-affects-defense.  Plus of course the source code where the
variables are consulted (for example model_1_combat in kernel/combat.c).

</P>
<P>
One round of combat consists of an attack, a reaction, and a calculation
of effects.

</P>
<P>
The defender's reaction is completely automatic, and occurs as part of
the combat round.  The defender's side does not get a chance to decide
what to do until the next round, although doctrine may constrain the set
of reactions.

</P>
<P>
<U>TableUU:</U> <B><CODE>surrender-chance-per-attack</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX782"></A>
This table is the chance that <VAR>u2</VAR> will surrender to <VAR>u1</VAR>
immediately upon being attacked.

</P>
<P>
<U>TableUU:</U> <B><CODE>withdraw-chance-per-attack</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX783"></A>
This table is the chance that <VAR>u2</VAR> will retreat from <VAR>u1</VAR>
immediately upon being attacked.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-for-retreat</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX784"></A>
This table is the extra acp that <VAR>u2</VAR> can get in order to make a
withdrawal possible.

</P>
<P>
<U>TableUU:</U> <B><CODE>counterattack</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX785"></A>
This table is the strength of a defender's reaction to an attack.  If 0,
the defender does not counterattack; if 100, the defender counterattacks
at the same level as if it attacked normally.  Defaults to <CODE>100</CODE>.

</P>
<P>
In an overrun action, if all the defending units are destroyed, the
attacker has sufficient acp and mp, and the destination is safe to
enter, then the attacker can move into the defenders' cell.

</P>
<P>
Firing is a kind of attack that can take place at a distance, involves
no commitment or counterattack, and for which the type of ammo may be
selected.

</P>
<P>
<U>ActionType:</U> <B><CODE>fire-at</CODE></B> <I>unit m</I><P>
<A NAME="IDX786"></A>
This is the action of firing at a given <VAR>unit</VAR>.  If <VAR>m</VAR> is a
valid material type, then that type will be used as ammo, otherwise all
available types will be used together.

</P>
<P>
<U>ActionType:</U> <B><CODE>fire-into</CODE></B> <I>x y z m</I><P>
<A NAME="IDX787"></A>
This is the action of firing into the cell at <VAR>x</VAR>,<VAR>y</VAR>.  If <VAR>z</VAR> is
a valid altitude, then the fire will be concentrated on units at that
elevation.  If <VAR>m</VAR> is a valid material type, then that type will be
used as ammo, otherwise all available types will be used together.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-fire</CODE></B> <I>acp</I><P>
<A NAME="IDX788"></A>
If this property is greater than 0, this type may attack by firing.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-be-fired-on</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX789"></A>
This table is the acp lost when a unit is being fired upon.  Defaults to
<CODE>1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>range</CODE></B> <I>dist</I><P>
<A NAME="IDX790"></A>
This property is the maximum distance in cells to which a unit can fire.
Defaults to <CODE>1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>range-min</CODE></B> <I>dist</I><P>
<A NAME="IDX791"></A>
This property is the minimum distance in cells to which a unit can fire.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>fire-angle-max</CODE></B> <I>n%</I><P>
<A NAME="IDX792"></A>
This property is the highest angle at which a unit may fire, expressed
as a percentage of 45 degrees.  The default of <CODE>0</CODE> means that the
unit's fire has a flat trajectory and that the target must be on an
unobstructed straight line from the firing unit.  For values greater
than 0, this angle is used to calculate whether the parabolic trajectory
clears all intervening terrain.

</P>
<P>
Units can be on <STRONG>overwatch</STRONG>. Overwatch is a state where an unit will 
automatically fire at other units it sees moving.

</P>
<P>
<U>TableUU:</U> <B><CODE>zoo-range</CODE></B> <I>u1 u2 n</I><P>
<A NAME="IDX793"></A>
The maximum range for an unit of type <VAR>u1</VAR> to extend a zone-of-overwatch 
(ZOO) for units of type <VAR>u2</VAR>. If the fire <CODE>range</CODE> for <VAR>u1</VAR> is 
less than <VAR>n</VAR>, then that will be used instead. Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>zoo-range-min</CODE></B> <I>u1 u2 n</I><P>
<A NAME="IDX794"></A>
The minimum range for an unit of type <VAR>u1</VAR> to extend a ZOO for units of 
type <VAR>u2</VAR>. If the fire <CODE>range-min</CODE> for <VAR>u1</VAR> is greater than 
<VAR>n</VAR>, then that will be used instead. Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-for-overwatch</CODE></B> <I>u1 u2 n</I><P>
<A NAME="IDX795"></A>
The amount of additional ACP that an unit of type <VAR>u1</VAR> receives in order 
to perform an overwatch firing against units of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUT:</U> <B><CODE>weapon-height</CODE></B> <I>u t -&#62; elev</I><P>
<A NAME="IDX796"></A>
This property is the effective height of a unit's weapons when in the
given terrain.

</P>
<P>
Both attack and fire combat calculate hits and damage in a similar way,
although they may use different tables.

</P>
<P>
<U>TableUU:</U> <B><CODE>hit-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX797"></A>
This table is the basic chance that a unit of type <VAR>u1</VAR> will
actually hit a unit of type <VAR>u2</VAR>.  If the hit chance is <CODE>0</CODE>,
then the unit may never attack a unit of that type.

</P>
<P>
<U>TableUU:</U> <B><CODE>fire-hit-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX798"></A>
This table is the basic chance that fire from a unit of type <VAR>u1</VAR>
will actually hit a unit of type <VAR>u2</VAR>.  If the hit chance is
<CODE>0</CODE>, then the unit may never fire at a unit of that type.  If the
value is <CODE>-1</CODE>, then the value of this is the same as the value of
<CODE>hit-chance</CODE>.  Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>attack-terrain-effect</CODE></B> <I>u1 t -&#62; n%</I><P>
<A NAME="IDX799"></A>
<U>TableUT:</U> <B><CODE>defend-terrain-effect</CODE></B> <I>u2 t -&#62; n%</I><P>
<A NAME="IDX800"></A>
<U>TableUT:</U> <B><CODE>fire-attack-terrain-effect</CODE></B> <I>u1 t -&#62; n%</I><P>
<A NAME="IDX801"></A>
<U>TableUT:</U> <B><CODE>fire-defend-terrain-effect</CODE></B> <I>u2 t -&#62; n%</I><P>
<A NAME="IDX802"></A>
These tables specify the effect of attacker's and defender's respective
terrains on <CODE>hit-chance</CODE> or <CODE>fire-hit-chance</CODE>.  These chances
are multiplied with the basic hit chance.  Default to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>hit-cxp-effect</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX803"></A>
This table is the effect of combat experience on hit chance.  Its value
is interpolated according to actual experience (<VAR>n</VAR> is the effect
when <VAR>u1</VAR> is at its maximum possible experience), then multiplied
with the hit chance.  Defaults to <CODE>100</CODE>.

</P>
<P>
The effectiveness of fire may be less at long ranges.  If the range to
the target is greater than <CODE>hit-falloff-range</CODE>, the chance of
hitting it will be reduced by the interpolation between the short-range
chance and that chance multiplied by the value of
<CODE>hit-at-max-range-effect</CODE>.  For example, if a unit's range is 4,
its hit falloff range is 1, the basic hit chance is 60%, and the max
range effect is 50%, then its hit chance at range 2 is 50%, at range 3
is 40%, and at range 4 is 30%.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>hit-falloff-range</CODE></B> <I>n</I><P>
<A NAME="IDX804"></A>
This table is the maximum range at which the effectiveness of combat is
<I>not</I> affected by distance.  Defaults to <CODE>PROPHI</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>hit-at-max-range-effect</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX805"></A>
This is the multiplier for the effectiveness of firing at the maximum
range possible.  Defaults to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>damage</CODE></B> <I>u1 u2 -&#62; hp</I><P>
<A NAME="IDX806"></A>
This table is the basic amount of damage caused by a successful attack.
The value is a dice spec.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>fire-damage</CODE></B> <I>u1 u2 -&#62; hp</I><P>
<A NAME="IDX807"></A>
This table is the basic amount of damage caused by a successful firing.
The value is a dice spec.  If the value is <CODE>-1</CODE>, then it is the
same as <CODE>damage</CODE>.  Defaults to <CODE>-1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>tp-damage</CODE></B> <I>u1 u2 -&#62; tp</I><P>
<A NAME="IDX808"></A>
This table is the amount of damage to a unit's tooling caused by a
successful attack.  The value is a dice spec.

</P>

<P>
<U>TableUU:</U> <B><CODE>damage-cxp-effect</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX809"></A>
This table is the effect of combat experience on damage.  Its value is
interpolated according to actual experience (so that <VAR>n</VAR> is the
effect when <VAR>u1</VAR> is at its maximum experience), then multiplied with
both the dice size and the addend of the damage spec.  Defaults to
<CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>hp-min</CODE></B> <I>u1 u2 -&#62; hp</I><P>
<A NAME="IDX810"></A>
This table is the lowest hp possible for <VAR>u1</VAR> from attacks by
<VAR>u2</VAR>.  Further attacks by <VAR>u2</VAR> are still valid, but can do no
further damage.

</P>
<P>
You can set a unit to use a material as ammo.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-attack</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX811"></A>
Specifies how much a material <VAR>m</VAR> will be used as ammunition 
when a unit <VAR>u1</VAR> is attacking.

</P>
<P>
<U>TableUM:</U> <B><CODE>consumption-per-fire</CODE></B> <I>u1 m -&#62; n</I><P>
<A NAME="IDX812"></A>
Specifies how much a material <VAR>m</VAR> will be used as ammunition 
when a unit <VAR>u1</VAR> is firing.<BR>
NOTE: Set this to <CODE>-1</CODE>, if you wish to use the 
<CODE>consumption-per-attack</CODE> table for firing.

</P>
<P>
<U>TableUM:</U> <B><CODE>hit-by</CODE></B> <I>u2 m -&#62; n</I><P>
<A NAME="IDX813"></A>
The multiplier on the consumption of material <VAR>m</VAR> by a unit <VAR>u1</VAR>
when it is attacking or firing upon a unit <VAR>u2</VAR>.<BR>
NOTE: Normally, one would probably want to set this value to <CODE>1</CODE>, 
if it is desired that the ammo type <VAR>m</VAR> be consumed to hit <VAR>u2</VAR>.
However, <VAR>u2</VAR> can be made "tougher" by setting this multiplier 
higher, rather than by adjusting the <CODE>hit-chance</CODE> and 
<CODE>fire-hit-chance</CODE> tables.<BR>
NOTE: To prevent an ammo <VAR>m</VAR> from being consumed when hitting a 
unit <VAR>u2</VAR> (even if the attacker <VAR>u1</VAR> would normally consume this 
in an attack or firing) then leave the appropriate <CODE>hit-by</CODE> table 
entry at the default value <CODE>0</CODE>, or reset it to that.

</P>
<P>
If a unit <VAR>u1</VAR> is firing upon a unit <VAR>u2</VAR>, then <VAR>u1</VAR> 
will use the quantity of ammunition <VAR>m</VAR> specified in 
<CODE>consumption-per-fire</CODE> multiplied by the corresponding entry in 
<CODE>hit-by</CODE>, if the result is &#62;= 0. Else, it will use the quantity of 
<VAR>m</VAR> specified in <CODE>consumption-per-attack</CODE> multiplied by the 
corresponding entry in <CODE>hit-by</CODE>.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-attack</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX814"></A>
This table is a minimum of each material type <VAR>m</VAR> that a unit must
have to engage in direct attack or to defend against it.  This minimum
is not necessarily used up in combat, it just needs to be present.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-fire</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX815"></A>
This table is a minimum of each material type <VAR>m</VAR> that a unit must
have to fire.  This minimum is not necessarily used up, it just needs to
be present.

</P>
<P>
Transports can protect their occupants, and vice versa.

</P>
<P>
<U>TableUU:</U> <B><CODE>protection</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX816"></A>
This table gives the effect of occupants of type <VAR>u1</VAR> on the chance
of another unit's attack hitting their transport <VAR>u2</VAR>, as well as
the effect of the transport <VAR>u1</VAR> on the chance that occupants of
type <VAR>u2</VAR> will be hit.

</P>
<P>
For the transport, this is a multiplier, where 100 has no protection,
values less than 100 decrease hit chance, and values greater than 100
increase it.  Each occupant will be taken into account when computing
transport's protection.

</P>
<P>
If the transport is the unit being hit, then the value of this table
is the probability that an occupant of type <VAR>u2</VAR> will be hit.

</P>
<P>
Defaults to <CODE>100</CODE>.

</P>
<P>
A transport's destruction may leave occupants stranded on hex, will do
some sort of auto-escape or die if terrain is hostile.

</P>
<P>
Units stacked together can protect each other.

</P>
<P>
<U>TableUU:</U> <B><CODE>stack-protection</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX817"></A>
This table is the effect of units of type <VAR>u1</VAR> on attacks on units
of type <VAR>u2</VAR> that are in the same cell.  The effect is similar to
that described for the <CODE>protection</CODE> table.  Defaults to <CODE>100</CODE>.

</P>
<P>
Units may also act to protect every other unit in a cell, whether
occupant, transport, or stack.

</P>
<P>
<U>TableUU:</U> <B><CODE>cellwide-protection-for</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX818"></A>
This table is the effect of any unit of type <VAR>u1</VAR> in the same cell
on attacks against any unit of type <VAR>u2</VAR> in the cell.  Defaults to
<CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>cellwide-protection-against</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX819"></A>
This table is the effect of any unit of type <VAR>u1</VAR> on any attack on
any unit in the cell by units of type <VAR>u2</VAR>, expressed as a
percentage multiplier.  Defaults to <CODE>100</CODE>.

</P>
<P>
Several other side-effects of combat may also be defined.

</P>
<P>
Units can retreat if they are about to be damaged; the retreat attempt
is automatic, and will be in a valid direction that is away from the
attacker.  The retreat attempt will fail if there is no direction that
the unit may move, or if has insufficient materials, acp, etc to do the
movement.  If the attempt is successful, then the unit will not be
damaged; otherwise it must take the hit.

</P>
<P>
<U>TableUU:</U> <B><CODE>retreat-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX820"></A>
This table is the chance that <VAR>u2</VAR> will attempt to retreat if it is
hit by <VAR>u1</VAR>.

</P>
<P>
Units may gain experience as a result of combat.

</P>
<P>
<U>TableUU:</U> <B><CODE>cxp-per-combat</CODE></B> <I>u1 u2 -&#62; cxp</I><P>
<A NAME="IDX821"></A>
This table is the number of combat experience points gained by <VAR>u1</VAR>
by surviving a combat round with <VAR>u2</VAR>.  Both attackers and defenders
gain experience equally.

</P>
<P>
<U>TableUU:</U> <B><CODE>cxp-per-destroy</CODE></B> <I>u1 u2 -&#62; cxp</I><P>
<A NAME="IDX822"></A>
This table is the number of combat experience points gained by <VAR>u1</VAR>
destroying <VAR>u2</VAR>.  This is in addition to any cxp gained due to combat.

</P>
<P>
The sides of the victorious and defeated units may be modified as an 
outcome of unit destruction.

</P>
<P>
<U>TableUM:</U> <B><CODE>treasury-gain-per-destroy</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX823"></A>
This is the amount of <VAR>m</VAR> gained when <VAR>u</VAR> is destroyed in combat.
This material is added to the treasury of the side that destroyed <VAR>u</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>treasury-loss-per-destroyed</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX824"></A>
This is the amount of <VAR>m</VAR> lost when <VAR>u</VAR> is destroyed in combat.
This material is taken from the treasury of the side of <VAR>u</VAR>.

</P>
<P>
Unit morale may change as a result of combat, either positively or
negatively.

</P>
<P>
<U>TableUU:</U> <B><CODE>morale-hit</CODE></B> <I>u1 u2 -&#62; .01n</I><P>
<A NAME="IDX825"></A>
This table is the 100ths of morale gained as the result of a unit of
type <VAR>u1</VAR> successfully hitting a unit of type <VAR>u2</VAR>.  The part of
the number &#62; 100 is gained always, the part modulo 100 is the
probability of gaining 1.

</P>
<P>
<U>TableUU:</U> <B><CODE>morale-hit-by</CODE></B> <I>u1 u2 -&#62; .01n</I><P>
<A NAME="IDX826"></A>
This table is the 100ths of morale lost as the result of a unit of type
<VAR>u1</VAR> being hit by a unit of type <VAR>u2</VAR>.

</P>
<P>
In combat model 1, the outcome is determined by relative attack
and defense strengths.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>attack</CODE></B> <I>n</I><P>
<A NAME="IDX827"></A>
<U>UnitTypeProperty:</U> <B><CODE>defend</CODE></B> <I>n</I><P>
<A NAME="IDX828"></A>
These values represent the relative attack and defense strengths
of a unit type.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>encounter-result</CODE></B> <I>list</I><P>
<A NAME="IDX829"></A>
This property specifies other possible outcomes of an attack.
The <VAR>list</VAR> is an optionally weighted list of the form

<PRE>
<CODE>( [ <VAR>weight</VAR> ] <VAR>result</VAR> ... )</CODE>
</PRE>

<P>
Each <VAR>result</VAR> has one of the following forms:

<PRE>
<CODE>(unit <VAR>type</VAR> <VAR>message</VAR>)</CODE>
<CODE>(unit (<VAR>type</VAR> <VAR>side</VAR>) <VAR>message</VAR>)</CODE>
<CODE>(vanish nil <VAR>message</VAR>)</CODE>
</PRE>

<P>
If the chosen <VAR>result</VAR> starts with <CODE>unit</CODE>, then the encountered
unit changes type to the given type, and if the <VAR>side</VAR> is specified
(as a side id), then it will change side also.

</P>
<P>
If the chosen result starts with <CODE>vanish</CODE>, then the encountered
unit simply vanishes permanently.

</P>
<P>
At present, this property is only used in model 1 combat, where its
results are checked before combat.  Defaults to <CODE>()</CODE>.

</P>
<P>
<U>Symbol:</U> <B><CODE>vanish</CODE></B><P>
<A NAME="IDX830"></A>
This keyword indicates that the encounter result is for the encountered
unit to vanish.

</P>



<H3><A NAME="SEC258" HREF="xcdesign_toc.html#SEC258">Capture Action</A></H3>

<P>
A unit may attempt to capture another unit directly.
If successful, the captured unit's side changes to that of the capturing unit.

</P>
<P>
<U>ActionType:</U> <B><CODE>capture</CODE></B> <I>unit</I><P>
<A NAME="IDX831"></A>
This is the action of capturing the given <VAR>unit</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>acp-to-capture</CODE></B> <I>u1 u2 -&#62; acp</I><P>
<A NAME="IDX832"></A>
This table is the number of acp used up by a <CODE>capture</CODE> action.
Defaults to <CODE>0</CODE>, which disallows capture.

</P>
<P>
<U>TableUU:</U> <B><CODE>bridge</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX833"></A>
This table is true if a unit of type <VAR>u1</VAR> can be captured by a unit
of type <VAR>u2</VAR> even if <VAR>u1</VAR> is on a type of terrain impassable to
the capturing unit.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>UnitProperty:</U> <B><CODE>match-transport-side</CODE></B> <I>t/f</I><P>
<A NAME="IDX834"></A>
Whenever an unit's transport changes side, automatically try to match 
the unit's side to the transport's new side.

</P>
<P>
<U>TableUU:</U> <B><CODE>capture-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX835"></A>
This table is the basic chance for <VAR>u1</VAR> to capture <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>independent-capture-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX836"></A>
This table is the basic chance for <VAR>u1</VAR> to capture an independent
unit of type <VAR>u2</VAR>.  If the value is <CODE>-1</CODE>, then the chance of
capture is given by the <CODE>capture-chance</CODE>.  Defaults to <CODE>-1</CODE>.

</P>
<P>
Normally, the <CODE>protection</CODE>, <CODE>stack-protection</CODE>, 
<CODE>cellwide-protection-for</CODE>, and <CODE>cellwide-protection-against</CODE> 
tables affect the computed capture chance. However, the use of these 
protection tables can be prohibited by setting the 
<CODE>protection-resists-capture</CODE> global variable to <CODE>false</CODE>.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>protection-resists-capture</CODE></B> <I>t/f</I><P>
<A NAME="IDX837"></A>
When set to false, this variable ensures that the various combat protection 
tables are _not_ used when computing the success/failure of a capture 
attempt. Defaults to <CODE>true</CODE> (to maintain legacy behavior of older 
games).

</P>
<P>
The following tables can affect capture, whether or not 
<CODE>protection-resists-capture</CODE> is set:

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-allows-capture-by</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX838"></A>
An occupant of type <VAR>u1</VAR> affects the capture chance of its transport 
by <VAR>n</VAR>% when an unit of type <VAR>u2</VAR> is attempting to capture the 
transport. Set to <CODE>0%</CODE> to disallow the transport's capture by 
<VAR>u2</VAR> when <VAR>u1</VAR> is present. Defaults to <CODE>100%</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>stack-neighbor-allows-capture-by</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX839"></A>
If an unit of type <VAR>u1</VAR> shares the same cell with another unit, then 
it may affect the capture chance of the other unit when an unit of type 
<VAR>u2</VAR> is attempting capture of the other unit. This table does not 
apply to occupants of the other unit. Set to <CODE>0%</CODE> to disallow capture 
of a neighbor by an unit of type <VAR>u2</VAR> when <VAR>u1</VAR> is present.
Defaults to <CODE>100%</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>any-neighbor-allows-capture-by</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX840"></A>
If an unit of type <VAR>u1</VAR> shares the same cell with another unit, then 
it may affect the capture chance of the other unit when an unit of type 
<VAR>u2</VAR> is attempting capture of the other unit. This applies to any  
other unit in the cell, including one that may be an occupant. Set to 
<CODE>0%</CODE> to disallow capture of a neighbor by an unit of type <VAR>u2</VAR> 
when <VAR>u1</VAR> is present. Defaults to <CODE>100%</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-allows-capture-of</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX841"></A>
An occupant of type <VAR>u1</VAR> can prevent capture of its transport of 
type <VAR>u2</VAR>. Set to <CODE>0%</CODE> to disallow capture of a transport of 
type <VAR>u2</VAR> when an occupant <VAR>u1</VAR> is in it. Defaults to 
<CODE>100%</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>stack-neighbor-allows-capture-of</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX842"></A>
An unit of type <VAR>u1</VAR> sharing the same cell as an unit of type <VAR>u2</VAR> 
may affect the capture outcome of the latter. This does not apply to 
occupants. Set to <CODE>0%</CODE> to disallow capture of <VAR>u2</VAR> when <VAR>u1</VAR> 
is in the same cell as it. Defaults to <CODE>100%</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>any-neighbor-allows-capture-of</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX843"></A>
An unit of type <VAR>u1</VAR> sharing the same cell as an unit of type <VAR>u2</VAR> 
may affect the capture outcome of the latter. This applies to occupants  
as well. Set to <CODE>0%</CODE> to disallow capture of <VAR>u2</VAR> when <VAR>u1</VAR> 
is in the same cell as it. Defaults to <CODE>100%</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>scuttle-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX844"></A>
This table is the chance that <VAR>u1</VAR>, whose capture by <VAR>u2</VAR> is 
guaranteed, will destroy itself instead.  Scuttling is destructive, so 
<VAR>u1</VAR> changes to <CODE>wrecked-type</CODE>.  Occupants of an 
about-to-be-captured unit will also attempt to scuttle.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-escape-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX845"></A>
This table is the chance that an occupant <VAR>u1</VAR> will escape during
the capture of a unit of type <VAR>u2</VAR>.  Occupants that do not escape
are either captured themselves or destroyed, depending on their type and
the capturing unit's side.

</P>
<P>
<U>TableUU:</U> <B><CODE>hp-to-garrison</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX846"></A>
This table is the number of hp that will be taken from the capturing
unit <VAR>u1</VAR> in order to guard a captured <VAR>u2</VAR>.  If the amount is
the unit's full hp, then the unit will vanish and any occupants will be
distributed to the captured unit, to open terrain, or will vanish
themselves if there is no other option.

</P>
<P>
<U>TableUU:</U> <B><CODE>countercapture</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX847"></A>
This table defines the defending unit's reaction to the capture attempt.
If 0, then the unit does not react to the capture attempt.

</P>
<P>
Captures can also affect combat experience, but has different effects on
the capturing and captured units.

</P>
<P>
<U>TableUU:</U> <B><CODE>cxp-per-capture</CODE></B> <I>u1 u2 -&#62; cxp</I><P>
<A NAME="IDX848"></A>
This table is the number of combat experience points gained by <VAR>u1</VAR>
for capturing <VAR>u2</VAR>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>cxp-on-capture-effect</CODE></B> <I>n</I><P>
<A NAME="IDX849"></A>
This property gives the change in a unit's cxp due to being captured,
expressed as a multiplier.
Defaults to <CODE>100</CODE>.

</P>
<P>
The treasuries of the sides of the captor and prisoner units may be 
modified as a result of capture.

</P>
<P>
<U>TableUM:</U> <B><CODE>treasury-gain-per-capture</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX850"></A>
This is the amount of <VAR>m</VAR> gained when <VAR>u</VAR> is captured in combat.
This material is added to the treasury of the side that destroyed <VAR>u</VAR>.

</P>
<P>
<U>TableUM:</U> <B><CODE>treasury-loss-per-captured</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX851"></A>
This is the amount of <VAR>m</VAR> lost when <VAR>u</VAR> is captured in combat.
This material is taken from the treasury of the side of <VAR>u</VAR>.

</P>
<P>
Capture of an unit may result in its changing type.

</P>
<P>
<U>TableUU:</U> <B><CODE>changed-type-if-captured</CODE></B> <I>u1 u2 -&#62; u3</I><P>
<A NAME="IDX852"></A>
If an unit of type <VAR>u1</VAR> is captured by an unit of type <VAR>u2</VAR>, then 
it will attempt to change into type <VAR>u3</VAR>. Defaults to <CODE>non-unit</CODE>, 
which means that no change of unit type will be attempted.

</P>
<P>
Capture of a unit may also yield an extra dividend of knowledge,
in the form of information known to the other side.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>see-terrain-if-captured</CODE></B> <I>n%</I><P>
<A NAME="IDX853"></A>
If the world's terrain is not already seen, this property is the chance
that the capturing side will get all of the terrain view collected
by the former side of the captured unit.  This does not apply to any
unit views, just terrain.

</P>
<P>
<U>TableUU:</U> <B><CODE>see-others-if-captured</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX854"></A>
This table is the chance that the capturing side will get a view of a
unit of type <VAR>u2</VAR> belonging to the other side.  The chance applies
to each unit of that type when a unit of type <VAR>u1</VAR> is captured.

</P>



<H3><A NAME="SEC259" HREF="xcdesign_toc.html#SEC259">Detonation Action</A></H3>

<P>
Detonation is an action and/or behavior that causes damage
indiscriminately.  The action specifies the location of the detonation,
which may be in the unit's cell or an adjacent one.  A unit that
detonates loses hp, changing to its <CODE>wrecked-type</CODE> if it loses all
of its hp.  It also hits every unit within a specified radius.
Detonation may also affect terrain within a specified radius.

</P>
<P>
<U>ActionType:</U> <B><CODE>detonate</CODE></B> <I>x y z</I><P>
<A NAME="IDX855"></A>
This action detonates the actee at the given location <VAR>x</VAR>,<VAR>y</VAR>,<VAR>z</VAR>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>acp-to-detonate</CODE></B> <I>acp</I><P>
<A NAME="IDX856"></A>
This property is the number of action points used by one detonate
action.  Defaults to <CODE>0</CODE>, which disallows detonation.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>hp-per-detonation</CODE></B> <I>hp</I><P>
<A NAME="IDX857"></A>
This property is the number of hp lost in each detonation.

</P>
<P>
<U>TableUU:</U> <B><CODE>detonation-unit-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX858"></A>
This table gives the range of effect from detonation of <VAR>u1</VAR>.  The
severity falls off according to the inverse square law extrapolated from
the adjacent cell damage.  (1/4 severity at range 2, 1/9 at 3, etc.)

</P>
<P>
<U>TableUU:</U> <B><CODE>detonation-damage-at</CODE></B> <I>u1 u2 -&#62; hp</I><P>
<A NAME="IDX859"></A>
This table is the severity of <VAR>u1</VAR>'s hit on a unit <VAR>u2</VAR> in the
same cell.

</P>
<P>
<U>TableUU:</U> <B><CODE>detonation-damage-adjacent</CODE></B> <I>u1 u2 -&#62; hp</I><P>
<A NAME="IDX860"></A>
This table is the severity of <VAR>u1</VAR>'s hit on a unit <VAR>u2</VAR> in an
adjacent cell.

</P>
<P>
<U>TableUT:</U> <B><CODE>detonation-terrain-range</CODE></B> <I>u t -&#62; dist</I><P>
<A NAME="IDX861"></A>
This table specifies the maximum distance at which a detonation will
affect terrain of type <VAR>t</VAR>.

</P>
<P>
<U>TableUT:</U> <B><CODE>detonation-terrain-damage-chance</CODE></B> <I>u t -&#62; n%</I><P>
<A NAME="IDX862"></A>
This is the chance that the detonation will have an effect on the
terrain.

</P>
<P>
<U>TableTT:</U> <B><CODE>terrain-damaged-type</CODE></B> <I>t1 t2 -&#62; n</I><P>
<A NAME="IDX863"></A>
Relative chance that terrain of type <VAR>t1</VAR> damaged by a detonation
will change into another type <VAR>t2</VAR>.

</P>
<P>
The following tables and properties can be used for units that cannot
detonate deliberately by doing a detonate action.

</P>
<P>
<U>TableUU:</U> <B><CODE>detonate-on-hit</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX864"></A>
This table is the chance that a hit on <VAR>u1</VAR> by a unit of type
<VAR>u2</VAR> will cause it to detonate (once).  Noncombat reductions in hp,
such as attrition, have no effect.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>detonate-on-death</CODE></B> <I>n%</I><P>
<A NAME="IDX865"></A>
This property is the chance that if this type is about to die from a
combat hit, it will detonate first.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>detonate-on-attack</CODE></B> <I>n%</I><P>
<A NAME="IDX866"></A>
This property is the chance that if this type scores a hit (and damages)
an enemy unit, it will detonate first.

</P>
<P>
<U>TableUU:</U> <B><CODE>detonate-on-capture</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX867"></A>
This table is the chance that a unit of type <VAR>u1</VAR> will detonate if a
capture by a unit of type <VAR>u2</VAR> is about to succeed.

</P>
<P>
<U>TableUU:</U> <B><CODE>detonate-on-approach-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX868"></A>
When a unit of type <VAR>u2</VAR> on a non-trusted [?] side appears at a
distance of <VAR>dist</VAR> or less, then <VAR>u1</VAR> will detonate.  If
<CODE>-1</CODE>, then unit will not detonate upon approach.  Defaults to
<CODE>-1</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>detonation-accident-chance</CODE></B> <I>u t -&#62; n.f%</I><P>
<A NAME="IDX869"></A>
This table is the chance that the unit will detonate spontaneously.
This is checked once/turn, at the beginning of the turn, and also upon
each entry to a cell, if moving.

</P>



<H3><A NAME="SEC260" HREF="xcdesign_toc.html#SEC260">Terrain Alteration Actions</A></H3>

<P>
<U>ActionType:</U> <B><CODE>alter-terrain</CODE></B> <I>x y t</I><P>
<A NAME="IDX870"></A>
This action changes the type of the cell at <VAR>x</VAR>,<VAR>y</VAR> to <VAR>t</VAR>.

</P>
<P>
<U>ActionType:</U> <B><CODE>add-terrain</CODE></B> <I>x y dir t</I><P>
<A NAME="IDX871"></A>
This action adds a connection or border of type <VAR>t</VAR> to the cell at
<VAR>x</VAR>,<VAR>y</VAR>, in direction <VAR>dir</VAR>.

</P>
<P>
<U>ActionType:</U> <B><CODE>remove-terrain</CODE></B> <I>x y dir t</I><P>
<A NAME="IDX872"></A>
This action removes a connection or border of type <VAR>t</VAR> to the cell
at <VAR>x</VAR>,<VAR>y</VAR>, in direction <VAR>dir</VAR>.

</P>
<P>
<U>TableUT:</U> <B><CODE>acp-to-add-terrain</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX873"></A>
<U>TableUT:</U> <B><CODE>acp-to-remove-terrain</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX874"></A>
For auxiliary terrain types, these tables are the costs to add or
remove.  For cell terrain, the costs of removing the old type and adding
the new type are added together.  If the value is 0, then that type of
terrain may not be added or removed.  As a special exception, cell
terrain may have a cost to remove of 0, so that the sum of add and
remove costs can be as low as 1; in that case, a value of -1 disallows
removal.  Both default to <CODE>0</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>alter-terrain-range</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX875"></A>
This table is the maximum distance at which a unit can alter terrain
<VAR>t</VAR>.  Defaults to <CODE>0</CODE>, which means that the unit can change
only the terrain in its own cell.

</P>
<P>
Note that if <CODE>see-terrain-always</CODE> is false, then other sides will
not see the terrain change unless they are viewing the altered terrain.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-add-terrain</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX876"></A>
This table is the amount of material necessary to perform an
<CODE>add-terrain</CODE> or <CODE>alter-terrain</CODE> action.

</P>
<P>
<U>TableUM:</U> <B><CODE>material-to-remove-terrain</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX877"></A>
This table is the amount of material necessary to perform a
<CODE>remove-terrain</CODE> action.

</P>
<P>
<U>TableTM:</U> <B><CODE>consumption-per-add-terrain</CODE></B> <I>t m -&#62; n</I><P>
<A NAME="IDX878"></A>
This table is the amount of material <VAR>m</VAR> necessary for any unit to
add terrain of type <VAR>t</VAR>.

</P>
<P>
<U>TableTM:</U> <B><CODE>material-per-remove-terrain</CODE></B> <I>t m -&#62; n</I><P>
<A NAME="IDX879"></A>
This table is the amount of material of type <VAR>m</VAR> that becomes
available as the result of removing terrain <VAR>t</VAR>.

</P>

<HR>
Go to the <A HREF="xcdesign_1.html">first</A>, <A HREF="xcdesign_49.html">previous</A>, <A HREF="xcdesign_51.html">next</A>, <A HREF="xcdesign_61.html">last</A> section, <A HREF="xcdesign_toc.html">table of contents</A>.
</BODY>
</HTML>