Compare commits
4 Commits
412573fc4d
..
14.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 29b6a98c89 | |||
| b1d73e6b08 | |||
| 509a5efd9d | |||
| fea7c1c271 |
-141
@@ -1,141 +0,0 @@
|
||||
# CHANGELOG - Vermine2047 System
|
||||
|
||||
## 0.1.14 - 2026-06-04
|
||||
|
||||
### 🚀 Nouveautés
|
||||
|
||||
#### Système
|
||||
- **Mise à jour de la compatibilité**: Support officiel de FoundryVTT v14 (tout en maintenant la compatibilité v11-v12)
|
||||
- **Nouvelle classe GroupLink**: Gestion complète des liens bidirectionnels entre acteurs et groupes
|
||||
- Synchronisation automatique des membres et rencontres
|
||||
- Hooks pour la création, mise à jour et suppression d'acteurs
|
||||
- Méthodes utilitaires pour gérer les relations
|
||||
|
||||
#### Configuration
|
||||
- **Domaines des totems**: Ajout de `CONFIG.VERMINE.totemDomains` avec les domaines d'influence pour chaque totem
|
||||
- **Configurations étendues**: Ajout des configurations pour PNJ et créatures
|
||||
- `npcThreatLevels`, `npcExperienceLevels`, `npcRoleLevels`
|
||||
- `creaturePatternLevels`, `creatureSizeLevels`, `creatureRoleLevels`, `creaturePackLevels`
|
||||
|
||||
#### Fiches
|
||||
- **Fiche PNJ**: Remplacement des inputs numériques par des sélecteurs pour menace, expérience et rôle
|
||||
- **Fiche Créature**: Remplacement des inputs numériques par des sélecteurs pour gabarit, taille, rôle et meute
|
||||
- **Ajout du champ encounters**: Les personnages peuvent maintenant appartenir à des groupes
|
||||
|
||||
#### Jets de dés
|
||||
- **Redesign complet du RollDialog**: Interface plus compacte et organisée
|
||||
- Utilisation de `<details>`/`<summary>` pour une meilleure organisation
|
||||
- Affichage du total du pool de dés en temps réel
|
||||
- Sélecteur pour choisir quel totem garder (humain ou adapté)
|
||||
- Affichage des bonus/malus par domaine de totem
|
||||
|
||||
- **Bonus/malus par domaine**: Implémentation des bonus de totem basés sur le domaine de prédilection
|
||||
- Bonus: +1 dé si le domaine de prédilection est dans les domaines du totem
|
||||
- Malus: -1 dé si le domaine de prédilection est dans les domaines du totem opposé
|
||||
|
||||
- **Réussites automatiques**: Implémentation des réussites automatiques basées sur le niveau de maîtrise
|
||||
- Niveau 2 + spécialité: +1 réussite automatique
|
||||
- Niveau 3: +1 réussite automatique
|
||||
- Niveau 4 + spécialité: +2 réussites automatiques
|
||||
- Niveau 5: +2 réussites automatiques
|
||||
|
||||
- **Seuils automatiques**: Implémentation des seuils automatiques pour les compétences non maîtrisées
|
||||
- Niveau 0 (Incompétent): seuil = 9
|
||||
- Niveau 1 (Débutant): seuil = 7
|
||||
- Niveau >= 2: utilise la difficulté spécifiée
|
||||
|
||||
#### Items
|
||||
- **Correction des templates de chat cards**: Tous les templates sont maintenant en `.hbs`
|
||||
- **Chat cards améliorées**: Affichage plus complet des informations pour chaque type d'item
|
||||
- Armes: dégâts, type, portée, munitions
|
||||
- Protections: niveau, mobilité, bouclier
|
||||
- Capacités: type, totem, niveau, effets
|
||||
- etc.
|
||||
|
||||
#### Traductions
|
||||
- Ajout de nombreuses nouvelles traductions pour les nouvelles fonctionnalités
|
||||
- Correction des traductions existantes
|
||||
|
||||
#### Documentation
|
||||
- **Documentation technique complète**: `docs/technical/ARCHITECTURE.md`
|
||||
- Structure du projet
|
||||
- Configuration du système
|
||||
- Architecture des documents
|
||||
- Système de dés
|
||||
- Système de combat
|
||||
- Gestion des groupes
|
||||
- Bonnes pratiques de développement
|
||||
|
||||
### 🐛 Corrections
|
||||
|
||||
- Correction des références de templates (`.html` → `.hbs`)
|
||||
- Correction des erreurs dans les templates de chat cards
|
||||
- Amélioration de la gestion des totems dans les rolls
|
||||
- Nettoyage du code et suppression des logs de débogage
|
||||
|
||||
### 📝 Modifications mineures
|
||||
|
||||
- Mise à jour des métadonnées du système dans `system.json`
|
||||
- Ajout du champ `encounters` au template des personnages
|
||||
- Amélioration des helpers Handlebars avec de nouveaux helpers pour les configurations PNJ/Créature
|
||||
|
||||
---
|
||||
|
||||
## 0.1.13
|
||||
- ajout des historiques
|
||||
- ajout des rites
|
||||
|
||||
## 0.1.12
|
||||
- passage des packs en LevelDB
|
||||
|
||||
## 0.1.11
|
||||
- passage à une compatibilité v11
|
||||
|
||||
## 0.1.10
|
||||
- révision du template évolution
|
||||
- révision du template traumatisme
|
||||
- ajout du type rite
|
||||
- test import de pack
|
||||
|
||||
## 0.1.9
|
||||
- versions condensées des méthodes (@kristov)
|
||||
- renommage des templates
|
||||
- image actors par défaut
|
||||
- image des créatures
|
||||
- ajout du totem et de l'apprentissage dans les capacités
|
||||
|
||||
## 0.1.8
|
||||
- refactoring sheet vers actor
|
||||
|
||||
## 0.1.7
|
||||
- sang-froid, effort, et santé
|
||||
|
||||
## 0.1.6
|
||||
- finition de l'onglet totem
|
||||
- ajout du logo de totem dans la sidebar
|
||||
- ajout de traductions manquantes
|
||||
|
||||
## 0.1.5
|
||||
- début de mise en forme des feuilles créature et pnj
|
||||
- possibilité de changer le type de capacité (pour ajouter des capacités de totem)
|
||||
|
||||
---
|
||||
|
||||
## Notes de migration
|
||||
|
||||
### Pour les utilisateurs
|
||||
|
||||
1. **Compatibilité**: Le système est maintenant compatible avec FoundryVTT v14
|
||||
2. **Nouveaux champs**: Les personnages ont maintenant un champ `encounters` pour gérer leurs groupes
|
||||
3. **RollDialog**: L'interface du dialogue de jet a été complètement redessinée pour être plus intuitive
|
||||
4. **Bonus de totem**: Les bonus de domaine sont maintenant automatiquement appliqués
|
||||
|
||||
### Pour les développeurs
|
||||
|
||||
1. **GroupLink**: Utilisez la classe GroupLink pour gérer les relations entre acteurs et groupes
|
||||
2. **Nouveaux helpers**: De nombreux nouveaux helpers Handlebars ont été ajoutés pour les configurations PNJ/Créature
|
||||
3. **CONFIG.VERMINE**: De nombreuses nouvelles configurations ont été ajoutées
|
||||
|
||||
---
|
||||
|
||||
*Généré le 2026-06-04*
|
||||
@@ -0,0 +1,7 @@
|
||||
Code Author :
|
||||
- Developed by LeRatierBretonnien / www.uberwald.me
|
||||
|
||||
Code LICENCE :
|
||||
C BY-NC-SA 4.0
|
||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
|
||||
This license requires that reusers give credit to the creator. It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only. If others modify or adapt the material, they must license the modified material under identical terms.
|
||||
@@ -1,51 +1,53 @@
|
||||
# Vermine 2047 — Foundry VTT System
|
||||
# Vermine 2047 — Système Foundry VTT
|
||||
|
||||

