feat: facilitate chess boards
This commit is contained in:
@@ -8,7 +8,7 @@ export const boardGames: BoardGame[] = [
|
|||||||
{
|
{
|
||||||
name: 'Chessboard Engraving',
|
name: 'Chessboard Engraving',
|
||||||
tasks: [
|
tasks: [
|
||||||
{ name: 'Cut the board base', tools: chooseTools('board-cutter') },
|
{ name: 'Cut the board base', tools: chooseTools('cutter') },
|
||||||
{
|
{
|
||||||
name: 'Apply lamination',
|
name: 'Apply lamination',
|
||||||
tools: chooseTools('laminator', 'painter')
|
tools: chooseTools('laminator', 'painter')
|
||||||
@@ -19,12 +19,8 @@ export const boardGames: BoardGame[] = [
|
|||||||
name: 'Piece Creation',
|
name: 'Piece Creation',
|
||||||
tasks: [
|
tasks: [
|
||||||
{
|
{
|
||||||
name: 'Mold pawns',
|
name: 'Mold pieces',
|
||||||
tools: chooseTools('mini-mold', 'painter')
|
tools: chooseTools('mini-mold', 'cutter')
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Engrave royalty',
|
|
||||||
tools: chooseTools('dice-engraver', 'mini-mold')
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Paint pieces',
|
name: 'Paint pieces',
|
||||||
@@ -68,7 +64,7 @@ export const boardGames: BoardGame[] = [
|
|||||||
tasks: [
|
tasks: [
|
||||||
{
|
{
|
||||||
name: 'Cut dungeon tiles',
|
name: 'Cut dungeon tiles',
|
||||||
tools: chooseTools('board-cutter', 'laminator')
|
tools: chooseTools('cutter', 'laminator')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -82,7 +78,7 @@ export const boardGames: BoardGame[] = [
|
|||||||
tasks: [
|
tasks: [
|
||||||
{
|
{
|
||||||
name: 'Print scenario deck',
|
name: 'Print scenario deck',
|
||||||
tools: chooseTools('card-printer', 'rulebook-dzn')
|
tools: chooseTools('card-prisnter', 'rulebook-dzn')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Apply finish',
|
name: 'Apply finish',
|
||||||
@@ -113,7 +109,7 @@ export const boardGames: BoardGame[] = [
|
|||||||
tasks: [
|
tasks: [
|
||||||
{
|
{
|
||||||
name: 'Print map base',
|
name: 'Print map base',
|
||||||
tools: chooseTools('board-cutter', 'laminator')
|
tools: chooseTools('cutter', 'laminator')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Add compass',
|
name: 'Add compass',
|
||||||
@@ -171,7 +167,7 @@ export const boardGames: BoardGame[] = [
|
|||||||
tasks: [
|
tasks: [
|
||||||
{
|
{
|
||||||
name: 'Print jungle layout',
|
name: 'Print jungle layout',
|
||||||
tools: chooseTools('board-cutter', 'painter')
|
tools: chooseTools('cutter', 'painter')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Seal board',
|
name: 'Seal board',
|
||||||
@@ -216,7 +212,7 @@ export const boardGames: BoardGame[] = [
|
|||||||
tasks: [
|
tasks: [
|
||||||
{
|
{
|
||||||
name: 'Cut castle walls',
|
name: 'Cut castle walls',
|
||||||
tools: chooseTools('board-cutter', 'painter')
|
tools: chooseTools('cutter', 'painter')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Reinforce walls',
|
name: 'Reinforce walls',
|
||||||
|
|||||||
@@ -4,15 +4,54 @@ export const tools: Tool[] = [
|
|||||||
{ name: 'Card Printer', id: 'card-printer', reference: '', cooldown: 5 },
|
{ name: 'Card Printer', id: 'card-printer', reference: '', cooldown: 5 },
|
||||||
{ name: 'Miniature Mold', id: 'mini-mold', reference: '', cooldown: 15 },
|
{ name: 'Miniature Mold', id: 'mini-mold', reference: '', cooldown: 15 },
|
||||||
{ name: 'Dice Engraver', id: 'dice-engraver', reference: '', cooldown: 10 },
|
{ name: 'Dice Engraver', id: 'dice-engraver', reference: '', cooldown: 10 },
|
||||||
{ name: 'Board Cutter', id: 'board-cutter', reference: '', cooldown: 8 },
|
{ name: 'Cutter', id: 'cutter', reference: '', cooldown: 8 },
|
||||||
{ name: 'Rulebook Designer', id: 'rulebook-dzn', reference: '', cooldown: 6 },
|
{ name: 'Rulebook Designer', id: 'rulebook-dzn', reference: '', cooldown: 6 },
|
||||||
{ name: 'Box Assembler', id: 'box-asm', reference: '', cooldown: 4 },
|
{ name: 'Box Assembler', id: 'box-asm', reference: '', cooldown: 4 },
|
||||||
{ name: 'Component Painter', id: 'painter', reference: '', cooldown: 12 },
|
{ name: 'Component Painter', id: 'painter', reference: '', cooldown: 12 },
|
||||||
{ name: 'Lamination Machine', id: 'laminator', reference: '', cooldown: 7 }
|
{ name: 'Lamination Machine', id: 'laminator', reference: '', cooldown: 7 },
|
||||||
|
// Additional realistic tools
|
||||||
|
{
|
||||||
|
name: 'Shrink Wrap Machine',
|
||||||
|
id: 'shrink-wrap',
|
||||||
|
reference: '',
|
||||||
|
cooldown: 9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Punch Board Cutter',
|
||||||
|
id: 'punch-cutter',
|
||||||
|
reference: '',
|
||||||
|
cooldown: 11
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Sticker Applicator',
|
||||||
|
id: 'sticker-applicator',
|
||||||
|
reference: '',
|
||||||
|
cooldown: 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Foil Stamping Press',
|
||||||
|
id: 'foil-stamp',
|
||||||
|
reference: '',
|
||||||
|
cooldown: 13
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Scanner',
|
||||||
|
id: 'scanner',
|
||||||
|
reference: '',
|
||||||
|
cooldown: 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Instruction Sheet Folder',
|
||||||
|
id: 'sheet-folder',
|
||||||
|
reference: '',
|
||||||
|
cooldown: 7
|
||||||
|
},
|
||||||
|
{ name: 'Plastic Bag Sealer', id: 'bag-sealer', reference: '', cooldown: 4 },
|
||||||
|
{ name: 'Barcode Printer', id: 'barcode-printer', reference: '', cooldown: 8 }
|
||||||
]
|
]
|
||||||
export type NonEmptyArray<T> = [T, ...T[]]
|
export type NonEmptyArray<T> = [T, ...T[]]
|
||||||
|
|
||||||
export const idToTools = (id: string): Tool => tools.find((t) => t.id === id)!
|
export const idToTools = (id: string): Tool => tools.find((t) => t.id === id)!
|
||||||
|
|
||||||
export const chooseTools = (...ides: string[]): NonEmptyArray<Tool> =>
|
export const chooseTools = (...ids: string[]): NonEmptyArray<Tool> =>
|
||||||
ides.map(idToTools) as NonEmptyArray<Tool>
|
ids.map(idToTools) as NonEmptyArray<Tool>
|
||||||
|
|||||||
Reference in New Issue
Block a user