ActiveEffects: Add complete ActiveEffects management system

- New: modules/mournblade-cyd2-effects.js with utility methods for creating, applying, and managing effects
- New: templates/partial-active-effects.hbs for displaying actor effects
- New: templates/partial-item-effects.hbs for displaying item effects
- Update: modules/mournblade-cyd2-config.js with effect configuration (types, attribute keys, categories)
- Update: templates/actor-sheet.hbs and creature-sheet.hbs with Effects tab
- Update: templates/partial-item-nav.hbs with conditional Effects tab
- Update: templates/item-talent-sheet.hbs with Effects tab content
- Update: base-actor-sheet.mjs with effect action handlers (create, edit, delete, toggle)
- Update: base-item-sheet.mjs with effect action handlers and context
- Update: modules/mournblade-cyd2-main.js to import and expose MournbladeCYD2Effects
- Update: lang/fr.json with effect-related translations

Features:
- Support for creating permanent and temporary effects
- Support for attribute modifications (ADR, PUI, CLA, PRE, TRE, etc.)
- Support for health, soul, combat, and adversity modifications
- Support for status effects
- Support for runes (pronounced and traced) effects
- Toggle to enable/disable effects
- Duration tracking (rounds, turns, seconds, combat, scene)
- Display of all active modifications summary

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-06-06 22:51:31 +02:00
parent 5ab03920d6
commit 156672d853
12 changed files with 1291 additions and 2 deletions
+90
View File
@@ -119,6 +119,96 @@ export const MOURNBLADECYD2_CONFIG = {
{ key: "personnage", label: "Personnage" },
{ key: "traitespece", label: "Trait d'espèce" }
],
// Configuration des ActiveEffects
effectTypes: {
bonus: "Bonus",
malus: "Malus",
rune: "Effet de Rune",
don: "Effet de Don",
talent: "Effet de Talent",
trait: "Effet de Trait",
temporaire: "Effet Temporaire",
permanent: "Effet Permanent"
},
// Clés des attributs pour les modifications d'effets
effectAttributeKeys: {
// Attributs
adr: "system.attributs.adr.value",
pui: "system.attributs.pui.value",
cla: "system.attributs.cla.value",
pre: "system.attributs.pre.value",
tre: "system.attributs.tre.value",
// Santé
vigueur: "system.sante.vigueur",
etat: "system.sante.etat",
nbcombativite: "system.sante.nbcombativite",
// Âme
nbame: "system.ame.nbame",
seuilpouvoir: "system.ame.seuilpouvoir",
etatAme: "system.ame.etat",
// Bonne Aventure
bonneaventure: "system.bonneaventure.base",
bonneaventureActuelle: "system.bonneaventure.actuelle",
eclat: "system.eclat.value",
// Combat
initiative: "system.combat.inittotal",
defense: "system.combat.defensetotal",
protection: "system.combat.protectiontotal",
// Adversités
adversiteBleue: "system.adversite.bleue",
adversiteRouge: "system.adversite.rouge",
adversiteNoire: "system.adversite.noire",
// Balance
loi: "system.balance.loi",
chaos: "system.balance.chaos",
aspect: "system.balance.aspect",
// Ressources
ressources: "system.ressources.value",
// Vitesse
vitesse: "system.vitesse.value"
},
// Types de bonus/malus supportés (groupés par catégorie)
effectTypesConfig: {
attribut: {
label: "Attribut",
keys: ["adr", "pui", "cla", "pre", "tre"]
},
sante: {
label: "Santé",
keys: ["vigueur", "etat", "nbcombativite"]
},
ame: {
label: "Âme",
keys: ["nbame", "seuilpouvoir", "etatAme"]
},
combat: {
label: "Combat",
keys: ["initiative", "defense", "protection"]
},
bonneAventure: {
label: "Bonne Aventure",
keys: ["bonneaventure", "bonneaventureActuelle", "eclat"]
},
adversite: {
label: "Adversité",
keys: ["adversiteBleue", "adversiteRouge", "adversiteNoire"]
},
balance: {
label: "Balance",
keys: ["loi", "chaos", "aspect"]
}
},
optionsUseTalent: [
{ key: "permanent", label: "Permanent" },
{ key: "sceance", label: "Une fois par scéance" },