7 Commits

Author SHA1 Message Date
uberwald 92ea0164a2 Fix: Corrections diverses pour Mournblade CYD 2.0
- Modification du popup de bienvenue : simplification de la mention des droits (jeu Titam)
- Ajout du champ 'Coût en Pouvoir des invocations' dans l'onglet Sorcellerie pour suivre le coût des invocations en cours
- Amélioration de l'onglet Détails des Profils : remplacement des sections de texte simples par des sheet-box pour un meilleur rendu visuel
- Ajout de la clé i18n 'coutPouvoirInvocations' dans lang/fr.json
- Ajout du champ coutPouvoirInvocations dans le schéma de données Personnage

Corrections basées sur les demandes : popup, onglet Sorcellerie, onglet Détails Profils

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 14:52:50 +02:00
uberwald 0425ccf723 feat: Ajout carte Combat sur fiche de personnage
- Ajout d'une carte Combat (case bleue) dans l'en-tête de la fiche
  de personnage, similaire à celle des créatures
- Affiche en temps réel :
  * Initiative (calculée : Adresse + bonus)
  * Défense (calculée : base + bonus + protection - adversité)
  * Protection (calculée à partir des armures/boucliers équipés)
- Ajout des clés i18n pour les libellés abrégés :
  * MNBL.initShort: Init.
  * MNBL.defShort: Déf.
  * MNBL.protShort: Prot.

Ces valeurs sont déjà calculées par getCombatValues() et
protectionTotal dans le contexte de la feuille.

Permet aux joueurs de voir d'un coup d'œil leurs
caractéristiques de combat actuelles.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 14:39:14 +02:00
uberwald 37ff6ebf1d feat: Ajout section Invocations en cours dans l'onglet Sorcellerie
- Ajout du champ system.sorcellerie.invocationsencours (HTMLField)
- Ajout de la clé i18n SORCELLERIE.invocationsencours
- Ajout de la section dans le template avec éditeur riche
- Permet de noter les invocations actives avec leur coût en Pouvoir

L'éditeur riche permet de:
- Glisser-déposer des liens vers des objets du compendium
- Formater le texte (gras, italique, listes)
- Noter le coût temporaire en Pouvoir pour chaque invocation

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 14:34:08 +02:00
uberwald 1c73faeb00 feat: Ajout onglet Sorcellerie sur la fiche de personnage
- Ajout d'un nouvel onglet 'Sorcellerie' dans la navigation
- Déplacement de la section Runes de 'Dons & Pactes' vers 'Sorcellerie'
- Ajout de 3 nouvelles sections avec éditeurs riches :
  * Créatures invoquées
  * Démons liés
  * Enchantements / Automata
- Ajout des champs système pour stocker ces informations (HTMLField)
- Ajout des clés i18n sous le namespace SORCELLERIE

