user card Hand becomes the action surface, the board shows the train, and a reverse stops turning it around, other bug fixes too.
This commit is contained in:
@@ -93,6 +93,29 @@ export function playCue(cue: string): void {
|
||||
return;
|
||||
}
|
||||
|
||||
if (cue === 'couple') {
|
||||
/**
|
||||
* KNUCKLE COUPLERS MEETING: a low metallic clank and the slack running out behind it.
|
||||
*
|
||||
* Coupling a cut was reported as invisible — the car simply left the board and only history said
|
||||
* where it went. It is the single most consequential thing a switching move does, so it gets the
|
||||
* one sound a player will learn to listen for.
|
||||
*/
|
||||
for (const fg of [[86, 0.22], [131, 0.13], [197, 0.07], [61, 0.18]]) {
|
||||
tone(t, fg[0]!, 0.26, fg[1]!, 'square', fg[0]! * 0.82);
|
||||
}
|
||||
tone(t + 0.1, 74, 0.34, 0.1, 'triangle', 58);
|
||||
return;
|
||||
}
|
||||
|
||||
if (cue === 'drop') {
|
||||
// Setting out is the same act in reverse and quieter: one clank, no slack behind it.
|
||||
for (const fg of [[104, 0.14], [156, 0.08]]) {
|
||||
tone(t, fg[0]!, 0.18, fg[1]!, 'square', fg[0]! * 0.85);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (cue === 'day') {
|
||||
// The grade-crossing bell: two strikes. Inharmonic partials separate a bell from a beep.
|
||||
for (const at of [t, t + 0.22]) {
|
||||
|
||||
Reference in New Issue
Block a user