Designing Games with Xconq - Vision

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

## Vision

The parameters in this section define how sides get information about the world, units, and other sides.

- Basic Vision
- Line of Sight
- Tracking
- Spying

### Basic Vision

GlobalVariable: `see-all` t/f

This variable is `true` if everything in the world, units, terrain, etc, is always visible at all times, including initially. It takes precedence over all other visibility and spying parameters. Defaults to `false`.

GlobalVariable: `see-terrain-always` t/f

If this variable is `true`, then any side that has seen the terrain of a cell will be informed if that terrain ever changes. Defaults to `true`.

UnitTypeProperty: `see-always` t/f

This property is `true` when a unit is always visible after it has been seen once, so that side changes, movements, etc will be seen forever afterwards. If the unit moves into terrain that has not been seen, then that terrain also becomes seen as well. Defaults to `false`.

UnitTypeProperty: `see-occupants` t/f

This property is `true` when a unit's occupants are also seen whenever the unit itself is under observation. Defaults to `false`.

UnitTypeProperty: `spot-action` t/f

If this property is `true`, then the unit's chance to be seen by other sides will be tested each time the unit acts in any way. This property is in addition to the check at the beginning of each turn. Defaults to `true`.

The people in a cell effectively view (for their side) all units in that cell. Some units can hide from the people.

TableUM: `people-see-chance` u m -> n%

This table is the chance that the people of the given type m will see a unit of type u. This will be evaluated for each people type individually, once at the beginning of each turn, and once for each populated cell that the unit enters during the turn. Defaults to `100`.

UnitTypeProperty: `vision-range` dist

This property is the maximum range of vision coverage by the unit. A value of `-1` disables all vision, `0` means only units in the same cell may be seen, and `1` means units in adjacent cells may be seen. Defaults to `1`.

TableUU: `see-chance-at` u1 u2 -> n%

This table is the chance that a unit u1 will see another sides's unit of type u2 when both are in the same cell. Defaults to `100`.

TableUU: `see-chance-adjacent` u1 u2 -> n%

This table is the chance that a unit u1 will see another sides's unit of type u2 when the two are in adjacent cells. Defaults to `100`.

TableUU: `see-chance` u1 u2 -> n%

This table is the base chance that a unit u1 will see a unit u2 in cells at distance 2 or greater. Defaults to `100`.

TableUT: `visibility` u t -> n

This table is the effect of terrain t on a unit u's chances of being seen. Values less than 100 are reduced visibility, values greater than 100 increase the unit's chances to be seen. Defaults to `100`.

TableUT: `vision-night-effect` u t -> n

This table is the multiplier for unit u's vision at night in each type of terrain t. Effect is to multiply with both vision range and see-chance. Defaults to `100`.

TableTM: `see-material-always` t m -> t/f

Defaults to `true`.

GlobalVariable: `see-weather-always` t/f

If true, then weather changes (in cells that have been seen) will always be reported. Defaults to `true`.

TableUU: `see-mistake-chance` u1 u2 -> .01n%

This is the chance that a unit of type u1 will see a unit of type u2 as some other type. The type of unit seen instead is determined by the table `looks-like`.

TableUU: `looks-like` u1 u2 -> n

This table is the set of weights indicating which type u2 a unit of type u1 is most likely to be mistaken for. When a unit makes a viewing mistake, then the program adds up all the weights and chooses randomly according to weight. Defaults to `0`, which means that u2 never looks like u1.

### Line of Sight

UnitTypeProperty: `vision-bend` n

This property is the amount by which a unit can see "around corners". 0 means that vision is strictly line-of-sight, while 100 means that elevations never obstruct vision. Defaults to `100`.

TableUT: `eye-height` u t -> elev

This property is the additional elevation above the unit's position that a unit can see with, when in the given terrain.

TableUT: `body-height` u t -> elev

This property is the effective height of the main visible part of a unit, when in the given terrain.

TerrainTypeProperty: `thickness` elev

This property is the thickness of the terrain, which is the difference between the "ground" of the terrain and its top.

### Tracking

When is unit is being tracked, then the sides doing the tracking can see the unit move around, even if the cell is not being covered by any of the sides' own units. If this is enabled, then particular units enable tracking, and the chance of losing track depends on the terrain.

TableUU: `track-chance` u1 u2 -> .01n%

This table gives the chance that u1's side will be able to track a unit of type u2 that is within range (same or adjacent cell).

TableUT: `lose-track-chance` u t -> .01n%

This table gives the chance that each side tracking a unit will lose that track when the unit enters terrain of type t.

### Spying

A unit type can also be specified to do spying automatically. The outcome of spying is calculated once/unit/turn, at the beginning of the turn (after move calculation but before any players can do anything). Spying can happen to any unit not on the spying unit's side.

UnitTypeProperty: `spy-chance` .01n%

This property is the chance that the unit will be successful at spying.

UnitTypeProperty: `spy-range` dist

This property is the maximum distance at which the unit will find out something by spying.

TableUU: `spy-quality` u1 u2 -> n%

This table gives the chance that u1's spying will return information about a unit of type u2 that is within the spying range. Defaults to `100`.

TableUU: `spy-track-chance` u1 u2 -> .01n%

This table is the chance that if u1's spies return information about a unit of type u2, the unit will also become tracked by the spy's side.

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