Structure de l'onglet Sorcellerie :
1. Runes (liste d'items, comme auparavant)
2. Créatures invoquées (éditeur riche)
3. Démons liés (éditeur riche)
4. Enchantements / Automata (éditeur riche)

Cela permet aux sorciers d'avoir plus d'espace pour noter leurs
nombreuses runes, invocations, etc. et d'y glisser-déposer des liens
vers des objets du compendium.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 14:14:30 +02:00
uberwald 0c42b6ab34 feat: Amélioration de l'onglet Détails des Profils
- Conversion des champs Compétences, Talents (Initié/Aguerri/Maître)
  et Prérequis (Aguerri/Maître) en HTMLField pour permettre
  l'utilisation de l'éditeur riche
- Remplacement des textarea à fond marron par des éditeurs blancs
  (comme pour les Sacrifices des Dons)
- Permet maintenant de glisser-déposer des liens vers des objets
  du compendium (Compétences, Talents, etc.)
- Structure cohérente avec le template des Dons

Modèles modifiés:
- modules/models/profil.mjs: conversion StringField → HTMLField
- templates/item-profil-sheet.hbs: remplacement textarea → éditeur

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 14:07:01 +02:00
uberwald d6e7b62c31 Docs: Mise à jour du pop-up de bienvenue
- Suppression du lien vers titam-france.fr
- Ajout du lien vers lahiette.com pour les règles PAO 0.9
- Conservation de la mention Titam dans la section Droits

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 14:03:36 +02:00
uberwald a3f304c77b Fix: Correction des clés i18n et affichage de l'onglet Effets
- Correction du namespace i18n: MOURNBLADECYD2.EFFECT → EFFECT
- Suppression de la condition {{#if item.effects.length}} dans tous les templates d'items
- Ajout de la clé EFFECT.noItemEffects pour les items sans effets
- Remplacement des textes en dur par des clés i18n dans les partials
- Mise à jour de toutes les références dans le code JavaScript

Cela corrige:
1. Les clés i18n manquantes (namespace incohérent)
2. L'onglet Effets des items qui était vide quand l'item n'avait pas d'effets

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-06-07 09:47:22 +02:00
30 changed files with 192 additions and 147 deletions
+17 -1
View File
@@ -26,6 +26,15 @@
"capaciteautomata": "Capacité d'Automata" "capaciteautomata": "Capacité d'Automata"
} }
}, },
"SORCELLERIE": {
"tab": "Sorcellerie",
"runes": "Runes",
"creaturesinvoquees": "Créatures invoquées",
"demonslies": "Démons liés",
"enchantements": "Enchantements / Automata",
"invocationsencours": "Invocations en cours",
"coutPouvoirInvocations": "Coût en Pouvoir des invocations"
},
"SHEETS": { "SHEETS": {
"Item": { "Item": {
"traitdemoniaque": "Trait Démoniaque", "traitdemoniaque": "Trait Démoniaque",
@@ -72,7 +81,13 @@
"soulpoints": "Points de Pouvoir", "soulpoints": "Points de Pouvoir",
"traced": "Tracée", "traced": "Tracée",
"tracedrune": "Rune tracée", "tracedrune": "Rune tracée",
"tracerune": "Tracer" "tracerune": "Tracer",
"initiative": "Initiative",
"initShort": "Init.",
"defense": "Défense",
"defShort": "Déf.",
"protection": "Protection",
"protShort": "Prot."
}, },
"EFFECT": { "EFFECT": {
"new": "Nouvel Effet", "new": "Nouvel Effet",
@@ -113,6 +128,7 @@
"modeDowngrade": "Dégrader", "modeDowngrade": "Dégrader",
"activeEffects": "Effets Actifs", "activeEffects": "Effets Actifs",
"noActiveEffects": "Aucun effet actif", "noActiveEffects": "Aucun effet actif",
"noItemEffects": "Aucun effet sur cet item",
"effectSummary": "Résumé des modifications", "effectSummary": "Résumé des modifications",
"toggleEffect": "Activer/Désactiver" "toggleEffect": "Activer/Désactiver"
} }
@@ -332,7 +332,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
try { try {
// Créer les données par défaut pour un nouvel effet // Créer les données par défaut pour un nouvel effet
const defaultEffectData = { const defaultEffectData = {
name: game.i18n.localize("MOURNBLADECYD2.EFFECT.new") || "Nouvel Effet", name: game.i18n.localize("EFFECT.new") || "Nouvel Effet",
icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp", icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp",
description: "", description: "",
changes: [], changes: [],
@@ -354,7 +354,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to create effect:", error); console.error("MournbladeCYD2 | Failed to create effect:", error);
ui.notifications.error( ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.createError") || game.i18n.localize("EFFECT.createError") ||
"Erreur lors de la création de l'effet" "Erreur lors de la création de l'effet"
); );
} }
@@ -397,8 +397,8 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
if (effect) { if (effect) {
const effectName = effect.name; const effectName = effect.name;
const confirmed = await foundry.applications.api.DialogV2.confirm({ const confirmed = await foundry.applications.api.DialogV2.confirm({
title: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirm") || "Supprimer l'effet", title: game.i18n.localize("EFFECT.deleteConfirm") || "Supprimer l'effet",
content: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirmText", {name: effectName}) || content: game.i18n.localize("EFFECT.deleteConfirmText", {name: effectName}) ||
`Êtes-vous sûr de vouloir supprimer l'effet "${effectName}" ?` `Êtes-vous sûr de vouloir supprimer l'effet "${effectName}" ?`
}); });
@@ -408,7 +408,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to delete effect:", error); console.error("MournbladeCYD2 | Failed to delete effect:", error);
ui.notifications.error( ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteError") || game.i18n.localize("EFFECT.deleteError") ||
"Erreur lors de la suppression de l'effet" "Erreur lors de la suppression de l'effet"
); );
} }
@@ -436,7 +436,7 @@ export default class MournbladeCYD2ActorSheetV2 extends HandlebarsApplicationMix
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to toggle effect:", error); console.error("MournbladeCYD2 | Failed to toggle effect:", error);
ui.notifications.error( ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.toggleError") || game.i18n.localize("EFFECT.toggleError") ||
"Erreur lors du basculement de l'effet" "Erreur lors du basculement de l'effet"
); );
} }
@@ -193,7 +193,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
try { try {
// Créer les données par défaut pour un nouvel effet // Créer les données par défaut pour un nouvel effet
const defaultEffectData = { const defaultEffectData = {
name: game.i18n.localize("MOURNBLADECYD2.EFFECT.new") || "Nouvel Effet", name: game.i18n.localize("EFFECT.new") || "Nouvel Effet",
icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp", icon: "systems/fvtt-mournblade-cyd-2-0/assets/icons/capacite.webp",
description: "", description: "",
changes: [], changes: [],
@@ -215,7 +215,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to create effect:", error); console.error("MournbladeCYD2 | Failed to create effect:", error);
ui.notifications.error( ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.createError") || game.i18n.localize("EFFECT.createError") ||
"Erreur lors de la création de l'effet" "Erreur lors de la création de l'effet"
); );
} }
@@ -258,8 +258,8 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
if (effect) { if (effect) {
const effectName = effect.name; const effectName = effect.name;
const confirmed = await foundry.applications.api.DialogV2.confirm({ const confirmed = await foundry.applications.api.DialogV2.confirm({
title: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirm") || "Supprimer l'effet", title: game.i18n.localize("EFFECT.deleteConfirm") || "Supprimer l'effet",
content: game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteConfirmText", {name: effectName}) || content: game.i18n.localize("EFFECT.deleteConfirmText", {name: effectName}) ||
`Êtes-vous sûr de vouloir supprimer l'effet "${effectName}" ?` `Êtes-vous sûr de vouloir supprimer l'effet "${effectName}" ?`
}); });
@@ -269,7 +269,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to delete effect:", error); console.error("MournbladeCYD2 | Failed to delete effect:", error);
ui.notifications.error( ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.deleteError") || game.i18n.localize("EFFECT.deleteError") ||
"Erreur lors de la suppression de l'effet" "Erreur lors de la suppression de l'effet"
); );
} }
@@ -297,7 +297,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to toggle effect:", error); console.error("MournbladeCYD2 | Failed to toggle effect:", error);
ui.notifications.error( ui.notifications.error(
game.i18n.localize("MOURNBLADECYD2.EFFECT.toggleError") || game.i18n.localize("EFFECT.toggleError") ||
"Erreur lors du basculement de l'effet" "Erreur lors du basculement de l'effet"
); );
} }
@@ -326,7 +326,7 @@ export default class MournbladeCYD2ItemSheetV2 extends HandlebarsApplicationMixi
// Cette méthode est placeholders - l'application devrait être gérée par drag-drop // Cette méthode est placeholders - l'application devrait être gérée par drag-drop
// ou par une action spécifique qui demande à l'utilisateur de sélectionner un acteur // ou par une action spécifique qui demande à l'utilisateur de sélectionner un acteur
ui.notifications.warn( ui.notifications.warn(
game.i18n.localize("MOURNBLADECYD2.EFFECT.selectActor") || game.i18n.localize("EFFECT.selectActor") ||
"Veuillez d'abord sélectionner un acteur pour appliquer cet effet." "Veuillez d'abord sélectionner un acteur pour appliquer cet effet."
); );
} }
+9
View File
@@ -102,6 +102,15 @@ export default class PersonnageDataModel extends foundry.abstract.TypeDataModel
marge: new fields.NumberField({ initial: 0, integer: true }), marge: new fields.NumberField({ initial: 0, integer: true }),
pointschaos: new fields.NumberField({ initial: 0, integer: true }), pointschaos: new fields.NumberField({ initial: 0, integer: true }),
pointsloi: new fields.NumberField({ initial: 0, integer: true }) pointsloi: new fields.NumberField({ initial: 0, integer: true })
}),
// Sorcellerie
sorcellerie: new fields.SchemaField({
runes: new fields.HTMLField({ initial: "" }),
creaturesinvoquees: new fields.HTMLField({ initial: "" }),
demonslies: new fields.HTMLField({ initial: "" }),
enchantements: new fields.HTMLField({ initial: "" }),
invocationsencours: new fields.HTMLField({ initial: "" }),
coutPouvoirInvocations: new fields.NumberField({ initial: 0, integer: true })
}) })
}; };
} }
+6 -6
View File
@@ -10,12 +10,12 @@ export default class ProfilDataModel extends foundry.abstract.TypeDataModel {
attribut1: new fields.StringField({ initial: "" }), attribut1: new fields.StringField({ initial: "" }),
attribut2: new fields.StringField({ initial: "" }), attribut2: new fields.StringField({ initial: "" }),
attribut3: new fields.StringField({ initial: "" }), attribut3: new fields.StringField({ initial: "" }),
competences: new fields.StringField({ initial: "" }), competences: new fields.HTMLField({ initial: "" }),
talentsinitie: new fields.StringField({ initial: "" }), talentsinitie: new fields.HTMLField({ initial: "" }),
prerequisaguerri: new fields.StringField({ initial: "" }), prerequisaguerri: new fields.HTMLField({ initial: "" }),
talentsaguerri: new fields.StringField({ initial: "" }), talentsaguerri: new fields.HTMLField({ initial: "" }),
prerequismaitre: new fields.StringField({ initial: "" }), prerequismaitre: new fields.HTMLField({ initial: "" }),
talentsmaitre: new fields.StringField({ initial: "" }), talentsmaitre: new fields.HTMLField({ initial: "" }),
equipement: new fields.StringField({ initial: "" }) equipement: new fields.StringField({ initial: "" })
}; };
} }
+2 -2
View File
@@ -221,7 +221,7 @@ export class MournbladeCYD2Effects {
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to apply effect:", error); console.error("MournbladeCYD2 | Failed to apply effect:", error);
ui.notifications?.error( ui.notifications?.error(
game.i18n?.localize("MOURNBLADECYD2.EFFECT.applyError") || game.i18n?.localize("EFFECT.applyError") ||
`Erreur: Impossible d'appliquer l'effet (${error.message})` `Erreur: Impossible d'appliquer l'effet (${error.message})`
); );
return null; return null;
@@ -259,7 +259,7 @@ export class MournbladeCYD2Effects {
} catch (error) { } catch (error) {
console.error("MournbladeCYD2 | Failed to apply item effects:", error); console.error("MournbladeCYD2 | Failed to apply item effects:", error);
ui.notifications?.error( ui.notifications?.error(
game.i18n?.localize("MOURNBLADECYD2.EFFECT.applyItemError") || game.i18n?.localize("EFFECT.applyItemError") ||
`Erreur: Impossible d'appliquer les effets de l'item` `Erreur: Impossible d'appliquer les effets de l'item`
); );
return []; return [];
+2 -2
View File
@@ -131,14 +131,14 @@ function welcomeMessage() {
<div class="section-text"> <div class="section-text">
<strong>Livres nécessaires</strong> <strong>Livres nécessaires</strong>
<p>Les livres de Mournblade sont nécessaires pour jouer. Supplément de conversion CYD 2.0 requis.</p> <p>Les livres de Mournblade sont nécessaires pour jouer. Supplément de conversion CYD 2.0 requis.</p>
<a class="welcome-link" href="https://www.titam-france.fr" target="_blank"><i class="fas fa-external-link-alt"></i>titam-france.fr</a> <a class="welcome-link" href="https://www.lahiette.com/leratierbretonnien/mournblade-et-le-cyd-2-0/" target="_blank"><i class="fas fa-external-link-alt"></i>Règles PAO 0.9</a>
</div> </div>
</div> </div>
<div class="welcome-section"> <div class="welcome-section">
<div class="section-icon"><i class="fas fa-copyright"></i></div> <div class="section-icon"><i class="fas fa-copyright"></i></div>
<div class="section-text"> <div class="section-text">
<strong>Droits</strong> <strong>Droits</strong>
<p>Mournblade est un jeu publié par Titam France / Sombres Projets, tous les droits leur appartiennent.</p> <p>Mournblade est un jeu Titam.</p>
</div> </div>
</div> </div>
<div class="welcome-section"> <div class="welcome-section">
+93 -33
View File
@@ -103,6 +103,25 @@
</div> </div>
</div> </div>
{{!-- COMBAT --}}
<div class="stat-card card-combat">
<div class="stat-card-title">⚡ Combat</div>
<div class="stat-card-content">
<div class="stat-field">
<label>{{localize "MNBL.initShort"}}</label>
<span>{{combat.initTotal}}</span>
</div>
<div class="stat-field">
<label>{{localize "MNBL.defShort"}}</label>
<span>{{combat.defenseTotal}}</span>
</div>
<div class="stat-field">
<label>{{localize "MNBL.protShort"}}</label>
<span>{{protectionTotal}}</span>
</div>
</div>
</div>
</div> </div>
</header> </header>
@@ -113,6 +132,7 @@
<a class="item" data-tab="principal">Attributs</a> <a class="item" data-tab="principal">Attributs</a>
<a class="item" data-tab="competences">Compétences</a> <a class="item" data-tab="competences">Compétences</a>
<a class="item" data-tab="dons">Dons & Pactes</a> <a class="item" data-tab="dons">Dons & Pactes</a>
<a class="item" data-tab="sorcellerie">{{localize "SORCELLERIE.tab"}}</a>
<a class="item" data-tab="combat">Combat</a> <a class="item" data-tab="combat">Combat</a>
<a class="item" data-tab="equipement">{{localize "MNBL.equipment"}}</a> <a class="item" data-tab="equipement">{{localize "MNBL.equipment"}}</a>
<a class="item" data-tab="effects">Effets</a> <a class="item" data-tab="effects">Effets</a>
@@ -356,39 +376,6 @@
</ul> </ul>
</div> </div>
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">Runes</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Haut Parler</label>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "MNBL.difficulty"}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control" data-action="createItem" data-type="rune"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each runes as |rune key|}}
<li class="item flexrow " data-item-id="{{rune._id}}" data-item-type="rune">
<img class="item-name-img" src="{{rune.img}}" />
<span class="item-name-label competence-name"><a data-action="rollRune">{{rune.name}}</a></span>
<span class="item-field-label-long">{{rune.system.formule}}</span>
<span class="item-field-label-short">{{rune.system.seuil}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control" data-action="editItem" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="deleteItem" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="sheet-box color-bg-archetype"> <div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list"> <ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
@@ -472,6 +459,79 @@
</div> </div>
{{!-- Sorcellerie Tab --}}
<div class="tab sorcellerie" data-group="primary" data-tab="sorcellerie">
<div class="flexcol">
<div class="sheet-box color-bg-archetype">
<ul class="item-list alternate-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">
<h3><label class="items-title-text">{{localize "SORCELLERIE.runes"}}</label></h3>
</span>
<span class="item-field-label-long">
<label class="short-label">Haut Parler</label>
</span>
<span class="item-field-label-short">
<label class="short-label">{{localize "MNBL.difficulty"}}</label>
</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control" data-action="createItem" data-type="rune"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each runes as |rune key|}}
<li class="item flexrow " data-item-id="{{rune._id}}" data-item-type="rune">
<img class="item-name-img" src="{{rune.img}}" />
<span class="item-name-label competence-name"><a data-action="rollRune">{{rune.name}}</a></span>
<span class="item-field-label-long">{{rune.system.formule}}</span>
<span class="item-field-label-short">{{rune.system.seuil}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a class="item-control" data-action="editItem" title="Edit Item"><i class="fas fa-edit"></i></a>
<a class="item-control" data-action="deleteItem" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
<div class="sheet-box color-bg-archetype">
<h3><label class="items-title-text">{{localize "SORCELLERIE.creaturesinvoquees"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor system.sorcellerie.creaturesinvoquees target="system.sorcellerie.creaturesinvoquees" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box color-bg-archetype">
<h3><label class="items-title-text">{{localize "SORCELLERIE.demonslies"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor system.sorcellerie.demonslies target="system.sorcellerie.demonslies" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box color-bg-archetype">
<h3><label class="items-title-text">{{localize "SORCELLERIE.enchantements"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor system.sorcellerie.enchantements target="system.sorcellerie.enchantements" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box color-bg-archetype">
<h3><label class="items-title-text">{{localize "SORCELLERIE.invocationsencours"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor system.sorcellerie.invocationsencours target="system.sorcellerie.invocationsencours" button=true owner=owner editable=editable}}
</div>
<ul class="item-list alternate-list">
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "SORCELLERIE.coutPouvoirInvocations"}} : </label>
<input type="text" class="padd-right numeric-input item-field-label-short" name="system.sorcellerie.coutPouvoirInvocations"
value="{{system.sorcellerie.coutPouvoirInvocations}}" data-dtype="Number" />
</li>
</ul>
</div>
</div>
</div>
{{!-- Equipement Tab --}} {{!-- Equipement Tab --}}
<div class="tab combat" data-group="primary" data-tab="combat"> <div class="tab combat" data-group="primary" data-tab="combat">
-2
View File
@@ -90,11 +90,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
@@ -19,11 +19,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -78,11 +78,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -44,10 +44,8 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -19,11 +19,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -21,11 +21,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -31,11 +31,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -27,11 +27,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
@@ -19,11 +19,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
+42 -46
View File
@@ -41,49 +41,6 @@
</select> </select>
</li> </li>
<li class="flexrow item">
<label class="generic-label">{{localize "MNBL.exercisedskills"}} : </label>
</li>
<li class="flexrow item">
<textarea type="text" rows="3" class="padd-right status-small-label color-class-common"
name="system.compétences" data-dtype="String">{{system.compétences}}</textarea>
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "MNBL.initiateTalents"}} : </label>
</li>
<li class="flexrow item">
<textarea type="text" rows="3" class="padd-right status-small-label color-class-common"
name="system.talentsinitie" data-dtype="String">{{system.talentsinitie}}</textarea>
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "MNBL.prerequisitesAguerri"}} : </label>
</li>
<li class="flexrow item">
<textarea type="text" rows="3" class="padd-right status-small-label color-class-common"
name="system.prerequisaguerri" data-dtype="String">{{system.prerequisaguerri}}</textarea>
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "MNBL.aguerriTalents"}} : </label>
</li>
<li class="flexrow item">
<textarea rows="3" type="text" class="padd-right status-small-label color-class-common"
name="system.talentsaguerri" data-dtype="String">{{system.talentsaguerri}}</textarea>
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "MNBL.prerequisitesMaitre"}} : </label>
</li>
<li class="flexrow item">
<textarea rows="3" type="text" class="padd-right status-small-label color-class-common"
name="system.prerequismaitre" data-dtype="String">{{system.prerequismaitre}}</textarea>
</li>
<li class="flexrow item">
<label class="generic-label">{{localize "MNBL.maitreTalents"}} : </label>
</li>
<li class="flexrow item">
<textarea rows="3" type="text" class="padd-right status-small-label color-class-common"
name="system.talentsmaitre" data-dtype="String">{{system.talentsmaitre}}</textarea>
</li>
<li class="flexrow item"> <li class="flexrow item">
<label class="generic-label">{{localize "MNBL.equipment"}} : </label> <label class="generic-label">{{localize "MNBL.equipment"}} : </label>
</li> </li>
@@ -91,17 +48,56 @@
<input type="text" class="padd-right status-small-label color-class-common" name="system.equipement" <input type="text" class="padd-right status-small-label color-class-common" name="system.equipement"
value="{{system.equipement}}" data-dtype="String" /> value="{{system.equipement}}" data-dtype="String" />
</li> </li>
</ul> </ul>
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.exercisedskills"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor competences target="system.competences" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.initiateTalents"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor talentsinitie target="system.talentsinitie" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.prerequisitesAguerri"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor prerequisaguerri target="system.prerequisaguerri" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.aguerriTalents"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor talentsaguerri target="system.talentsaguerri" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.prerequisitesMaitre"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor prerequismaitre target="system.prerequismaitre" button=true owner=owner editable=editable}}
</div>
</div>
<div class="sheet-box">
<h3><label class="items-title-text">{{localize "MNBL.maitreTalents"}}</label></h3>
<div class="small-editor item-text-long-line">
{{editor talentsmaitre target="system.talentsmaitre" button=true owner=owner editable=editable}}
</div>
</div>
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -27,11 +27,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -23,11 +23,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -73,10 +73,8 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -61,11 +61,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -55,11 +55,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -32,11 +32,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -19,11 +19,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -19,10 +19,8 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
-2
View File
@@ -19,11 +19,9 @@
</div> </div>
{{!-- Effects Tab --}} {{!-- Effects Tab --}}
{{#if item.effects.length}}
<div class="tab effects" data-group="primary" data-tab="effects"> <div class="tab effects" data-group="primary" data-tab="effects">
{{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}} {{> systems/fvtt-mournblade-cyd-2-0/templates/partial-item-effects.hbs}}
</div> </div>
{{/if}}
</section> </section>
</section> </section>
+4 -4
View File
@@ -6,11 +6,11 @@
{{!-- En-tête --}} {{!-- En-tête --}}
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Effets Actifs</label></h3> <h3><label class="items-title-text">{{localize "EFFECT.activeEffects"}}</label></h3>
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control" data-action="createEffect" title="Ajouter un effet"> <a class="item-control" data-action="createEffect" title="{{localize "EFFECT.new"}}">
<i class="fas fa-plus"></i> <i class="fas fa-plus"></i>
</a> </a>
</div> </div>
@@ -19,7 +19,7 @@
{{!-- Affiche un message si aucun effet --}} {{!-- Affiche un message si aucun effet --}}
{{#if (not actor.effects.length)}} {{#if (not actor.effects.length)}}
<li class="item flexrow"> <li class="item flexrow">
<span class="item-name-label competence-name" style="color: #888; font-style: italic;">Aucun effet actif</span> <span class="item-name-label competence-name" style="color: #888; font-style: italic;">{{localize "EFFECT.noActiveEffects"}}</span>
</li> </li>
{{/if}} {{/if}}
@@ -84,7 +84,7 @@
{{!-- Affichage détaillé des effets actifs --}} {{!-- Affichage détaillé des effets actifs --}}
{{#if actor.effects.length}} {{#if actor.effects.length}}
<div class="sheet-box color-bg-archetype effect-summary"> <div class="sheet-box color-bg-archetype effect-summary">
<h4 class="section-title">Résumé des modifications</h4> <h4 class="section-title">{{localize "EFFECT.effectSummary"}}</h4>
<div class="effect-modifications"> <div class="effect-modifications">
{{#each actor.effects as |effect|}} {{#each actor.effects as |effect|}}
{{#if (not effect.disabled)}} {{#if (not effect.disabled)}}
+3 -3
View File
@@ -6,11 +6,11 @@
{{!-- En-tête --}} {{!-- En-tête --}}
<li class="item flexrow list-item items-title-bg"> <li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header"> <span class="item-name-label-header">
<h3><label class="items-title-text">Effets Actifs</label></h3> <h3><label class="items-title-text">{{localize "EFFECT.activeEffects"}}</label></h3>
</span> </span>
<div class="item-filler">&nbsp;</div> <div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"> <div class="item-controls item-controls-fixed">
<a class="item-control" data-action="createEffect" title="Ajouter un effet"> <a class="item-control" data-action="createEffect" title="{{localize "EFFECT.new"}}">
<i class="fas fa-plus"></i> <i class="fas fa-plus"></i>
</a> </a>
</div> </div>
@@ -19,7 +19,7 @@
{{!-- Affiche un message si aucun effet --}} {{!-- Affiche un message si aucun effet --}}
{{#if (not item.effects.length)}} {{#if (not item.effects.length)}}
<li class="item flexrow"> <li class="item flexrow">
<span class="item-name-label competence-name" style="color: #888; font-style: italic;">Aucun effet sur cet item</span> <span class="item-name-label competence-name" style="color: #888; font-style: italic;">{{localize "EFFECT.noItemEffects"}}</span>
</li> </li>
{{/if}} {{/if}}
+1 -1
View File
@@ -3,6 +3,6 @@
<nav class="sheet-tabs tabs" data-group="primary"> <nav class="sheet-tabs tabs" data-group="primary">
<a class="item" data-tab="description" aria-label="{{localize 'MNBL.description'}}">{{localize "MNBL.description"}}</a> <a class="item" data-tab="description" aria-label="{{localize 'MNBL.description'}}">{{localize "MNBL.description"}}</a>
<a class="item" data-tab="details" aria-label="{{localize 'MNBL.details'}}">{{localize "MNBL.details"}}</a> <a class="item" data-tab="details" aria-label="{{localize 'MNBL.details'}}">{{localize "MNBL.details"}}</a>
<a class="item" data-tab="effects" aria-label="{{localize 'MOURNBLADECYD2.EFFECT.activeEffects'}}">{{localize "MOURNBLADECYD2.EFFECT.activeEffects"}}</a> <a class="item" data-tab="effects" aria-label="{{localize 'EFFECT.activeEffects'}}">{{localize "EFFECT.activeEffects"}}</a>
</nav> </nav>
<hr /> <hr />