Sophie

Sophie

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

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 - Unit Types</TITLE>
</HEAD>
<BODY>
Go to the <A HREF="xcdesign_1.html">first</A>, <A HREF="xcdesign_39.html">previous</A>, <A HREF="xcdesign_41.html">next</A>, <A HREF="xcdesign_61.html">last</A> section, <A HREF="xcdesign_toc.html">table of contents</A>.
<HR>


<H2><A NAME="SEC186" HREF="xcdesign_toc.html#SEC186">Unit Types</A></H2>

<P>
<U>Form:</U> <B><CODE>unit-type</CODE></B> <I>symbol properties...</I><P>
<A NAME="IDX370"></A>
This form defines a new type of unit.  The <VAR>symbol</VAR> is required and
must be previously undefined.  The bindings in <VAR>properties</VAR> are then
added to the type one by one.  If no other name properties are defined,
the <VAR>symbol</VAR> may be displayed to players (see above).  You can
define no more than 126 types of units.

</P>
<P>
The <VAR>symbol</VAR> here becomes the unit type's "internal type name"
which is guaranteed unique.  To make synonyms for the internal type
name, use <CODE>define</CODE>.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>u*</CODE></B><P>
<A NAME="IDX371"></A>
This variable evaluates to a list of all unit types, listed in the order
that they were defined.  This list always reflects the list of types at
the moment it is evaluated.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>non-unit</CODE></B><P>
<A NAME="IDX372"></A>
This variable evaluates to a value that is NOT a unit type.  This is
needed in several places to enable/disable features.  Use of this in any
other way is an error, and may or may not be detected before it causes a
crash.  (Although described as a variable, its value cannot be changed.)

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>name-internal</CODE></B> <I>str</I><P>
<A NAME="IDX373"></A>
Internally used type name.

</P>

<UL>
<LI><A HREF="xcdesign_40.html#SEC187">Unit Naming</A>
<LI><A HREF="xcdesign_40.html#SEC188">Availability</A>
<LI><A HREF="xcdesign_40.html#SEC189">Class-Restricted Unit Types</A>
<LI><A HREF="xcdesign_40.html#SEC190">Self-Unit Capable Units</A>
<LI><A HREF="xcdesign_40.html#SEC191">Limits on Unit Quantities</A>
<LI><A HREF="xcdesign_40.html#SEC192">Hit Points</A>
<LI><A HREF="xcdesign_40.html#SEC193">Experience</A>
<LI><A HREF="xcdesign_40.html#SEC194">Tech Levels vs Units</A>
<LI><A HREF="xcdesign_40.html#SEC195">Opinions</A>
<LI><A HREF="xcdesign_40.html#SEC196">Point Value</A>
<LI><A HREF="xcdesign_40.html#SEC197">Advanced Units</A>
</UL>



<H3><A NAME="SEC187" HREF="xcdesign_toc.html#SEC187">Unit Naming</A></H3>

<P>
<U>UnitTypeProperty:</U> <B><CODE>namer</CODE></B> <I>namer-id</I><P>
<A NAME="IDX374"></A>
This property is the namer that will be used to generate names for
units, if the unit's side does not have a namer, or the unit is
independent and not in any country.  Defaults to <CODE>0</CODE>, which leaves
the unit unnamed.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>assign-number</CODE></B> <I>t/f</I><P>
<A NAME="IDX375"></A>
This property is true if the unit should have a serial number assigned
to it by the side it belongs to.  Serial numbers are maintained for each
type on each side separately, start at 1 for the first unit of the type,
and increase by one each time.  Defaults to <CODE>true</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>description-format</CODE></B> <I>list...</I><P>
<A NAME="IDX376"></A>
This property defines the different ways in which an instance or
instances of this type may be described textually.  This information may
be used in narrative descriptions and in informational displays.  Each
element of <VAR>list</VAR> is either a string to add literally to the unit's
description, or a symbol indicating the substitution of unit or unit
type properties.  The symbols are <CODE>name</CODE>, <CODE>position</CODE>,
<CODE>side</CODE>, <CODE>side-adjective</CODE>, <CODE>side-name</CODE>, <CODE>type</CODE>.  If
<CODE>()</CODE>, then the instance will be described in a default fashion that
is equivalent to a format of <CODE>(side " " type " " name)</CODE>.  Defaults
to <CODE>()</CODE>.

