add randomizer module
All checks were successful
Deploy Sokko G / deploy (push) Successful in 17s

This commit is contained in:
Shinuwa 2026-08-31 09:10:38 +02:00
parent 07de342fc2
commit 35fe877d58
32 changed files with 3822 additions and 200 deletions

View file

@ -729,6 +729,77 @@ Notes :
- Les valeurs négatives sont acceptées.
- Les compteurs sans libellé ne sont pas conservés.
## Outil Randomizer
Type : `randomizer`
```json
{
"activeTab": "wheel",
"dice": {
"faces": 6,
"rolls": 3,
"results": [2, 5, 1],
"history": [
{
"id": "random1",
"at": "2026-08-30T12:00:00.000Z",
"results": [2, 5, 1]
}
]
},
"wheel": {
"draws": 2,
"entries": [
{
"id": "entry1",
"label": "Route farm",
"weight": 3
}
],
"results": ["Route farm"],
"history": []
},
"teams": {
"teamCount": 2,
"playerSelectionMode": "all",
"playerSelectionCount": 2,
"players": [
{
"id": "player1",
"name": "Alice",
"score": 10,
"active": true
}
],
"exclusions": [
{
"id": "exclusion1",
"playerAId": "player1",
"playerBIds": ["player2", "player3"],
"mode": "source"
}
],
"teams": [],
"history": []
}
}
```
Stockage compact :
- `activeTab` est omis quand l'onglet actif est `dice`.
- `dice`, `wheel` et `teams` sont omis quand ils ne contiennent que leurs valeurs par défaut et aucun résultat.
- l'historique de chaque onglet est limité aux 20 derniers tirages.
- les entrées de roue sans libellé sont ignorées, et `weight` est borné de 1 à 999.
- les joueurs sans nom sont ignorés, et `score` est borné de 0 à 9999.
- `active` vaut `true` par défaut sur un joueur.
- `playerSelectionMode` vaut `all` ou `count`; en mode `count`, `playerSelectionCount` indique combien de joueurs actifs sont choisis aléatoirement avant la répartition.
- chaque exclusion décrit un nom principal `playerAId`, une ou plusieurs cibles `playerBIds` et un `mode`.
- `mode: "source"` interdit uniquement `playerAId` avec chaque cible; les cibles peuvent rester ensemble.
- `mode: "group"` interdit chaque nom de la combinaison avec tous les autres noms de cette combinaison.
- les exclusions invalides, dupliquées ou qui référencent un joueur absent sont ignorées.
## Outil Combos
Type : `combos`