uberwald ef01651b1d feat(traits): tâche 0 + phases 2-4 — automatisation complète des Traits
Tâche 0 :
- item.mjs : champ equipped sur items génériques + toggle fiche
- nouveau module/system/traits.mjs (helpers partagés : equippedItems, lourdMalus, mobilityHandicap, feticheItem…)

Phase 2 — Combat :
- Lourd : malus cumulés auto (Vigueur < n) dans le dialogue + pool
- Rapide : handicap (n) pré-rempli dans la défense (character + PNJ) + note carte
- Rafale : case tir en rafale (+2 difficulté), +n réussites si réussi (bonusOnSuccess)
- Portée : portée effective n × Vigueur affichée
- Maniable/Mobilité : note de rappel (dialogue + carte)
- Incapacitant : bouton « Jet de Santé (n) » sur la carte d'échange
- getLabel() : libellés caractéristiques/compétences localisés

Phase 3 — Jets d'action :
- Ponctuel : annule jusqu'à n Handicaps, consommé au jet (Traits supprimé à 0)
- Pratique : outil sélectionné +2D au lieu de +1D
- Intimidant : case « Brandit » → -1D Psychologie ou Relance 1D
- Malus : champ « Malus temporaires » manuel déduit du pool
- Durée : note « n tours » sur la carte de jet d'arme
- roll() : transmission effectiveRange/mobilityHandicap/ponctuelUsed/intimidant (corrige l'affichage Portée/Mobilité)

Phase 4 — Acteur :
- Fétiche : +1D Effort ET Sang-Froid (max dérivé, config corrigé), alerte 2+ fétiches, action « Perdre le fétiche » (-2D, max -1D persistant feticheLoss)
- Zone : note + bouton « Appliquer aux cibles de la zone » (#onApplyZone)

CSS : styles LESS pour les nouvelles classes (fetiche-block, exchange-reminder/zone, traits-reminder, tool-bonus/ponctuel, duree-note)
i18n : 29 clés fr/en
TRAITS_PLAN.md : plan complet cochée
2026-08-07 15:30:41 +02:00
2023-04-19 17:10:01 +02:00
2026-07-17 22:09:53 +02:00
2026-06-06 10:21:24 +02:00
2026-06-06 10:21:24 +02:00
2024-11-18 09:27:33 +01:00
2024-04-28 16:35:48 +02:00
2023-04-19 17:10:01 +02:00
2023-04-19 17:10:01 +02:00
2026-06-06 10:21:24 +02:00
2026-06-06 10:21:24 +02:00
2026-06-06 10:21:24 +02:00
2026-06-06 10:21:24 +02:00
2024-11-15 22:05:29 +01:00

Vermine 2047 — Système Foundry VTT

Foundry v14 Version

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.combatVermineCombatTracker personnalisé

Commandes

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

VERMINE 2047, Un jeu de Julien Blondel

© 2023 Studio Agate TOTEM System

© 2023 Julien Blondel Tous droits réservés

S
Description
No description provided
Readme
86 MiB
14.1.5
Latest
2026-08-07 21:06:30 +02:00
Languages
JavaScript 44.7%
Handlebars 37.3%
Less 11.8%
CSS 5.9%
Makefile 0.2%