Rework dialog Alchimie

This commit is contained in:
Vincent Vandemeulebrouck
2021-04-20 23:16:18 +02:00
parent 0e9bc372bf
commit 550f45d14c
16 changed files with 124 additions and 97 deletions

View File

@ -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');