#181 Gestion potions (fabrication)
This commit is contained in:
parent
daa2421ba4
commit
07b68020b2
64
module/dialog-fabriquer-potion.js
Normal file
64
module/dialog-fabriquer-potion.js
Normal file
@ -0,0 +1,64 @@
|
||||
import { Grammar } from "./grammar.js";
|
||||
import { Misc } from "./misc.js";
|
||||
import { RdDUtility } from "./rdd-utility.js";
|
||||
|
||||
export class DialogFabriquerPotion extends Dialog {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static async create(actor, item, dialogConfig) {
|
||||
let potionData = DialogFabriquerPotion.prepareData(actor, item);
|
||||
|
||||
let conf = {
|
||||
title: `Fabriquer une potion de ${potionData.data.categorie}`,
|
||||
content: await renderTemplate(dialogConfig.html, potionData),
|
||||
default: potionData.buttonName,
|
||||
};
|
||||
|
||||
let options = { classes: ["dialogfabriquerpotion"], width: 600, height: 160, 'z-index': 99999 };
|
||||
mergeObject(options, dialogConfig.options ?? {}, { overwrite: true })
|
||||
|
||||
const dialog = new DialogFabriquerPotion(actor, potionData, conf, options);
|
||||
dialog.render(true);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static prepareData(actor, item) {
|
||||
let potionData = duplicate(Misc.data(item));
|
||||
potionData.nbBrinsSelect = RdDUtility.buildListOptions( 1, potionData.data.quantite);
|
||||
potionData.nbBrins = potionData.data.quantite;
|
||||
potionData.buttonName = "Fabriquer";
|
||||
return potionData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
constructor(actor, potionData, conf, options) {
|
||||
conf.buttons = {
|
||||
[potionData.buttonName]: {
|
||||
label: potionData.buttonName, callback: it => {
|
||||
this.fabriquer();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
super(conf, options);
|
||||
|
||||
this.actor = actor;
|
||||
this.potionData = potionData;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
html.find("#nbBrins").change(event => {
|
||||
this.potionData.nbBrins = Misc.toInt(event.currentTarget.value);
|
||||
});
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async fabriquer() {
|
||||
this.actor.fabriquerPotion( this.potionData );
|
||||
this.close();
|
||||
}
|
||||
}
|
@ -24,6 +24,7 @@
|
||||
{"name":"Primelune","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Apparaissant le plus souvent à la nouvelle lune, c’est un petit champignon à pied blanc et chapeau plat vert tendre.</p>\n<p>Commune.</p>","niveau":1,"encombrement":0.1,"base":0,"quantite":1,"milieu":"Lieux sombres et humides","rarete":"Commune","categorie":"Cuisine","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Primelune.png","effects":[],"_id":"Kg13pgjU0u421Kcm"}
|
||||
{"name":"Fumebol","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Champignon brun ressemblant grossièrement au cèpe bolet.</p>\n<p>M5 \\ P 8 rounds \\ D2 \\ -5 \\ Sable-Poudre +12, Huile de Sélikanthe +8.</p>\n<p>Rare.</p>","niveau":0,"encombrement":0,"base":0,"quantite":1,"milieu":"Lieux sombres et humides","rarete":"Rare","categorie":"","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Fumebol.png","effects":[],"_id":"LJdoBQBE3KNDLXKq"}
|
||||
{"name":"Gironcle","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Sorte de girolle à pied violet et corolle brun doré.</p>\n<p>Rare.</p>","niveau":4,"encombrement":0.1,"base":0,"quantite":1,"milieu":"Lieux sombres et humides","rarete":"Rare","categorie":"Cuisine","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Gironcle.png","effects":[],"_id":"NhJm0FRVOi8L3xqv"}
|
||||
{"name":"Amandelle","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amandelle.png","data":{"description":"<p>Fruit de l’amandelier, un petit arbuste à feuilles très découpées de couleur mauve pâle à violet foncé. L’amandelle est une noix plate et allongée au goût d’amande allié au parfum de violette.</p>\n<p>Fréquente.</p>","niveau":0,"encombrement":0.01,"base":0,"quantite":1,"milieu":"Tous","rarete":"Frequente","categorie":"Cuisine","cout":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jtRmvSuwkwMmIMf0":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.botanique.w7jEFHGFrcrKAesQ"}},"_id":"QN2KLZLNL1JUh2bF"}
|
||||
{"name":"Ortironce","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"herbe","data":{"description":"<p>Ronce venimeuse infestant de nombreux fourrés.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -3 \\ Bitume de Camphre +12, Teinture d’Érozonne +8.</p>\n<p>Commune.</p>","niveau":0,"base":0,"quantite":1,"milieu":"Forêts","rarete":"Commune","categorie":"","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Ortironce.png","effects":[],"_id":"RpUC6z3xhwnmv3sp"}
|
||||
{"name":"Crétamère","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Petite fraise des bois en forme de crête dentelée. Son goût est très amer et devrait suffire à dissuader les gourmands.</p>\n<p>M3 \\ P 3 minutes \\ D2 \\ -3 \\ Lait de lune +12, Gelée royale +8.</p>\n<p>Fréquente.</p>","niveau":null,"encombrement":0.02,"base":0,"quantite":1,"milieu":"Tous","rarete":"Frequente","categorie":"","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Cr%C3%A9tam%C3%A8re.png","effects":[],"_id":"Tfl4cElQxPQEXnPY"}
|
||||
{"name":"Mignote","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Cône du mignotier, arbre voisin du mélèze, poussant en contreforts montagneux. Les mignotes doivent être grillées puis moulues. La farine obtenue a un goût chocolaté qui accompagne agréablement le lait chaud du petit déjeuner.</p>\n<p>Fréquente.</p>","niveau":0,"encombrement":0.05,"base":0,"quantite":1,"milieu":"Contreforts montagneux","rarete":"Frequente","categorie":"Cuisine","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Mignote.png","effects":[],"_id":"UfzdMXpTcSgIpAEp"}
|
||||
@ -58,4 +59,3 @@
|
||||
{"name":"Amandelle","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Fruit de l’amandelier, un petit arbuste à feuilles très découpées de couleur mauve pâle à violet foncé. L’amandelle est une noix plate et allongée au goût d’amande allié au parfum de violette.</p>\n<p>Fréquente.</p>","niveau":0,"encombrement":0.01,"base":0,"quantite":1,"milieu":"Tous","rarete":"Frequente","categorie":"Cuisine","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amandelle.png","effects":[],"_id":"w7jEFHGFrcrKAesQ"}
|
||||
{"name":"Blèmissure","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Champignon affectant la forme d’une éponge, de couleur gris blême, apparaissant sur les troncs des arbres.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -4 \\ Élixir des Gnomes +14, Huile de Sélikanthe +10.</p>\n<p>Fréquente.</p>","niveau":0,"encombrement":0,"base":0,"quantite":1,"milieu":"Forêts sombres et humides","rarete":"Frequente","categorie":"","cout":0},"flags":{},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Bl%C3%A8missure.png","effects":[],"_id":"wNBWvJSd9i1zHspR"}
|
||||
{"name":"Herbe de lune","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"herbe","data":{"description":"<p>Petite herbacée aux feuilles en forme de polygone à 7 côtés, d’un bleu très pâle, presque translucide, ne poussant qu’en haute montagne, à partir de 2000 mètres, et uniquement dans les recoins pouvant être éclairés par la lune. <br /><br />L’herbe de lune possède un fort pouvoir onirique sur celui qui la consomme\"; en termes de jeu, elle permet de gagner des points de rêve. Elle doit être cueillie de nuit et lorsque la lune l’éclaire, faute de quoi son pouvoir est nul. Sa force dépend de la phase lunaire durant laquelle elle est cueillie. <br /><br />Une fois séchée, l’herbe de lune peut être fumée dans une pipe ou préparée en décoction. Dans les deux cas, une dose doit être composée de 7 brins. Dès la dose absorbée (bue ou fumée), le consommateur doit jouer un JR r-force, c’est-à-dire un jet de points de rêve ajusté négativement à la force de l’herbe. Si le JR réussit, aucun effet ne se produit\"; s’il échoue, le consommateur gagne immédiatement un nombre de points de rêve égal à la force de l’herbe, puis en échange, marque un nombre identique de points de fatigue. On peut ainsi gagner des points de rêve même si le seuil de rêve est dépassé, mais se souvenir que dépasser le triple de son seuil provoque l’éclatement. <br /><br />L’herbe de lune est parfois trouvable chez les herboristes, mais n’est pas bon marché. Une dose (7 brins) vaut usuellement un nombre de sols égal à sa force. Une dose de force 6 vaut ainsi 6 sols. <br />Rare.</p>","niveau":null,"base":0,"quantite":1,"milieu":"Hautes montagnes","rarete":"Rare","categorie":"","cout":null},"flags":{"core":{"sheetClass":"foundryvtt-reve-de-dragon.RdDItemSheet"}},"img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Herbe%20de%20lune.png","effects":[],"_id":"x4wGXTdmrzaOn8Sh"}
|
||||
{"name":"Amandelle","type":"ingredient","img":"systems/foundryvtt-reve-de-dragon/icons/botanique/Amandelle.png","data":{"description":"<p>Fruit de l’amandelier, un petit arbuste à feuilles très découpées de couleur mauve pâle à violet foncé. L’amandelle est une noix plate et allongée au goût d’amande allié au parfum de violette.</p>\n<p>Fréquente.</p>","niveau":0,"encombrement":0.01,"base":0,"quantite":1,"milieu":"Tous","rarete":"Frequente","categorie":"Cuisine","cout":0},"effects":[],"folder":null,"sort":0,"permission":{"default":0,"jtRmvSuwkwMmIMf0":3},"flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.botanique.w7jEFHGFrcrKAesQ"}},"_id":"QN2KLZLNL1JUh2bF"}
|
||||
|
9
templates/chat-consommer-potion-generique.html
Normal file
9
templates/chat-consommer-potion-generique.html
Normal file
@ -0,0 +1,9 @@
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_botanique.png" alt="potion de repos" />
|
||||
<h4>
|
||||
{{alias}} consomme sa Potion {{enchanteTexte}} de {{name}}.
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
Les effets de la potions sont à gérer manuellement, en fonction de sa nature{{#if isEnchante}} et de son enchantement ({{data.pr}} Points de Rêve){{/if}}.
|
||||
<br>La potion a été supprimée de l'équipement.
|
||||
</div>
|
12
templates/chat-fabriquer-potion-base.html
Normal file
12
templates/chat-fabriquer-potion-base.html
Normal file
@ -0,0 +1,12 @@
|
||||
<img class="chat-icon" src="systems/foundryvtt-reve-de-dragon/icons/competence_botanique.png" alt="fabrication" />
|
||||
<h4>
|
||||
{{alias}} a fabriqué une potion de {{categorie}} de {{herbe}}, avec {{nbBrinsPotion}} brins.
|
||||
</h4>
|
||||
<hr>
|
||||
<div>
|
||||
{{#if (eq nbBrinsReste 0)}}
|
||||
Toute l'herbe a été consommée par la potion. L'herbe a été supprimée de l'inventaire.
|
||||
{{else}}
|
||||
La quantité d'herbe est désormais de {{nbBrinsReste}} et a été mise à jour automatiquement.
|
||||
{{/if}}
|
||||
</div>
|
17
templates/dialog-fabriquer-potion-base.html
Normal file
17
templates/dialog-fabriquer-potion-base.html
Normal file
@ -0,0 +1,17 @@
|
||||
<form class="skill-roll-dialog">
|
||||
<div class="form-group">
|
||||
<label>Fabriquer une potion de {{data.categorie}} de {{name}}</label>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Nombre de brins</label>
|
||||
<select name="nbBrins" id="nbBrins" data-dtype="number">
|
||||
{{#select nbBrins}}
|
||||
{{{nbBrinsSelect}}}
|
||||
{{/select}}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
10
templates/enum-categorie-potion.html
Normal file
10
templates/enum-categorie-potion.html
Normal file
@ -0,0 +1,10 @@
|
||||
<option value=""></option>
|
||||
<option value="Alchimie">Potion d'Alchimie</option>
|
||||
<option value="AlchimieEnchante">Potion d'Alchimie Enchantée</option>
|
||||
<option value="Cuisine">Potion de Cuisine</option>
|
||||
<option value="Repos">Potion de Repos</option>
|
||||
<option value="ReposEnchante">Potion de Repos Enchantée</option>
|
||||
<option value="Soin">Potion de Soin</option>
|
||||
<option value="SoinEnchante">Potion de Soin Enchantée</option>
|
||||
<option value="Autre">Potion Autre</option>
|
||||
<option value="AutreEnchante">Potion Autre Enchantée</option>
|
Loading…
Reference in New Issue
Block a user