docs: translate README to French with English summary

This commit is contained in:
2026-07-12 22:30:16 +02:00
parent 412573fc4d
commit fea7c1c271
+87 -71
View File
@@ -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) ![Foundry v14](https://img.shields.io/badge/Foundry-v14-blue)
![Version](https://img.shields.io/badge/version-0.1.13-green) ![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 | | **character** | AppV2 | Personnage joueur — compétences, capacités, totem, équipement |
| **npc** | AppV2 | Non-player character with role/threat, wound thresholds | | **npc** | AppV2 | PNJ avec rôle/menace, seuils de blessure |
| **group** | AppV2 | Group with members, encounters, link sync | | **group** | AppV2 | Groupe avec membres, rencontres, synchro liée |
| **creature** | AppV2 | Creature with template/size/role, custom attack stats | | **creature** | AppV2 | Créature avec gabarit/taille/rôle, attaques custom |
## Item Types ## Types d'Objets
| Type | Use | | Type | Utilisation |
|------|-----| |------|-------------|
| **item** | Generic items (gear, resources) | | **item** | Objets génériques (matériel, ressources) |
| **weapon** | Weapons with damage, range, reliability, rarity | | **weapon** | Armes — dégâts, portée, fiabilité, rareté |
| **defense** | Armor/shields with protection, coverage | | **defense** | Armures/boucliers — protection, couverture |
| **vehicle** | Vehicles with speed, structure, weapons | | **vehicle** | Véhicules — vitesse, structure, armement |
| **ability** | Special abilities (apprenticeship, domain) | | **ability** | Capacités spéciales (apprentissage, domaine) |
| **specialty** | Skill specializations (attached to skills) | | **specialty** | Spécialités de compétence |
| **background** | Character backgrounds | | **background** | Historiques de personnage |
| **trauma** | Mental/physical trauma | | **trauma** | Traumatismes physiques/mentaux |
| **evolution** | Character evolutions | | **evolution** | Évolutions du personnage |
| **rumor** | Rumors (group) | | **rumor** | Rumeurs (groupe) |
| **target** | Targets (group) | | **target** | Cibles (groupe) |
| **rite** | Rites (magic/rituals) | | **rite** | Rites (magie/rituels) |
## Dice System ## Système de Dés
- **d10-based success counting**: `Xd10cs>=N` - **Comptage de succès sur d10** : `Xd10cs>=N`
- Difficulty = number of successes required - Difficulté = nombre de succès requis
- Totems give domain bonuses (human/adapted dice) - Les totems donnent des bonus de domaine (dés humains/adaptés)
- Rerolls via Effort and Sang-froid (Composure) - Relances via l'Effort et le Sang-froid
- Automatic successes and failure thresholds - Succès automatiques et seuils d'échec
- **Dice So Nice!** 3D dice integration with custom d10 face images - Intégration **Dice So Nice!** avec faces de d10 personnalisées
### Initiative ### 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/ module/
├── vermine2047.mjs # Entry point (Hooks.once init) ├── vermine2047.mjs # Point d'entrée (Hooks.once init)
├── models/ # DataModels (Foundry v2 TypeDataModel) ├── models/ # DataModels (Foundry v2 TypeDataModel)
│ ├── actor/ # character.mjs, npc.mjs, group.mjs, creature.mjs │ ├── actor/ # character.mjs, npc.mjs, group.mjs, creature.mjs
│ └── item/ # All 12 item types │ └── item/ # Les 12 types d'objets
├── documents/ # VermineActor, VermineItem ├── documents/ # VermineActor, VermineItem
├── applications/ ├── applications/
│ └── sheets/ # AppV2 sheets per type │ └── sheets/ # Fiches AppV2 par type
├── system/ ├── system/
│ ├── config.mjs # CONFIG.VERMINE (totems, traits, skills…) │ ├── config.mjs # CONFIG.VERMINE (totems, traits, compétences…)
│ ├── roll.mjs # VermineUtils.roll() │ ├── roll.mjs # VermineUtils.roll()
│ ├── fight.mjs # Combat system, VermineCombat, VermineCombatant │ ├── fight.mjs # Système de combat, VermineCombat, VermineCombatant
│ ├── functions.mjs # Shared helpers (skill scores, etc.) │ ├── functions.mjs # Fonctions partagées
│ ├── hooks.mjs # Hook registrations (DiceSoNice, chat, pause…) │ ├── hooks.mjs # Hooks (DiceSoNice, chat, pause…)
│ ├── dice3d.mjs # Dice So Nice colors, initUserDice │ ├── dice3d.mjs # Couleurs Dice So Nice, initUserDice
│ ├── dialogs/rollDialog.mjs │ ├── dialogs/rollDialog.mjs
│ ├── settings.mjs # System settings (game-mode, etc.) │ ├── settings.mjs # Paramètres du système (mode de jeu…)
│ ├── tour.mjs # Tours (stub) │ ├── tour.mjs # Visites guidées (stub)
│ └── group-link.mjs # GroupLink: auto-sync actors↔groups │ └── group-link.mjs # GroupLink : synchro acteurs↔groupes
templates/ templates/
├── actor/appv2/ # AppV2 actor sheet templates ├── actor/appv2/ # Templates AppV2 des fiches acteurs
├── actor/ # Legacy templates (coexisting) ├── actor/ # Templates legacy (coexistence)
└── item/ # Item sheet templates └── item/ # Templates des fiches objets
css/ css/
└── vermine2047.min.css # Compiled from LESS └── vermine2047.min.css # Compilé depuis LESS
less/ less/
└── base.less # Main stylesheet (LESS source) └── base.less # Source LESS principale
``` ```
## Key Objects ## Objets Clés
- `game.vermine2047``{ VermineUtils, VermineCombat, GroupLink }` - `game.vermine2047``{ VermineUtils, VermineCombat, GroupLink }`
- `CONFIG.VERMINE` → totems, traits, skills, domains, combat statuses - `CONFIG.VERMINE` → totems, traits, compétences, domaines, états de combat
- `CONFIG.ui.combat` custom `VermineCombatTracker` - `CONFIG.ui.combat``VermineCombatTracker` personnalisé
## Commands ## Commandes
```sh ```sh
npm run build:less # LESS → css/vermine2047.min.css npm run build:less # LESS → css/vermine2047.min.css
npm run build:less:dev # LESS → css/vermine2047.dev.css (unminified) npm run build:less:dev # LESS → css/vermine2047.dev.css (non minifié)
npm run build:all-css # Both npm run build:all-css # Les deux
npm run watch # Gulp watch + browser-sync → localhost:30000 npm run watch # Gulp watch + browser-sync → localhost:30000
npm run lint:less # LESS lint npm run lint:less # Vérification LESS
npm run pushLDBtoYAML # Extract packs → src/packs/*.yml npm run pushLDBtoYAML # Extraire les packs → src/packs/*.yml
npm run pullYAMLtoLDB # Compile packs → packs/* (LevelDB) npm run pullYAMLtoLDB # Compiler les packs → packs/* (LevelDB)
make build|watch|lint # Makefile wrappers make build|watch|lint # Raccourcis Makefile
``` ```
### Requirements ### Prérequis
- Node.js `v16.15.1` (see `.nvmrc`) - Node.js `v16.15.1` (cf `.nvmrc`)
- Foundry VTT **v14** - 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`. - **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`.
- **Two template systems**: AppV2 (`templates/actor/appv2/`) and legacy (`templates/actor/*.hbs`) coexist — don't confuse them. - **Deux systèmes de templates** : AppV2 (`templates/actor/appv2/`) et legacy (`templates/actor/*.hbs`) coexistent.
- **Packs**: Edit YAML source in `src/packs/*.yml`, then run `pullYAMLtoLDB` to compile to LevelDB. - **Packs** : Éditer les sources YAML dans `src/packs/*.yml`, puis lancer `pullYAMLtoLDB`.
- **CSS**: Declared in `system.json` styles — do **not** inject `<link>` manually. - **CSS** : Déclaré dans `system.json` — ne **pas** injecter de `<link>` manuellement.
- **ESLint**: ~350 rules. Run `npx eslint module/` before committing. No `console.log` (use `console.error` sparingly). - **ESLint** : ~350 règles. Lancer `npx eslint module/` avant chaque commit. Pas de `console.log`.
- **editMode**: Not auto-set on actor creation (causes ActiveEffect errors). Enable manually via sheet checkbox. - **editMode** : Ne se met plus automatiquement à la création d'acteur (cause des erreurs ActiveEffect). Activer manuellement via la case à cocher.
- **GroupLink**: Auto-syncs on actor update. Changes propagate bidirectionally. - **GroupLink** : Synchronisation automatique bidirectionnelle acteurs↔groupes.
- **HotReload**: Enabled for css, scss, hbs, json in `system.json`. - **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.