Navigation par barre du bas + gabarits de jeux natifs
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m0s
Build and Publish Docker Image / build-and-push-image (push) Successful in 1m0s
Navigation : - Suppression du menu hamburger, remplacé par le logo de l'app dans l'en-tête - Barre du bas à 5 onglets : Accueil, Mes jeux, Parties, Stats, Joueurs - Menu profil sur l'avatar (haut-droite) : profil/switch, Emplacements, Jeux importés, Paramètres - Nouvelle page "Mes jeux" (/jeux) : bibliothèque de tous les jeux Format d'import enrichi + gabarits : - Champ icon (lucide) au niveau du jeu, et icon/color sur les catégories - Gabarits JSON des 5 jeux natifs dans public/game-templates/ (référence, au format d'import) + doc à jour Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "azul",
|
||||
"name": "Azul",
|
||||
"minPlayers": 2,
|
||||
"maxPlayers": 4,
|
||||
"scoreType": "positive",
|
||||
"scoreFormula": { "strategy": "sum_rounds" },
|
||||
"description": "Placez des tuiles pour marquer un maximum de points.",
|
||||
"icon": "Palette",
|
||||
"colors": { "primary": "#005b8f" },
|
||||
"options": [
|
||||
{
|
||||
"id": "variants",
|
||||
"label": "Variante plateau gris",
|
||||
"type": "boolean",
|
||||
"defaultValue": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "cabo",
|
||||
"name": "Cabo",
|
||||
"minPlayers": 2,
|
||||
"maxPlayers": 5,
|
||||
"scoreType": "negative",
|
||||
"scoreFormula": {
|
||||
"strategy": "sum_rounds_with_reset",
|
||||
"resetThreshold": 100,
|
||||
"resetTo": 50,
|
||||
"oncePerPlayer": true
|
||||
},
|
||||
"targetScore": { "type": "fixed", "value": 100 },
|
||||
"targetScoreCondition": "reaches",
|
||||
"description": "Trouvez la licorne. La partie se termine si on atteint ou dépasse 100 points. Tomber pile sur 100 fait redescendre le score à 50 (une fois par joueur).",
|
||||
"icon": "Ghost",
|
||||
"colors": { "primary": "#6e1d5a" },
|
||||
"options": [
|
||||
{
|
||||
"id": "kamikaze",
|
||||
"label": "Règle Kamikaze (2 cartes 13 + 2 cartes 12)",
|
||||
"type": "boolean",
|
||||
"defaultValue": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "harmonie",
|
||||
"name": "Harmonies",
|
||||
"minPlayers": 1,
|
||||
"maxPlayers": 4,
|
||||
"scoreType": "positive",
|
||||
"scoreFormula": { "strategy": "sum_rounds" },
|
||||
"fixedRounds": 1,
|
||||
"description": "Créez des paysages pour accueillir des animaux.",
|
||||
"icon": "TreePine",
|
||||
"colors": { "primary": "#065f46" },
|
||||
"scoringCategories": [
|
||||
{ "id": "arbres", "label": "Arbres", "icon": "TreePine", "color": "#16a34a" },
|
||||
{ "id": "montagnes", "label": "Montagnes", "icon": "Mountain", "color": "#64748b" },
|
||||
{ "id": "champs", "label": "Champs", "icon": "Wheat", "color": "#d97706" },
|
||||
{ "id": "batiments", "label": "Bâtiments", "icon": "Building2", "color": "#dc2626" },
|
||||
{ "id": "eau", "label": "Rivière", "icon": "Waves", "color": "#0ea5e9" },
|
||||
{ "id": "animaux", "label": "Animaux", "icon": "Rabbit", "color": "#a16207" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "odin_cards",
|
||||
"name": "Odin",
|
||||
"minPlayers": 2,
|
||||
"maxPlayers": 6,
|
||||
"scoreType": "negative",
|
||||
"scoreFormula": { "strategy": "sum_rounds" },
|
||||
"targetScore": {
|
||||
"type": "fromOption",
|
||||
"optionId": "target_score",
|
||||
"customSentinel": "custom",
|
||||
"customOptionId": "custom_target_score"
|
||||
},
|
||||
"targetScoreCondition": "reaches",
|
||||
"description": "Videz votre main le plus vite possible. Un point par carte restante. La partie s'arrête quand le score cible est atteint, le plus petit score gagne.",
|
||||
"icon": "Sword",
|
||||
"colors": { "primary": "#c2410c" },
|
||||
"options": [
|
||||
{
|
||||
"id": "target_score",
|
||||
"label": "Score de fin de partie",
|
||||
"type": "select",
|
||||
"defaultValue": "15",
|
||||
"options": [
|
||||
{ "label": "Partie courte (15 pts)", "value": "15" },
|
||||
{ "label": "Partie classique (20 pts)", "value": "20" },
|
||||
{ "label": "Personnalisé", "value": "custom" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "custom_target_score",
|
||||
"label": "Score personnalisé",
|
||||
"type": "number",
|
||||
"defaultValue": 25
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "skyjo",
|
||||
"name": "Skyjo",
|
||||
"minPlayers": 2,
|
||||
"maxPlayers": 8,
|
||||
"scoreType": "negative",
|
||||
"scoreFormula": { "strategy": "sum_rounds" },
|
||||
"targetScore": { "type": "fixed", "value": 100 },
|
||||
"targetScoreCondition": "reaches",
|
||||
"description": "Remplacez vos cartes pour avoir le moins de points possible. La partie s'arrête quand un joueur dépasse 100 points.",
|
||||
"icon": "Layers",
|
||||
"colors": { "primary": "#0f766e" }
|
||||
}
|
||||
Reference in New Issue
Block a user