Rework dialog Alchimie
This commit is contained in:
parent
0e9bc372bf
commit
550f45d14c
@ -3202,24 +3202,33 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async effectuerTacheAlchimie(recetteId, alchimieName, alchimieData) {
|
async effectuerTacheAlchimie(recetteId, tacheAlchimie, texteTache) {
|
||||||
let recette = this.getItemOfType(recetteId, 'recettealchimique');
|
let recetteData = Misc.data(this.getItemOfType(recetteId, 'recettealchimique'));
|
||||||
const actorData = Misc.data(this);
|
const actorData = Misc.data(this);
|
||||||
if (recette) {
|
if (recetteData) {
|
||||||
let competence = Misc.data(this.getCompetence("alchimie"));
|
if (tacheAlchimie != "couleur" && tacheAlchimie != "consistance") {
|
||||||
let diffAlchimie = RdDAlchimie.getDifficulte(alchimieData);
|
ui.notifications.warn(`L'étape alchimique ${tacheAlchimie} - ${texteTache} est inconnue`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const sansCristal = tacheAlchimie == "couleur" && this.data.items.filter(it => it.isCristalAlchimique()).length == 0;
|
||||||
|
const caracTache = RdDAlchimie.getCaracTache(tacheAlchimie);
|
||||||
|
const alchimieData = Misc.data(this.getCompetence("alchimie"));
|
||||||
|
|
||||||
let rollData = {
|
let rollData = {
|
||||||
recette: recette,
|
recette: recetteData,
|
||||||
competence: competence,
|
carac: { [caracTache]: actorData.data.carac[caracTache] },
|
||||||
diffLibre: diffAlchimie // Per default at startup
|
selectedCarac: actorData.data.carac[caracTache],
|
||||||
|
competence: alchimieData,
|
||||||
|
diffLibre: RdDAlchimie.getDifficulte(texteTache),
|
||||||
|
diffConditions: sansCristal ? -4 : 0,
|
||||||
|
alchimie: {
|
||||||
|
tache: Misc.upperFirst(tacheAlchimie),
|
||||||
|
texte: texteTache,
|
||||||
|
sansCristal: sansCristal
|
||||||
}
|
}
|
||||||
if (alchimieName == "couleur") {
|
|
||||||
rollData.selectedCarac = actorData.data.carac.vue,
|
|
||||||
rollData.alchimieTexte = `Couleurs ${alchimieData} (${diffAlchimie}) (Malus de -4 si vous ne possédez pas de Cristal Alchimique)`;
|
|
||||||
} else {
|
|
||||||
rollData.selectedCarac = actorData.data.carac.dexterite,
|
|
||||||
rollData.alchimieTexte = `Consistances ${alchimieData} (${diffAlchimie})`;
|
|
||||||
}
|
}
|
||||||
|
rollData.competence.data.defaut_carac = caracTache;
|
||||||
|
|
||||||
const dialog = await RdDRoll.create(this, rollData,
|
const dialog = await RdDRoll.create(this, rollData,
|
||||||
{
|
{
|
||||||
@ -3239,6 +3248,10 @@ export class RdDActor extends Actor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isCristalAlchimique(it) {
|
||||||
|
return it.type == 'objet' && Grammar.toLowerCaseNoAccent(it.name) == 'cristal alchimique' && it.data.quantite > 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
_alchimieResult(rollData) {
|
_alchimieResult(rollData) {
|
||||||
RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-alchimie.html');
|
RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-alchimie.html');
|
||||||
|
@ -34,6 +34,12 @@ export class RdDItem extends Item {
|
|||||||
return RdDItem.getTypeObjetsEquipement().includes(Misc.data(this).type);
|
return RdDItem.getTypeObjetsEquipement().includes(Misc.data(this).type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isCristalAlchimique() {
|
||||||
|
const itemData = Misc.data(this);
|
||||||
|
return itemData.type == 'objet' && Grammar.toLowerCaseNoAccent(itemData.name) == 'cristal alchimique' && itemData.data.quantite > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
getEnc() {
|
getEnc() {
|
||||||
const itemData = Misc.data(this);
|
const itemData = Misc.data(this);
|
||||||
switch (itemData.type) {
|
switch (itemData.type) {
|
||||||
|
@ -53,4 +53,13 @@ export class RdDAlchimie {
|
|||||||
}
|
}
|
||||||
return Math.min(0, -composantes);
|
return Math.min(0, -composantes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static getCaracTache(tache) {
|
||||||
|
switch (tache) {
|
||||||
|
case "consistance": return 'dexterite';
|
||||||
|
case "couleur": return 'vue';
|
||||||
|
}
|
||||||
|
return 'intellect';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -285,7 +285,7 @@ export class RdDRoll extends Dialog {
|
|||||||
HtmlUtility._showControlWhen($("#ajust-astrologique"), RdDResolutionTable.isAjustementAstrologique(rollData));
|
HtmlUtility._showControlWhen($("#ajust-astrologique"), RdDResolutionTable.isAjustementAstrologique(rollData));
|
||||||
|
|
||||||
// Mise à jour valeurs
|
// Mise à jour valeurs
|
||||||
$("#compdialogTitle").text(this._getTitle(rollData));
|
$(".dialog-roll-title").text(this._getTitle(rollData));
|
||||||
$('#coupsNonMortels').prop('checked', rollData.coupsNonMortels);
|
$('#coupsNonMortels').prop('checked', rollData.coupsNonMortels);
|
||||||
$(".dmg-arme-actor").text(dmgText);
|
$(".dmg-arme-actor").text(dmgText);
|
||||||
$('.table-ajustement').remove();
|
$('.table-ajustement').remove();
|
||||||
@ -299,7 +299,7 @@ export class RdDRoll extends Dialog {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async buildAjustements(rollData) {
|
async buildAjustements(rollData) {
|
||||||
const html = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/dialog-roll-ajustements.html`, rollData);
|
const html = await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/partial-roll-ajustements.html`, rollData);
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +147,6 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/niveau-ethylisme.html',
|
'systems/foundryvtt-reve-de-dragon/templates/niveau-ethylisme.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/casetmr-specific-list.html',
|
'systems/foundryvtt-reve-de-dragon/templates/casetmr-specific-list.html',
|
||||||
// Dialogs
|
// Dialogs
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-ajustements.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-resolution.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-resolution.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-carac.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-carac.html',
|
||||||
@ -155,10 +154,15 @@ export class RdDUtility {
|
|||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-encaisser.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-encaisser.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-meditation.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-meditation.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-surenc.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-enctotal.html',
|
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-alchimie.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-alchimie.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-astrologie-joueur.html',
|
'systems/foundryvtt-reve-de-dragon/templates/dialog-astrologie-joueur.html',
|
||||||
|
// Partials
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-ajustements.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffLibre.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffCondition.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-enctotal.html',
|
||||||
|
'systems/foundryvtt-reve-de-dragon/templates/partial-roll-moral.html',
|
||||||
// Calendrier
|
// Calendrier
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/calendar-template.html',
|
'systems/foundryvtt-reve-de-dragon/templates/calendar-template.html',
|
||||||
'systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html',
|
'systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html',
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<h2 class="compdialog" id="compdialogTitle"></h2>
|
<h2 class="dialog-roll-title"></h2>
|
||||||
|
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
<div class="flex-group-left">
|
<div class="flex-group-left">
|
||||||
@ -63,47 +63,22 @@
|
|||||||
{{/unless}}
|
{{/unless}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/dialog-roll-surenc.html"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.html"}}
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/dialog-roll-enctotal.html"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-enctotal.html"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-group-left">
|
<div class="flex-group-left">
|
||||||
<div class="flexrow">
|
|
||||||
{{#if attackerRoll}}
|
{{#if attackerRoll}}
|
||||||
|
<div class="flexrow">
|
||||||
<label>Difficulté</label>
|
<label>Difficulté</label>
|
||||||
<label>{{diffLibre}}</label>
|
<label>{{diffLibre}}</label>
|
||||||
|
</div>
|
||||||
{{else}}
|
{{else}}
|
||||||
<label>Difficulté libre</label>
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffLibre.html"}}
|
||||||
<select name="diffLibre" id="diffLibre" data-dtype="number" {{#unless use.libre}}disabled{{/unless}}>
|
|
||||||
{{#select diffLibre}}
|
|
||||||
{{#each difficultesLibres as |key|}}
|
|
||||||
<option value={{key}}>{{numberFormat key decimals=0 sign=true}}</option>
|
|
||||||
{{/each}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffCondition.html"}}
|
||||||
<div class="flexrow">
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-moral.html"}}
|
||||||
</div>
|
<div id="tableAjustements" class="flexrow"></div>
|
||||||
<div class="flexrow">
|
|
||||||
<label>Conditions</label>
|
|
||||||
<select name="diffConditions" id="diffConditions" data-dtype="number" {{#unless use.conditions}}disabled{{/unless}}>
|
|
||||||
{{#select diffConditions}}
|
|
||||||
{{#each ajustementsConditions as |key|}}
|
|
||||||
<option value={{key}}>{{numberFormat key decimals=0 sign=true}}</option>
|
|
||||||
{{/each}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="flexrow">
|
|
||||||
<label class="diffMoral">Moral: {{#if (gt moral 0)}}+{{/if}}{{moral}}</label>
|
|
||||||
<div class="tooltipAppelAuMoral divAppelAuMoral">
|
|
||||||
<img class="imgAppelAuMoral small-button-container" src="/systems/foundryvtt-reve-de-dragon/icons/moral-neutre.svg">
|
|
||||||
<span class="tooltipAppelAuMoralText">Sans appel au moral</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="tableAjustements" class="flexrow">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1,41 +1,34 @@
|
|||||||
|
{{log 'recette alchimique' this}}
|
||||||
<form class="rdddialog">
|
<form class="rdddialog">
|
||||||
<div class="form-group">
|
<h2>Fabrication: {{recette.name}}</h2>
|
||||||
<ul>
|
<div class="grid grid-2col">
|
||||||
<li><label>Recette : {{recetteName}}</label></li>
|
<div class="flex-group-left">
|
||||||
<li><label>Tâche Alchimique : {{alchimieTexte}}</label></li>
|
<img class="chat-icon" src="{{competence.img}}" alt="{{competence.name}}"/>
|
||||||
<li><label>Jet : {{selectedCarac.label}} / {{competence.name}}</label></li>
|
<div class="grid grid-2col">
|
||||||
</ul>
|
<label>{{alchimie.tache}}:</label><label class="flex-grow">{{alchimie.texte}}</label>
|
||||||
<div class="tooltipAppelAuMoral divAppelAuMoral">
|
<label>Caractéristique: </label><label class="flex-grow">{{selectedCarac.label}}</label>
|
||||||
<img class="imgAppelAuMoral small-button-container" src="/systems/foundryvtt-reve-de-dragon/icons/moral-neutre.svg">
|
<label>{{competence.name}}:</label><label class="flex-grow">{{numberFormat competence.data.niveau decimals=0 sign=true}}</label></label>
|
||||||
<span class="tooltipAppelAuMoralText">Sans appel au moral</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="flex-group-left">
|
||||||
<div class="form-group">
|
<div class="flexrow">
|
||||||
<label>conditions</label>
|
|
||||||
<select name="diffConditions" id="diffConditions" data-dtype="number">
|
|
||||||
{{#select diffConditions}}
|
|
||||||
{{#each ajustementsConditions as |key|}}
|
|
||||||
<option value={{key}}>{{numberFormat key decimals=0 sign=true}}</option>
|
|
||||||
{{/each}}
|
|
||||||
{{/select}}
|
|
||||||
</select>
|
|
||||||
<label>Difficulté</label>
|
<label>Difficulté</label>
|
||||||
<select name="diffLibre" id="diffLibre" data-dtype="number">
|
<label>{{numberFormat diffLibre decimals=0 sign=true}}</label>
|
||||||
{{#select diffLibre}}
|
</div>
|
||||||
{{#each difficultesLibres as |key|}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-diffCondition.html"}}
|
||||||
<option value={{key}}>{{numberFormat key decimals=0 sign=true}}</option>
|
{{#if alchimie.sansCristal}}
|
||||||
{{/each}}
|
<div class="flexrow">
|
||||||
{{/select}}
|
<label></label>
|
||||||
</select>
|
<label>(-4 sans Cristal Alchimique)</label>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-moral.html"}}
|
||||||
|
<div id="tableAjustements" class="flexrow"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tableAjustements">
|
<div id="tableResolution"></div>
|
||||||
</div>
|
<div id="tableProbaReussite"></div>
|
||||||
<div id="tableResolution">
|
|
||||||
</div>
|
|
||||||
<div id="tableProbaReussite">
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<h2 class="compdialog" id="compdialogTitle"></h2>
|
<h2 class="dialog-roll-title"></h2>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label>Difficulté libre</label>
|
<label>Difficulté libre</label>
|
||||||
<select name="diffLibre" id="diffLibre" data-dtype="number">
|
<select name="diffLibre" id="diffLibre" data-dtype="number">
|
||||||
@ -24,7 +24,7 @@
|
|||||||
<span class="tooltipAppelAuMoralText">Sans appel au moral</span>
|
<span class="tooltipAppelAuMoralText">Sans appel au moral</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/dialog-roll-surenc.html"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.html"}}
|
||||||
<div id="tableAjustements">
|
<div id="tableAjustements">
|
||||||
</div>
|
</div>
|
||||||
<div id="tableResolution">
|
<div id="tableResolution">
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
</select>
|
</select>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{{>"systems/foundryvtt-reve-de-dragon/templates/dialog-roll-surenc.html"}}
|
{{>"systems/foundryvtt-reve-de-dragon/templates/partial-roll-surenc.html"}}
|
||||||
<div id="tableAjustements">
|
<div id="tableAjustements">
|
||||||
</div>
|
</div>
|
||||||
<div id="tableResolution">
|
<div id="tableResolution">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<form class="skill-roll-dialog">
|
<form class="skill-roll-dialog">
|
||||||
<h2 class="compdialog">Rêve de Dragon de force {{rencontre.force}}!</h2>
|
<h2>Rêve de Dragon de force {{rencontre.force}}!</h2>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
</div>
|
</div>
|
||||||
<div id="tableAjustements"></div>
|
<div id="tableAjustements"></div>
|
||||||
|
10
templates/partial-roll-diffCondition.html
Normal file
10
templates/partial-roll-diffCondition.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<div class="flexrow">
|
||||||
|
<label>Conditions</label>
|
||||||
|
<select name="diffConditions" id="diffConditions" data-dtype="number" {{#unless use.conditions}}disabled{{/unless}}>
|
||||||
|
{{#select diffConditions}}
|
||||||
|
{{#each ajustementsConditions as |key|}}
|
||||||
|
<option value={{key}}>{{numberFormat key decimals=0 sign=true}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
10
templates/partial-roll-diffLibre.html
Normal file
10
templates/partial-roll-diffLibre.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<div class="flexrow">
|
||||||
|
<label>Difficulté libre</label>
|
||||||
|
<select name="diffLibre" id="diffLibre" data-dtype="number" {{#unless use.libre}}disabled{{/unless}}>
|
||||||
|
{{#select diffLibre}}
|
||||||
|
{{#each difficultesLibres as |key|}}
|
||||||
|
<option value={{key}}>{{numberFormat key decimals=0 sign=true}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
</div>
|
7
templates/partial-roll-moral.html
Normal file
7
templates/partial-roll-moral.html
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<div class="flexrow">
|
||||||
|
<label class="diffMoral">Moral: {{#if (gt moral 0)}}+{{/if}}{{moral}}</label>
|
||||||
|
<div class="tooltipAppelAuMoral divAppelAuMoral">
|
||||||
|
<img class="imgAppelAuMoral small-button-container" src="/systems/foundryvtt-reve-de-dragon/icons/moral-neutre.svg">
|
||||||
|
<span class="tooltipAppelAuMoralText">Sans appel au moral</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user