The family list of the Kestrel's Nest, shipped as /family.json and refreshed from the kit at deploy
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
b9e820c4f5
commit
5b169d7131
@@ -4,6 +4,10 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
HOST="${1:?usage: deploy.sh <droplet-ip-or-host>}"
|
HOST="${1:?usage: deploy.sh <droplet-ip-or-host>}"
|
||||||
|
|
||||||
|
# The family list is the kit's; a game deploys with the kit's latest copy when the kit is beside it.
|
||||||
|
KIT_FAMILY="$(dirname "$0")/../../game-kit/family.json"
|
||||||
|
[ -f "$KIT_FAMILY" ] && cp "$KIT_FAMILY" static/family.json
|
||||||
|
|
||||||
npm run check
|
npm run check
|
||||||
npm run check:server
|
npm run check:server
|
||||||
npm test
|
npm test
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// The other games of the Kestrel's Nest, from the family list the kit keeps
|
||||||
|
// (family.json, one copy shipped with every game), so a player who liked one
|
||||||
|
// table can find the next. This game is left out of its own list.
|
||||||
|
|
||||||
|
export interface FamilyGame {
|
||||||
|
slug: string;
|
||||||
|
name: string;
|
||||||
|
url: string;
|
||||||
|
pitch: string;
|
||||||
|
players: string;
|
||||||
|
origin: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function otherGames(self: string): Promise<FamilyGame[]> {
|
||||||
|
try {
|
||||||
|
const res = await fetch('/family.json', { cache: 'no-cache' });
|
||||||
|
if (!res.ok) return [];
|
||||||
|
const data = (await res.json()) as { games?: FamilyGame[] };
|
||||||
|
return (data.games ?? []).filter((g) => g.slug !== self);
|
||||||
|
} catch {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"family": "the Kestrel's Nest",
|
||||||
|
"games": [
|
||||||
|
{
|
||||||
|
"slug": "wizwar",
|
||||||
|
"name": "Wiz-War",
|
||||||
|
"url": "https://wizwar.kestrelsnest.social",
|
||||||
|
"pitch": "Steal treasure. Blast through walls. Outwit your friends.",
|
||||||
|
"players": "2 to 6",
|
||||||
|
"origin": "Tom Jolly's board game, sixth edition, 1993"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"slug": "waving-hands",
|
||||||
|
"name": "Waving Hands",
|
||||||
|
"url": "https://hands.kestrelsnest.social",
|
||||||
|
"pitch": "Duelling wizards. Two hands each. The right run of gestures is a spell.",
|
||||||
|
"players": "2 to 12",
|
||||||
|
"origin": "Richard Bartle's pencil-and-paper duel, 1977"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user