Movement is the most common sort of action. This section covers movement over open terrain; the next section discusses interaction with transports.
The general theory of movement is that a unit not in a transport crosses its current cell terrain to the edge of the cell, crosses any border terrain, and then moves into the destination cell, OR it moves onto connection terrain, travels along connection terrain to the new cell, and maybe moves off the connection. If the unit starts in a transport, then the transport may ferry the unit over some of the intervening terrain, possibly as far as the unit's destination.
A unit's basic movement rate is defined by its speed, which is a ratio of the the unit's acp. A speed of 100% means that the unit can potentially enter as many cells as it has acp, while a speed of 20% means that the unit uses at least 5 acp to enter a cell.
Movement can only succeed if several conditions are met: the unit must be able to cross the border terrain, the destination must be inside the world (but see below), it must be able to exist on the terrain of the destination.
ActionType: move
x y z
This is the action that a unit performs to go from one location to another.
The destination must be within the move-range
of the unit.
UnitTypeProperty: acp-to-move
acp
This property is the number of acp a unit uses to do one move action.
Defaults to 1
.
UnitTypeProperty: speed
n
This property is the basic multiplier relating acp to the number
of cells that may be entered during a turn.
Defaults to 100
.
UnitTypeProperty: speed-damage-effect
list...
Table: speed-occupant-effect
u1 u2 -> n%
This table is the percent change in the speed
of type u1 for each occupant of type u2.
If the basic speed of u1 is 0
,
then the multiplication is performed
as if the speed were 1
instead.
Defaults to 100
.
UnitTypeProperty: speed-wind-effect
xxx
UnitTypeProperty: speed-wind-angle-effect
xxx
UnitTypeProperty: speed-min
mp
This property is the worst-case speed of a unit.
Defaults to 0
.
UnitTypeProperty: speed-max
mp
This property is the upper bound on a unit's movement in one turn.
Defaults to 0
.
UnitTypeProperty: move-range
n
This property is the maximum distance allowed to the destination cell.
Defaults to 1
.
The product of a unit's acp and its speed is its available movement points. Any move between cells will cost at least one movement point. Some mp costs may be negative, but the total mp for a move will always be at least 1.
Table: mp-to-leave-terrain
u t -> mp
This table is the mp cost to leave a cell of type t.
If t is a border type, this cost is never used.
If t is a connection type, this cost is the cost of leaving the
connection terrain for the open terrain of the cell.
If t is a coating type, then this value adds to the cost
of leaving the cell.
Defaults to 0
.
Table: mp-to-enter-terrain
u t -> mp
This table is the mp cost to enter a cell of type t.
If t is a border type, this cost is the
cost of crossing the border.
If t is a connection type, this cost is the cost of entering the
connection terrain from the open terrain of the cell.
If t is a coating type, then this value adds to the cost
of entering the cell.
Defaults to 1
.
Table: mp-to-traverse
u t -> mp
This table gives the cost to travel along a connection or border of the given type. (note that the other costs are irrelevant if unit starts and ends its movement on the connection).
A special type of move known as a border slide can occur when the endpoints of a border touch on the start and destination cells. Sliding works like normal movement that happens to end up on a nonadjacent cell. Same rules for permissibility apply. If the value is negative, then border sliding is not possible.
Defaults to 1
.
If both enter/traverse/leave and enter/leave movement is possible, then Xconq will automatically choose the cheapest alternative.
Each unit type has a range of altitudes within which it normally operates.
Table: altitude-min
u t -> n
This table is the minimum altitude possible for each type of unit
on each type of terrain.
Defaults to 0
.
Table: altitude-max
u t -> n
This table is the maximum altitude possible for each type of unit
on each type of terrain.
Defaults to 0
.
UnitTypeProperty: mp-to-leave-world
mp
This property is an additional move cost to leave the world entirely.
To leave, the unit must be within its move-range
of an edge,
and have sufficient mp to move into the terrain in the edge cell
designated as the destination of the move.
If the value is -1
, then the unit may never leave.
Defaults to -1
.
UnitTypeProperty: free-mp
mp
This property is the amount by which the move points can "go into the red"
and still allow one more move.
Defaults to 0
.
ZOC is exerted only over units out in the open, has no effect on occupants,
unless they leave their transport.
Occupants can themselves exert a ZOC,
if occupant-can-fight
is true.
ZOC applies to all units on a hostile side.
Table: zoc-range
u1 u2 -> dist
This table is the maximum distance at which type u1
exerts a ZOC over type u2.
A value of 0
means that the unit controls only its own cell,
and a value of -1
means that the unit does not exert a ZOC at all.
Defaults to 0
.
Table: zoc-into-terrain
u t -> t/f
This table is true
if the unit exerts its ZOC into terrain t.
Defaults to true
.
Table: zoc-from-terrain-effect
u t -> n
Table: mp-to-enter-zoc
u1 u2 -> mp
This table specifies extra movement points needed to enter the ZOC.
-1
prevents entry entirely.
Defaults to -1
.
Table: mp-to-leave-zoc
u1 u2 -> mp
This table specifies extra movement points needed to leave the ZOC.
-1
prevents departure entirely.
Defaults to 0
.
Table: mp-to-traverse-zoc
u1 u2 -> mp
This table specifies extra movement points needed to move within the ZOC.
-1
prevents traversing entirely.
Defaults to 0
.
If multiple units exert a ZOC into the same cell, then the mp cost is the maximum of the different ZOC costs.
Units may use up some of their materials when they move. Consumption happens after the move action, and only for successful moves.
Table: material-to-move
u m -> n
This table is the amount of each material that a unit of type u
must have in order to be able to move.
Defaults to 0
.
Table: consumption-per-move
u m -> n
This table is the amount of each material used by a unit to do one move action.
The amount taken is independent of terrain.
If the unit has less than the required amount of any of these materials,
it is immobilized until it gets more (this is tested before each move
action; note that this does not affect any other action, including
entering and leaving transports).
Defaults to 0
.