All orders have a priority of 0-4.
admit
, hostile
, etc.) are priority 0.
wait
, are
priority 1.
move
and fly
are priority 2.
sail
command is priority 4.
The order scheduler will first try to start all priority 1 orders. Only when no more priority 1 orders are ready to start will a priority 2 order be started.
In other words, the order scheduler will not start an order at a higher priority when an order may be started at a lower priority.
Orders at the same priority are resolved in location order. If two
units in a location are both waiting to start a move
order, the first
unit in the location will go first.
The above description of order priorities may seem complicated, but the
intent is to let players ignore same-day synchronization issues in most
cases. Rather that needing wait
to guarantee that give
happens
before move
, the lower priority of give
makes this happen
naturally.
For example, consider three units stacked together, top, mid and bot:
top: move ec69 yew mid: unstack recruit bot: recruit
These should be executed in the following order:
mid: unstack # unstack is prio-1 top: move ec69 # move is prio-2 mid: recruit # recruit is prio-3 [top and bot arrive at ec69] top: yew # yew is prio-3 bot: recruit # recruit is prio-3
The unstack
happened first since it's a priority 1 command. The
move
went second. When top and bot finished moving, there were
only priority three commands left, so they ran in location order.
[1] A zero time command is an order which always takes zero time. This does not include an order which may sometimes take zero time. For instance,
Order precedence within a location is an advantage for commands or skill
uses which obtain resources from the location. For instance, if Candide
and Osswid both attempted to harvest all of the lumber available in
their location, Candide would have precedence, since his harvest order
would finish before Osswid's, if they were started on the same day.
No two things ever happen at exactly the same instant in Olympia.
Someone always goes first.
Suppose two characters were outside of a building (which nobody is
inside), and both wanted to enter, to claim it:
Both Osswid and Candid issue `
Osswid's command begins before Candide's, since Osswid appears before
Candid in the location list. Therefore, Osswid will enter the inn
first.
Order precedence between units in different provinces is undefined.
If Osswid and Candide both leave for city B on the same day, we cannot
predict who will get their first.
unstack
is always a zero time order. However, recruit
is not, even though recruit
may terminate immediately under some conditions.
Command precedence within a location
Seen here:
Candide [1269]
Osswid [5499]
Feasel the Wicked [1109]
At the same time ...
Seen here:
Osswid [5499]
Candide [1269]
Inner locations:
Hooting Own Inn [ep76], inn
' as their first
order on day 1 of the month. What happens?
move
ep76
Osswid ? Candide
------- 8 days -------- 8 days --------
city A city B city C