Designing Games with Xconq - Types in General

Go to the first, previous, next, last section, table of contents.

## Types in General

Types are the foundation of Xconq game designs. Nearly all the rules and game parameters are associated with the unit, material, terrain, and advance types. There is no sort of type hierarchy; instead, most forms allow sets of types to be used in the place of single types.

Each type has an index associated with it, starting from 0. This index never appears directly, and cannot be set. This does mean that types have an order, so the order in which types are defined is sometimes significant. These cases will be noted. The order is always the order in which the types appear in the file.

- Type Names
- Type Images
- Documentation

### Type Names

The names of types need not be distinct from each other, but you run the risk of player confusion if they share names.

TypeProperty: `name` string

This property is the specific name of the type. This name will be displayed to players; the exact format is up to the interface, but will typically depend on the name's length and the space available in the display. If no type names have been defined, the internal type name (see below) will be used. Defaults to `""`.

TypeProperty: `long-name` string

This property is a fully spelled-out name for the type. Defaults to `""`. (At present, this property is only defined for unit types.)

TypeProperty: `short-name` string

This property is an abbreviated name of for the type. Defaults to `""`. (At present, this property is only defined for unit types.)

TypeProperty: `generic-name` string

This property is like `name`, but identifies the type less specifically, and several types may have the same generic name. If no generic names are defined, then the regular type names will be used. This is useful when making abbreviated lists, so that related types get counted together. Defaults to `""`. (At present, this property is only defined for unit types.)

As an example of the distinction between type names and generic type name, the names of a automobile type might be `"1965 Mustang"`, `"Mustang"`, and `"M"`, while the generic name is `"auto"`. Then the interface could choose to display a parking lot as containing either `"4 auto"` or `"2 Mustang 1 Edsel 1 Jeep"`.

Note that names specified as properties are strings only, and are not defined as evaluable symbols.

### Type Images

The interpretation of these properties is entirely up to each interface; see the appropriate interface documentation for details.

TypeProperty: `image-name` str

This property is the name of the type's image. If undefined or unusable for some reason, the interface will display the type in some default manner, such as a solid-color square or a string.

For example, in X11, the name might be the name of a file in the usual bitmap format, as produced by the bitmap program. The actual file name is produced by appending `".b"`. (The situation in X is actually more complicated than this.) See the interface documentation for details on how the interface uses the image.

TypeProperty: `char` str

This property supplies a single character for this type (all characters after the first one in str are ignored). Defaults to `""`. (This property is not defined for advance types.)

UnitTypeProperty: `generic-char` str

This property supplies a single generic character for this type (all characters after the first one in str are ignored). If defined, displays will use the generic character in preference to the `char` for the unit type, in contexts where the exact type is not important (such as in lists of occupant types). Defaults to `""`. (This property is only defined for unit types.)

### Documentation

TypeProperty: `help` string

This property is a brief (preferably one-line) description of the type. Defaults to `""`.

TypeProperty: `notes` strings...

This property is detailed documentation about the type. The formatting of the strings is up to the interface, but in general each string is a separate line, the string `""` indicates a line break, and two `""` in a row indicates a paragraph break. Defaults to `()`.

Go to the first, previous, next, last section, table of contents.