From bf2ec639c871afb126d43be3eacd31699c66f8a9 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Sat, 9 Oct 2021 22:04:34 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20des=20potions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - effet de base en cas de résistance à potion magique - un seul message de tchat - affichage du résultat du jet de résistance - utilisation des l'image de la potion - fabrication avec image de l'herbe --- module/actor.js | 69 +++++++------------ templates/chat-appliquer-potion-repos.html | 22 ------ templates/chat-appliquer-potion-soin.html | 21 ------ .../chat-consommer-potion-generique.html | 15 +++- templates/chat-consommer-potion-repos.html | 24 +++++-- templates/chat-consommer-potion-soin.html | 22 ++++-- templates/chat-fabriquer-potion-base.html | 4 +- 7 files changed, 76 insertions(+), 101 deletions(-) delete mode 100644 templates/chat-appliquer-potion-repos.html delete mode 100644 templates/chat-appliquer-potion-soin.html diff --git a/module/actor.js b/module/actor.js index 0b0ed72f..60f112d8 100644 --- a/module/actor.js +++ b/module/actor.js @@ -3841,32 +3841,21 @@ export class RdDActor extends Actor { potionData.supprimer = true; if (potionData.data.magique) { - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-soin.html`, potionData) - }); // Gestion de la résistance: - let rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8); - potionData.reveResultDice = rolled.roll; - potionData.scoreReve = rolled.score; - potionData.reussiteReve = false; - if (!rolled.isSuccess) { + potionData.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8); + if (potionData.rolled.isEchec) { await this.reveActuelIncDec(-1); potionData.guerisonData = await this.buildPotionGuerisonList(potionData.data.puissance); potionData.guerisonMinutes = potionData.guerisonData.pointsConsommes * 5; - potionData.reussiteReve = true; } - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-appliquer-potion-soin.html`, potionData) - }); - } else { - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-appliquer-potion-soin.html`, potionData) - }); + } + if (!potionData.data.magique || potionData.rolled.isSuccess) { this.bonusRecuperationPotion = potionData.data.herbeBonus; } + ChatMessage.create({ + whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-soin.html`, potionData) + }); } /* -------------------------------------------- */ @@ -3875,22 +3864,14 @@ export class RdDActor extends Actor { potionData.supprimer = true; if (potionData.data.magique) { - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-repos.html`, potionData) - }); // Gestion de la résistance: - let rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8); - potionData.reveResultDice = rolled.roll; - potionData.scoreReve = rolled.score; - potionData.reussiteReve = false; - if (!rolled.isSuccess) { + potionData.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8); + if (potionData.rolled.isEchec) { await this.reveActuelIncDec(-1); let fatigueActuelle = this.getFatigueActuelle(); potionData.caseFatigueReel = Math.min(fatigueActuelle, potionData.data.puissance); potionData.guerisonDureeUnite = (potionData.data.reposalchimique) ? "rounds" : "minutes"; potionData.guerisonDureeValue = (potionData.data.reposalchimique) ? potionData.caseFatigueReel : potionData.caseFatigueReel * 5; - potionData.reussiteReve = true; potionData.aphasiePermanente = false; if (potionData.data.reposalchimique) { let chanceAphasie = await RdDDice.rollTotal("1d100"); @@ -3900,17 +3881,14 @@ export class RdDActor extends Actor { } await this.santeIncDec("fatigue", -potionData.caseFatigueReel); } - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-appliquer-potion-repos.html`, potionData) - }); - } else { - ChatMessage.create({ - whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), - content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-appliquer-potion-repos.html`, potionData) - }); + } + if (!potionData.data.magique || potionData.rolled.isSuccess) { this.bonusRepos = potionData.data.herbeBonus; } + ChatMessage.create({ + whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), + content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-repos.html`, potionData) + }); } /* -------------------------------------------- */ dialogFabriquerPotion(herbe) { @@ -3938,10 +3916,9 @@ export class RdDActor extends Actor { let newQuantite = herbeData.data.quantite - herbeData.nbBrins; let messageData = { alias: this.name, - categorie: herbeData.data.categorie, - herbe: herbeData.name, - nbBrinsPotion: herbeData.nbBrins, - nbBrinsReste: newQuantite + nbBrinsReste: newQuantite, + potion: newPotion, + herbe: herbeData } this.diminuerQuantiteObjet(herbeData._id, herbeData.nbBrins); @@ -3949,7 +3926,6 @@ export class RdDActor extends Actor { whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-fabriquer-potion-base.html`, messageData) }); - } /* -------------------------------------------- */ @@ -3964,6 +3940,13 @@ export class RdDActor extends Actor { async consommerPotionGenerique(potionData) { potionData.alias = this.name; + if (potionData.data.magique) { + // Gestion de la résistance: + potionData.rolled = await RdDResolutionTable.roll(this.getReveActuel(), -8); + if (potionData.rolled.isEchec) { + await this.reveActuelIncDec(-1); + } + } ChatMessage.create({ whisper: ChatUtility.getWhisperRecipientsAndGMs(game.user.name), content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-consommer-potion-generique.html`, potionData) diff --git a/templates/chat-appliquer-potion-repos.html b/templates/chat-appliquer-potion-repos.html deleted file mode 100644 index 23fdd89d..00000000 --- a/templates/chat-appliquer-potion-repos.html +++ /dev/null @@ -1,22 +0,0 @@ -potion de repos -

- {{#if reussiteReve}} - {{alias}} a bu la potion et a échoué son Jet de Résistance (Rêve actuel à -8 : {{reveResultDice}}/{{scoreReve}}) : la potion fait effet ! - {{else}} - {{alias}} a bu la potion et a réussi son Jet de Résistance (Rêve actuel à -8 : {{reveResultDice}}/{{scoreReve}}) : la potion ne fait pas effet ! - {{/if}} -

-
-
- {{#if reussiteReve}} - {{alias}} perd 1 point de rêve (déduit automatiquement) et s'endort pour {{guerisonDureeValue}} {{guerisonDureeUnite}} et - se repose de {{caseFatigueReel}} cases de fatigue.
- {{#if data.reposalchimique}} - De plus, étant donné que la potion était alchimique, {{alias}} est en aphasie pendant cette durée. - {{#if aphasiePermanente}} - Et malheureusement, l'aphasie est permanente tant que {{alias}} ne réussit pas un jet de VOLONTE à 0 à Chateau Dormant (le moral compte). - {{/if}} - {{/if}} - {{/if}} - La potion a également été supprimée de l'équipement. -
diff --git a/templates/chat-appliquer-potion-soin.html b/templates/chat-appliquer-potion-soin.html deleted file mode 100644 index 1c21fa5f..00000000 --- a/templates/chat-appliquer-potion-soin.html +++ /dev/null @@ -1,21 +0,0 @@ -potion de soin -

- {{#if reussiteReve}} - {{alias}} a bu la potion et a échoué son Jet de Résistance (Rêve actuel à -8 : {{reveResultDice}}/{{scoreReve}}) : la potion fait effet ! - {{else}} - {{alias}} a bu la potion et a réussi son Jet de Résistance (Rêve actuel à -8 : {{reveResultDice}}/{{scoreReve}}) : la potion ne fait pas effet ! - {{/if}} -

-
-
- {{#if reussiteReve}} - {{alias}} perd 1 point de rêve (déduit automatiquement) et s'endort pour {{guerisonMinutes}} minutes. A son réveil, les blessures suivantes seront guéries : - -
- {{/if}} - La potion a également été supprimée de l'équipement. -
diff --git a/templates/chat-consommer-potion-generique.html b/templates/chat-consommer-potion-generique.html index e3d514ca..9898a038 100644 --- a/templates/chat-consommer-potion-generique.html +++ b/templates/chat-consommer-potion-generique.html @@ -1,9 +1,18 @@ -potion de repos +potion de repos

- {{alias}} consomme sa Potion {{#if data.magique}}enchantée{{/if}} de {{name}}. + {{alias}} a bu une {{name}}{{#if data.magique}} enchantée{{/if}}


- Les effets de la potions sont à gérer manuellement, en fonction de sa nature{{#if data.magique}} et de son enchantement ({{data.pr}} Points de Rêve){{/if}}. + {{#if data.magique}} + Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}. + {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}} + {{/if}} +
Les effets de la potions sont à gérer manuellement, en fonction de sa nature + {{#if data.magique}} + {{#if rolled.isEchec}}et de son enchantement ({{data.pr}} Points de Rêve) + {{else}}son enchantement n'a pas d'effet + {{/if}} + {{/if}}.
La potion a été supprimée de l'équipement.
diff --git a/templates/chat-consommer-potion-repos.html b/templates/chat-consommer-potion-repos.html index 37cc9f99..873a78c8 100644 --- a/templates/chat-consommer-potion-repos.html +++ b/templates/chat-consommer-potion-repos.html @@ -1,13 +1,27 @@ -potion de repos +potion de repos

- {{alias}} consomme sa Potion de Repos {{#if data.magique}}enchantée{{/if}} de {{name}} ({{data.herbe}}, {{data.herbebrins}} brins). + {{alias}} a bu une {{name}}{{#if data.magique}} enchantée{{/if}}


{{#if data.magique}} - Elle permet de récupérer jusqu'à {{data.puissance}} cases de repos. + Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}. + {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}} + {{#if rolled.isEchec}} +
La potion fait effet ! + {{alias}} a perdu 1 point de rêve et s'endort pour {{guerisonDureeValue}} {{guerisonDureeUnite}} et + se récupère {{caseFatigueReel}} cases de fatigue.
+ {{#if data.reposalchimique}} + De plus, la potion étant alchimique, {{alias}} est en aphasie pendant cette durée. + {{#if aphasiePermanente}} + Malheureusement, l'aphasie est permanente tant que {{alias}} ne réussit pas un jet de VOLONTE à 0 à Chateau Dormant (le moral compte). + {{/if}} + {{/if}} + {{else}} +
La potion ne fait pas effet ! Elle vous octroie tout de même un bonus de {{data.herbebonus}} segments de fatigue récupérés en plus à la fin de Chateau Dormant (à gérer manuellement). + {{/if}} {{else}} - Une fois consommée vers fin Lyre, elle vous octroie un bonus de {{data.herbebonus}} segments de fatigue récupérés en plus à la fin de Chateau Dormant (à gérer manuellement). -
La potion a également été supprimée de l'équipement. + Une fois consommée (vers fin Lyre), elle vous octroie un bonus de {{data.herbebonus}} segments de fatigue récupérés en plus à la fin de Chateau Dormant (à gérer manuellement). {{/if}} +
La potion a été supprimée de l'équipement.
diff --git a/templates/chat-consommer-potion-soin.html b/templates/chat-consommer-potion-soin.html index 0d88518a..ae429fe6 100644 --- a/templates/chat-consommer-potion-soin.html +++ b/templates/chat-consommer-potion-soin.html @@ -1,13 +1,25 @@ -potion de soin +potion de soin

- {{alias}} consomme sa Potion de soins {{#if data.magique}}enchantée{{/if}} de {{name}} ({{data.herbe}}, {{data.herbebrins}} brins). + {{alias}} a bu une {{name}}{{#if data.magique}} enchantée{{/if}}


{{#if data.magique}} - Elle permet de guérir {{data.puissance}} Points de Guérison. + Le Jet de Résistance est {{#if rolled.isSuccess}}réussi{{else}}échoué{{/if}}. + {{> "systems/foundryvtt-reve-de-dragon/templates/chat-infojet.html"}} + {{#if rolled.isEchec}} +
La potion fait effet! + {{alias}} a perdu 1 point de rêve et s'endort pour {{guerisonMinutes}} minutes. A son réveil, les blessures suivantes seront guéries : + + {{else}} +
La potion ne fait pas effet ! Lors de votre prochain jet de récupération à Chateau Dormant, vous bénéficierez d'un bonus de {{data.herbebonus}} (appliqué automatiquement). + {{/if}} {{else}} - Lors de votre prochain jet de récupération à Chateau Dormant, vous bénéficierez d'un bonus de {{data.herbebonus}} (appliqué automatiquement). -
La potion a également été supprimée de l'équipement. + Lors de votre prochain jet de récupération à Chateau Dormant, vous bénéficierez d'un bonus de {{data.herbebonus}} (appliqué automatiquement). {{/if}} +
La potion a été supprimée de l'équipement.
diff --git a/templates/chat-fabriquer-potion-base.html b/templates/chat-fabriquer-potion-base.html index f26d5212..e298d0b7 100644 --- a/templates/chat-fabriquer-potion-base.html +++ b/templates/chat-fabriquer-potion-base.html @@ -1,6 +1,6 @@ -fabrication +fabrication

- {{alias}} a fabriqué une potion de {{categorie}} de {{herbe}}, avec {{nbBrinsPotion}} brins. + {{alias}} a fabriqué une potion de {{herbe.data.categorie}} de {{herbe.name}}, avec {{herbe.nbBrins}} brins.