wait
wait
conditions
* time: varies
* priority: 1
Wait for one of the the specified conditions to occur. The first condition which is satisfied will cause the wait command to terminate. If one of the specified wait conditions is true when the wait order is issued, no wait will take place, and the order will complete in zero time.
The following conditions may be waited on:
ferry
order.
Units waiting to board
a ferry should use wait ferry
instead of wait ship
. This will allow passengers on the ship
time to disembark. When passenger unloaded is complete, the captain
will sound the ship's horn, and those wishing to board
may
proceed.
Otherwise, those waiting to board may try to get on the ship before the
current load of passengers has left, causing board
orders to fail
because of ship weight limits.
wait loc
while they're on a
ship to wait for the ship's arrival at a particular port. Don't do this!
wait loc
waits for the noble to arrive at a particular location. If
the noble is on a ship, the ship is the location the noble is in, not
the ship's location.
Use wait shiploc
to wait for the ship's arrival at a particular
place.
For example:
1: > wait time 1 1: Wait finished: one day has passed. 2: > wait time 10 day 5 5: Wait finished: today is day 5.
The first condition to become true will end the wait. This can be used to specify the maximum amount of time that the character will wait for something.
For instance, suppose we want to wait for [5499] to show up, but we don't want to wait past day 15.
> wait unit 5499 day 15
This order will finish on day 15 or as soon as 5499 shows up, which ever comes first. If 5499 is already here when the order is issued, no wait will take place. Likewise, if it is already past day 15, no wait will take place.
Keep in mind that the order priority mechanism eliminates the need to use waits in many cases. Consider synchronization in the following example:
Feasel [502] arrives at Osswid's [5499] location. Feasel gives Osswid some gold, and then leaves. Osswid departs after receiving the gold.
unit 502 # Feasel move ... pay 5499 100 move ... unit 5499 # Osswid wait unit 502 move ...
The orders above will work; no additional waits are needed. After the
wait unit
becomes true, both 502's pay
and 5499's
move
are ready to execute. Since pay
has a lower priority
than move
, pay
will happen first.
This technique also works with stack
and give
, since they
also have a lower priority than move
.
The NOT keyword inverts the sense of the condition which follows. For example:
> wait not rain time 7
Will wait until it is not raining, or for seven days, whichever comes first.
> wait not rain not wind
Will wait until it is not raining or not windy.