|
The Movement Pipeline
The Two-Pass Movement Algorithm
The Movement Pipeline
Questions
How do movement-changing spell effects interact with
each other?
Moonwalks
Why is it called a moonwalk?
Why do moonwalks happen?
Show me an easy diagram of a moonwalk!
How can I create a moonwalk in general?
The Flying Leap Deck
The Two-Pass Movement Algorithm. Sanctum
uses a two-pass movement algorithm.
- Overstacking. All groups move without regard to the normal
stacking limit of 1 group per square. Each square can have any number
of groups, friendly or enemy. This pass is not animated, so you
can't see it.
- Unstacking (overstack resolution). All groups in a square vote
for exactly 1 winner. That group wins the square. All other groups
join it, if they can, or bounce back, if they can't. Each group animates its
result.
At the end of movement execution, the stacking limit is restored for all squares.
The Movement Pipeline. This pipeline is applied
to all groups, in the following order:
- All of the initiative player's player-controlled groups.
- All of the initiative player's computer-controlled groups.
- All of the non-initiative player's player-controlled groups.
- All of the non-initiative player's computer-controlled groups.
- All of the neutral player's groups. (These are all computer-controlled.)
|
#
|
Sub-Phase
|
Effect
|
|
i
|
Checking
|
For each group with a move order, check all of the following.
- If it can move. Some spells prevent moving.
- If it can exit its current square.
- If it can enter its destination square.
- The destination square must be empty, or have a friendly group (of
any type).
If any of these fail, the group bounces (stands still).
|
|
ii
|
Overstacking
|
All groups move into their destination
squares, ignoring the normal stacking limit. This is not animated.
|
|
iii
|
Voting
|
For each square, all groups in the square vote for exactly
1 winner. (If there is only 1 group in the square, it wins
the square trivially.) Ties are broken in the following order:
- Stationary group. A group that started the turn in this square,
and didn't move, beats everybody.
- Initiative. The groups belonging to the player with higher
initiative wins. (So the neutral player's groups beat all of the non-initiative
player's groups.)
- Largest group. The group with the most minions wins.
- First group to move. The group whose movement order was issued
first wins.
|
|
iv
|
Unstacking
|
For every group in a square except the winning group:
- If this group is hostile to the winning group, it bounces back
to its starting square. This is animated.
- If this group is friendly to the winning group, but cannot join it,
it also bounces back. This is animated.
A friendly group that could join the winning group now does the
following. (If the winning group isn't stationary, then it also does the
following.)
- All on exit effects from its
starting square.
- Animates walking in.
- All on move effects.
- All on enter effects for
this square.
If the group survives these effects, it joins the winning group.
|
|
v
|
Moonwalking
|
It is possible for a group G to (ii) move
away during overstacking, (iii) lose its starting square to another group
H, and then (iv) bounce back to its starting square. This is resolved
as another overstack between G and H in G's starting square.
If group G cannot join with H, and must bounce back again,
then G moonwalks instead. G moves to:
- an empty, unoccupied
square
- that is closest by straight-line distance
- that group G can legally enter
If no such square exists on the board, group G is removed
from the game!
Otherwise, group G moves from its starting square directly to
the moonwalk landing square, ignoring all intervening squares.
G still suffers all on exit effects for its starting
square, on move effects, and on enter
effects for the moonwalk landing square.
|
Questions
How do movement-changing spell effects interact with
each other? The key concept is: Movement orders can be overwritten,
but this happens in a specific sequence. The last movement order assigned
to a group wins, and that's how the group will move.
|
#
|
Phase
|
Effect
|
|
2
|
Player Control
|
The player assigns an order to a player-controlled group.
|
|
3
|
Spell Execution
|
Targeted spells overwrite movement orders immediately.
- moves in a random legal direction: Amok, Disorient.
- movement orders are cancelled: Binding Cube, Complacency,
Fear, Lienna's Steed, Possession, Sandstorm, Sentinel.
|
|
4
|
Movement
|
Any before movement effects overwrite movement orders
now.
- attracts: Mirage, Siren Song.
- moves in a random legal direction: Fingle, Zurzavar.
|
|
Finally, each computer-controlled group calls its AI, which overwrites
its movement order.
|
Moonwalks
Why is it called a moonwalk? The group doesn't
change its facing prior to moonwalking, so it may appear to move sideways on
the board, or even backward.
Why do moonwalks happen? Step (iii) of the
Movement Pipeline is a deliberately simplified explanation. In reality, the
voting is done between only two groups at a time. A square
with N groups actually votes N - 1 times. These votes
are interleaved with all the other squares, in parallel. Thus, if square A has
4 groups and square B has 1 group, then square B will finish its voting
before 2 of the groups in square A have even been considered!
Show me an easy diagram of a moonwalk! Here's
a simple diagram for one specific moonwalk solution. Group A will moonwalk.
- First, order group D with 5 recruits upward (into A's square).
- Second, order group A with 4 recruits leftward (into B's square).
- Third, order group C with 5 recruits upward (into B's square).
- Have group B, with 1 recruit, stand still.
How can I create a moonwalk in general? Here,
we give a more verbose description for the general solution. First, some nomenclature:
- Upper-case letters A, B, C, D are groups.
- Lower-case letters a, b, c, d are squares.
- + denotes two groups joining.
- > compares two groups' sizes.
To force group A in square a to moonwalk, do this:
- Have group B in b next to a.
- Have group C in c next to b.
- Have group D in d next to a.
Requirements:
- A+B looks like a legal joining, and C+B looks legal. (In the above example,
A+B = 5, and C+B = 6.)
This is what allows you to order both A and C to move into b.
- C is faster than A. Simplest method: C > A. (In the above
example, C = 5 and A = 4.)
This creates the race condition that puts A into limbo, giving
D time to sneak in behind it and steal its square away.
- A+B+C isn't legal.
This is what makes A bounce back. (In the above example, A+B+C = 10, which
violates the maximum
group size.)
- A+D isn't legal.
Simplest method: A+D > 8. Or, Ostracize D. This is what forces A to moonwalk.
(In the above example, A+D = 9.)
Assign the following movement orders, in exactly this sequence:
- D to a.
- A to b.
- C to b.
- (Have B stand still in b.)
Here's how it will execute.
- (ii) Overstack.
- D can move to a.
- A can move to b, and A+B looks legal.
- C can move to b, and C+B looks legal.
- Now D is alone in a, and A, B, C are overstacked in b.
- (iii) Voting.
- D is alone in a. D wins, and now owns a. (This is why you
issue D's movement order before A's.)
- 3 groups vie for square b. Unstacking processes 2 groups at a time.
(This is why you use 3 groups.)
- A group that didn't move is automatically fastest. That's B.
- C is faster than A, by construction in (j). So C is the second-fastest
group.
- (iv) Unstacking.
- B and C are chosen, in that order. B+C looks legal, by (i). So they
join.
- Now BC + A is checked. It is not a legal joining, by (k).
- A bounces back to a.
- (v) Moonwalking.
- D already owns a, from step (iii).
- D+A is not a legal joining, by (l).
- A moonwalks.
The Flying Leap Deck. This deck demonstrates
the spectacular effect of a controlled moonwalk. It is not recommended that
you try this deck in ranked play, due to the sheer difficulty of its winning
combination.
|
00
|
01
|
02
|
03
|
04
|
05
|
06
|
07
|
08
|
09
|
10
|
11
|
|
|
|
|
|
|
|
|
|
|
|
ne
|
|
0
|
|
|
|
|
|
|
|
|
|
nw
|
*
|
se
|
1
|
|
|
|
|
|
|
|
|
|
|
sw
|
|
2
|
|
|
|
|
f
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
B
|
A< |
|
|
|
|
|
9
|
|
|
|
|
|
C^ |
D^ |
|
|
|
|
|
10
|
|
|
|
|
|
|
|
|
|
|
|
|
11
|
- Play in Badlands (so that there are no forest squares).
- Cast a forest at f, diagonally adjacent to enemy Sanctum.
- Cast two forests at A and B.
- Terrain-Bind group A (into forest).
- If your opponent inconveniently creates any other forest squares, you'll
have to change their terrain to something else.
- Force group A to moonwalk, as described above.
Group A must moonwalk. As a corollary, we've already determined that A can't
legally enter either squares A or B (which is why it's moonwalking). Because
of the Terrain-Bind, the only other square on the board that group A can legally
enter is f. Hence, A teleports directly to f.
- Somehow ensure that your opponent has no novices left in her
Sanctum.
- Cast Lienna's Steed for the win. (Alternatively, if you make group A big
enough, then you can just fight your way in.)
v2.10.00 Last updated 2005/08/05
|