From fea7c1c271f0556f3b66e25501529543d9d0b4ed Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Sun, 12 Jul 2026 22:30:16 +0200 Subject: [PATCH] docs: translate README to French with English summary --- README.md | 158 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 87 insertions(+), 71 deletions(-) diff --git a/README.md b/README.md index a1ca419..4b78883 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,53 @@ -# Vermine 2047 — Foundry VTT System +# Vermine 2047 — Système Foundry VTT ![Foundry v14](https://img.shields.io/badge/Foundry-v14-blue) ![Version](https://img.shields.io/badge/version-0.1.13-green) -Unofficial game system for **Vermine 2047**, a French post-apocalyptic tabletop RPG by **Éditions John Doe** (https://www.kickandgo.net/boutique-agate/category.php?cl=UyQcRrFtYcYrAnLbOfDj&idp=20). +Système non-officiel pour le jeu de rôle **Vermine 2047**, univers post-apo français par **Éditions John Doe**. -Bilingual **FR/EN** interface. +► Achetez le jeu : https://www.kickandgo.net/boutique-agate/category.php?cl=UyQcRrFtYcYrAnLbOfDj&idp=20 + +Interface bilingue **FR/EN**. --- -## Actor Types +## Types d'Acteurs -| Type | Sheet | Description | +| Type | Fiche | Description | |------|-------|-------------| -| **character** | AppV2 | Player character with skills, abilities, totem, equipment | -| **npc** | AppV2 | Non-player character with role/threat, wound thresholds | -| **group** | AppV2 | Group with members, encounters, link sync | -| **creature** | AppV2 | Creature with template/size/role, custom attack stats | +| **character** | AppV2 | Personnage joueur — compétences, capacités, totem, équipement | +| **npc** | AppV2 | PNJ avec rôle/menace, seuils de blessure | +| **group** | AppV2 | Groupe avec membres, rencontres, synchro liée | +| **creature** | AppV2 | Créature avec gabarit/taille/rôle, attaques custom | -## Item Types +## Types d'Objets -| Type | Use | -|------|-----| -| **item** | Generic items (gear, resources) | -| **weapon** | Weapons with damage, range, reliability, rarity | -| **defense** | Armor/shields with protection, coverage | -| **vehicle** | Vehicles with speed, structure, weapons | -| **ability** | Special abilities (apprenticeship, domain) | -| **specialty** | Skill specializations (attached to skills) | -| **background** | Character backgrounds | -| **trauma** | Mental/physical trauma | -| **evolution** | Character evolutions | -| **rumor** | Rumors (group) | -| **target** | Targets (group) | -| **rite** | Rites (magic/rituals) | +| Type | Utilisation | +|------|-------------| +| **item** | Objets génériques (matériel, ressources) | +| **weapon** | Armes — dégâts, portée, fiabilité, rareté | +| **defense** | Armures/boucliers — protection, couverture | +| **vehicle** | Véhicules — vitesse, structure, armement | +| **ability** | Capacités spéciales (apprentissage, domaine) | +| **specialty** | Spécialités de compétence | +| **background** | Historiques de personnage | +| **trauma** | Traumatismes physiques/mentaux | +| **evolution** | Évolutions du personnage | +| **rumor** | Rumeurs (groupe) | +| **target** | Cibles (groupe) | +| **rite** | Rites (magie/rituels) | -## Dice System +## Système de Dés -- **d10-based success counting**: `Xd10cs>=N` -- Difficulty = number of successes required -- Totems give domain bonuses (human/adapted dice) -- Rerolls via Effort and Sang-froid (Composure) -- Automatic successes and failure thresholds -- **Dice So Nice!** 3D dice integration with custom d10 face images +- **Comptage de succès sur d10** : `Xd10cs>=N` +- Difficulté = nombre de succès requis +- Les totems donnent des bonus de domaine (dés humains/adaptés) +- Relances via l'Effort et le Sang-froid +- Succès automatiques et seuils d'échec +- Intégration **Dice So Nice!** avec faces de d10 personnalisées ### Initiative -Formula: `(@abilities.reflexes.value + @skills.alertness.value)d10cs>=@combatStatus.difficulty` +Formule : `(@abilities.reflexes.value + @skills.alertness.value)d10cs>=@combatStatus.difficulty` --- @@ -53,68 +55,82 @@ Formula: `(@abilities.reflexes.value + @skills.alertness.value)d10cs>=@combatSta ``` module/ -├── vermine2047.mjs # Entry point (Hooks.once init) +├── vermine2047.mjs # Point d'entrée (Hooks.once init) ├── models/ # DataModels (Foundry v2 TypeDataModel) │ ├── actor/ # character.mjs, npc.mjs, group.mjs, creature.mjs -│ └── item/ # All 12 item types +│ └── item/ # Les 12 types d'objets ├── documents/ # VermineActor, VermineItem ├── applications/ -│ └── sheets/ # AppV2 sheets per type +│ └── sheets/ # Fiches AppV2 par type ├── system/ -│ ├── config.mjs # CONFIG.VERMINE (totems, traits, skills…) +│ ├── config.mjs # CONFIG.VERMINE (totems, traits, compétences…) │ ├── roll.mjs # VermineUtils.roll() -│ ├── fight.mjs # Combat system, VermineCombat, VermineCombatant -│ ├── functions.mjs # Shared helpers (skill scores, etc.) -│ ├── hooks.mjs # Hook registrations (DiceSoNice, chat, pause…) -│ ├── dice3d.mjs # Dice So Nice colors, initUserDice +│ ├── fight.mjs # Système de combat, VermineCombat, VermineCombatant +│ ├── functions.mjs # Fonctions partagées +│ ├── hooks.mjs # Hooks (DiceSoNice, chat, pause…) +│ ├── dice3d.mjs # Couleurs Dice So Nice, initUserDice │ ├── dialogs/rollDialog.mjs -│ ├── settings.mjs # System settings (game-mode, etc.) -│ ├── tour.mjs # Tours (stub) -│ └── group-link.mjs # GroupLink: auto-sync actors↔groups +│ ├── settings.mjs # Paramètres du système (mode de jeu…) +│ ├── tour.mjs # Visites guidées (stub) +│ └── group-link.mjs # GroupLink : synchro acteurs↔groupes templates/ -├── actor/appv2/ # AppV2 actor sheet templates -├── actor/ # Legacy templates (coexisting) -└── item/ # Item sheet templates +├── actor/appv2/ # Templates AppV2 des fiches acteurs +├── actor/ # Templates legacy (coexistence) +└── item/ # Templates des fiches objets css/ -└── vermine2047.min.css # Compiled from LESS +└── vermine2047.min.css # Compilé depuis LESS less/ -└── base.less # Main stylesheet (LESS source) +└── base.less # Source LESS principale ``` -## Key Objects +## Objets Clés - `game.vermine2047` → `{ VermineUtils, VermineCombat, GroupLink }` -- `CONFIG.VERMINE` → totems, traits, skills, domains, combat statuses… -- `CONFIG.ui.combat` → custom `VermineCombatTracker` +- `CONFIG.VERMINE` → totems, traits, compétences, domaines, états de combat… +- `CONFIG.ui.combat` → `VermineCombatTracker` personnalisé -## Commands +## Commandes ```sh npm run build:less # LESS → css/vermine2047.min.css -npm run build:less:dev # LESS → css/vermine2047.dev.css (unminified) -npm run build:all-css # Both +npm run build:less:dev # LESS → css/vermine2047.dev.css (non minifié) +npm run build:all-css # Les deux npm run watch # Gulp watch + browser-sync → localhost:30000 -npm run lint:less # LESS lint -npm run pushLDBtoYAML # Extract packs → src/packs/*.yml -npm run pullYAMLtoLDB # Compile packs → packs/* (LevelDB) -make build|watch|lint # Makefile wrappers +npm run lint:less # Vérification LESS +npm run pushLDBtoYAML # Extraire les packs → src/packs/*.yml +npm run pullYAMLtoLDB # Compiler les packs → packs/* (LevelDB) +make build|watch|lint # Raccourcis Makefile ``` -### Requirements -- Node.js `v16.15.1` (see `.nvmrc`) +### Prérequis +- Node.js `v16.15.1` (cf `.nvmrc`) - Foundry VTT **v14** -## Development Notes +## Notes de Développement -- **DataModels before Document classes**: In `init` hook, register `CONFIG.Actor.dataModels.*` and `CONFIG.Item.dataModels.*` **before** setting `CONFIG.Actor.documentClass` / `CONFIG.Item.documentClass`. -- **Two template systems**: AppV2 (`templates/actor/appv2/`) and legacy (`templates/actor/*.hbs`) coexist — don't confuse them. -- **Packs**: Edit YAML source in `src/packs/*.yml`, then run `pullYAMLtoLDB` to compile to LevelDB. -- **CSS**: Declared in `system.json` styles — do **not** inject `` manually. -- **ESLint**: ~350 rules. Run `npx eslint module/` before committing. No `console.log` (use `console.error` sparingly). -- **editMode**: Not auto-set on actor creation (causes ActiveEffect errors). Enable manually via sheet checkbox. -- **GroupLink**: Auto-syncs on actor update. Changes propagate bidirectionally. -- **HotReload**: Enabled for css, scss, hbs, json in `system.json`. +- **DataModels avant Document classes** : Dans le hook `init`, enregistrer `CONFIG.Actor.dataModels.*` et `CONFIG.Item.dataModels.*` **avant** de définir `CONFIG.Actor.documentClass` / `CONFIG.Item.documentClass`. +- **Deux systèmes de templates** : AppV2 (`templates/actor/appv2/`) et legacy (`templates/actor/*.hbs`) coexistent. +- **Packs** : Éditer les sources YAML dans `src/packs/*.yml`, puis lancer `pullYAMLtoLDB`. +- **CSS** : Déclaré dans `system.json` — ne **pas** injecter de `` manuellement. +- **ESLint** : ~350 règles. Lancer `npx eslint module/` avant chaque commit. Pas de `console.log`. +- **editMode** : Ne se met plus automatiquement à la création d'acteur (cause des erreurs ActiveEffect). Activer manuellement via la case à cocher. +- **GroupLink** : Synchronisation automatique bidirectionnelle acteurs↔groupes. +- **HotReload** : Activé pour css, scss, hbs, json dans `system.json`. -## License +--- -This system is an unofficial fan project. The Vermine 2047 setting and trademarks belong to Éditions John Doe. +## English Summary + +**Vermine 2047** is a French post-apocalyptic TTRPG. This is an unofficial Foundry VTT system (v14). + +- **4 actor types**: character, npc, group, creature +- **12 item types**: item, weapon, defense, vehicle, ability, specialty, background, trauma, evolution, rumor, target, rite +- **Dice**: d10 success-counting with totem domains, Effort rerolls, Dice So Nice! 3D integration +- **Sheets**: AppV2 with tab navigation, edit/play mode toggle +- **Bilingual**: FR/EN interface + +--- + +## Licence + +Projet fan non-officiel. L'univers et les marques Vermine 2047 appartiennent aux Éditions John Doe.