feat(carcassonne): add base game manifest
A 24-tile base game: one part per tile image (A-X), a board with a draw pile and an 11x11 grid, and a setup seeding the tile supply.
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
# Carcassonne
|
||||
|
||||
The base game's 24 landscape tiles, laid out on a table with a draw pile and a
|
||||
grid of placed tiles. Each tile is a single `110×110` image (A–X), sized to a
|
||||
standard `45×45` mm square.
|
||||
|
||||
```yaml file=carcassonne.yaml
|
||||
role: package
|
||||
id: carcassonne
|
||||
title: Carcassonne
|
||||
designer: Klaus-Jürgen Wrede
|
||||
publisher: Hans im Glück
|
||||
players: 5
|
||||
language: en
|
||||
include: ['./**/*.yaml']
|
||||
```
|
||||
|
||||
## Parts
|
||||
|
||||
One `tile` part per distinct tile type (A–X). All tiles share the same square
|
||||
face image and a uniform size; the `$variants` CSV expands them into the 24
|
||||
tile parts.
|
||||
|
||||
```yaml file=tiles.yaml
|
||||
role: part
|
||||
type: tile
|
||||
face: ./20AE_Base_Game_C2_Tile_A.png
|
||||
size: [45, 45, 3]
|
||||
fillet: 1
|
||||
$variants: ./tiles.csv
|
||||
```
|
||||
|
||||
```csv file=tiles.csv
|
||||
id,face
|
||||
string,string
|
||||
a,./20AE_Base_Game_C2_Tile_A.png
|
||||
b,./20AE_Base_Game_C2_Tile_B.png
|
||||
c,./20AE_Base_Game_C2_Tile_C.png
|
||||
d,./20AE_Base_Game_C2_Tile_D.png
|
||||
e,./20AE_Base_Game_C2_Tile_E.png
|
||||
f,./20AE_Base_Game_C2_Tile_F.png
|
||||
g,./20AE_Base_Game_C2_Tile_G.png
|
||||
h,./20AE_Base_Game_C2_Tile_H.png
|
||||
i,./20AE_Base_Game_C2_Tile_I.png
|
||||
j,./20AE_Base_Game_C2_Tile_J.png
|
||||
k,./20AE_Base_Game_C2_Tile_K.png
|
||||
l,./20AE_Base_Game_C2_Tile_L.png
|
||||
m,./20AE_Base_Game_C2_Tile_M.png
|
||||
n,./20AE_Base_Game_C2_Tile_N.png
|
||||
o,./20AE_Base_Game_C2_Tile_O.png
|
||||
p,./20AE_Base_Game_C2_Tile_P.png
|
||||
q,./20AE_Base_Game_C2_Tile_Q.png
|
||||
r,./20AE_Base_Game_C2_Tile_R.png
|
||||
s,./20AE_Base_Game_C2_Tile_S.png
|
||||
t,./20AE_Base_Game_C2_Tile_T.png
|
||||
u,./20AE_Base_Game_C2_Tile_U.png
|
||||
v,./20AE_Base_Game_C2_Tile_V.png
|
||||
w,./20AE_Base_Game_C2_Tile_W.png
|
||||
x,./20AE_Base_Game_C2_Tile_X.png
|
||||
```
|
||||
|
||||
## Board
|
||||
|
||||
A table with a draw pile on the left and an `11×11` grid of placed tiles in the
|
||||
middle. The grid routes each tile to its `col,row` cell, spaced `45` mm apart
|
||||
so tiles sit edge to edge.
|
||||
|
||||
```yaml file=board.yaml
|
||||
type: board
|
||||
id: board
|
||||
role: surface
|
||||
size: [600, 600]
|
||||
layout:
|
||||
- route: /draw
|
||||
x: -280
|
||||
y: 0
|
||||
rotation: 0
|
||||
stacking:
|
||||
align: center
|
||||
zStart: 0
|
||||
curve: M -50 -200 C 50 -150 450 -150 550 -200
|
||||
- route: /grid/:col/:row
|
||||
candidates:
|
||||
$variants: ./grid.csv
|
||||
```
|
||||
|
||||
```csv file=grid.csv
|
||||
col,row,x,y,rotation
|
||||
string,string,number,number,number
|
||||
0,0,-225,-225,0
|
||||
0,1,-225,-180,0
|
||||
0,2,-225,-135,0
|
||||
0,3,-225,-90,0
|
||||
0,4,-225,-45,0
|
||||
0,5,-225,0,0
|
||||
0,6,-225,45,0
|
||||
0,7,-225,90,0
|
||||
0,8,-225,135,0
|
||||
0,9,-225,180,0
|
||||
0,10,-225,225,0
|
||||
1,0,-180,-225,0
|
||||
1,1,-180,-180,0
|
||||
1,2,-180,-135,0
|
||||
1,3,-180,-90,0
|
||||
1,4,-180,-45,0
|
||||
1,5,-180,0,0
|
||||
1,6,-180,45,0
|
||||
1,7,-180,90,0
|
||||
1,8,-180,135,0
|
||||
1,9,-180,180,0
|
||||
1,10,-180,225,0
|
||||
2,0,-135,-225,0
|
||||
2,1,-135,-180,0
|
||||
2,2,-135,-135,0
|
||||
2,3,-135,-90,0
|
||||
2,4,-135,-45,0
|
||||
2,5,-135,0,0
|
||||
2,6,-135,45,0
|
||||
2,7,-135,90,0
|
||||
2,8,-135,135,0
|
||||
2,9,-135,180,0
|
||||
2,10,-135,225,0
|
||||
3,0,-90,-225,0
|
||||
3,1,-90,-180,0
|
||||
3,2,-90,-135,0
|
||||
3,3,-90,-90,0
|
||||
3,4,-90,-45,0
|
||||
3,5,-90,0,0
|
||||
3,6,-90,45,0
|
||||
3,7,-90,90,0
|
||||
3,8,-90,135,0
|
||||
3,9,-90,180,0
|
||||
3,10,-90,225,0
|
||||
4,0,-45,-225,0
|
||||
4,1,-45,-180,0
|
||||
4,2,-45,-135,0
|
||||
4,3,-45,-90,0
|
||||
4,4,-45,-45,0
|
||||
4,5,-45,0,0
|
||||
4,6,-45,45,0
|
||||
4,7,-45,90,0
|
||||
4,8,-45,135,0
|
||||
4,9,-45,180,0
|
||||
4,10,-45,225,0
|
||||
5,0,0,-225,0
|
||||
5,1,0,-180,0
|
||||
5,2,0,-135,0
|
||||
5,3,0,-90,0
|
||||
5,4,0,-45,0
|
||||
5,5,0,0,0
|
||||
5,6,0,45,0
|
||||
5,7,0,90,0
|
||||
5,8,0,135,0
|
||||
5,9,0,180,0
|
||||
5,10,0,225,0
|
||||
6,0,45,-225,0
|
||||
6,1,45,-180,0
|
||||
6,2,45,-135,0
|
||||
6,3,45,-90,0
|
||||
6,4,45,-45,0
|
||||
6,5,45,0,0
|
||||
6,6,45,45,0
|
||||
6,7,45,90,0
|
||||
6,8,45,135,0
|
||||
6,9,45,180,0
|
||||
6,10,45,225,0
|
||||
7,0,90,-225,0
|
||||
7,1,90,-180,0
|
||||
7,2,90,-135,0
|
||||
7,3,90,-90,0
|
||||
7,4,90,-45,0
|
||||
7,5,90,0,0
|
||||
7,6,90,45,0
|
||||
7,7,90,90,0
|
||||
7,8,90,135,0
|
||||
7,9,90,180,0
|
||||
7,10,90,225,0
|
||||
8,0,135,-225,0
|
||||
8,1,135,-180,0
|
||||
8,2,135,-135,0
|
||||
8,3,135,-90,0
|
||||
8,4,135,-45,0
|
||||
8,5,135,0,0
|
||||
8,6,135,45,0
|
||||
8,7,135,90,0
|
||||
8,8,135,135,0
|
||||
8,9,135,180,0
|
||||
8,10,135,225,0
|
||||
9,0,180,-225,0
|
||||
9,1,180,-180,0
|
||||
9,2,180,-135,0
|
||||
9,3,180,-90,0
|
||||
9,4,180,-45,0
|
||||
9,5,180,0,0
|
||||
9,6,180,45,0
|
||||
9,7,180,90,0
|
||||
9,8,180,135,0
|
||||
9,9,180,180,0
|
||||
9,10,180,225,0
|
||||
10,0,225,-225,0
|
||||
10,1,225,-180,0
|
||||
10,2,225,-135,0
|
||||
10,3,225,-90,0
|
||||
10,4,225,-45,0
|
||||
10,5,225,0,0
|
||||
10,6,225,45,0
|
||||
10,7,225,90,0
|
||||
10,8,225,135,0
|
||||
10,9,225,180,0
|
||||
10,10,225,225,0
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
Start with the full tile supply on the draw pile (`carcassonne:tile` expands to
|
||||
every tile of that type), then seed the grid with a few opening tiles.
|
||||
|
||||
```yaml file=main.yaml
|
||||
role: setup
|
||||
type: game
|
||||
id: main
|
||||
surfaces:
|
||||
- board#board
|
||||
setup:
|
||||
/draw: carcassonne:tile
|
||||
/grid/5/5: carcassonne:tile#a
|
||||
/grid/5/6: carcassonne:tile#b
|
||||
/grid/6/5: carcassonne:tile#c
|
||||
```
|
||||
Reference in New Issue
Block a user