Fencing with Fences
README.md
FencerAI
The neighbour across the line. Sits beside a Fencer (role = "rival") and
drives it through the same public methods a human's input reaches, so it plays
by exactly the rules the player does.
What it does
- Keeps the measure. Between decisions it sits inside its own thrust measure rather than at the far edge of it, and breaks ground when crowded.
- Reads the tell. Seeing a wind-up costs
0.34 - 0.20 * skillseconds, so a thrust's 0.22 s tell is under an ordinary neighbour's eye and a sweep's or a lunge's is not. A read thrust or lunge is answered with a guard; a read sweep is answered by not being there, because a broadside crashes through a guard. - Keeps a book. Every commitment the opponent makes is counted into a decaying tally. A man who has thrust four times running meets a guard that went up before the wind-up it answers — which is the only reply to a tell too short to see. A man who keeps holding a guard meets a broadside. A man who keeps swinging broadsides takes the parry's weight back out of the book.
- Punishes an opening. A blade that whiffed or was turned aside recovers from a debt; that is an opening, and an ordinary recovery is not.
- Takes its riposte without thinking, at the extended measure a riposte reaches.
- Observes the forms. A neighbour does not run a man through who has not
raised his panel. When the opponent has offered nothing for a while, the
invitation is waited for — for
patienceseconds' worth of good form — and the measure is held rather than closed. The riposte, the punish and the read all run above this, so the courtesy costs nothing against a man who is actually fencing; it is felt only by one who is not.
Style
style names which neighbour's fencing this is, and it is what makes the roster
three opponents rather than one opponent at three settings. It is set from
DuelMatch.neighbourKey, and the table it selects lives in duel.STYLES.
- Mrs Pettifer keeps bees and keeps her distance. She stands at the far edge of the measure, takes a long time over a decision, will not be hurried into a lunge, and will wait all afternoon for a man who has not yet offered anything.
- Major Wickham fenced for the regiment and remembers everything. He fences the man rather than the measure: a stroke thrown twice is a stroke he has already answered, and the third one meets the answer waiting for it — a guard already rising against a repeated thrust, a thrust inside a repeated broadside's wind-up, a broadside through a panel that keeps being hidden behind.
- The Dowager Lady Ashcombe has not surrendered a boundary in forty years.
She fights close, gives no ground, favours the broadside and the lunge, and
fences hardest of all with her own hedge behind her:
ardourreports the quality she is actually fencing at, which rises with the line as it comes back toward her.
Skill
skill (0..1) moves six things at once: how quickly the eye settles on a
wind-up, how reliably that read turns into the right answer, how often an
opening is punished, how briskly it decides, how strongly the book steers it,
and — the one that shows most — how truly it judges the measure. A low
neighbour believes his panel is longer than it is and throws from too far out,
whiffing and handing over the openings a good one never gives.
Fields
skill, style, opponent (left unset, it finds the role = "player"
fencer), and the live read-outs decision, reading (attacker | turtle |
sweeper | mixed), thinkIn, sawExposed, idleFor, indulge, ardour,
and the habit* counters.
Requires the duel module.