</P>



<H3><A NAME="SEC188" HREF="xcdesign_toc.html#SEC188">Availability</A></H3>

<P>
It may be that a set of types is larger than strictly necessary for
a particular game.  You can make any type unavailable, which means
that irrespective of any other controls, that type cannot come into
play during a game.  You can also make it available only for particular
turns.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>available</CODE></B> <I>n</I><P>
<A NAME="IDX377"></A>
If the value of this property is greater than 0, then this type is
available in the game on or after turn <VAR>n</VAR>.  If the value is less
than 0, then the type is available, but only until turn <VAR>-n</VAR>.  If
the value is 0, then the type is never available.  Defaults to <CODE>1</CODE>,
which means that the type is always available.

</P>
<P>
If a type becomes unavailable and there are units of that type in play,
then they will vanish immediately.

</P>



<H3><A NAME="SEC189" HREF="xcdesign_toc.html#SEC189">Class-Restricted Unit Types</A></H3>

<P>
Sometimes the designer will want to make different sides have different
types of units.  Although this can be done by setting up scenarios
appropriately, that won't close all the loopholes that might allow a
side to get units that should only ever belong to another side.

</P>
<P>
The first step is to define a class for each side.  For instance, a side
named <CODE>"Rome"</CODE> might have a class <CODE>"Roman"</CODE>, while the sides
named <CODE>"Aedui"</CODE> and <CODE>"Parisii"</CODE> could both be in the class
<CODE>"barbarian"</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>possible-sides</CODE></B> <I>exp</I><P>
<A NAME="IDX378"></A>
This property restricts the unit type to only be usable by a side
meeting the conditions of <VAR>exp</VAR>.  If <VAR>exp</VAR> is a string, it
restricts the unit type to only be usable by a side whose class includes
a matching string.  This may also be a boolean expression.  Independent
units belong to a side whose class is <CODE>"independent"</CODE>.  The default
of <CODE>""</CODE> allows the unit to belong to any side.

</P>



<H3><A NAME="SEC190" HREF="xcdesign_toc.html#SEC190">Self-Unit Capable Units</A></H3>

<P>
The self-unit can be any type, including one that cannot act; for
instance, a capital city could be the self-unit, thus making its defense
all-important for a player.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>self-required</CODE></B> <I>t/f</I><P>
<A NAME="IDX379"></A>
This variable is true if each side is required to have a self-unit at
all times.  However, if no unit of a suitable type is available when the
game begins, then none will be required.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>can-be-self</CODE></B> <I>t/f</I><P>
<A NAME="IDX380"></A>
This property says that the type of unit can represent the side directly.
Defaults to <CODE>false</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>self-changeable</CODE></B> <I>t/f</I><P>
<A NAME="IDX381"></A>
This property is true if the player can choose to change a self-unit of
this type at any time.  Otherwise the self-unit can be changed only if
the current one dies.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>self-resurrects</CODE></B> <I>t/f</I><P>
<A NAME="IDX382"></A>
This property is true if when the self-unit dies, another unit of an
allowable type becomes the self-unit automatically.  Defaults to
<CODE>false</CODE>.

</P>
<P>
Observe that these parameters can be used to develop various forms of
backup, so that a player can start out as a capital city, resurrect as a
town, change self to one of several towns, then lose when all the towns
are lost.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>direct-control</CODE></B> <I>t/f</I><P>
<A NAME="IDX383"></A>
This property is true if a unit of this type can be controlled by its
side automatically.  If false, then it must be within range of a unit
that can control it, and is itself under control by the side.  Defaults
to <CODE>true</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>unit-control-chance-at</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX384"></A>

</P>
<P>
<U>TableUU:</U> <B><CODE>unit-control-chance-adjacent</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX385"></A>

</P>
<P>
<U>TableUU:</U> <B><CODE>unit-control-chance</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX386"></A>

