137 lines
5.8 KiB
Markdown
137 lines
5.8 KiB
Markdown
# Vermine 2047 — Système Foundry VTT
|
|
|
|

|
|

|
|
|
|
Système non-officiel pour le jeu de rôle **Vermine 2047**, univers post-apo français par **Studio Agate**.
|
|
|
|
► Achetez le jeu : https://www.kickandgo.net/boutique-agate/category.php?cl=UyQcRrFtYcYrAnLbOfDj&idp=20
|
|
|
|
Interface bilingue **FR/EN**.
|
|
|
|
---
|
|
|
|
## Types d'Acteurs
|
|
|
|
| Type | Fiche | Description |
|
|
|------|-------|-------------|
|
|
| **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 |
|
|
|
|
## Types d'Objets
|
|
|
|
| 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) |
|
|
|
|
## Système de Dés
|
|
|
|
- **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
|
|
Formule : `(@abilities.reflexes.value + @skills.alertness.value)d10cs>=@combatStatus.difficulty`
|
|
|
|
---
|
|
|
|
## Architecture
|
|
|
|
```
|
|
module/
|
|
├── vermine2047.mjs # Point d'entrée (Hooks.once init)
|
|
├── models/ # DataModels (Foundry v2 TypeDataModel)
|
|
│ ├── actor/ # character.mjs, npc.mjs, group.mjs, creature.mjs
|
|
│ └── item/ # Les 12 types d'objets
|
|
├── documents/ # VermineActor, VermineItem
|
|
├── applications/
|
|
│ └── sheets/ # Fiches AppV2 par type
|
|
├── system/
|
|
│ ├── config.mjs # CONFIG.VERMINE (totems, traits, compétences…)
|
|
│ ├── roll.mjs # VermineUtils.roll()
|
|
│ ├── 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 # Paramètres du système (mode de jeu…)
|
|
│ ├── tour.mjs # Visites guidées (stub)
|
|
│ └── group-link.mjs # GroupLink : synchro acteurs↔groupes
|
|
templates/
|
|
├── actor/appv2/ # Templates AppV2 des fiches acteurs
|
|
├── actor/ # Templates legacy (coexistence)
|
|
└── item/ # Templates des fiches objets
|
|
css/
|
|
└── vermine2047.min.css # Compilé depuis LESS
|
|
less/
|
|
└── base.less # Source LESS principale
|
|
```
|
|
|
|
## Objets Clés
|
|
|
|
- `game.vermine2047` → `{ VermineUtils, VermineCombat, GroupLink }`
|
|
- `CONFIG.VERMINE` → totems, traits, compétences, domaines, états de combat…
|
|
- `CONFIG.ui.combat` → `VermineCombatTracker` personnalisé
|
|
|
|
## Commandes
|
|
|
|
```sh
|
|
npm run build:less # LESS → css/vermine2047.min.css
|
|
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 # 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
|
|
```
|
|
|
|
### Prérequis
|
|
- Node.js `v16.15.1` (cf `.nvmrc`)
|
|
- Foundry VTT **v14**
|
|
|
|
## Notes de Développement
|
|
|
|
- **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 `<link>` 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`.
|
|
|
|
---
|
|
|
|
## 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.
|