Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 29b6a98c89 | |||
| b1d73e6b08 | |||
| 509a5efd9d | |||
| fea7c1c271 | |||
| 412573fc4d | |||
| 47e2ebe45b |
@@ -22,3 +22,4 @@ scss_old/
|
|||||||
# Fichiers CSS générés
|
# Fichiers CSS générés
|
||||||
css/vermine2047.*.css
|
css/vermine2047.*.css
|
||||||
!css/vermine2047.css
|
!css/vermine2047.css
|
||||||
|
regles/
|
||||||
|
|||||||
-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,61 +1,136 @@
|
|||||||
# Vermine 2047 System
|
# Vermine 2047 — Système Foundry VTT
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
##TODO
|
Système non-officiel pour le jeu de rôle **Vermine 2047**, univers post-apo français par **Studio Agate**.
|
||||||
|
|
||||||
### fiche de perso
|
► Achetez le jeu : https://www.kickandgo.net/boutique-agate/category.php?cl=UyQcRrFtYcYrAnLbOfDj&idp=20
|
||||||
|
|
||||||
- [X] création de spécialitées depuis le (+) des compétences
|
Interface bilingue **FR/EN**.
|
||||||
- [X] fixer les cases hexas , comprtement chelou , piste = un click à l'air d'envoyer 2 update, verifier le onChange
|
|
||||||
- [X] dialog d'edition des min-max
|
|
||||||
|
|
||||||
### fiche de groupe
|
---
|
||||||
- [X] pas encore penché dessus
|
|
||||||
|
|
||||||
#### Members et encounters
|
## Types d'Acteurs
|
||||||
|
|
||||||
- [X] faire une classe GroupLink pour avoir les actors en objets dans les array group.members[], group.encounters[], et character.encounters[],
|
| Type | Fiche | Description |
|
||||||
- [X] faire une fonction sur le Hook.onUpdateActor => update des groupes dans characters, update des encounters et members dans groups
|
|------|-------|-------------|
|
||||||
|
| **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 |
|
||||||
|
|
||||||
### fiche de pnj créature
|
## Types d'Objets
|
||||||
- [X] à faire,
|
|
||||||
- [X] lister les gabarit/taille/roles(creatures) et menace/experience/role(pnj)... stocker les modifs dans CONFIG.VERMINE,
|
|
||||||
|
|
||||||
|
| 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) |
|
||||||
|
|
||||||
### les jets de dés
|
## Système de Dés
|
||||||
- [X] redesign de rollDialog => `<details>+<sumary>`=> rendre moins dense
|
|
||||||
- [X] envoyer les spécialités utilisables au rollDialog
|
|
||||||
- [X] envoyer les items utilisables au rollDialog
|
|
||||||
- [X] gérer le fait de choisir quel totem garder : recalcul des réussites
|
|
||||||
- [X] refacto des template chat de roll
|
|
||||||
- [X] gérer les dés de totems humains et adapté : couleur différente/double succès +update actor
|
|
||||||
- [X] gérer les rerolls depuis chat(cf noc)
|
|
||||||
- [X] gérer les rerolls après le jet en fonction du score d'effort et de la carac
|
|
||||||
- [X] faire l'update l' l'actor juste après s'etre accorder des rerolls, et avoir utiliser le sang-froid
|
|
||||||
- [X] update des reserves de sang-froids lors de jets
|
|
||||||
- [X] ajout des domaines de prédilections
|
|
||||||
- [X] gérer le dés en +/- selon l'influence du totem adapté ou humain selon les domaines
|
|
||||||
- [X] gérer les réussites auto
|
|
||||||
- [X] gérer les seuils auto si compétence non maitrisée
|
|
||||||
|
|
||||||
### le combat
|
- **Comptage de succès sur d10** : `Xd10cs>=N`
|
||||||
- [X] modifier la difficulté en fonction de l'état du combatant /offensif/actif/passif/
|
- 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`
|
||||||
|
|
||||||
### les items
|
---
|
||||||
- [X] ajouter apprentissage aux abilities
|
|
||||||
- [X] passer le type d'arme en select/options
|
## Architecture
|
||||||
- [X] ajouter handicap de rareté
|
|
||||||
- [X] ajouter pour items Item "competence nécessaire"
|
```
|
||||||
- [X] gérer les rolls d'items dans le chat
|
module/
|
||||||
- [X] repasser sur les différents itemTypes et sheets
|
├── vermine2047.mjs # Point d'entrée (Hooks.once init)
|
||||||
- [X] verifier le selector de traits (trait pratique cf : msg pretre)
|
├── models/ # DataModels (Foundry v2 TypeDataModel)
|
||||||
- [X] construire une selecteur de traits, traits= CONFIG.VERMINE.traits
|
│ ├── actor/ # character.mjs, npc.mjs, group.mjs, creature.mjs
|
||||||
traits:[
|
│ └── item/ # Les 12 types d'objets
|
||||||
key:{
|
├── documents/ # VermineActor, VermineItem
|
||||||
name:string,
|
├── applications/
|
||||||
description:string,
|
│ └── sheets/ # Fiches AppV2 par type
|
||||||
value:number
|
├── system/
|
||||||
}
|
│ ├── config.mjs # CONFIG.VERMINE (totems, traits, compétences…)
|
||||||
]
|
│ ├── roll.mjs # VermineUtils.roll()
|
||||||
- [X] ajouter des dégats sur chaques fiches item
|
│ ├── 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.
|
||||||
|
|||||||
@@ -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`.
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -126,7 +126,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "matériel",
|
"name": "materiel",
|
||||||
"label": "Matériel",
|
"label": "Matériel",
|
||||||
"system": "vermine2047",
|
"system": "vermine2047",
|
||||||
"path": "packs/materiel",
|
"path": "packs/materiel",
|
||||||
|
|||||||
Reference in New Issue
Block a user