</P>
<P>
<U>TableUU:</U> <B><CODE>unit-control-range</CODE></B> <I>u1 u2 -&#62; dist</I><P>
<A NAME="IDX387"></A>
This table gives the maximum distance from self-unit <VAR>u1</VAR> at which
units of type <VAR>u2</VAR> can be controlled directly.  Units further away
always act on their own.  If this value is &#60; 0, then <VAR>u1</VAR> can never
directly control any other <VAR>u2</VAR> on the side.  Defaults to
<CODE>infinity</CODE>.

</P>



<H3><A NAME="SEC191" HREF="xcdesign_toc.html#SEC191">Limits on Unit Quantities</A></H3>

<P>
The effect of these is to prevent any extra units from being created or
from going over to a side, regardless of the reason.  This happens by
either preventing player actions that would result in exceeding a limit
(such as when building units), or by making the unit vanish instantly
(such as when capturing a unit).

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>units-in-game-max</CODE></B> <I>n</I><P>
<A NAME="IDX388"></A>
This variable is the maximum number of all types of units, on all sides,
including independents, that may exist at any time, including initially.
Defaults to <CODE>-1</CODE>, which means that there is no limit.

</P>
<P>
<U>GlobalVariable:</U> <B><CODE>units-per-side-max</CODE></B> <I>n</I><P>
<A NAME="IDX389"></A>
This variable is the maximum number of units (of all types together)
that any side may have, at any time.  Events that would cause the limit
to be exceeded, such as capturing a unit, result in either the unit
vanishing or becoming independent.  Defaults to <CODE>-1</CODE>, which means
that there is no limit.

</P>
<P>
There is no limit on the number of units that may be independent.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>type-in-game-max</CODE></B> <I>n</I><P>
<A NAME="IDX390"></A>
This property is the maximum total of the given type, for all sides
together.  Defaults to <CODE>-1</CODE>, which means that there is no limit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>type-per-side-max</CODE></B> <I>n</I><P>
<A NAME="IDX391"></A>
This property is the maximum number of units of the given type allowed
to each side.  Defaults to <CODE>-1</CODE>, which means that there is no
limit.

</P>



<H3><A NAME="SEC192" HREF="xcdesign_toc.html#SEC192">Hit Points</A></H3>

<P>
A unit's hit points determine how healthy it is.  If a unit's hp goes
below 1, it is either <STRONG>wrecked</STRONG>, meaning that it changes to a new
type <CODE>wrecked-type</CODE> or else it <STRONG>vanishes</STRONG>, meaning that it is
completely cleared from the world.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>hp-max</CODE></B> <I>n</I><P>
<A NAME="IDX392"></A>
This property is the maximum number of hit points for (each part of) a
unit.  Completed units start with this many hit points.  Defaults to
<CODE>1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>parts-max</CODE></B> <I>n</I><P>
<A NAME="IDX393"></A>
This property declares that a unit is really an aggregate of <VAR>n</VAR>
smaller identical units.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>destruction-result</CODE></B> <I>list</I><P>
<A NAME="IDX394"></A>
This property contains a weighted list, <VAR>list</VAR>, of possible destruction 
special outcomes, which are considered before deciding what to do with a 
destroyed unit. 
Defaults to <CODE>nil</CODE>.
If <CODE>nil</CODE> then the normal outcome is used.
Possible outcomes: <CODE>vanish</CODE> and <CODE>table</CODE>.
The <CODE>vanish</CODE> outcome means that the unit will simply disappear no 
matter what would normally happen to it.
The <CODE>table</CODE> outcome means determine the normal outcome by using any 
table lookups, etc....

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>wrecked-type</CODE></B> <I>unit-type</I><P>
<A NAME="IDX395"></A>
This property is the type of unit that a unit with 0 hp will become.
For instance, a destroyed "fort" might become a "rubble pile" unit.
If its value is <CODE>non-unit</CODE>, then the destroyed unit just vanishes.
The <CODE>wrecked-type</CODE> of a type must be a different type.
Defaults to <CODE>non-unit</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>wrecked-type-if-killed</CODE></B> <I>u1 u2 -&#62; u3</I><P>
<A NAME="IDX396"></A>
If an unit of type <VAR>u1</VAR> is killed by an unit of type <VAR>u2</VAR>, then 
make the wreck of <VAR>u1</VAR> be an unit of type <VAR>u3</VAR>.
Defaults to <CODE>non-unit</CODE>, which means that the value of 
<CODE>wrecked-type</CODE> will be used instead.
Overrides the value of <CODE>wrecked-type</CODE> if set to something other than 
<CODE>non-unit</CODE>.

