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:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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