#181 Gestion potions (fabrication)

This commit is contained in:
sladecraven 2021-04-11 12:07:43 +02:00
parent daa2421ba4
commit 07b68020b2
6 changed files with 113 additions and 1 deletions

View 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();
}
}

View File

@ -24,6 +24,7 @@
{"name":"Primelune","permission":{"default":0,"rYShh2P1DNavdoBD":3},"type":"ingredient","data":{"description":"<p>Apparaissant le plus souvent &agrave; la nouvelle lune, c&rsquo;est un petit champignon &agrave; 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&egrave;rement au c&egrave;pe bolet.</p>\n<p>M5 \\ P 8 rounds \\ D2 \\ -5 \\ Sable-Poudre +12, Huile de S&eacute;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 &agrave; pied violet et corolle brun dor&eacute;.</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&rsquo;amandelier, un petit arbuste &agrave; feuilles tr&egrave;s d&eacute;coup&eacute;es de couleur mauve p&acirc;le &agrave; violet fonc&eacute;. L&rsquo;amandelle est une noix plate et allong&eacute;e au go&ucirc;t d&rsquo;amande alli&eacute; au parfum de violette.</p>\n<p>Fr&eacute;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&eacute;s.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -3 \\ Bitume de Camphre +12, Teinture d&rsquo;&Eacute;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&ecirc;te dentel&eacute;e. Son go&ucirc;t est tr&egrave;s amer et devrait suffire &agrave; dissuader les gourmands.</p>\n<p>M3 \\ P 3 minutes \\ D2 \\ -3 \\ Lait de lune +12, Gel&eacute;e royale +8.</p>\n<p>Fr&eacute;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&ocirc;ne du mignotier, arbre voisin du m&eacute;l&egrave;ze, poussant en contreforts montagneux. Les mignotes doivent &ecirc;tre grill&eacute;es puis moulues. La farine obtenue a un go&ucirc;t chocolat&eacute; qui accompagne agr&eacute;ablement le lait chaud du petit d&eacute;jeuner.</p>\n<p>Fr&eacute;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&rsquo;amandelier, un petit arbuste &agrave; feuilles tr&egrave;s d&eacute;coup&eacute;es de couleur mauve p&acirc;le &agrave; violet fonc&eacute;. L&rsquo;amandelle est une noix plate et allong&eacute;e au go&ucirc;t d&rsquo;amande alli&eacute; au parfum de violette.</p>\n<p>Fr&eacute;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&rsquo;une &eacute;ponge, de couleur gris bl&ecirc;me, apparaissant sur les troncs des arbres.</p>\n<p>M4 \\ P 1 minute \\ D2 \\ -4 \\ &Eacute;lixir des Gnomes +14, Huile de S&eacute;likanthe +10.</p>\n<p>Fr&eacute;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&eacute;e aux feuilles en forme de polygone &agrave; 7 c&ocirc;t&eacute;s, d&rsquo;un bleu tr&egrave;s p&acirc;le, presque translucide, ne poussant qu&rsquo;en haute montagne, &agrave; partir de 2000 m&egrave;tres, et uniquement dans les recoins pouvant &ecirc;tre &eacute;clair&eacute;s par la lune. <br /><br />L&rsquo;herbe de lune poss&egrave;de un fort pouvoir onirique sur celui qui la consomme\"; en termes de jeu, elle permet de gagner des points de r&ecirc;ve. Elle doit &ecirc;tre cueillie de nuit et lorsque la lune l&rsquo;&eacute;claire, faute de quoi son pouvoir est nul. Sa force d&eacute;pend de la phase lunaire durant laquelle elle est cueillie. <br /><br />Une fois s&eacute;ch&eacute;e, l&rsquo;herbe de lune peut &ecirc;tre fum&eacute;e dans une pipe ou pr&eacute;par&eacute;e en d&eacute;coction. Dans les deux cas, une dose doit &ecirc;tre compos&eacute;e de 7 brins. D&egrave;s la dose absorb&eacute;e (bue ou fum&eacute;e), le consommateur doit jouer un JR r-force, c&rsquo;est-&agrave;-dire un jet de points de r&ecirc;ve ajust&eacute; n&eacute;gativement &agrave; la force de l&rsquo;herbe. Si le JR r&eacute;ussit, aucun effet ne se produit\"; s&rsquo;il &eacute;choue, le consommateur gagne imm&eacute;diatement un nombre de points de r&ecirc;ve &eacute;gal &agrave; la force de l&rsquo;herbe, puis en &eacute;change, marque un nombre identique de points de fatigue. On peut ainsi gagner des points de r&ecirc;ve m&ecirc;me si le seuil de r&ecirc;ve est d&eacute;pass&eacute;, mais se souvenir que d&eacute;passer le triple de son seuil provoque l&rsquo;&eacute;clatement. <br /><br />L&rsquo;herbe de lune est parfois trouvable chez les herboristes, mais n&rsquo;est pas bon march&eacute;. Une dose (7 brins) vaut usuellement un nombre de sols &eacute;gal &agrave; 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&rsquo;amandelier, un petit arbuste &agrave; feuilles tr&egrave;s d&eacute;coup&eacute;es de couleur mauve p&acirc;le &agrave; violet fonc&eacute;. L&rsquo;amandelle est une noix plate et allong&eacute;e au go&ucirc;t d&rsquo;amande alli&eacute; au parfum de violette.</p>\n<p>Fr&eacute;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"}

View 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>

View 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>

View 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>

View 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>