</P>
<P>
<U>TableUM:</U> <B><CODE>wrecked-type-if-starved</CODE></B> <I>u1 m -&#62; u3</I><P>
<A NAME="IDX397"></A>
If an unit of type <VAR>u1</VAR> starves to death for lack of a material of 
type <VAR>m</VAR>, then make the wrecked unit type be <VAR>u3</VAR>.
Defaults to <CODE>non-unit</CODE>, which means that the value of 
<CODE>wrecked-type</CODE> will be used instead.
Overrides the value of <CODE>wrecked-type</CODE> if set to something other than 
<CODE>non-unit</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>wrecked-type-if-attrited</CODE></B> <I>u1 t -&#62; u3</I><P>
<A NAME="IDX398"></A>
If an unit of type <VAR>u1</VAR> dies from attrition due to a hostile terrain 
of type <VAR>t</VAR>, then make the wrecked type be <VAR>u3</VAR>.
Defaults to <CODE>non-unit</CODE>, which means that the value of 
<CODE>wrecked-type</CODE> will be used instead.
Overrides the value of <CODE>wrecked-type</CODE> if set to something other than 
<CODE>non-unit</CODE>.

</P>
<P>
The transformation to the wrecked type does not change position or name.
The transformed unit has full hp, supplies are conserved as much as
possible (any excess is destroyed), tooling is preserved, and any unit
plan is erased.  It has the same number of parts, or as many as possible
if that is fewer.  It may be that the wrecked type is on terrain that it
cannot survive on; in that case, it will be wrecked again, repeating
until the unit either vanishes or is in a viable position, or this
process has been repeated more times than the number of unit types
(prevents infinite loops).  Any excess occupants will be removed and
either placed in another nearby unit or in the open, or will vanish if
there is no other option.

</P>



<H3><A NAME="SEC193" HREF="xcdesign_toc.html#SEC193">Experience</A></H3>

<P>
<U>UnitTypeProperty:</U> <B><CODE>cxp-max</CODE></B> <I>cxp</I><P>
<A NAME="IDX399"></A>
This property is the maximum combat experience this type of unit can have.

</P>



<H3><A NAME="SEC194" HREF="xcdesign_toc.html#SEC194">Tech Levels vs Units</A></H3>

<P>
Before it can do anything with a type of unit, the side must have the
appropriate tech level for that type, which is just a number ranging
from 0 up to <CODE>tech-level-max</CODE>.  Each type has a distinct tech
level.

</P>
<P>
Tech levels always increase (since they represent abstract knowledge
rather than physical plant).  Tech can be transferred freely to any
other side via the message <CODE>tech</CODE> [xref to messages].

</P>
<P>
For each unit type, the following parameters define the minimum tech
levels at which sides can do various things.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-to-see</CODE></B> <I>tl</I><P>
<A NAME="IDX400"></A>
This property is the minimum tech level that a side must have before it
can see a unit of this type.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-to-own</CODE></B> <I>tl</I><P>
<A NAME="IDX401"></A>
This property is the minimum tech level that a side must have in order
to have a unit of this type.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-from-ownership</CODE></B> <I>tl</I><P>
<A NAME="IDX402"></A>
This property is the tech level that may be reached by acquiring a unit
of this type.  Since this is expressed as a minimum, multiple
acquisitions have no additional effect.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-to-use</CODE></B> <I>tl</I><P>
<A NAME="IDX403"></A>
This property is the minimum tech level that a side must have in order
to give actions to this type of unit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-to-build</CODE></B> <I>tl</I><P>
<A NAME="IDX404"></A>
This property is the minimum tech level that a side must have in order
to build this type of unit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-max</CODE></B> <I>tl</I><P>
<A NAME="IDX405"></A>
This property is the absolute maximum tech level possible for this type.

