diff --git a/module/actor.js b/module/actor.js index 7624b3df..5ad7ce8e 100644 --- a/module/actor.js +++ b/module/actor.js @@ -1617,7 +1617,7 @@ export class RdDActor extends RdDBaseActor { } async actionNourritureboisson(item, onActionItem) { - switch (item.isComestible()) { + switch (item.getUtilisationCuisine()) { case 'brut': { let d = new Dialog({ title: "Nourriture brute", @@ -1678,7 +1678,7 @@ export class RdDActor extends RdDBaseActor { return; } const item = this.getItem(itemId) - if (!item.isComestible()) { + if (!item.getUtilisationCuisine()) { return; } if (choix.doses > item.system.quantite) { @@ -2502,7 +2502,7 @@ export class RdDActor extends RdDBaseActor { } async preparerNourriture(item) { - if (item.isComestible() == 'brut') { + if (item.getUtilisationCuisine() == 'brut') { const nourriture = { name: 'Plat de ' + item.name, type: 'recettecuisine', diff --git a/module/environnement.js b/module/environnement.js index 2f503581..fd34d1ee 100644 --- a/module/environnement.js +++ b/module/environnement.js @@ -21,9 +21,11 @@ const ITEM_ENVIRONNEMENT_TYPES = [ ] export class Environnement { - static typesEnvironnement(){ + + static typesEnvironnement() { return ITEM_ENVIRONNEMENT_TYPES } + static init() { game.settings.register(SYSTEM_RDD, SETTINGS_LISTE_MILIEUX, { name: "Liste des milieux proposés", diff --git a/module/item-sheet.js b/module/item-sheet.js index eb4048a3..af48e451 100644 --- a/module/item-sheet.js +++ b/module/item-sheet.js @@ -101,7 +101,7 @@ export class RdDItemSheet extends ItemSheet { isSoins: false, description: await TextEditor.enrichHTML(this.item.system.description, { async: true }), descriptionmj: await TextEditor.enrichHTML(this.item.system.descriptionmj, { async: true }), - isComestible: this.item.isComestible() + isComestible: this.item.getUtilisationCuisine() } const competences = await SystemCompendiums.getCompetences(this.actor?.type); diff --git a/module/item.js b/module/item.js index 1294beee..a05339db 100644 --- a/module/item.js +++ b/module/item.js @@ -258,14 +258,36 @@ export class RdDItem extends Item { console.log(`${this.actor.name}: l'objet ${this.name} a expiré et été supprimé`); await this.actor?.deleteEmbeddedDocuments('Item', [this.id]); } - - isComestible() { + getUtilisation() { switch (this.type) { - case 'nourritureboisson': return 'pret'; + case 'nourritureboisson': + return 'cuisine'; case 'herbe': - return this.system.categorie == 'Cuisine' && this.system.sust > 0 ? 'brut' : ''; case 'faune': - return this.system.sust > 0 ? 'brut' : ''; + case 'ingredient': + case 'plante': + switch (this.system.categorie) { + case 'Cuisine': return 'cuisine'; + case 'Toxique': + case 'Poison': return 'poison'; + case 'Alchimie': return 'alchimie' + case 'Soin': case 'Repos': return 'soins' + } + return this.system.sust > 0 ? 'cuisine' : ''; + } + return ''; + } + getUtilisationCuisine() { + if (this.getUtilisation() == 'cuisine') { + switch (this.type) { + case 'nourritureboisson': + return 'pret'; + case 'herbe': + case 'faune': + case 'ingredient': + case 'plante': + return 'brut'; + } } return ''; } @@ -355,7 +377,7 @@ export class RdDItem extends Item { } if (this.actor?.isPersonnage()) { const warn = options.warnIfNot; - if (this.isComestible() == 'brut') { + if (this.getUtilisationCuisine() == 'brut') { return 'Utiliser'; } switch (this.type) { @@ -404,7 +426,7 @@ export class RdDItem extends Item { } async onCreateDecoupeComestible(actor) { - if (actor && this.isComestible() == 'brut' && this.system.sust != 1) { + if (actor && this.getUtilisationCuisine() == 'brut' && this.system.sust != 1) { if (this.system.sust < 1) { await actor.updateEmbeddedDocuments('Item', [{ _id: this.id, @@ -425,7 +447,7 @@ export class RdDItem extends Item { } async empiler(item) { - if (this.isComestible() == 'brut') { + if (this.getUtilisationCuisine() == 'brut') { const sust = this.system.sust + item.system.sust; const encombrement = this.system.encombrement + item.system.encombrement; await this.update({ @@ -477,7 +499,7 @@ export class RdDItem extends Item { } else { const excludedProperties = ['quantite', 'cout', 'encTotal', 'environnement']; - if (this.isComestible()) { + if (this.getUtilisationCuisine()) { excludedProperties.push('sust', 'encombrement'); } let differences = Object.entries(this.system) diff --git a/module/tirage/fenetre-recherche-tirage.js b/module/tirage/fenetre-recherche-tirage.js index 37b06735..5ab4a008 100644 --- a/module/tirage/fenetre-recherche-tirage.js +++ b/module/tirage/fenetre-recherche-tirage.js @@ -16,18 +16,18 @@ const FILTER_GROUPS = [ ] const FILTERS = [ - { group: 'comestible', code: 'pret', label: 'Comestible', check: item => item.isComestible() == 'pret' }, - { group: 'comestible', code: 'alcool', label: 'Alcool', check: item => item.isAlcool() }, + { group: 'comestible', code: 'pret', label: 'Préparé', check: item => item.getUtilisationCuisine() == 'pret' }, + { group: 'comestible', code: 'comestible', label: 'Comestible', check: item => item.getUtilisation() == 'cuisine' }, { group: 'comestible', code: 'boisson', label: 'Boisson', check: item => item.isNourritureBoisson() && item.system.boisson }, - { group: 'comestible', code: 'brut', label: 'A préparer', check: item => item.isComestible() == 'brut' }, - { group: 'comestible', code: 'poison', label: 'Toxique', check: item => item.isComestible() == 'poison' }, - { group: 'comestible', code: 'non', label: 'Immangeable', check: item => !item.isComestible() || item.isComestible() == '' }, + { group: 'comestible', code: 'alcool', label: 'Alcool', check: item => item.isAlcool() }, + { group: 'comestible', code: 'brut', label: 'A préparer', check: item => item.getUtilisationCuisine() == 'brut' }, + { group: 'comestible', code: 'non', label: 'Immangeable', check: item => item.isEnvironnement() && !item.getUtilisationCuisine() }, - { group: 'categorie', code: 'alchimie', label: 'Alchimique', check: item => item.isEnvironnement() && item.system.categorie == 'Alchimie' }, - { group: 'categorie', code: 'cuisine', label: 'Cuisine', check: item => item.isEnvironnement() && item.system.categorie == 'Cuisine' }, - { group: 'categorie', code: 'repos', label: 'Repos', check: item => item.isEnvironnement() && item.system.categorie == 'Repos' }, - { group: 'categorie', code: 'soins', label: 'Soins', check: item => item.isEnvironnement() && item.system.categorie == 'Soin' }, - { group: 'categorie', code: 'autres', label: 'Autres', check: item => !item.isEnvironnement() || ['', 'Autre'].includes(item.system.categorie) }, + { group: 'categorie', code: 'alchimie', label: 'Alchimique', check: item => item.isEnvironnement() && item.getUtilisation() == 'alchimie' }, + { group: 'categorie', code: 'cuisine', label: 'Cuisine', check: item => item.isEnvironnement() && item.getUtilisation() == 'cuisine' }, + { group: 'categorie', code: 'soins', label: 'Médical', check: item => item.isEnvironnement() && item.getUtilisation() == 'soins' }, + { group: 'categorie', code: 'cpoison', label: 'Toxique', check: item => item.isEnvironnement() && item.getUtilisation() == 'poison' }, + { group: 'categorie', code: 'autres', label: 'Autres', check: item => !item.isEnvironnement() || item.getUtilisation() == '' }, { group: "qualite", code: "mauvaise", label: "Mauvaise (négative)", check: item => item.isInventaire() && item.system.qualite < 0 }, { group: "qualite", code: "quelconque", label: "Quelconque (0)", check: item => item.isInventaire() && item.system.qualite == 0 }, diff --git a/templates/enum-categorie-ingredient.html b/templates/enum-categorie-ingredient.html index 596f15ff..8c09cfa1 100644 --- a/templates/enum-categorie-ingredient.html +++ b/templates/enum-categorie-ingredient.html @@ -3,4 +3,6 @@ + + diff --git a/templates/item-herbe-sheet.html b/templates/item-herbe-sheet.html index a1e6b6b3..27a756c4 100644 --- a/templates/item-herbe-sheet.html +++ b/templates/item-herbe-sheet.html @@ -33,12 +33,10 @@ - {{#if (gt system.sust 0)}}