Support was asking the wrong question

The rule is that the supporting unit must be able to reach the province the
supported unit is going *to*, not the province it is standing in. The board
offered the other set -- units standing next door -- so Vienna could not
support Venice into Tyrolia, which is an ordinary order: Vienna and Tyrolia
touch, Vienna and Venice do not. There was no way to write it at all.

It was wrong in the other direction too. Support to hold was offered for
units the supporter could not have reached, the order was written, and the
adjudicator turned it into a hold after submission without saying so.

This was a rules question living in a component, so it moves to the rules:
src/game/targets.ts, and eight tests instead of a closure.

The rest of the stiffness was that a stray click threw away a half-written
order. You picked Support, picked the unit to help, missed the destination
by a province, and the whole thing silently became a fresh move somewhere
else. A two-part order now stands its ground and sounds a refusal; clicking
the unit giving the order backs out of it, and any other unit of yours still
switches straight over, which is what makes writing a page of orders quick.

And the unit picked to support -- or to carry -- is marked on the board, in
a different colour from the unit giving the order. Without it the second
half of every support is written blind: you click a unit, every highlight on
the map changes, and nothing says which one you chose.
This commit is contained in:
2026-09-09 09:19:10 -07:00
parent 9c6efb3d85
commit 73f33ec408
6 changed files with 219 additions and 30 deletions
+25
View File
@@ -246,6 +246,31 @@ The game steps past anything with no decision in it. A retreat phase where
none of your units was thrown out, or a winter where your centres and units
are level, is not a choice -- it is a screen asking you to press Done.
## Writing a support
Support is the order the whole game turns on, and it was the order this
interface was worst at taking.
The rule is that the supporting unit must be able to reach the province the
supported unit is *going to* -- not the province it is standing in. The board
was offering the wrong set: only units standing next door. So Vienna could
not support Venice into Tyrolia, which is a perfectly ordinary order --
Vienna and Tyrolia touch, Vienna and Venice do not -- and there was no way
to say it. It also offered support to hold for units too far away to prop
up, wrote the order anyway, and let the adjudicator quietly turn it into a
hold after the turn was submitted.
That question now lives in `src/game/targets.ts` with the rest of the rules,
where it is eight tests rather than a closure in a component.
The second half was that a stray click threw away a half-written order. You
picked Support, picked the unit to help, missed the destination by a
province, and the whole thing silently became a fresh move somewhere else.
A two-part order now stands its ground and says no; clicking the unit giving
the order takes you back to the start of it. And the unit you picked to
support is marked on the board in a different colour from the unit giving
the order, because otherwise the second half is written blind.
## Still to build
- bots strong enough to solo against each other, not only to draw