<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 -> 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 -> 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 -> 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 > 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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 -> 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>