Potions et élémentaires

This commit is contained in:
2026-05-02 08:26:28 +02:00
parent a234ba5d14
commit d6b5891519
248 changed files with 7020 additions and 350 deletions
+46
View File
@@ -362,6 +362,11 @@
</li>
{{/each}}
</ul>
<div class="header-actions">
<button class="chat-card-button" data-action="invoquerElementaire">
<i class="fas fa-wind"></i> {{localize "MNBL.invoquerElementaire"}}
</button>
</div>
</div>
<div class="section-grid">
@@ -388,8 +393,49 @@
</li>
{{/each}}
</ul>
<div class="header-actions">
{{#if (gt runes.length 1)}}
<button class="chat-card-button" data-action="rollSortilege">
<i class="fas fa-layer-group"></i> Lancer un Sortilège
</button>
{{/if}}
{{#if (gt runes.length 0)}}
<button class="chat-card-button" data-action="preparePotion">
<i class="fas fa-flask"></i> Préparer une Potion
</button>
{{/if}}
</div>
</div>
{{!-- Invocations actives --}}
{{#if (gt system.invocationsElementaires.length 0)}}
<div class="section-grid">
<h4 class="section-title">{{localize "MNBL.invocationsActives"}}</h4>
<ul class="item-list compact-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">{{localize "MNBL.invocationsActives"}}</span>
<span class="item-field-label-short">{{localize "MNBL.invocationElement"}}</span>
<span class="item-field-label-short">{{localize "MNBL.invocationTier"}}</span>
<span class="item-field-label-short">{{localize "MNBL.invocationAmeBloque"}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed"></div>
</li>
{{#each system.invocationsElementaires as |invoc idx|}}
<li class="item flexrow">
<span class="item-name-label competence-name">{{invoc.actorName}}</span>
<span class="item-field-label-short">{{invoc.element}}</span>
<span class="item-field-label-short">{{invoc.tier}}</span>
<span class="item-field-label-short">{{invoc.soulCost}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="bannirElementaire" data-invoc-index="{{@index}}" title="{{localize 'MNBL.bannirElementaire'}}"><i class="fas fa-ban"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
{{/if}}
<div class="section-grid">
<h4 class="section-title">{{localize "MNBL.tendancies"}}</h4>
+21 -10
View File
@@ -1,13 +1,24 @@
<div class="chat-message-header">
{{#if actorImg}}
<img class="actor-icon" src="{{img}}" alt="{{alias}}" />
<div class="mournblade-item-card mournblade-item-card--compact">
<div class="item-card-header">
{{#if img}}
<img class="item-card-img" src="{{img}}" alt="{{name}}" />
{{/if}}
<div class="item-card-title">
<h3 class="item-card-name">{{name}}</h3>
{{#if type}}
<span class="item-card-type-badge">
<i class="fas fa-scroll"></i> {{type}}
</span>
{{/if}}
</div>
</div>
{{#if system.description}}
<div class="item-card-description">
{{{system.description}}}
</div>
{{/if}}
<h4 class=chat-actor-name>{{name}}</h4>
</div>
<hr>
<div class="flexcol">
Description : {{{system.description}}}
</div>
+41 -3
View File
@@ -110,6 +110,12 @@
<span class="detail-label">Rune:</span>
<span class="detail-value">{{rune.name}}</span>
</div>
{{#if rune.system.formule}}
<div class="detail-row">
<span class="detail-label">Haut-Parler:</span>
<span class="detail-value rune-formule">{{rune.system.formule}}</span>
</div>
{{/if}}
<div class="detail-row">
<span class="detail-label">Mode:</span>
<span class="detail-value">{{runemode}}</span>
@@ -118,10 +124,16 @@
<span class="detail-label">Points d'âme:</span>
<span class="detail-value">{{runeame}}</span>
</div>
{{#if runeduree}}
{{#if dureeLabel}}
<div class="detail-row">
<span class="detail-label">Durée:</span>
<span class="detail-value">{{runeduree}} tour{{#if (gt runeduree 1)}}s{{/if}}</span>
<span class="detail-value">{{dureeLabel}}</span>
</div>
{{/if}}
{{#if runeActionsComplexes}}
<div class="detail-row">
<span class="detail-label">Actions complexes:</span>
<span class="detail-value">{{runeActionsComplexes}}</span>
</div>
{{/if}}
{{/if}}
@@ -171,10 +183,36 @@
{{#if rune}}
<div class="effect-item">
<i class="fas fa-star-of-david"></i>
La rune <strong>{{rune.name}}</strong> est activée pour {{runeduree}} tour{{#if (gt runeduree 1)}}s{{/if}}.
La rune <strong>{{rune.name}}</strong> est activée pour {{dureeLabel}}.
{{#if runeameCostReduit}}
<br><em><i class="fas fa-star"></i> Réussite héroïque : coût d'âme réduit à {{runeameCostFinal}} points.</em>
{{/if}}
</div>
<div class="damage-buttons">
<button class="chat-card-button rune-post-chat" data-actor-id="{{actorId}}" data-item-id="{{rune._id}}">
<i class="fas fa-scroll"></i> Voir les effets de {{rune.name}}
</button>
</div>
{{/if}}
</div>
{{else if isDramatique}}
{{#if rune}}
<div class="result-chaos">
<div class="chaos-header">
<i class="fas fa-dice-d20"></i> <strong>Dé du Chaos : {{chaosDieResult}}</strong>
</div>
<div class="chaos-effect {{chaosEffet}}">
{{#if (eq chaosEffet "desastre")}}
<i class="fas fa-radiation"></i>
{{else if (eq chaosEffet "echec_absolu")}}
<i class="fas fa-skull-crossbones"></i>
{{else}}
<i class="fas fa-minus-circle"></i>
{{/if}}
{{chaosEffetTexte}}
</div>
</div>
{{/if}}
{{else if (and (eq typeAttaque "fuir") (not isSuccess))}}
<div class="result-warning">
<i class="fas fa-exclamation-triangle"></i>
+120
View File
@@ -0,0 +1,120 @@
<div class="mournblade-chat-result">
{{!-- Header --}}
<div class="chat-result-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<div class="header-info">
<h4 class="actor-name">{{alias}}</h4>
<div class="action-title">
<i class="fas fa-wind"></i> Invocation Élémentaire
</div>
</div>
</div>
{{!-- Résultat principal --}}
<div class="result-main">
<div class="result-display">
<div class="dice-result">
<i class="fas fa-dice"></i>
<span class="dice-value">{{diceResult}}</span>
</div>
<div class="total-result">
<span class="total-label">Total</span>
<span class="total-value">{{finalResult}}</span>
</div>
<div class="difficulty">
<span class="difficulty-label">SD</span>
<span class="difficulty-value">{{difficulte}}</span>
</div>
</div>
<div class="result-badge-container">
{{#if isHeroique}}
<div class="result-badge heroique">
<i class="fas fa-star"></i> HÉROÏQUE !
</div>
{{else if isDramatique}}
<div class="result-badge dramatique">
<i class="fas fa-skull"></i> DRAMATIQUE !
</div>
{{else if isSuccess}}
<div class="result-badge success">
<i class="fas fa-check"></i> Succès
</div>
{{else}}
<div class="result-badge failure">
<i class="fas fa-times"></i> Échec
</div>
{{/if}}
</div>
</div>
{{!-- Détails du jet (GM only) --}}
{{#if isGM}}
<div class="chat-section">
<div class="chat-details-grid">
<span class="detail-label">Formule :</span>
<span class="detail-value formula-text">{{diceFormula}}</span>
<span class="detail-label">Présence :</span>
<span class="detail-value">{{attr.value}}</span>
<span class="detail-label">Persuasion :</span>
<span class="detail-value">{{competence.system.niveau}}</span>
{{#if bonusPacte}}
<span class="detail-label">Bonus Pacte :</span>
<span class="detail-value">+{{bonusPacte}}</span>
{{/if}}
<span class="detail-label">Élément :</span>
<span class="detail-value">{{invocationElement}}</span>
<span class="detail-label">Puissance :</span>
<span class="detail-value">{{invocationTier}}</span>
<span class="detail-label">Coût Âme :</span>
<span class="detail-value">{{invocationSoulCost}}</span>
</div>
</div>
<div class="chat-section potion-result-gm">
<h4 class="potion-result-title">
{{#if isHeroique}}
<i class="fas fa-star potion-heroique"></i> Réussite héroïque — Élémentaire invoqué
{{else if isDramatique}}
<i class="fas fa-skull-crossbones potion-poison"></i> ÉCHEC DRAMATIQUE — Catastrophe naturelle !
{{else if isSuccess}}
<i class="fas fa-check potion-efficace"></i> Élémentaire invoqué
{{else}}
<i class="fas fa-times potion-inefficace"></i> Invocation échouée
{{/if}}
</h4>
{{#if isHeroique}}
<p class="invoc-note"><i class="fas fa-bolt"></i> L'invocateur peut majorer gratuitement de +2 un attribut de l'Élémentaire.</p>
{{/if}}
{{#if isDramatique}}
<p class="invoc-note invoc-catastrophe"><i class="fas fa-exclamation-triangle"></i> Une catastrophe naturelle se déclenche ! Durée et portée selon la puissance de l'invocation. Tous les points d'Âme investis sont perdus.</p>
{{/if}}
{{#if elementaireCreated}}
<p class="potion-created-info"><i class="fas fa-plus-circle"></i> <strong>{{createdActorName}}</strong> a été créé et son Âme définie à {{invocationSoulCost}} points.</p>
{{/if}}
<div class="chat-details-grid">
<span class="detail-label">Points d'Âme déduits :</span>
<span class="detail-value">{{invocationSoulDeducted}}</span>
</div>
</div>
{{/if}}
{{!-- Message neutre pour le joueur --}}
{{#unless isGM}}
<div class="chat-section potion-result-player">
{{#if isSuccess}}
<p><i class="fas fa-wind"></i> Invocation réussie ! L'Élémentaire répond à votre appel.</p>
{{else if isDramatique}}
<p><i class="fas fa-exclamation-triangle"></i> Quelque chose s'est terriblement mal passé…</p>
{{else}}
<p><i class="fas fa-times"></i> L'invocation a échoué.</p>
{{/if}}
</div>
{{/unless}}
</div>
+124
View File
@@ -0,0 +1,124 @@
<div class="mournblade-chat-result">
{{!-- Header --}}
<div class="chat-result-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<div class="header-info">
<h4 class="actor-name">{{alias}}</h4>
<div class="action-title">
<i class="fas fa-flask"></i> Préparation de Potion
</div>
</div>
</div>
{{!-- Rune utilisée --}}
<div class="chat-section potion-rune-info">
{{#if runeImg}}
<img class="rune-mini-img" src="{{runeImg}}" alt="{{runeName}}" />
{{/if}}
<span class="potion-rune-name">{{runeName}}</span>
<span class="potion-rune-seuil">Seuil : {{runeSeuil}}</span>
{{#if runeHautParler}}
<span class="potion-haut-parler"><em>«{{runeHautParler}}»</em></span>
{{/if}}
</div>
{{!-- Résultat principal --}}
<div class="result-main">
<div class="result-display">
<div class="dice-result">
<i class="fas fa-dice"></i>
<span class="dice-value">{{diceResult}}</span>
</div>
<div class="total-result">
<span class="total-label">Total</span>
<span class="total-value">{{finalResult}}</span>
</div>
<div class="difficulty">
<span class="difficulty-label">SD</span>
<span class="difficulty-value">{{difficulte}}</span>
</div>
</div>
<div class="result-badge-container">
{{#if isHeroique}}
<div class="result-badge heroique">
<i class="fas fa-star"></i> HÉROÏQUE !
</div>
{{else if isDramatique}}
<div class="result-badge dramatique">
<i class="fas fa-skull"></i> DRAMATIQUE !
</div>
{{else if isSuccess}}
<div class="result-badge success">
<i class="fas fa-check"></i> Succès
</div>
{{else}}
<div class="result-badge failure">
<i class="fas fa-times"></i> Échec
</div>
{{/if}}
</div>
</div>
{{!-- Détails du jet --}}
<div class="chat-section">
<div class="chat-details-grid">
<span class="detail-label">Formule :</span>
<span class="detail-value formula-text">{{diceFormula}}</span>
<span class="detail-label">Clairvoyance :</span>
<span class="detail-value">{{attr.value}}</span>
<span class="detail-label">Savoir : Runes :</span>
<span class="detail-value">{{competence.system.niveau}}</span>
{{#if limitHautParlerValue}}
<span class="detail-label">Limite Haut-Parler :</span>
<span class="detail-value">{{limitHautParlerValue}}</span>
{{/if}}
{{#if limitAlchimieValue}}
<span class="detail-label">Limite Alchimie :</span>
<span class="detail-value">{{limitAlchimieValue}}</span>
{{/if}}
<span class="detail-label">Points d'Âme :</span>
<span class="detail-value">{{pointsAme}}</span>
<span class="detail-label">Forme :</span>
<span class="detail-value">{{formeLabel}}</span>
</div>
</div>
{{!-- Résultat de la potion (visible uniquement du MJ) --}}
{{#if isGM}}
<div class="chat-section potion-result-gm">
<h4 class="potion-result-title">
{{#if isHeroique}}
<i class="fas fa-star potion-heroique"></i> Potion héroïque créée
{{else if isDramatique}}
<i class="fas fa-skull-crossbones potion-poison"></i> POISON créé (Virulence {{virulence}}) — le personnage ne le sait pas
{{else if isSuccess}}
<i class="fas fa-flask potion-efficace"></i> Potion efficace créée
{{else}}
<i class="fas fa-times potion-inefficace"></i> Potion inefficace — le personnage le sait
{{/if}}
</h4>
{{#if potionCreated}}
<p class="potion-created-info">La potion a été ajoutée à l'inventaire du personnage.</p>
{{/if}}
<div class="chat-details-grid">
<span class="detail-label">Durée d'effet :</span>
<span class="detail-value">{{dureePotion}}</span>
<span class="detail-label">Conservation :</span>
<span class="detail-value">{{conservationPotion}}</span>
<span class="detail-label">Temps de préparation :</span>
<span class="detail-value">{{tempsPreparation}}</span>
</div>
</div>
{{/if}}
{{!-- Message neutre pour le joueur --}}
{{#unless isGM}}
<div class="chat-section potion-result-player">
<p><i class="fas fa-hourglass-half"></i> La préparation est en cours… le résultat sera connu bientôt.</p>
</div>
{{/unless}}
</div>
+153
View File
@@ -0,0 +1,153 @@
<div class="mournblade-chat-result">
{{!-- Header --}}
<div class="chat-result-header">
{{#if actorImg}}
<img class="actor-icon" src="{{actorImg}}" alt="{{alias}}" />
{{/if}}
<div class="header-info">
<h4 class="actor-name">{{alias}}</h4>
<div class="action-title">
<i class="fas fa-star-of-david"></i> Sortilège
</div>
</div>
</div>
{{!-- Résultat principal --}}
<div class="result-main">
<div class="result-display">
<div class="dice-result">
<i class="fas fa-dice"></i>
<span class="dice-value">{{diceResult}}</span>
</div>
<div class="total-result">
<span class="total-label">Total</span>
<span class="total-value">{{finalResult}}</span>
</div>
{{#if difficulte}}
<div class="difficulty">
<span class="difficulty-label">SD</span>
<span class="difficulty-value">{{difficulte}}</span>
</div>
{{/if}}
</div>
{{#if difficulte}}
<div class="result-badge-container">
{{#if isHeroique}}
<div class="result-badge heroique">
<i class="fas fa-star"></i> HÉROÏQUE !
</div>
{{else if isDramatique}}
<div class="result-badge dramatique">
<i class="fas fa-skull"></i> DRAMATIQUE !
</div>
{{else if isSuccess}}
<div class="result-badge success">
<i class="fas fa-check"></i> Succès
</div>
{{else}}
<div class="result-badge failure">
<i class="fas fa-times"></i> Échec
</div>
{{/if}}
</div>
{{/if}}
</div>
{{#if isImpair}}
<div class="result-warning">
<i class="fas fa-circle-half-stroke"></i> {{localize "MNBL.oddresult"}}
</div>
{{/if}}
{{!-- Détails du sortilège --}}
<div class="result-details">
<div class="details-section">
<div class="detail-row">
<span class="detail-label">Formule :</span>
<span class="detail-value">{{diceFormula}}</span>
</div>
<div class="detail-row">
<span class="detail-label">Mode :</span>
<span class="detail-value">{{runemode}}</span>
</div>
<div class="detail-row">
<span class="detail-label">Points d'âme totaux :</span>
<span class="detail-value">{{runeame}}</span>
</div>
<div class="detail-row">
<span class="detail-label">Actions complexes :</span>
<span class="detail-value">{{runeActionsComplexes}}</span>
</div>
</div>
{{!-- Liste des runes du sortilège --}}
<div class="sortilege-runes-summary">
<div class="details-section-title"><i class="fas fa-layer-group"></i> Runes assemblées</div>
{{#each sortilegeRunes as |rune|}}
<div class="sortilege-rune-detail flexrow">
<img src="{{rune.img}}" class="rune-mini-img" />
<span class="rune-name">{{rune.name}}</span>
{{#if rune.formule}}<span class="rune-formule">«&nbsp;{{rune.formule}}&nbsp;»</span>{{/if}}
<span class="rune-pts">{{rune.pts}} pts</span>
<span class="rune-actions">{{rune.actionsComplexes}} ac.</span>
<span class="rune-duree">{{rune.dureeLabel}}</span>
</div>
{{/each}}
</div>
</div>
{{!-- Effets --}}
{{#if isSuccess}}
<div class="result-effects">
{{#each sortilegeRunes as |rune|}}
<div class="effect-item">
<i class="fas fa-star-of-david"></i>
<strong>{{rune.name}}</strong> activée pour {{rune.dureeLabel}}.
</div>
{{/each}}
{{#if runeameCostReduit}}
<div class="effect-item">
<em><i class="fas fa-star"></i> Réussite héroïque : coût total réduit à {{runeameCostFinal}} points d'âme.</em>
</div>
{{/if}}
<div class="damage-buttons">
{{#each sortilegeRunes as |rune|}}
<button class="chat-card-button rune-post-chat" data-actor-id="{{../actorId}}" data-item-id="{{rune.id}}">
<i class="fas fa-scroll"></i> Effets : {{rune.name}}
</button>
{{/each}}
</div>
</div>
{{else if isDramatique}}
{{#if chaosDieResult}}
<div class="result-chaos">
<div class="chaos-header">
<i class="fas fa-dice-d20"></i> <strong>Dé du Chaos : {{chaosDieResult}}</strong>
</div>
<div class="chaos-effect {{chaosEffet}}">
{{#if (eq chaosEffet "desastre")}}
<i class="fas fa-radiation"></i>
{{else if (eq chaosEffet "echec_absolu")}}
<i class="fas fa-skull-crossbones"></i>
{{else}}
<i class="fas fa-minus-circle"></i>
{{/if}}
{{chaosEffetTexte}}
</div>
</div>
{{/if}}
{{/if}}
{{!-- Prédilections --}}
{{#each predilections as |pred key|}}
{{#if (not pred.used)}}
<div class="predilection-section">
<button class="chat-card-button predilection-reroll" data-predilection-index="{{key}}">
<i class="fas fa-redo"></i> Prédilection : {{pred.name}}
</button>
</div>
{{/if}}
{{/each}}
</div>
+22 -4
View File
@@ -20,7 +20,20 @@
<div class="section-icon"><i class="fas fa-copyright"></i></div>
<div class="section-text">
<strong>Droits :</strong>
<p>Mournblade est un jeu de rôle publié par Titam France/Sombres Projets. Tous les droits leur appartiennent.</p>
<p>Mournblade est un jeu de rôle publié par Titam France/Sombres
Projets. Tous les droits leur appartiennent.</p>
</div>
</div>
<div class="welcome-section">
<div class="section-icon"><i class="fas fa-book-open"></i></div>
<div class="section-text">
<strong>Guide du Joueur :</strong>
<p>Consultez le guide intégré pour découvrir les fiches, les jets de
dés, le combat et la magie des runes.
@UUID[Compendium.fvtt-mournblade.journal-aide.JournalEntry.JurnlHelpGuide01]{Guide
du Joueur}
</p>
</div>
</div>
@@ -29,8 +42,13 @@
<div class="section-text">
<strong>Support & Communauté :</strong>
<p>Système développé par LeRatierBretonnien</p>
<a href="https://discord.gg/pPSDNJk" target="_blank" class="welcome-link">
<i class="fab fa-discord"></i> Discord FR de Foundry
<a
href="https://discord.gg/pPSDNJk"
target="_blank"
class="welcome-link"
>
<i class="fab fa-discord"></i>
Discord FR de Foundry
</a>
</div>
</div>
@@ -41,4 +59,4 @@
<span>Que vos lames soient acérées et vos âmes fortes !</span>
<i class="fas fa-dice-d20"></i>
</div>
</div>
</div>
+38
View File
@@ -12,6 +12,18 @@
<i class="{{#if isEditMode}}fas fa-eye{{else}}fas fa-edit{{/if}}"></i>
</button>
</div>
<div style="display: flex; align-items: center; gap: 0.5rem; margin-top: 0.2rem;">
<label style="font-size: 0.8em; white-space: nowrap;">{{localize "MNBL.creatureType"}}</label>
<select name="system.biodata.creatureType" style="font-size: 0.8em; width: 120px;" {{#if isPlayMode}}disabled{{/if}}>
{{selectOptions config.creatureTypeOptions selected=system.biodata.creatureType}}
</select>
{{#if (eq system.biodata.creatureType "elementaire")}}
<label style="font-size: 0.8em; white-space: nowrap;">{{localize "MNBL.elementType"}}</label>
<select name="system.biodata.elementType" style="font-size: 0.8em; width: 90px;" {{#if isPlayMode}}disabled{{/if}}>
{{selectOptions config.elementTypeOptions selected=system.biodata.elementType}}
</select>
{{/if}}
</div>
</div>
</div>
</div>
@@ -250,6 +262,32 @@
</ul>
</div>
{{/if}}
<div class="section-grid">
<h4 class="section-title">{{localize "MNBL.capacites"}}</h4>
<ul class="item-list compact-list">
<li class="item flexrow list-item items-title-bg">
<span class="item-name-label-header">{{localize "MNBL.capacites"}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="createItem" data-type="capacite" title="Ajouter une capacité"><i class="fas fa-plus"></i></a>
</div>
</li>
{{#each capacites as |capacite key|}}
<li class="item flexrow" data-item-id="{{capacite._id}}" data-item-type="capacite">
<img class="item-name-img" src="{{capacite.img}}" />
<span class="item-name-label">{{capacite.name}}</span>
<div class="item-filler">&nbsp;</div>
<div class="item-controls item-controls-fixed">
<a data-action="postItem" data-item-id="{{capacite._id}}" title="Poster dans le chat"><i class="fas fa-comment"></i></a>
<a data-action="editItem" title="Éditer"><i class="fas fa-edit"></i></a>
<a data-action="deleteItem" title="Supprimer"><i class="fas fa-trash"></i></a>
</div>
</li>
{{/each}}
</ul>
</div>
</div>
{{!-- Bio Tab --}}
@@ -0,0 +1,89 @@
<div class="potion-dialog invocation-dialog">
<div class="sortilege-header flexrow">
<img src="{{img}}" class="sortilege-actor-img" />
<div class="sortilege-actor-info">
<span class="sortilege-actor-name">{{name}}</span>
<span class="sortilege-ame-info">Âme disponible : <strong>{{ameDisponible}}</strong></span>
</div>
</div>
<div class="potion-dialog-section">
<h4 class="potion-dialog-title"><i class="fas fa-wind"></i> Élément &amp; Puissance</h4>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Élément :</label>
<select name="element" id="invoc-element" class="roll-dialog-label">
<option value="air">Air</option>
<option value="terre">Terre</option>
<option value="feu">Feu</option>
<option value="eau">Eau</option>
</select>
</div>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Puissance :</label>
<select name="tier" id="invoc-tier" class="roll-dialog-label">
<option value="mineur" data-seuil="15">Mineur (Seuil 15)</option>
<option value="median" data-seuil="20">Médian (Seuil 20)</option>
<option value="majeur" data-seuil="25">Majeur (Seuil 25)</option>
</select>
</div>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Points d'Âme supplémentaires :</label>
<select name="ameExtra" id="invoc-ame-extra" class="roll-dialog-label">
{{#each ameExtraOptions as |n|}}
<option value="{{n}}" {{#if (eq n 0)}}selected{{/if}}>{{n}}</option>
{{/each}}
</select>
</div>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Modificateur :</label>
<select name="modificateur" class="roll-dialog-label">
{{#each modOptions as |n|}}
<option value="{{n}}" {{#if (eq n 0)}}selected{{/if}}>{{#if (gt n 0)}}+{{/if}}{{n}}</option>
{{/each}}
</select>
</div>
</div>
<div class="potion-dialog-section potion-summary">
<div class="flexrow summary-row">
<span class="summary-label">Seuil de difficulté :</span>
<span class="summary-value" id="invoc-seuil">15</span>
</div>
<div class="flexrow summary-row">
<span class="summary-label">Coût total en Âme :</span>
<span class="summary-value" id="invoc-cout">15</span>
</div>
<div class="flexrow summary-row">
<span class="summary-label">Temps de concentration :</span>
<span class="summary-value" id="invoc-temps">1 tour</span>
</div>
{{#if bonusPacte}}
<div class="flexrow summary-row invoc-bonus-pacte">
<i class="fas fa-star"></i>
<span>Bonus Pacte élémentaire : <strong>+5</strong> sur les invocations liées à cet élément.</span>
</div>
{{/if}}
{{#if hautParlerNiveau}}
<div class="flexrow summary-row">
<span class="summary-label">Savoir : Haut-Parler :</span>
<span class="summary-value">{{hautParlerNiveau}}</span>
</div>
{{/if}}
{{#if seigneursElemNiveau}}
<div class="flexrow summary-row">
<span class="summary-label">Savoir : Seigneurs Élémentaires :</span>
<span class="summary-value">{{seigneursElemNiveau}}</span>
</div>
{{/if}}
<div class="flexrow summary-row potion-info-note">
<i class="fas fa-eye-slash"></i>
<span>Le jet sera effectué en secret par le MJ.</span>
</div>
</div>
</div>
+85
View File
@@ -0,0 +1,85 @@
<div class="potion-dialog">
<div class="sortilege-header flexrow">
<img src="{{img}}" class="sortilege-actor-img" />
<div class="sortilege-actor-info">
<span class="sortilege-actor-name">{{name}}</span>
<span class="sortilege-ame-info">Âme disponible : <strong>{{ameDisponible}}</strong></span>
</div>
</div>
<div class="potion-dialog-section">
<h4 class="potion-dialog-title"><i class="fas fa-star-of-david"></i> Sélectionner une Rune</h4>
<table class="potion-runes-table">
<thead>
<tr>
<th></th>
<th>Rune</th>
<th class="text-center">Seuil</th>
<th class="text-center">Formule</th>
</tr>
</thead>
<tbody>
{{#each runes as |rune|}}
<tr class="potion-rune-row" data-rune-id="{{rune._id}}" data-seuil="{{rune.system.seuil}}">
<td class="text-center">
<input type="radio" name="rune-selected" class="potion-rune-radio" value="{{rune._id}}"
{{#if @first}}checked{{/if}} />
</td>
<td>
<img src="{{rune.img}}" class="rune-mini-img" />
{{rune.name}}
</td>
<td class="text-center">{{rune.system.seuil}}</td>
<td class="text-center">{{rune.system.formule}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>
<div class="potion-dialog-section">
<h4 class="potion-dialog-title"><i class="fas fa-flask"></i> Paramètres</h4>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Points d'Âme investis :</label>
<select name="pointsAme" id="potion-points-ame" class="roll-dialog-label">
{{#each ameOptions as |n|}}
<option value="{{n}}" {{#if (eq n 1)}}selected{{/if}}>{{n}}</option>
{{/each}}
</select>
</div>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Forme :</label>
<select name="forme" id="potion-forme" class="roll-dialog-label">
{{selectOptions config.potionFormeOptions selected="liquide"}}
</select>
</div>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Modificateur :</label>
<select name="modificateur" class="roll-dialog-label">
{{#each modOptions as |n|}}
<option value="{{n}}" {{#if (eq n 0)}}selected{{/if}}>{{#if (gt n 0)}}+{{/if}}{{n}}</option>
{{/each}}
</select>
</div>
</div>
<div class="potion-dialog-section potion-summary">
<div class="flexrow summary-row">
<span class="summary-label">Difficulté estimée :</span>
<span class="summary-value" id="potion-difficulte">—</span>
</div>
<div class="flexrow summary-row">
<span class="summary-label">Temps de préparation :</span>
<span class="summary-value" id="potion-temps">—</span>
</div>
<div class="flexrow summary-row potion-info-note">
<i class="fas fa-eye-slash"></i>
<span>Le jet sera effectué en secret par le MJ.</span>
</div>
</div>
</div>
+79
View File
@@ -0,0 +1,79 @@
<div class="sortilege-dialog">
<div class="sortilege-header flexrow">
<img src="{{img}}" class="sortilege-actor-img" />
<div class="sortilege-actor-info">
<span class="sortilege-actor-name">{{name}}</span>
<span class="sortilege-ame-info">Âme disponible : <strong>{{ameDisponible}}</strong></span>
</div>
</div>
<div class="flexrow sortilege-mode-row">
<label class="roll-dialog-label">Mode :</label>
<select name="runemode" id="sortilege-runemode" class="roll-dialog-label">
{{selectOptions config.lancementRuneOptions selected=runemode}}
</select>
</div>
<table class="sortilege-runes-table">
<thead>
<tr>
<th></th>
<th>Rune</th>
<th class="text-center">Seuil</th>
<th class="text-center">Points d'âme</th>
</tr>
</thead>
<tbody>
{{#each runes as |rune|}}
<tr class="sortilege-rune-row" data-rune-id="{{rune._id}}" data-seuil="{{rune.system.seuil}}">
<td class="text-center">
<input type="checkbox" name="rune-selected-{{rune._id}}" class="sortilege-rune-checkbox" value="{{rune._id}}" />
</td>
<td>
<img src="{{rune.img}}" class="rune-mini-img" />
{{rune.name}}
</td>
<td class="text-center">{{rune.system.seuil}}</td>
<td class="text-center">
<select name="rune-points-{{rune._id}}" class="sortilege-rune-points" disabled>
{{#each ../ameOptions as |n|}}
<option value="{{n}}" {{#if (eq n 1)}}selected{{/if}}>{{n}}</option>
{{/each}}
</select>
</td>
</tr>
{{/each}}
</tbody>
</table>
<div class="sortilege-summary">
<div class="flexrow summary-row">
<span class="summary-label">Difficulté :</span>
<span class="summary-value" id="sortilege-difficulte">—</span>
</div>
<div class="flexrow summary-row">
<span class="summary-label">Points d'âme totaux :</span>
<span class="summary-value" id="sortilege-total-ame">0</span>
</div>
<div class="flexrow summary-row">
<span class="summary-label">Actions complexes :</span>
<span class="summary-value" id="sortilege-actions">0</span>
</div>
</div>
<div class="flexrow">
<label class="roll-dialog-label" for="sortilege-autocible">Uniquement sur soi-même (réussite héroïque) ?</label>
<input type="checkbox" id="sortilege-autocible" name="runeautocible" />
</div>
<div class="flexrow">
<label class="roll-dialog-label">Modificateur :</label>
<select name="modificateur" class="sortilege-modificateur-select">
{{#each modOptions as |n|}}
<option value="{{n}}" {{#if (eq n 0)}}selected{{/if}}>{{#if (gt n 0)}}+{{/if}}{{n}}</option>
{{/each}}
</select>
</div>
</div>
+6
View File
@@ -7,6 +7,12 @@
{{> systems/fvtt-mournblade/templates/partial-item-description.hbs this}}
<div class="tab details" data-group="primary" data-tab="details">
<div class="form-group">
<label>{{localize "MNBL.typeCapacite"}}</label>
<select name="system.typeCapacite">
{{selectOptions config.typeCapaciteOptions selected=system.typeCapacite}}
</select>
</div>
</div>
</section>
+71
View File
@@ -0,0 +1,71 @@
<section class="{{cssClass}}" autocomplete="off">
{{> systems/fvtt-mournblade/templates/partial-item-header.hbs this}}
{{> systems/fvtt-mournblade/templates/partial-item-nav.hbs this}}
<div class="tab details" data-group="primary" data-tab="details">
<ul class="item-list alternate-list">
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionRune"}} :</label>
<input type="text" class="padd-right item-field-label-long1" name="system.rune" value="{{system.rune}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionSeuil"}} :</label>
<input type="number" class="padd-right numeric-input item-field-label-short" name="system.runeSeuil" value="{{system.runeSeuil}}" data-dtype="Number" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionPointsAme"}} :</label>
<input type="number" class="padd-right numeric-input item-field-label-short" name="system.pointsAme" value="{{system.pointsAme}}" data-dtype="Number" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionForme"}} :</label>
<select class="item-field-label-long1" name="system.forme">
{{selectOptions config.potionFormeOptions selected=system.forme}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionStatut"}} :</label>
<select class="item-field-label-long1" name="system.statut">
{{selectOptions config.potionStatutOptions selected=system.statut}}
</select>
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionVirulence"}} :</label>
<input type="number" class="padd-right numeric-input item-field-label-short" name="system.virulence" value="{{system.virulence}}" data-dtype="Number" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionDuree"}} :</label>
<input type="text" class="padd-right item-field-label-long1" name="system.duree" value="{{system.duree}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionConservation"}} :</label>
<input type="text" class="padd-right item-field-label-long1" name="system.conservation" value="{{system.conservation}}" data-dtype="String" />
</li>
<li class="flexrow item">
<label class="generic-label item-field-label-long">{{localize "MNBL.potionTemps"}} :</label>
<input type="text" class="padd-right item-field-label-long1" name="system.tempsPreparation" value="{{system.tempsPreparation}}" data-dtype="String" />
</li>
</ul>
</div>
<div class="tab effets" data-group="primary" data-tab="effets">
<div class="potion-effets-section">
<h4 class="potion-section-title"><i class="fas fa-flask"></i> {{localize "MNBL.potionEffetCuratif"}}</h4>
<div class="form-group">
{{editor system.effetCuratif target="system.effetCuratif" button=true owner=owner editable=editable}}
</div>
<h4 class="potion-section-title potion-section-letal"><i class="fas fa-skull-crossbones"></i> {{localize "MNBL.potionEffetLetal"}}</h4>
<div class="form-group">
{{editor system.effetLetal target="system.effetLetal" button=true owner=owner editable=editable}}
</div>
<h4 class="potion-section-title"><i class="fas fa-dizzy"></i> {{localize "MNBL.potionEffetSecondaire"}}</h4>
<div class="form-group">
{{editor system.effetSecondaire target="system.effetSecondaire" button=true owner=owner editable=editable}}
</div>
</div>
</div>
{{> systems/fvtt-mournblade/templates/partial-item-description.hbs this}}
</section>
+111 -6
View File
@@ -1,8 +1,113 @@
<div class="post-item" data-transfer="{{transfer}}">
<h3><b>{{name}}</b></h3>
{{#if img}}
<img class="chat-img" src="{{img}}" title="{{name}}" />
<div class="mournblade-item-card" data-item-id="{{_id}}" data-transfer="{{jsondata}}">
{{!-- Header --}}
<div class="item-card-header">
{{#if img}}
<img class="item-card-img" src="{{img}}" alt="{{name}}" />
{{/if}}
<div class="item-card-title">
<h3 class="item-card-name">{{name}}</h3>
<span class="item-card-type-badge">
<i class="fas {{typeIcon}}"></i> {{typeLabel}}
</span>
</div>
</div>
{{!-- Type-specific stats --}}
{{#if (eq type "arme")}}
<div class="item-card-stats">
{{#if system.typearme}}
<div class="stat-row"><span class="stat-label">Type</span><span class="stat-value">{{system.typearme}}</span></div>
{{/if}}
{{#if system.degats}}
<div class="stat-row"><span class="stat-label"><i class="fas fa-burst"></i> Dégâts</span><span class="stat-value stat-highlight">{{system.degats}}</span></div>
{{/if}}
<div class="stat-row"><span class="stat-label">Bonus offensif</span><span class="stat-value">{{system.bonusmaniementoff}}</span></div>
<div class="stat-row"><span class="stat-label">Bonus défensif</span><span class="stat-value">{{system.bonusmaniementdef}}</span></div>
{{#if system.deuxmains}}<div class="stat-row stat-flag"><i class="fas fa-hands"></i> Deux mains</div>{{/if}}
{{#if system.ignorearmure}}<div class="stat-row stat-flag"><i class="fas fa-shield-halved"></i> Ignore l'armure</div>{{/if}}
{{#if system.nonletaux}}<div class="stat-row stat-flag"><i class="fas fa-hand-peace"></i> Non-létaux</div>{{/if}}
{{#if system.prix}}<div class="stat-row"><span class="stat-label">Prix</span><span class="stat-value">{{system.prix}}</span></div>{{/if}}
</div>
{{else if (eq type "bouclier")}}
<div class="item-card-stats">
<div class="stat-row"><span class="stat-label"><i class="fas fa-shield-halved"></i> Bonus défense</span><span class="stat-value stat-highlight">{{system.bonusdefense}}</span></div>
{{#if system.degats}}<div class="stat-row"><span class="stat-label">Dégâts</span><span class="stat-value">{{system.degats}}</span></div>{{/if}}
{{#if system.nonletaux}}<div class="stat-row stat-flag"><i class="fas fa-hand-peace"></i> Non-létaux</div>{{/if}}
{{#if system.prix}}<div class="stat-row"><span class="stat-label">Prix</span><span class="stat-value">{{system.prix}}</span></div>{{/if}}
</div>
{{else if (eq type "protection")}}
<div class="item-card-stats">
{{#if system.typeprotection}}<div class="stat-row"><span class="stat-label">Type</span><span class="stat-value">{{system.typeprotection}}</span></div>{{/if}}
<div class="stat-row"><span class="stat-label"><i class="fas fa-shield"></i> Protection</span><span class="stat-value stat-highlight">{{system.protection}}</span></div>
{{#if system.degats}}<div class="stat-row"><span class="stat-label">Dégâts encaissés</span><span class="stat-value">{{system.degats}}</span></div>{{/if}}
{{#if system.prix}}<div class="stat-row"><span class="stat-label">Prix</span><span class="stat-value">{{system.prix}}</span></div>{{/if}}
</div>
{{else if (eq type "competence")}}
<div class="item-card-stats">
<div class="stat-row"><span class="stat-label"><i class="fas fa-chart-bar"></i> Niveau</span><span class="stat-value stat-highlight">{{system.niveau}}</span></div>
{{#if system.attribut1}}<div class="stat-row"><span class="stat-label">Attribut 1</span><span class="stat-value">{{upper system.attribut1}}</span></div>{{/if}}
{{#if system.attribut2}}<div class="stat-row"><span class="stat-label">Attribut 2</span><span class="stat-value">{{upper system.attribut2}}</span></div>{{/if}}
{{#if system.attribut3}}<div class="stat-row"><span class="stat-label">Attribut 3</span><span class="stat-value">{{upper system.attribut3}}</span></div>{{/if}}
{{#if system.doublebonus}}<div class="stat-row stat-flag"><i class="fas fa-star"></i> Double bonus</div>{{/if}}
</div>
{{else if (eq type "rune")}}
<div class="item-card-stats">
<div class="stat-row"><span class="stat-label"><i class="fas fa-bullseye"></i> Seuil</span><span class="stat-value stat-highlight">{{system.seuil}}</span></div>
{{#if system.formule}}<div class="stat-row"><span class="stat-label">Formule</span><span class="stat-value">{{system.formule}}</span></div>{{/if}}
{{#if system.prononcee}}<div class="stat-row"><span class="stat-label">Prononcée</span><span class="stat-value">{{system.prononcee}}</span></div>{{/if}}
{{#if system.tracee}}<div class="stat-row"><span class="stat-label">Tracée</span><span class="stat-value">{{system.tracee}}</span></div>{{/if}}
</div>
{{else if (eq type "runeeffect")}}
<div class="item-card-stats">
{{#if system.rune}}<div class="stat-row"><span class="stat-label">Rune</span><span class="stat-value">{{system.rune}}</span></div>{{/if}}
{{#if system.mode}}<div class="stat-row"><span class="stat-label">Mode</span><span class="stat-value">{{system.mode}}</span></div>{{/if}}
{{#if system.duree}}<div class="stat-row"><span class="stat-label"><i class="fas fa-clock"></i> Durée</span><span class="stat-value stat-highlight">{{system.duree}}</span></div>{{/if}}
{{#if system.pointame}}<div class="stat-row"><span class="stat-label">Points d'âme</span><span class="stat-value">{{system.pointame}}</span></div>{{/if}}
</div>
{{else if (eq type "don")}}
<div class="item-card-stats">
{{#if system.allegeance}}<div class="stat-row"><span class="stat-label">Allégeance</span><span class="stat-value">{{system.allegeance}}</span></div>{{/if}}
{{#if system.prerequis}}<div class="stat-row"><span class="stat-label">Prérequis</span><span class="stat-value">{{system.prerequis}}</span></div>{{/if}}
</div>
{{else if (eq type "pacte")}}
<div class="item-card-stats">
{{#if system.allegeance}}<div class="stat-row"><span class="stat-label">Allégeance</span><span class="stat-value">{{system.allegeance}}</span></div>{{/if}}
</div>
{{else if (eq type "tendance")}}
<div class="item-card-stats">
{{#if system.allegeance}}<div class="stat-row"><span class="stat-label">Allégeance</span><span class="stat-value">{{system.allegeance}}</span></div>{{/if}}
</div>
{{else if (eq type "equipement")}}
<div class="item-card-stats">
{{#if system.prix}}<div class="stat-row"><span class="stat-label">Prix</span><span class="stat-value">{{system.prix}}</span></div>{{/if}}
{{#if system.rarete}}<div class="stat-row"><span class="stat-label">Rareté</span><span class="stat-value">{{system.rarete}}</span></div>{{/if}}
</div>
{{/if}}
<h4><b>Description : </b></h4>
<p class="card-content">{{{system.description}}}</p>
{{!-- Description --}}
{{#if system.description}}
<div class="item-card-divider"><span>Description</span></div>
<div class="item-card-description">
{{{system.description}}}
</div>
{{/if}}
{{!-- Sacrifice (dons) --}}
{{#if system.sacrifice}}
<div class="item-card-divider"><span>Sacrifice</span></div>
<div class="item-card-description item-card-sacrifice">
{{{system.sacrifice}}}
</div>
{{/if}}
</div>
+4
View File
@@ -62,6 +62,10 @@
{{selectOptions config.pointsAmeOptions selected=runeame}}
</select>
</div>
<div class="flexrow">
<label class="roll-dialog-label" for="runeautocible">Rune uniquement sur soi-même ?</label>
<input type="checkbox" id="runeautocible" name="runeautocible" />
</div>
{{/if}} {{#if arme}}
<div class="flexrow">
<span class="roll-dialog-label">{{localize "MNBL.weapon"}} : </span>