|
||||

|
||||
|
||||
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 **Studio Agate**.
|
||||
|
||||
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 `<link>` 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 `<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`.
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# vermine2047 Audit Findings
|
||||
|
||||
Security audit of `vermine2047` at commit `b1d73e6b08bf`. Each finding links to a detailed write-up (`NNN-*.md`) and a proposed patch (`NNN-*.patch`).
|
||||
|
||||
## Summary
|
||||
|
||||
**Total findings: 0**
|
||||
|
||||
## Findings
|
||||
|
||||
## Dropped in adjudication
|
||||
|
||||
These findings reproduced in Phase 4 but the Phase 4.5 gate judged them false positives or out of a realistic threat model.
|
||||
|
||||
- **Unpinned mutable CI action enabling supply chain hijacking** (high, .gitea/workflows/release.yaml): Malformed URL in `uses` breaks workflow parsing; step is unreachable and prevents execution entirely.; Relies on improbable upstream compromise; standard configuration gap rather than immediate vulnerability.
|
||||
|
||||
## Run details
|
||||
|
||||
- run id: `aa4595a1`
|
||||
- commit: `b1d73e6b08bf7ed0157a03137cc3bb50c8d3a26c`
|
||||
- branch: `main`
|
||||
- scope: 214 file(s)
|
||||
- files triaged: 214
|
||||
- files escalated: 14
|
||||
- files deep-reviewed: 14
|
||||
- findings proposed: 1
|
||||
- findings verified: 0
|
||||
- findings discarded: 0
|
||||
- findings dropped in adjudication: 1
|
||||
- artifacts: 0 written, 0 failed, 0 pending
|
||||
|
||||
## How to read this directory
|
||||
|
||||
Each finding has a paired `NNN-<slug>.md` (the human report) and `NNN-<slug>.patch` (the proposed fix as a unified diff). The report carries the narrative; the patch is the suggested change. Regenerate a single finding's artifacts with `/audit --regen --finding N`.
|
||||
+1
-1
@@ -126,7 +126,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "matériel",
|
||||
"name": "materiel",
|
||||
"label": "Matériel",
|
||||
"system": "vermine2047",
|
||||
"path": "packs/materiel",
|
||||
|
||||
Reference in New Issue
Block a user