Rework dialog Alchimie
This commit is contained in:
@ -3202,25 +3202,34 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async effectuerTacheAlchimie(recetteId, alchimieName, alchimieData) {
|
||||
let recette = this.getItemOfType(recetteId, 'recettealchimique');
|
||||
async effectuerTacheAlchimie(recetteId, tacheAlchimie, texteTache) {
|
||||
let recetteData = Misc.data(this.getItemOfType(recetteId, 'recettealchimique'));
|
||||
const actorData = Misc.data(this);
|
||||
if (recette) {
|
||||
let competence = Misc.data(this.getCompetence("alchimie"));
|
||||
let diffAlchimie = RdDAlchimie.getDifficulte(alchimieData);
|
||||
let rollData = {
|
||||
recette: recette,
|
||||
competence: competence,
|
||||
diffLibre: diffAlchimie // Per default at startup
|
||||
}
|
||||
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})`;
|
||||
if (recetteData) {
|
||||
if (tacheAlchimie != "couleur" && tacheAlchimie != "consistance") {
|
||||
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 = {
|
||||
recette: recetteData,
|
||||
carac: { [caracTache]: actorData.data.carac[caracTache] },
|
||||
selectedCarac: actorData.data.carac[caracTache],
|
||||
competence: alchimieData,
|
||||
diffLibre: RdDAlchimie.getDifficulte(texteTache),
|
||||
diffConditions: sansCristal ? -4 : 0,
|
||||
alchimie: {
|
||||
tache: Misc.upperFirst(tacheAlchimie),
|
||||
texte: texteTache,
|
||||
sansCristal: sansCristal
|
||||
}
|
||||
}
|
||||
rollData.competence.data.defaut_carac = caracTache;
|
||||
|
||||
const dialog = await RdDRoll.create(this, rollData,
|
||||
{
|
||||
html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-alchimie.html',
|
||||
@ -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) {
|
||||
RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-alchimie.html');
|
||||
|
@ -33,6 +33,12 @@ export class RdDItem extends Item {
|
||||
isEquipement() {
|
||||
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() {
|
||||
const itemData = Misc.data(this);
|
||||
|
@ -53,4 +53,13 @@ export class RdDAlchimie {
|
||||
}
|
||||
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));
|
||||
|
||||
// Mise à jour valeurs
|
||||
$("#compdialogTitle").text(this._getTitle(rollData));
|
||||
$(".dialog-roll-title").text(this._getTitle(rollData));
|
||||
$('#coupsNonMortels').prop('checked', rollData.coupsNonMortels);
|
||||
$(".dmg-arme-actor").text(dmgText);
|
||||
$('.table-ajustement').remove();
|
||||
@ -299,7 +299,7 @@ export class RdDRoll extends Dialog {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -147,7 +147,6 @@ export class RdDUtility {
|
||||
'systems/foundryvtt-reve-de-dragon/templates/niveau-ethylisme.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/casetmr-specific-list.html',
|
||||
// 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-competence.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-meditation.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-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
|
||||
'systems/foundryvtt-reve-de-dragon/templates/calendar-template.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/calendar-editor-template.html',
|
||||
|
Reference in New Issue
Block a user