Sophie

Sophie

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

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


<H2><A NAME="SEC205" HREF="xcdesign_toc.html#SEC205">Static Relationships Between Types</A></H2>

<P>
In general, static relationships are those that must always hold during
a turn.  <I>Xconq</I> will usually only test these when necessary, but this
is up to the implementation.  From the players' and designers' point of
view, these relationships can never be violated, even temporarily.

</P>

<UL>
<LI><A HREF="xcdesign_44.html#SEC206">Occupants and Transports</A>
<LI><A HREF="xcdesign_44.html#SEC207">Units and Terrain</A>
<LI><A HREF="xcdesign_44.html#SEC208">Units and Materials</A>
<LI><A HREF="xcdesign_44.html#SEC209">Terrain and Materials</A>
<LI><A HREF="xcdesign_44.html#SEC210">Units and Advances</A>
</UL>



<H3><A NAME="SEC206" HREF="xcdesign_toc.html#SEC206">Occupants and Transports</A></H3>

<P>
A unit inside another unit is an "occupant" in a "transport", even
if the "transport" can never move.  There are two kinds of capacity.
Generic capacity is shared by all different types, while guaranteed
capacity is for a particular type only.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>capacity</CODE></B> <I>n</I><P>
<A NAME="IDX480"></A>
This property is the limit on the sum of sizes of units that may occupy
this type of unit, not counting the exclusive capacities.

</P>
<P>
<U>TableUU:</U> <B><CODE>unit-size-as-occupant</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX481"></A>
This table is the "size" of a (full-sized) unit <VAR>u1</VAR> when it is in
a transport <VAR>u2</VAR>.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>unit-capacity-x</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX482"></A>
This table is the number of units of type <VAR>u2</VAR> that are guaranteed a
place in a unit of type <VAR>u1</VAR>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-max</CODE></B> <I>u1 u2 -&#62; n</I><P>
<A NAME="IDX483"></A>
This table is the upper limit on the number of occupants of this type
(not counting <CODE>unit-capacity-x</CODE>).

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>occupant-total-max</CODE></B> <I>n</I><P>
<A NAME="IDX484"></A>
This property is the upper limit on occupants of all types together.
Defaults to <CODE>-1</CODE>, which allows unlimited occupancy.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>mobile-total-max</CODE></B> <I>n</I><P>
<A NAME="IDX485"></A>
This property is the upper limit on the number of mobile units (speed &#62;
0) allowed as occupants.  Defaults to <CODE>-1</CODE>, which allows unlimited
occupancy.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>facility-total-max</CODE></B> <I>n</I><P>
<A NAME="IDX486"></A>
This property is the upper limit on the number of facility units
(<CODE>facility</CODE> is true) allowed as occupants.  Defaults to <CODE>-1</CODE>,
which allows unlimited occupancy.

</P>
<P>
Some incomplete units have occupancies for other units, while other
incomplete units must be completed before any other units may be in them.

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

</P>
<P>
A unit that is an occupant may not always have the same capabilities
as when it is out in the open.  Its vision, combat, construction, and
capacity may be affected.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-vision</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX488"></A>
This is the effect on <VAR>u1</VAR>'s vision of being an occupant in a unit
of type <VAR>u2</VAR>.  If the value is 0, then <VAR>u1</VAR> is completely blind
while an occupant.  Defaults to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-combat</CODE></B> <I>u1 u2 -&#62; n%</I><P>
<A NAME="IDX489"></A>
This table defines the effect on the combat abilities of a unit of type
<VAR>u1</VAR> when an occupant in a unit of type <VAR>u2</VAR>.  If <CODE>0</CODE>, then
the occupant cannot attack or fire.  Defaults to <CODE>100</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-can-construct</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX490"></A>
This table is <CODE>true</CODE> if <VAR>u1</VAR> can create or complete units while
an occupant of <VAR>u2</VAR>.  Defaults to <CODE>true</CODE>.

</P>
<P>
<U>TableUU:</U> <B><CODE>occupant-can-have-occupants</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX491"></A>
This table is <CODE>true</CODE> if <VAR>u1</VAR> can have occupants of its own
while an occupant of <VAR>u2</VAR>.  Defaults to <CODE>true</CODE>.<BR>
<I>This table is no longer available.</I>

</P>
<P>
<U>TableUU:</U> <B><CODE>can-recursively-wake</CODE></B> <I>u1 u2 -&#62; t/f</I><P>
<A NAME="IDX492"></A>
Determine whether a transport of type <VAR>u1</VAR> should wake an occupant 
of type <VAR>u2</VAR> when the transport is awakened for some reason.
Defaults to <CODE>true</CODE>.

</P>



<H3><A NAME="SEC207" HREF="xcdesign_toc.html#SEC207">Units and Terrain</A></H3>

<P>
This section describes relationships between units and terrain.  Units
can be set to disappear or be wrecked on particular types of terrain.
If the terrain can be occupied safely, there may be a limit on the
numbers of units that can be in the same cell.

</P>
<P>
<U>TableUT:</U> <B><CODE>vanishes-on</CODE></B> <I>u t -&#62; t/f</I><P>
<A NAME="IDX493"></A>
This table is <CODE>true</CODE> if a unit <VAR>u</VAR> will disappear instantly if
it somehow ends up on terrain of type <VAR>t</VAR>.  Defaults to
<CODE>false</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>wrecks-on</CODE></B> <I>u t -&#62; t/f</I><P>
<A NAME="IDX494"></A>
This table is <CODE>true</CODE> if a unit <VAR>u</VAR> will wreck instantly if it
somehow ends up on terrain of type <VAR>t</VAR>.  Defaults to <CODE>false</CODE>.

