wait

Olympia: The Age of Gods PBEM (Oct 4 2000)

## `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:

alone | Wait until the noble is alone in a location, meaning that his stack is the only stack in the location. (See guild.)
clear | Wait until it is not foggy, windy or rainy.
day n | Wait until the day of the month is n, or later. For example, "wait day 15" waits until it is the 15th of the month or later.
turn n | Wait until it is turn n, or later.
ferry n | Wait for the ship n to sound its horn with the `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.
flag f [n] | Wait until noble n, or a noble belonging to player n, signals with flag f. n defaults to the player issuing the flag order. If n is zero, wait until any noble signals with flag f. See flag for more details
fog | Wait until it is foggy in the noble's province.
gold n | Wait until the noble has at least n gold
item n q | Wait until the noble has at least quantity q of item n
loc n | Wait until arrival at the given location.
not | Invert the sense of the following condition.
owner | Wait until the noble is the first noble in the location list.
rain | Wait until it is raining in the noble's province.
ship n | Wait until the specified ship arrives in port.
shiploc n | Many players have been bitten by using `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.
stack n | Wait until the noble and unit n are members of the same stack. Position within the stack is not important; The condition is true whenever n and the noble share a common stack leader.
time n | Wait for n days to elapse
top | Wait until the unit becomes a stack leader. This could happen if the units's current stack leader unstacked or promoted the unit.
unit n | Wait until the noble and the specified unit are in the same location
wind | Wait until it is windy in the noble's province.
teacher n | Wait until a source of specific instruction for the specified skill is available. This can be a book or a teacher. Note that if you wait for a subskill (e.g., 3401), this wait condition will not be satisfied by someone teaching the skill school (e.g., 3400).

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