Commit Graph
55 Commits
Author SHA1 Message Date
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
uberwald 8dd5d02994 feat(traits): phase 1 — réparations (Bien conçu, Pratique, Coque réparable)
- Coque : épuisée stockée {value:0, max:n} au lieu de null → réparable ; nouveau mode « Réparer la coque » (difficulté = coque.max) dans le dialogue ; affichage (0/n) sur la fiche
- Bien conçu : Réussite automatique en réparation classique (restauration complète) ; +1 Fiabilité à la 1ère réparation de fortune réussie (compteur traits.bien_conçu.value)
- Pratique : Handicap +I sur toutes les réparations (required +1, note sur la carte)
- i18n fr/en (9 clés)
- TRAITS_PLAN.md : suivi du plan d'automatisation des Traits
2026-08-07 14:40:42 +02:00
uberwald 2f78d1a1ea fix(reliability): corrections suite au review
- min: 0 sur reliability (l'update à 0 était clippé à 1 par le schéma —
  l'état 'détruit' était inatteignable)
- réparation de fortune (règles p. 39) : +1D si le personnage possède la
  Compétence requise, sinon Handicap de Rareté de cette Compétence
  (rarity du skill de l'acteur) ; select toujours visible (compétence requise)
  et pré-rempli depuis needSkill/skill de l'item
- dés marqués 'dommage' uniquement pour les Dommages réellement comptés
  (Étanche/Coque absorbe → dés non marqués)
- destruction : damages.value réel conservé (difficulté de réparation
  honnête au lieu de 5 forcé)
- états de panne localisés (VERMINE.damages_state_N), aussi dans panneState()
- ReliabilityDialog invoqué via .create() (convention du codebase)
2026-08-07 13:48:13 +02:00
uberwald 7ec3d73915 fix: clé i18n manquante VERMINE.close (boutons affichaient 'VERMINE.CLOSE')
La clé 'close' du fichier lang était en fait la compétence 'Corps-à-corps'
(SKILLS.close) : les dialogues totem et Fiabilité affichaient la clé brute
'VERMINE.CLOSE'. Ajout de VERMINE.close = 'Fermer'/'Close', utilisé par les
deux dialogues.
2026-08-07 09:13:14 +02:00
uberwald 70a97796a3 feat: gestion de la Fiabilité du matériel (test de Fiabilité + réparations)
- module/system/reliability.mjs : VermineReliability
  - Test de Fiabilité : jet Xd10 (Mineurs 1D / Graves 3D / Critiques 5D),
    chaque dé >= Fiabilité inflige 1 Dommage ; réduit Fiabilité et dommages
    cumulés (panne/état/effet) ; destruction à 0
  - Traits appliqués : Coque (absorbe n puis se perd), Cassant (+1 perte),
    Étanche (Dommages d'immersion ignorés si Fiabilité au max)
  - Réparations : classique (Précision + Artisanat/Mécanique/Technologie/
    Armurerie vs Fiabilité d'origine + Handicap de panne, +1 Fiabilité/Réussite)
    et de fortune (Précision + Bricolage, panne réparée sans gain de Fiabilité)
- ReliabilityDialog (test/réparation) + cartes de chat dédiées
- Boutons Test de Fiabilité / Réparer sur les fiches d'items (weapon/defense/item)
- i18n fr/en + styles des cartes et boutons
2026-08-07 08:57:35 +02:00
uberwald b0a3aff648 feat: gestion des Dés de Totems (influence, instincts, interdits)
Release Creation / build (release) Failing after 1m32s
- VermineTotemDice : influence Humain/Adapté (+1D/-1D par domaine, règles
  p. 121), gains/pertes via Instincts/Interdits avec limites (3D/totem,
  5D total) et règles d'échange.
- roll.mjs applique l'influence selon le Totem dominant (au lieu de
  l'ancienne logique basée sur identity.totem).
- Dialogue TotemDiceDialog (instinct Humain/autre totem, interdit Humain,
  acte grave ±2D) + bouton et ligne d'influence sur la fiche personnage.
- Dés de Totem gagnés en cas d'échec à l'apprentissage Dé d'Évolution
  (dés dépensés, garde capacité vide).
- Couleur de texte @color-text-light-2 assombrie (#c9e0c0 → #3f9b55)
  pour la lisibilité dans tous les dialogues.

fix: robustesse et visibilité des évolutions

- buyEvolutionDialog : n'efface les Dés d'Évolution que si l'item est créé.
- Flag mutation éditable sur la fiche item evolution + badge
  Adaptation/Mutation dans la liste du personnage.
- loseDie : applique aussi la limite totale de 5 dés au gain Adapté.
- Case "acte grave" conservée entre les rendus du dialogue.
2026-08-06 15:32:55 +02:00
uberwald c96e8d69d7 fix: retours review - validation de phase, drop de véhicule et dés de Réserve
- resetPhaseLimits ne touche plus au compteur de phase (seul le
  dialogue d'attribution du MJ l'avance) : évite le double-incrément
  quand joueur et MJ valident la même phase.
- _onDropActor : import d'une copie monde pour un véhicule déposé
  depuis un compendium, confirmation avant de transférer un véhicule
  déjà rattaché à un autre Groupe, try/catch avec retour utilisateur.
- #onClickRadioHexa : garde isEditable (pas d'erreur de permission
  pour un utilisateur non éditeur).
2026-08-05 21:24:33 +02:00
uberwald 282fb2794a feat: validation de phase d'Expérience (réinitialisation des limites)
- Nouveau bouton « Valider la phase » sur les fiches Personnage et
  Groupe : incrémente experience.phase et réinitialise les limites
  d'apprentissage (learned.*) pour recommencer une nouvelle phase,
  sans repasser par le dialogue d'attribution du MJ.
- Helper VermineExperience.completePhase(actor) mutualisé
  (personnage ou Groupe) ; i18n FR/EN.
2026-08-05 20:58:46 +02:00
uberwald 0ad240bd03 feat: section Rites chamaniques sur la fiche de personnage
- Nouveau booléen system.identity.chaman (statut de Chaman).
- Onglet Totem : case à cocher « Chaman » toujours visible ; quand
  elle est cochée, la section « Rites chamaniques » apparaît avec la
  liste des items de type rite maîtrisés (création, édition,
  suppression en mode édition).
- i18n FR/EN (VERMINE.chaman).
2026-08-05 12:05:31 +02:00
uberwald 9d36b92fa9 feat: nouveaux apprentissages (Capacités de Totem, Historique, Réputation) et expérience de Groupe
- Dialogue d'apprentissage personnage : 4 nouveaux types d'achat.
  - Capacité de Totem : options filtrées (mode de jeu, niveau de
    groupe, totem, non-apprises), difficulté = valeur d'Apprentissage,
    limites 3×N1 / 1×N2-N3 / max 5, marque system.learned de l'item
    (convention type character) et learned.ability du personnage.
  - Élément d'Historique : difficulté 9, handicap 1 si astérisque
    (background.asterisk), marque learned.background + item.
  - Test de Réputation (réduire/augmenter) : réduire = difficulté
    10 − score visé (−1 pt), augmenter = difficulté = réputation
    actuelle (+1 par succès), bornes 0-10, marque learned.reputation.
  - Évolution : option Dé de Totem Adapté ×2 quand Adapté > Humain
    (1D remplacé par un dé adapté compté ×2 via VermineUtils.roll).
- Correction règles : les Dés d'Expérience sont dépensés même en cas
  d'échec du jet d'apprentissage (décompte hors #applySuccess).
- Expérience de Groupe : nouveau dialogue d'apprentissage de Groupe
  (niveau, réserve, capacité de totem), réserve d'expérience et phase
  dans system.experience, boutons sur la fiche Groupe, reset des
  limites par phase (level/reserve/ability).
- Phase d'expérience : filtre par groupe sélectionné, associe chaque
  personnage à son premier groupe, reset des limites de tous les
  nouveaux types d'apprentissage.
- Corrections : l'attaque de créature n'ajoute plus la Réaction du Rôle
  (regles_creatures.txt), suppression de la case XP des en-têtes PJ
  (legacy et AppV2).
- Divers : .eslintrc.js (règles inexistantes/obsolètes retirées),
  libellé jaune de dialogue en couleur chitine, i18n FR/EN, chips
  « appris » sur l'onglet expérience du personnage.
2026-08-05 11:56:59 +02:00
uberwald d0373fab5a feat: capacités de créature, blessures séquentielles et refonte fiche Groupe
- Nouvel item Capacité de créature (creaturecapacity) : DataModel, fiche
  AppV2, chat card, types Base/Survie/Cauchemar/Apocalypse, liste sur
  l'onglet Informations de la créature avec drag&drop et post au chat.
- Blessures : coches séquentielles respectant la gravité (onClickWound),
  malus de blessure -1D/-2D/-3D appliqué aux jets (Règles p.42),
  montée en gravité automatique si les cercles sont pleins.
- Fiche Groupe : objectifs majeurs/mineurs éditables, liste de membres
  simplifiée, notes de voyage (roadNotes), totem qui remplit
  instinct/interdits, refonte visuelle des onglets.
- Créature : Réaction lançable, seuils/cercles de blessures corrigés
  (Taille cumulée, Groupe sans seuil), libellés Taille/Meute.
- Corrections : icône de carte de chat plafonnée à 64px, slash orphelin
  d'entrave à 0, notes de matériel du Groupe éditable (formInput),
  bonus de Réaction non double-compté.
- Divers : suppression des captures de débogage, licence README.
2026-08-05 09:38:36 +02:00
uberwald cf905cdcfb feat: fiche PNJ (profil + niveaux) et passage du véhicule en acteur
Release Creation / build (release) Failing after 1m17s
2026-08-04 20:34:20 +02:00
uberwald 6247f65590 feat: fiche de Communauté (socle)
- acteur community (identité, géographie, histoire, objectifs, taille/effectif)
- 4 Domaines x 2 jauges avec états (Crise/Bas/Stable/Opulent), moral, réserves
- onglets Identité / Domaines / Ressources, édition ProseMirror (formInput)
- header avec fond, totem, niveau, effectif ; icône par défaut
- libellé du type via typeLabels (sans écraser TYPES.* du core)
2026-08-04 17:20:29 +02:00
uberwald f2c8cfe246 feat: équipement, échanges de coups et améliorations des fiches
- équipement des armes et protections (champ equipped, liste des équipés, toggle)
- échanges de coups automatisés (attaque/défense/résolution/blessures dans le chat)
- dialogue d'attaque par type (personnage/PNJ/créature), portées et difficultés
- conservation du scroll des fiches lors des modifs (option scrollable + classe active)
- verrouillage des compétences PNJ en mode jeu
- corrections review combat (défenseur, difficulté >10, multi-cibles, permissions)
2026-08-04 14:14:03 +02:00
uberwald 31f2f4530c feat: améliorer les fiches (tests PNJ/créature, message de jet, compétences, créatures)
Release Creation / build (release) Failing after 1m23s
2026-08-04 00:49:37 +02:00
uberwald 9c7ebc6df9 Sync compendiums
Release Creation / build (release) Failing after 1m24s
2026-08-03 21:26:03 +02:00
uberwald c23de0ea66 Fix apv2, WIP 2026-06-06 22:37:29 +02:00
uberwald c571e6a209 Fix: Correction des exports/imports APPV2 et clés i18N manquantes
- Standardisation des exports de sheets sur 'export default class' (sauf base-item-sheet)
- Correction des imports pour utiliser des imports par défaut
- Correction de _module.mjs pour exporter les classes correctement
- Suppression des redéfinitions de changeTab dans group-sheet et npc-sheet
- Ajout des clés i18N manquantes: VERMINE.reserve, VERMINE.Sheet.*
- Correction de l'export de VermineBaseItemSheet (export nommé)

Corrige l'erreur 'Receiver must be class VermineGroupSheetV2' et aligne sur fvtt-hamalron et fvtt-celestopol

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-06 18:32:03 +02:00
uberwald 9b77a0c552 Fix apv2, WIP 2026-06-06 10:21:24 +02:00
uberwald 30d6f71fc7 fix: Correct critical bugs and complete Creature/Group DataModel implementation
- Fix TypeError: controls.find is not a function in hooks.mjs
- Fix undefined 'npc' variable in applications.mjs
- Fix CONFIG.VERMINE.model undefined by checking game.system.template existence
- Fix TypeError: html.find(...).forEach is not a function in roll.mjs
- Fix Cannot set properties of undefined (setting 'initial') in actor.mjs
- Fix Cannot read properties of undefined (reading 'difficulty') in actor.mjs
- Fix ActiveEffect application phase 'initial' already completed by adding combatStatus to base template
- Fix Missing helper: 'select' in roll-dialog.hbs (removed invalid Handlebars select block)
- Add SIZE_LEVELS labels to creatureSizeLevels config
- Add SIZE_LEVELS translations to fr.json
- Add combatStatus to base actor template
- Convert all .html templates to .hbs for Foundry v14 compatibility
- Update item-sheet.mjs to use .hbs extension
- Update handlebars-manager.mjs to use .hbs for all partials

Complete Vermine2047 Creature and Group sheet implementation:
- Creature: Pattern, Size, Role, Pack with computed values
- Group: Totem, Reserve, Morale, Objectives, Members management
- All templates functional with proper styling

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-04 22:22:52 +02:00
uberwaldandMistral Vibe f9f07cbc7e fix: migrate combat system from d6 to d10 to match official rules
- Change all dice rolls in fight.mjs from d6 to d10
- Implement success counting system (dice >= difficulty) as per Vermine2047 rules
- Add d10 success class to dice that meet or exceed difficulty
- Display success count in confrontation UI
- Update chat message handler to count successes instead of summing dice
- Add comprehensive JSDoc documentation to performTest method
- Add missing French translations for fight tool terms

This corrects a critical inconsistency where fight.mjs was using d6
while the official Vermine2047 rules and the rest of the system (roll.mjs)
use d10 with success counting.

Compatibility: FoundryVTT v11-v14

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-04 16:48:57 +02:00
uberwaldandMistral Vibe 386d80639c code review: fix critical issues and improve code quality
- Fix constructor in rollDialog.mjs (spread operator for options)
- Remove all console.log statements from production code
- Add comprehensive JSDoc comments for all public APIs
- Convert French comments to English for consistency
- Use parseInt with radix parameter (10) throughout
- Replace let with const where appropriate
- Use Set for O(1) lookups in group-link.mjs methods
- Use spread operators for array cloning
- Optimize removeActorFromAllGroups with Set lookups
- Improve registerHooks with better comments and Set usage
- Simplify roll-message.hbs template logic
- Fix duplicate VERMINE key in lang/fr.json
- Add missing error translations
- Add .eslintrc.js with FoundryVTT-compatible linting config

Compatibility: FoundryVTT v11-v14

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-04 13:33:58 +02:00
uberwald 716c1b49ae Finalisation complète du système Vermine2047 pour FoundryVTT v14
Implémentations majeures:
- Classe GroupLink pour synchronisation bidirectionnelle acteurs↔groupes
- Configuration complète des totems, PNJ et créatures
- Redesign du RollDialog avec interface compacte et sélecteurs
- Bonus/malus par domaine de totem
- Réussites automatiques et seuils auto basés sur niveau de maîtrise
- Choix du totem à garder avec recalcul des réussites
- Conversion tous templates chat cards en .hbs
- Fiches PNJ et Créature avec sélecteurs pour tous les niveaux
- Documentation technique (ARCHITECTURE.md) et utilisateur (GUIDE_UTILISATEUR.md)
- Mise à jour system.json pour compatibilité v14
- Tous les TODOs du README.md complétés

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-04 11:46:40 +02:00
rwanoux 15bb1756ef fixe de la categorie machine 2024-11-22 18:14:52 +01:00
rwanoux 74e11d439c plein de truc 2024-04-21 16:51:13 +02:00
François-Xavier Guillois f483a219c1 v0.1.13 2023-09-07 17:53:00 +02:00
François-Xavier Guillois fddb054160 effacement des packs pour mettre les binaires 2023-09-07 12:23:31 +02:00
François-Xavier Guillois 55c3d09490 v0.1.9 2023-09-06 17:18:58 +02:00
François-Xavier Guillois 848366e05c basis of wound system 2023-09-05 15:04:06 +02:00
François-Xavier Guillois 983f856187 v0.1.6 2023-09-05 12:06:22 +02:00
François-Xavier Guillois e1238a1ad1 v0.1.5 2023-09-04 11:17:46 +02:00
François-Xavier Guillois 5600e37991 npc sheet 2023-09-04 09:44:41 +02:00
François-Xavier Guillois 7677c79582 v0.1.3 2023-09-03 16:02:30 +02:00
François-Xavier Guillois 918b7c0b0c totem abilities 2023-09-01 12:07:59 +02:00
François-Xavier Guillois 39c984156b group header 2023-09-01 09:49:46 +02:00
François-Xavier Guillois ff6be3989e totem picker done 2023-08-31 19:18:37 +02:00
François-Xavier Guillois 987bb9fd6e application choose totem 2023-08-30 22:48:31 +02:00
François-Xavier Guillois f605cd14d6 gestion de l'age 2023-08-30 10:33:26 +02:00
François-Xavier Guillois 9f760deee0 difficultés 2023-08-25 16:15:04 +02:00
François-Xavier Guillois c57c355066 attitudes 2023-08-25 15:35:43 +02:00
François-Xavier Guillois 641d2a892a v.0.0.16 2023-08-25 10:36:25 +02:00
François-Xavier Guillois e5396b6991 vehicules pour la feuille de groupe - v0.0.14 2023-06-06 16:02:39 +02:00
François-Xavier Guillois aed892e4d4 totems - v0.0.13 2023-06-06 14:22:00 +02:00
François-Xavier Guillois 2b5e639e9e from totem to vermine - v0.0.12 2023-06-06 11:06:04 +02:00
François-Xavier Guillois d388c3ba4b page histoire - v0.0.11 2023-06-05 21:27:34 +02:00
François-Xavier Guillois af5ce9efcd v0.0.9 2023-06-05 14:00:04 +02:00
François-Xavier Guillois 4421e4de2e header + template 0.0.8 2023-06-05 11:48:50 +02:00
François-Xavier Guillois 731f94dbb0 new item types - 0.0.7 2023-06-05 10:06:11 +02:00
François-Xavier Guillois 411c8f9bce sheet terms 2023-05-30 15:42:33 +02:00
François-Xavier Guillois cb71f649f1 copy from gods 2023-05-30 15:01:27 +02:00