</P>
<P>
<U>TerrainTypeProperty:</U> <B><CODE>capacity</CODE></B> <I>n</I><P>
<A NAME="IDX495"></A>
This property is the limit on the sum of unit sizes that may share this
cell.  Defaults to <CODE>1</CODE>.

</P>
<P>
<U>TableUT:</U> <B><CODE>unit-size-in-terrain</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX496"></A>
This table is the "size" of a (full-sized) unit <VAR>u</VAR> when it is
in/on the terrain <VAR>t</VAR>.  Defaults to <CODE>1</CODE>.<BR>
NOTE: This is not the same as the size property of an advanced unit.<BR>
NOTE: As of Xconq 7.5, this property is ignored for connection terrain
types. Connectors (roads, for example) now refer to <VAR>u</VAR>'s size in the
terrain that contains the connector rather than <VAR>u</VAR>'s size in
connector <VAR>t</VAR>.<BR>
NOTE: If you wish to prevent a unit's entry into <VAR>t</VAR>, then use the
<CODE>mp-to-enter-terrain</CODE> table, and not this one. The implication of
using <CODE>unit-size-in-terrain</CODE> to prevent entry is that the unit will
not be able to enter any connectors in <VAR>t</VAR> if <VAR>n</VAR> is set too
large.

</P>
<P>
<U>TableUT:</U> <B><CODE>terrain-capacity-x</CODE></B> <I>u t -&#62; n</I><P>
<A NAME="IDX497"></A>
This table is the number of (full-sized) units of type <VAR>u</VAR> that are
guaranteed to have a place in the cell.

</P>
<P>
Note that the units' sides are irrelevant; the sizes of units of all
sides are added together.  Limits are calculated separately for the
connection and open terrain in a cell; however, it is possible for a
unit in a cell to override any capacity due to connections in that cell.

</P>
<P>
<U>TableUT:</U> <B><CODE>capacity-negation</CODE></B> <I>u t -&#62; t/f</I><P>
<A NAME="IDX498"></A>
Defaults to <CODE>false</CODE>.<BR> 
<I>This table is no longer available.</I>

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>stack-order</CODE></B> <I>n</I><P>
<A NAME="IDX499"></A>
This property is the relative position of this type of unit within a
stack of different units.  Larger values put units higher in the stack.
The exact values are unimportant, they are just used as sort keys.  The
use of this value is to ensure that particular types are "seen first"
when looking at a cell, so for instance if a truck and a city are
stacked on the same cell, everybody will see the city and not the truck.
The owner of these units can still see them.  If the stack-order of two
units is the same, then the higher-numbered type will be higher in the
stack.

</P>
<P>
There is a possible bizarrity with stacking limits and units that can't
see each other when in the same hex, namely that a player could be
prevented from moving a unit into a cell that looks like it has enough
room.

</P>



<H3><A NAME="SEC208" HREF="xcdesign_toc.html#SEC208">Units and Materials</A></H3>

<P>
Units can carry materials.

</P>
<P>
<U>TableUM:</U> <B><CODE>unit-storage-x</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX500"></A>
This table is the space reserved specifically for each type of material.

</P>
<P>
Materials that represent people may surrender to a unit in their cell.

</P>
<P>
<U>TableUT:</U> <B><CODE>people-surrender-chance</CODE></B> <I>u t -&#62; n%</I><P>
<A NAME="IDX501"></A>
This table is the base chance that people in terrain of type <VAR>t</VAR>
will change sides if a unit of type <VAR>u</VAR> is in their cell.

</P>
<P>
<U>TableUM:</U> <B><CODE>people-surrender-effect</CODE></B> <I>u m -&#62; n</I><P>
<A NAME="IDX502"></A>
This is a multiplier that takes the people type into account.  Defaults
to <CODE>100</CODE>.

</P>



<H3><A NAME="SEC209" HREF="xcdesign_toc.html#SEC209">Terrain and Materials</A></H3>

<P>
<U>TableTM:</U> <B><CODE>terrain-storage-x</CODE></B> <I>t m -&#62; n</I><P>
<A NAME="IDX503"></A>
This table is the maximum amount of a material <VAR>m</VAR> that may be
present in a cell with terrain <VAR>t</VAR>.

</P>



<H3><A NAME="SEC210" HREF="xcdesign_toc.html#SEC210">Units and Advances</A></H3>

<P>
<U>TableUA:</U> <B><CODE>advance-needed-to-build</CODE></B> <I>u a -&#62; t/f</I><P>
<A NAME="IDX504"></A>
This table is true whenever the side must have achieved advance <VAR>a</VAR>
before it can being to construct units of type <VAR>u</VAR>.

</P>
<P>
<U>UnitTypeProperty:</U> <B><CODE>obsolete</CODE></B> <I>a</I><P>
<A NAME="IDX505"></A>
This property is the type of advance that makes a unit obsolete, meaning
that units of that type may longer be constructed (existing units are
unaffected though).  Defaults to <CODE>non-advance</CODE>, meaning that the
unit type is never obsolete.

</P>

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