</P>
<P>
<U>TableUU:</U> <B><CODE>tech-crossover</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX406"></A>
This table is the minimum tech level for <VAR>u2</VAR> that is guaranteed by
a particular tech level for <VAR>u1</VAR>, expressed as a percentage of the
<CODE>tech-max</CODE> for the types.  For instance, if <CODE>tech-crossover</CODE>
is 80, and the tech level for <VAR>u1</VAR> is 10 out of a max of 20, and the
max for <VAR>u2</VAR> is also 20, then the side has a tech for <VAR>u2</VAR> at
least 8.

</P>
<P>
It is possible to gain some tech level just by being in the same game
with a side that is more advanced.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>tech-leakage</CODE></B> <I>.01tl</I><P>
<A NAME="IDX407"></A>
This property is the amount of tech level gain per turn that can happen
to any side's tech level that is less than the max of all sides in the
game.  This only happens if at least one unit on the side has nonzero
coverage of a unit on a more advanced side.

</P>



<H3><A NAME="SEC195" HREF="xcdesign_toc.html#SEC195">Opinions</A></H3>

<P>
<U>UnitTypeProperty:</U> <B><CODE>opinion-min</CODE></B> <I>n</I><P>
<A NAME="IDX408"></A>
<U>UnitTypeProperty:</U> <B><CODE>opinion-max</CODE></B> <I>n</I><P>
<A NAME="IDX409"></A>
These properties are the bounds of the strength of a unit's opinion
about the sides, both other sides and its own.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>courage-min</CODE></B> <I>n</I><P>
<A NAME="IDX410"></A>
<U>UnitTypeProperty:</U> <B><CODE>courage-max</CODE></B> <I>n</I><P>
<A NAME="IDX411"></A>

</P>
<P>
Morale is similar to opinion; it reflects the unit's opinion about
itself.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>morale-max</CODE></B> <I>n</I><P>
<A NAME="IDX412"></A>
This property is the maximum morale that the unit may have.

</P>
<P>
<U>TableUT:</U> <B><CODE>morale-terrain-effect</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX413"></A>
This table is the effect of the terrain at a unit's location on its
morale.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>morale-recovery</CODE></B> <I>.01n</I><P>
<A NAME="IDX414"></A>
This property is the amount of morale increase for a unit each turn, in
1/100ths of a point of morale.  Defaults to <CODE>0</CODE>.

</P>



<H3><A NAME="SEC196" HREF="xcdesign_toc.html#SEC196">Point Value</A></H3>

<P>
Point values provide an abstract way to characterize the overall
importance of a unit type.  Point values figure into some scorekeepers,
and are used by AIs.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>point-value</CODE></B> <I>n</I><P>
<A NAME="IDX415"></A>
This property is the "value" of a unit.  Defaults to <CODE>1</CODE>.

</P>



<H3><A NAME="SEC197" HREF="xcdesign_toc.html#SEC197">Advanced Units</A></H3>

<P>
Advanced units have an additional set of behaviors and functions; they
are most like the cities in civilization-building games.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>advanced</CODE></B> <I>t/f</I><P>
<A NAME="IDX416"></A>
This property is true if the type is an advanced type.

</P>
<P>
<U>TableUA:</U> <B><CODE>size-limit-without-advance</CODE></B> <I>u a -&#62; n</I><P>
<A NAME="IDX417"></A>
This table indicates the maximum size of a unit of type <VAR>u</VAR> if the
advance <VAR>a</VAR> has not been achieved.  Defaults to a large number.

</P>
<P>
<U>TableUU:</U> <B><CODE>size-limit-without-occupant</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX418"></A>
This table indicates the maximum size of a unit of type <VAR>u1</VAR> if a
unit of type <VAR>u2</VAR> is not an occupant.  Defaults to a large number.

</P>
<P>
<U>TableUM:</U> <B><CODE>unit-consumption-per-size</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX419"></A>

</P>
<P>
<U>TableUM:</U> <B><CODE>unit-consumption-to-grow</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX420"></A>

</P>

<P>
Advanced units may use cells around them for production.

