Créer des plats cuisinés
Lors de l'exécution d'une recette de cuisine, permettre l'ajout d'un plat à l'équipement
This commit is contained in:
@ -29,6 +29,7 @@ import { RdDCarac } from "./rdd-carac.js";
|
||||
import { Monnaie } from "./item-monnaie.js";
|
||||
import { RdDHerbes } from "./rdd-herbes.js";
|
||||
import { DialogConsommer } from "./dialog-consommer.js";
|
||||
import { RdDItem } from "./item.js";
|
||||
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -2264,7 +2265,12 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollRecetteCuisine(id) {
|
||||
const artData = { art: 'cuisine', verbe: 'Cuisiner' };
|
||||
const artData = {
|
||||
art: 'cuisine',
|
||||
verbe: 'Cuisiner',
|
||||
proportions: 1,
|
||||
ajouterEquipement: false
|
||||
};
|
||||
const oeuvre = duplicate(this.getRecetteCuisine(id));
|
||||
await this._rollArt(artData, 'odoratgout', oeuvre, r => this._resultRecetteCuisine(r));
|
||||
}
|
||||
@ -2272,9 +2278,28 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async _resultRecetteCuisine(artData) {
|
||||
const baseQualite = (artData.rolled.isSuccess ? artData.oeuvre.data.niveau : artData.competence.data.niveau);
|
||||
const sust = artData.oeuvre.data.sust * artData.proportions;
|
||||
artData.qualiteFinale = Math.min(baseQualite, artData.oeuvre.data.niveau) + artData.rolled.ptQualite;
|
||||
artData.exotismeFinal = Math.min(Math.min(artData.qualiteFinale, -Math.abs(artData.oeuvre.data.exotisme ?? 0)), 0);
|
||||
console.log("OEUVRE", artData.art, artData)
|
||||
const platCuisine = {
|
||||
name: artData.oeuvre.name,
|
||||
type: 'nourritureboisson',
|
||||
img: 'systems/foundryvtt-reve-de-dragon/icons/objets/provision_cuite.webp',
|
||||
data: {
|
||||
"description": artData.oeuvre.data.description,
|
||||
"sust": Math.min(sust, 1),
|
||||
"qualite": artData.exotismeFinal < 0 ? artData.exotismeFinal : artData.qualiteFinale,
|
||||
"encombrement": 0.1,
|
||||
"quantite": Math.max(1, Math.floor(sust)),
|
||||
"cout": artData.exotismeFinal < 0 ? 0 : artData.qualiteFinale * 0.01
|
||||
}
|
||||
};
|
||||
if (artData.ajouterEquipement){
|
||||
await this.createEmbeddedDocuments('Item', [platCuisine]);
|
||||
ui.notifications.info(`${platCuisine.data.quantite} rations de ${platCuisine.name} ont été ajoutés à votre équipement`);
|
||||
}
|
||||
artData.platCuisine = platCuisine;
|
||||
RdDResolutionTable.displayRollData(artData, this.name, `chat-resultat-${artData.art}.html`);
|
||||
}
|
||||
|
||||
|
@ -223,12 +223,13 @@ export class RdDRoll extends Dialog {
|
||||
this.rollData.tactique = event.currentTarget.value;
|
||||
this.updateRollResult();
|
||||
});
|
||||
html.find('#useMalusSurenc').change((event) => {
|
||||
this.rollData.useMalusSurenc = event.currentTarget.checked;
|
||||
html.find('.cuisine-proportions').change((event) => {
|
||||
this.rollData.proportions = Number(event.currentTarget.value);
|
||||
this.updateRollResult();
|
||||
});
|
||||
html.find('#useMalusEncTotal').change((event) => {
|
||||
this.rollData.useMalusEncTotal = event.currentTarget.checked;
|
||||
html.find('.checkbox-by-name').change((event) => {
|
||||
const attribute = event.currentTarget.attributes['name'].value;
|
||||
this.rollData[attribute] = event.currentTarget.checked;
|
||||
this.updateRollResult();
|
||||
});
|
||||
html.find('.imgAppelAuMoral').click((event) => { /* l'appel au moral, qui donne un bonus de +1 */
|
||||
|
Reference in New Issue
Block a user