</P>
<P>
<U>TableTM:</U> <B><CODE>production-from-terrain</CODE></B> <I>t m -&#62; n</I><P>
<A NAME="IDX421"></A>
This table defines how much production an advanced unit gains by using a
cell for production.  This production is actually done by the unit, and the
results are added directly to the unit's store of material; it is separate
from backdrop production by cells through <CODE>terrain-production</CODE>, which
adds to the cells' own material stores.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>reach</CODE></B> <I>n</I><P>
<A NAME="IDX422"></A>
This property is the radius out to which an advanced unit type may use
the terrain for production.

</P>
<P>
<U>UnitProperty:</U> <B><CODE>reach</CODE></B> <I>n</I><P>
<A NAME="IDX423"></A>
This property is the radius out to which an advanced unit may use the
terrain for production.  (This is always the same as the type property
currently.)

</P>
<P>
<U>UnitProperty:</U> <B><CODE>size</CODE></B> <I>n</I><P>
<A NAME="IDX424"></A>
This property is the size of the advanced unit.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>use-own-cell</CODE></B> <I>t/f</I><P>
<A NAME="IDX425"></A>
If true, then the advanced unit type automatically uses the cell it is
sitting on.

</P>
<P>
<U>TableUA:</U> <B><CODE>advance-add-maxcells</CODE></B> <I>u a -&#62; n</I><P>
<A NAME="IDX426"></A>
This is the number of additional cells that the unit can use for
production if its side has the advance.

</P>
<P>
<U>TableUA:</U> <B><CODE>advance-mult-maxcells</CODE></B> <I>u a -&#62; n</I><P>
<A NAME="IDX427"></A>
This is the percentage multiplier for the additional cells that the unit
can use for production if its side has the advance.  Defaults to
<CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occ-add-maxcells</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX428"></A>
This is the number of additional cells that each occupant of type
<VAR>u2</VAR> adds to a unit of type <VAR>u1</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occ-multiply-maxcells</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX429"></A>
This is the percentage by which each occupant of type <VAR>u2</VAR> multiples
the production cells of a unit of type <VAR>u1</VAR>.  Defaults to
<CODE>100</CODE>.

</P>
<P>
<U>UnitProperty:</U> <B><CODE>usedcells</CODE></B> <I>n</I><P>
<A NAME="IDX430"></A>
This is a cache of the number of cells used by an advanced unit.

</P>
<P>
<U>UnitProperty:</U> <B><CODE>maxcells</CODE></B> <I>n</I><P>
<A NAME="IDX431"></A>
This is a cache of the maximum number of cells available to an advanced
unit.

</P>
<P>
<U>TableUA:</U> <B><CODE>advance-add-production</CODE></B> <I>u a -&#62; n</I><P>
<A NAME="IDX432"></A>
This is the amount of additional production available to the unit if its
side has the advance.

</P>
<P>
<U>TableUA:</U> <B><CODE>advance-multiply-production</CODE></B> <I>u a -&#62; n</I><P>
<A NAME="IDX433"></A>
This is the percentage by which an advance multiplies the production
of the unit.  Defaults to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-add-production</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX434"></A>
This is the amount of additional production available to the unit
of type <VAR>u1</VAR> due to each occupant of type <VAR>u2</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-multiply-production</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX435"></A>
This is the percentage by which each occupant of type <VAR>u2</VAR>
multiplies the production of a unit of type <VAR>u1</VAR>.  Defaults to
<CODE>100</CODE>.

</P>
<P>
Materials produced by advanced units may be automatically converted
into other types, in proportions decided by the player.

</P>
<P>
<U>TableMM:</U> <B><CODE>conversion</CODE></B> <I>m1 m2 -&#62; n</I><P>
<A NAME="IDX436"></A>
Values greater than zero in this table indicate that produced materials
of type <VAR>m1</VAR> can become materials of type <VAR>m2</VAR>.

</P>
<P>
<U>TableMM:</U> <B><CODE>conversion-default</CODE></B> <I>m1 m2 -&#62; n</I><P>
<A NAME="IDX437"></A>
This table is the default conversion rate of material of type <VAR>m1</VAR>
into a material of type <VAR>m2</VAR>.

</P>

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