From ca1ea5a8546b81699540b4694fa2caab81c89871 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 3 Feb 2023 02:19:55 +0100 Subject: [PATCH 1/3] =?UTF-8?q?La=20r=C3=A9cup=C3=A9ration=20est=20bloqu?= =?UTF-8?q?=C3=A9e=20par=20les=20maladies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pas de récupération de vie ou de blessures possibles sous l'effet d'un poison ou d'une maladie --- module/actor.js | 62 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/module/actor.js b/module/actor.js index 6c8be21a..f6cade15 100644 --- a/module/actor.js +++ b/module/actor.js @@ -371,12 +371,7 @@ export class RdDActor extends RdDBaseActor { }; for (let i = 0; i < nGrisReve; i++) { await this.dormir(6, { grisReve: true }); - const blessures = duplicate(this.system.blessures); - await this._recupererBlessures(message, "legere", blessures.legeres.liste.filter(b => b.active), []); - await this._recupererBlessures(message, "grave", blessures.graves.liste.filter(b => b.active), blessures.legeres.liste); - await this._recupererBlessures(message, "critique", blessures.critiques.liste.filter(b => b.active), blessures.graves.liste); - await this.update({ "system.blessures": blessures }); - await this._recupererVie(message); + await this._recuperationSante(message); const moralActuel = Misc.toInt(this.system.compteurs.moral.value); if (moralActuel != 0) { @@ -390,6 +385,43 @@ export class RdDActor extends RdDBaseActor { this.sheet.render(true); } + async _recuperationSante(message) { + const maladiesPoisons = this._maladiePoisons(message); + this._messageRecuperationMaladiePoisons(maladiesPoisons, message); + const isMaladeEmpoisonne = maladiesPoisons.length > 0; + const blessures = duplicate(this.system.blessures); + await this._recupererBlessures(message, "legere", blessures.legeres.liste.filter(b => b.active), [], isMaladeEmpoisonne); + await this._recupererBlessures(message, "grave", blessures.graves.liste.filter(b => b.active), blessures.legeres.liste, isMaladeEmpoisonne); + await this._recupererBlessures(message, "critique", blessures.critiques.liste.filter(b => b.active), blessures.graves.liste, isMaladeEmpoisonne); + await this.update({ "system.blessures": blessures }); + await this._recupererVie(message, isMaladeEmpoisonne); + } + + _maladiePoisons(message) { + const actifs = this.items.filter(item => item.type == 'maladie' || (item.type == 'poison' && item.system.active)); + return actifs; + } + + _messageRecuperationMaladiePoisons(actifs, message) { + if (actifs.length > 0) { + const identifies = actifs.filter(it => it.system.identifie); + const nonIdentifies = actifs.filter(it => !it.system.identifie); + message.content += 'Vous souffrez'; + switch (nonIdentifies.length) { + case 0: break; + case 1: message.content += ` d'un mal inconnu`; break; + default: message.content += ` de ${nonIdentifies.length} maux inconnus`; break; + } + if (identifies.length > 0) { + if (nonIdentifies > 0) { + message.content += ' et'; + } else { + message.content += ' de ' + identifies.map(it => it.name).reduce(Misc.joining(', ')); + } + } + } + } + /* -------------------------------------------- */ async dormirChateauDormant() { let message = { @@ -398,11 +430,7 @@ export class RdDActor extends RdDBaseActor { }; const blessures = duplicate(this.system.blessures) - await this._recupererBlessures(message, "legere", blessures.legeres.liste.filter(b => b.active), []); - await this._recupererBlessures(message, "grave", blessures.graves.liste.filter(b => b.active), blessures.legeres.liste); - await this._recupererBlessures(message, "critique", blessures.critiques.liste.filter(b => b.active), blessures.graves.liste); - await this.update({ "system.blessures": blessures }); - await this._recupererVie(message); + await this._recuperationSante(message) await this._jetDeMoralChateauDormant(message); await this._recupereChance(); await this.transformerStress(); @@ -433,7 +461,7 @@ export class RdDActor extends RdDBaseActor { } /* -------------------------------------------- */ - async _recupererBlessures(message, type, liste, moindres) { + async _recupererBlessures(message, type, liste, moindres, isMaladeEmpoisonne) { if (!this.bonusRecuperationPotion) this.bonusRecuperationPotion = 0; let count = 0; const definitions = RdDUtility.getDefinitionsBlessures(); @@ -442,7 +470,7 @@ export class RdDActor extends RdDBaseActor { if (blessure.jours >= definition.facteur) { let rolled = await this._jetRecuperationConstitution(Misc.toInt(blessure.soins_complets) + this.bonusRecuperationPotion, message); blessure.soins_complets = 0; - if (rolled.isSuccess && this._retrograderBlessure(type, blessure, moindres)) { + if (!isMaladeEmpoisonne && rolled.isSuccess && this._retrograderBlessure(type, blessure, moindres)) { message.content += ` -- une blessure ${type} cicatrise`; count++; } @@ -481,7 +509,7 @@ export class RdDActor extends RdDBaseActor { } /* -------------------------------------------- */ - async _recupererVie(message) { + async _recupererVie(message, isMaladeEmpoisonne) { const tData = this.system let blessures = [].concat(tData.blessures.legeres.liste).concat(tData.blessures.graves.liste).concat(tData.blessures.critiques.liste); let nbBlessures = blessures.filter(b => b.active); @@ -492,7 +520,7 @@ export class RdDActor extends RdDBaseActor { bonusSoins = Math.max(bonusSoins, Misc.toInt(b.soins_complets)); } let rolled = await this._jetRecuperationConstitution(bonusSoins, message) - if (rolled.isSuccess) { + if (!isMaladeEmpoisonne && rolled.isSuccess) { const gain = Math.min(rolled.isPart ? 2 : 1, vieManquante); message.content += " -- récupération de vie: " + gain; await this.santeIncDec("vie", gain); @@ -1727,7 +1755,7 @@ export class RdDActor extends RdDBaseActor { await item.diminuerQuantite(doses, options); } - + /* -------------------------------------------- */ async boire(item, doses, options = { diminuerQuantite: true }) { const desaltere = item.system.desaltere; @@ -1741,7 +1769,7 @@ export class RdDActor extends RdDBaseActor { } await item.diminuerQuantite(doses, options); } - + static $calculNewSust(value, sust, doses) { return Misc.keepDecimals(Number(value) + Number(sust) * Number(doses), 1); } From 7a0132cf8de359ea28618ca1389793f65ed43ff7 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 3 Feb 2023 02:21:41 +0100 Subject: [PATCH 2/3] La griffe morbide donne un poison MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajouter l'effet "poison: griffe morbide de thanatos" à la victime pour agir "comme" un poison (sauf qu'un jet de vie jamais positif remplace l'habituel jet de constitution). --- packs/maladies-et-poisons.db | 1 + packs/sorts-thanatos.db | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packs/maladies-et-poisons.db b/packs/maladies-et-poisons.db index d372243e..20514799 100644 --- a/packs/maladies-et-poisons.db +++ b/packs/maladies-et-poisons.db @@ -20,6 +20,7 @@ {"name":"Genèfle","type":"maladie","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.jl0MvAcVRo63LWg3"}},"img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/champifruit.webp","effects":[],"_id":"jl0MvAcVRo63LWg3","system":{"description":"

Intoxication suite à l'ingestion d'un fruit vénéneux.

","descriptionmj":"","temporel":{"debut":{"indexDate":0,"indexMinute":0},"fin":{"indexDate":0,"indexMinute":0}},"identifie":false,"malignite":1,"periodicite":"10 minutes","incubation":"","periode":{"unite":"minute","nombre":10},"remedesconnus":false,"remedes":"-3/ Teinture d’Érozonne +16, Topazoïne +12","dommages":"1 pt de Vie"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.4.9","coreVersion":"10.291","createdTime":1671050299820,"modifiedTime":1673135772493,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"name":"Venin de vipère jaune","type":"maladie","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.lUeNPc0ECKqHglbG"}},"img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp","effects":[],"_id":"lUeNPc0ECKqHglbG","system":{"description":"

Venin de la vipère jaune. Il provoque des spasmes musculaires.

","descriptionmj":"","temporel":{"debut":{"indexDate":0,"indexMinute":0},"fin":{"indexDate":0,"indexMinute":0}},"identifie":false,"malignite":2,"periodicite":"6 rounds","incubation":"","periode":{"unite":"round","nombre":6},"remedesconnus":false,"remedes":"-3\\ Liqueur de Bagdol +14, Topazoïne +10","dommages":"1 pt de Vie"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.4.9","coreVersion":"10.291","createdTime":1671050299820,"modifiedTime":1673135772494,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"name":"Fièvre brune","type":"maladie","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.nyruCPiWDd8Scv44"}},"img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/maladie.webp","effects":[],"_id":"nyruCPiWDd8Scv44","system":{"description":"

La fièvre brune est une fièvre mortelle véhiculée par les moustiques de certains marais. Outre un affaiblissement général, elle provoque la cécité.

\n

Ses symptômes progressifs consistent en hallucinations de taches brunes, puis en saignement des yeux, jusqu’à la cécité complète qui précède la mort.

\n

La première période indiquée est celle de l’incubation, la seconde est la périodicité normale. Tant que le malade n’a subi aucun dommage, utiliser la période d’incubation (1 heure) ; puis dès qu’il a perdu un premier point de vie, utiliser la périodicité normale (6 heures).

\n

Les points de VUE perdus ne peuvent être regagnés que quand la maladie est entièrement guérie. À chaque point de vie regagné, jouer un jet de CONSTITUTION ajusté négativement par les points de vie toujours manquants. Puis selon le résultat:

\n\n

Si tous les points de vie ont été regagnés et qu’il manque toujours un ou plusieurs points de VUE, jouer un jet de CONSTITUTION à zéro toutes les 12 heures, et appliquer les mêmes résultats que ci-dessus.

\n

Une potion d’herbes de soin enchantée peut faire regagner tous les points de vie une fois la maladie guérie, mais ne fait pas regagner les points de VUE perdus. Si le malade est devenu entièrement aveugle au cours de sa maladie, c’est-à-dire si sa VUE est tombée à zéro, il perd définitivement un point de VUE. Quand il regagnera ses points de VUE, il les regagnera tous moins un.

\n

Bains de solimonce

\n

Une décoction de feuilles de solimonce (voir Herbes, p336) utilisée en bains d’yeux donne un bonus de +4 au jet de CONSTITUTION pour le regain des points de VUE.

\n

La décoction se prépare comme une décoction d’herbes de soin. Pour baigner les deux yeux, il en faut 10 brins. Le bain doit durer 60 minutes (pour les deux yeux), puis les yeux doivent être tenus à l’abri de la lumière pendant un minimum de 3 heures. Le mieux est de les fermer et de dormir. Un bain d’yeux n’est valable que pour un seul jet de CONSTITUTION.

\n

Dans tous les cas, la fréquence des jets est toutes les 12 heures. La décoction de solimonce n’étant jamais bue, un enchantement ne lui confère rien de plus. La solimonce ne guérit pas la fièvre brune et ne peut avoir d’effet que quand la maladie est entièrement guérie.

","descriptionmj":"","temporel":{"debut":{"indexDate":0,"indexMinute":0},"fin":{"indexDate":0,"indexMinute":0}},"identifie":false,"malignite":6,"periodicite":"1 heure \\ 6 heures","incubation":"1 heure","periode":{"unite":"heure","nombre":6},"remedesconnus":false,"remedes":"-4 \\ Élixir des Gnomes +14, Bitume de Camphre +10","dommages":"1 pt de Vie et 1 pt de Vue"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.4.9","coreVersion":"10.291","createdTime":1671050299820,"modifiedTime":1673135772493,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} +{"name":"Griffe morbide de Thanatos","type":"poison","img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/venin.webp","system":{"description":"

Ce \"poison\" est causé par une @UUID[Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.qaCjZ5V874ZImf9l]{Griffe morbide de Thanatos}.

Il n'y a pas de jet de constitution mais un jet de vie. Cet effet de \"poison\" permet de bloquer la récupération, et de rappeler de faire le jet de vie journalier.

Tous les jours, à l'extrême fin du Château Dormant, la victime de la griffe morbide doit tenter un jet de Vie et en appliquer les résultats suivants : 20 = perte de 2 points de vie ; échec = perte de 1 point de vie ; réussite = pas de perte pour aujoud'hui ; 01 = prochain jet de Vie joué le surlendemain au lieu du lendemain.

","descriptionmj":"","temporel":{"debut":{"indexDate":-1,"indexMinute":0},"fin":{"indexDate":-1,"indexMinute":0}},"identifie":false,"malignite":0,"incubation":"0","periode":{"unite":"jour","nombre":1},"remedesconnus":false,"remedes":"Aucun remède connu","dommages":"0","active":true},"effects":[],"ownership":{"default":0,"Hp9ImM4o9YRTSdfu":3},"flags":{"core":{"sourceId":"Item.OODFRuxbeK0MQta1"}},"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.9","coreVersion":"10.291","createdTime":1675386482054,"modifiedTime":1675387015734,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"},"folder":null,"sort":0,"_id":"pUN57Ma4SJv1kvor"} {"name":"Bousille","type":"maladie","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.qE4IEazgBeRs4uE0"}},"img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/champifruit.webp","effects":[],"_id":"qE4IEazgBeRs4uE0","system":{"description":"

Intoxication suite à l'ingestion d'un champignon vénéneux.

","descriptionmj":"","temporel":{"debut":{"indexDate":0,"indexMinute":0},"fin":{"indexDate":0,"indexMinute":0}},"identifie":false,"malignite":5,"periodicite":"6 rounds","incubation":"","periode":{"unite":"round","nombre":6},"remedesconnus":false,"remedes":"-4/ Teinture d’Érozonne +10, Topazoïne +6","dommages":"3 pts de Vie"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.4.9","coreVersion":"10.291","createdTime":1671050299820,"modifiedTime":1673135772493,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"name":"Hécatombe","type":"maladie","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.sSgu1FYK1s1vZinT"}},"img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/champifruit.webp","effects":[],"_id":"sSgu1FYK1s1vZinT","system":{"description":"

Intoxication suite à l'ingestion d'un fruit vénéneux.

","descriptionmj":"","temporel":{"debut":{"indexDate":0,"indexMinute":0},"fin":{"indexDate":0,"indexMinute":0}},"identifie":false,"malignite":4,"periodicite":"1 minute","incubation":"","periode":{"unite":"minute","nombre":1},"remedesconnus":false,"remedes":"-5/ Bitume de Camphre +12, Mirobolant +6","dommages":"2 pts de Vie"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.4.9","coreVersion":"10.291","createdTime":1671050299821,"modifiedTime":1673135772493,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"name":"Amanite thanataire","type":"maladie","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.sriGtgt3FQkc642z"}},"img":"systems/foundryvtt-reve-de-dragon/icons/maladies_venins/champifruit.webp","effects":[],"_id":"sriGtgt3FQkc642z","system":{"description":"

Intoxication suite à l'ingestion d'un champignon vénéneux.

","descriptionmj":"","temporel":{"debut":{"indexDate":0,"indexMinute":0},"fin":{"indexDate":0,"indexMinute":0}},"identifie":false,"malignite":7,"periodicite":"3 rounds","incubation":"","periode":{"unite":"round","nombre":3},"remedesconnus":false,"remedes":"-3/ Tournegraisse +12, Perle de Bjwal +10","dommages":"4 pts de Vie"},"ownership":{"default":0,"rYShh2P1DNavdoBD":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.4.9","coreVersion":"10.291","createdTime":1671050299821,"modifiedTime":1673135772492,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} diff --git a/packs/sorts-thanatos.db b/packs/sorts-thanatos.db index 4148253f..c8ef8b2f 100644 --- a/packs/sorts-thanatos.db +++ b/packs/sorts-thanatos.db @@ -16,7 +16,7 @@ {"_id":"cM9eo2VuJSCkIZvd","name":"Cécité","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.cM9eo2VuJSCkIZvd"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Quand la victime est entièrement possédée de corps, le haut-rêvant de Thanatos peut commencer l'envoûtement de Cécité. Chaque ensemble de 2 points de rêve dépensés (2r), fait perdre 1 point de caractéristique VUE à la victime. A zéro point de VUE, elle est aveugle. La cécité semble inexplicable, et aucune médecine ne peut la guérir. Annuler la possession brise en même temps l'envoûtement de Cécité, et la victime recouvre instantanément toute sa VUE.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"Illimitée","JR":"Aucun","cible":"Relique","difficulte":"-8","portée":"","caseTMR":"cite","caseTMRspeciale":"","ptreve":"2+","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843441,"modifiedTime":1667260048926,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"dK54iZkb7ypIuKwn","name":"Peur thanataire","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.dK54iZkb7ypIuKwn"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Le sort de Peur Thanataire doit être ciblé sur un objet, lequel, et jusqu'à la fin de l'heure de naissance du haut-rêvant, distillera ensuite une peur intense. Toute personne apercevant l'objet en question et manquant un jet de résistance standard r-8, sera contrainte de s'en détourner, ne pouvant supporter de le regarder ni de s'en approcher ou le regarder le(s) round(s) suivant(s), il faudra réussir unjet de VOLONTÉ ajusté négativement aux points de rêve dépensés. Même chose pour le toucher, le prendre, le frapper. Ce jet de VOLONTÉ doit être renouvelé de round en round jusqu'à ce qui réussisse.

\n

Le haut-rêvant de Thanatos est lui-même immunisé contre les effets de sa peur thanataire. Par ailleurs, comme c'est la seule vue de l'objet qui déclenche la peur, il n'y a aucun effet tant que l'objet est dissimulé, dans une poche par exemple.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"HN","JR":"r-8","cible":"Un objet","difficulte":"-9","portée":"","caseTMR":"lac","caseTMRspeciale":"","ptreve":"1+","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843442,"modifiedTime":1667260048928,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"gZHrkEnR88mEv67I","name":"Griffe de Thanatos *","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.gZHrkEnR88mEv67I"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Placée en guise d'écaille de pouvoir sur un objet enchanté, la griffe de Thanatos n'est qu'un piège. Son fonctionnement intervient au moment de la maîtrise. Cette dernière est automatique, comme avec les écailles de Narcos, mais au lieu de coûter des points de rêve, elle coûte un nombre de points de vie égal au nombre de griffes, chaque point de vie perdu s'accompagnant d'une perte d'1d6 points d'endurance. Il n'y a pas de jet de résistance. La maîtrise (et la perte de points de vie) a lieu au moment où l'objet contenant la griffe est utilisé selon sa fonction : arme frappant, bague au doigt, bracelet au poignet, etc. Si l'objet n'a pas de fonction évidente, statuette, bibelot, ou s'il n'est qu'une gemme seule, la maîtrise a lieu dès que l'objet est pris dasn la main  nue.

\n

Un objet peut n'avoir qu'une gemme contenant une ou plusieurs griffes de Thanatos, ce n'est alors qu'un piège en soi ; il peut avoir avoir plusieurs gemmes, grâce à Individualité, certaines possédant des pouvoirs réels (écailles de Narcos), et l'une d'entre elles ne possédant que des griffes de Thanatos. La maîtrise de la grifef (perte de points de vie) accompagne alors la maîtrise de chacun des vrais pouvoirs. Le créateur de l'objet, le maîtrisant tacitement, n'a pas à subir de perte de points de vie, mais si l'objet est maîtrisé par quelqu'un d'autre et lui revient, il en subit les conséquences. Les points de vie perdus sont regagnés selon la règle normale.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"Permanente","JR":"Aucun","cible":"","difficulte":"-8","portée":"","caseTMR":"necropole","caseTMRspeciale":"","ptreve":"8","xp":0,"bonuscase":"","isrituel":true,"coutseuil":1,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843442,"modifiedTime":1667260048926,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} -{"_id":"qaCjZ5V874ZImf9l","name":"Griffe morbide de Thanatos *","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.qaCjZ5V874ZImf9l"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Le principe de fonctionnement de la griffe morbide de Thanatos est analogue à celui de la simple griffe. C'en est une variante plus mortelle. La maîtrise ayant lieu, la victime perd autant de points de vie qu'il y a de griffes morbides, ainsi que 1d6 points d'endurance par point de vie perdu, puis joue une JR standard r-8. JR réussi, l'effet s'arrête là ; JR échoué, le mal s'est implanté en elle. Tous les jours, à l'extrême fin du Château Dormant, la victime de la griffe morbide doit tenter un jet de Vie et en appliquer les résultats suivants : 20 = perte de 2 points de vie ; échec = perte de 1 point de vie ; réussite = pas de perte pour aujoud'hui ; 01 = prochain jet de Vie joué le surlendemain au lieu du lendemain. Il n'y a qu'un jet de Vie par jour quel que soit le nombre de griffes morbides.

\n

Tant que dure l'effet de la griffe morbide, la victime ne peut regagner ses points de vie par aucun moyen, pas même par une potion enchantée. Le seul moyen de la tirer d'affaire est d'annuler magiquement l'effet que les griffes morbides ont sur elle. Une Lecture d'Aura précise doit avoir lieu, ciblée surla victime pour déterminer à quel case de marais spécifique est lié son mal. Puis celui-ci peut-être annulé par un rituel d'Annulation de Magie R-11 r11, accompli une seule fois quel que soit le nombre de griffes morbides. Noter que seul l'effet sur la victime est annulé, pas l'existence des griffes morbides sur l'objet. Annuler l'effet sur la victime ne coûte pas de point de seuil.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"Permanente","JR":"Partiel","cible":"","difficulte":"-11","portée":"","caseTMR":"marais","caseTMRspeciale":"","ptreve":"11","xp":0,"bonuscase":"","isrituel":true,"coutseuil":1,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843442,"modifiedTime":1667260048927,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} +{"_id":"qaCjZ5V874ZImf9l","name":"Griffe morbide de Thanatos *","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.qaCjZ5V874ZImf9l"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Le principe de fonctionnement de la griffe morbide de Thanatos est analogue à celui de la simple griffe. C'en est une variante plus mortelle. La maîtrise ayant lieu, la victime perd autant de points de vie qu'il y a de griffes morbides, ainsi que 1d6 points d'endurance par point de vie perdu, puis joue une JR standard r-8. JR réussi, l'effet s'arrête là ; JR échoué, le mal s'est implanté en elle. Tous les jours, à l'extrême fin du Château Dormant, la victime de la griffe morbide doit tenter un jet de Vie et en appliquer les résultats suivants : 20 = perte de 2 points de vie ; échec = perte de 1 point de vie ; réussite = pas de perte pour aujourd'hui ; 01 = prochain jet de Vie joué le surlendemain au lieu du lendemain. Il n'y a qu'un jet de Vie par jour quel que soit le nombre de griffes morbides.

Tant que dure l'effet de la griffe morbide, la victime ne peut regagner ses points de vie par aucun moyen, pas même par une potion enchantée. Le seul moyen de la tirer d'affaire est d'annuler magiquement l'effet que les griffes morbides ont sur elle. Une Lecture d'Aura précise doit avoir lieu, ciblée surla victime pour déterminer à quel case de marais spécifique est lié son mal. Puis celui-ci peut-être annulé par un rituel d'Annulation de Magie R-11 r11, accompli une seule fois quel que soit le nombre de griffes morbides. Noter que seul l'effet sur la victime est annulé, pas l'existence des griffes morbides sur l'objet. Annuler l'effet sur la victime ne coûte pas de point de seuil.

","descriptionmj":"

Ajouter à la victime un effet de @UUID[Compendium.foundryvtt-reve-de-dragon.maladies-et-poisons.pUN57Ma4SJv1kvor]{Poison: Griffe morbide de Thanatos} pour bloquer la récupération naturelle

","draconic":"Voie de Thanatos","duree":"Permanente","JR":"Partiel","cible":"","difficulte":"-11","portée":"","caseTMR":"marais","caseTMRspeciale":"","ptreve":"11","xp":0,"bonuscase":"","isrituel":true,"coutseuil":1,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.6.9","coreVersion":"10.291","createdTime":1667259843442,"modifiedTime":1675386797163,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"tFNWrWlOzCmYPYdG","name":"Possession de Corps","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.tFNWrWlOzCmYPYdG"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Pour posséder de corps une victime, le haut-rêvant de Thanatos doit prendre son entière contitution sous son contrôle. Le ciblage du rituel doit s'effectuer en touchant la relique. Pour chaque ensemble de 2 points de rêve dépensés (2r), le haut-rêvant contrôle 1 point de CONSTITUTION de sa victime. Dès qu'il la contrôle entièrement, elle est possédée de corps. Pour posséder une victime ayant une CONSTITUTION de 14, il faut ainsi dépenser 28 points de rêve. Le haut-rêvant peut s'y prendre en plusieurs fois, mais la victime a droit à un JR à chaque fois, et il suffit qu'un seul d'entre eux réussisse pour annuler toute la possessions précédemment accomplie ; simultanément, le haut-rêvant de Thanataos doit lui-même réussir un JR r0 (points de rêve à zéro) ou être frappé en retour par un souffle de Dragon. 

\n

Note. Le haut-râvant ne fait que contrôler la CONSTITUTION de sa victime, celle-ci n'en perd aucun point. Tant qu'aucun envoûtement n'est à l'oeuvre, il n'y a aucun effet physique, et la victime ne se rend même compte de rien.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"Illimitée","JR":"Avec HN r-9, sans HN r-8","cible":"Relique","difficulte":"-9","portée":"","caseTMR":"marais","caseTMRspeciale":"","ptreve":"2+","xp":0,"bonuscase":"","isrituel":true,"coutseuil":0,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843442,"modifiedTime":1667260048928,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"wGXeubRhLPScDkNF","name":"Possession d'Esprit","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.wGXeubRhLPScDkNF"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Pour posséder d'esprit une victime, le haut-rêvant de Thanatos doit prendre son entière volonté sous son contrôle. Le ciblage du rituel doit s'effectuer en touchant la relique. Pour chaque ensemble de 2 points de rêve dépensés (2r), le haut-rêvant contrôle 1 point de VOLONTÉ de sa victime. Dès qu'il la contrôle entièrement, elle est possédée d'esprit. Pour posséder une victime ayant une VOLONTÉ de 14, il faut ainsi dépenser 28 points de rêve. Le haut-rêvant peut s'y prendre en plusieurs fois, mais la victime a droit à un JR à chaque fois, et il suffit qu'un seul d'entre eux réussisse pour annuler toute la possessions précédemment accomplie ; simultanément, le haut-rêvant de Thanataos doit lui-même réussir un JR r0 (points de rêve à zéro) ou être frappé en retour par un souffle de Dragon. 

\n

Note. Le haut-rêvant ne fait que contrôler la VOLONTÉ de sa victime, celle-ci n'en perd aucun point. Tant qu'aucun envoûtement n'est à l'oeuvre, il n'y a aucun effet mental, et la victime ne se rend même compte de rien.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"Illimitée","JR":"Avec HN r-9, sans HN r-8","cible":"Relique","difficulte":"-9","portée":"","caseTMR":"lac","caseTMRspeciale":"","ptreve":"2+","xp":0,"bonuscase":"","isrituel":true,"coutseuil":0,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843442,"modifiedTime":1667260048928,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} {"_id":"wuqqLld48IagimXp","name":"Poing de Thanatos","type":"sort","flags":{"core":{"sourceId":"Compendium.foundryvtt-reve-de-dragon.sorts-thanatos.wuqqLld48IagimXp"}},"img":"systems/foundryvtt-reve-de-dragon/icons/competence_thanatos.webp","effects":[],"system":{"description":"

Le Poing de Thanatos peut être dirigé contre toute créature, humanoïde ou animal. Son effet, instantané, est celui d'un violent coup de poing en pleine tête, ne causant toutefois ses dommages que sur la table des Coups non mortels. Le +dom de l'agression est égal au nombre de points de rêve dépensés. Sauf pour les animaux qui peuvent faire jouer entièrement leur protection naturelle ainsi que pour les humanoïdes de grande TAILLE qui en possèdent, la protection applicable peut être au maximum de 2 points. Si la victime réussit son JR standard r-8, le haut-rêvant de Thanatos doit jouer un JR r0 (points de rêve à zéro) ou subir l'effet de son sort en retour.

","descriptionmj":"","draconic":"Voie de Thanatos","duree":"Instantanée","JR":"r-8","cible":"Toutes créatures","difficulte":"-6","portée":"","caseTMR":"plaines","caseTMRspeciale":"","ptreve":"1+","xp":0,"bonuscase":"","isrituel":false,"coutseuil":0,"portee":""},"ownership":{"default":0,"6ibmdmaeRSMTjU4c":3},"folder":null,"sort":0,"_stats":{"systemId":"foundryvtt-reve-de-dragon","systemVersion":"10.0.32","coreVersion":"10.288","createdTime":1667259843442,"modifiedTime":1667260048928,"lastModifiedBy":"Hp9ImM4o9YRTSdfu"}} From dc3ceb173263329a73d1c5eb06ef274e94e583fd Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Fri, 3 Feb 2023 02:23:28 +0100 Subject: [PATCH 3/3] =?UTF-8?q?D=C3=A9placements=20des=20effets=20de=20ren?= =?UTF-8?q?contre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit classe placée dans le dossier "tmr" --- module/item/rencontre.js | 2 +- module/{ => tmr}/effets-rencontres.js | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) rename module/{ => tmr}/effets-rencontres.js (97%) diff --git a/module/item/rencontre.js b/module/item/rencontre.js index bcd0ac7b..0ef89063 100644 --- a/module/item/rencontre.js +++ b/module/item/rencontre.js @@ -1,4 +1,4 @@ -import { EffetsRencontre } from "../effets-rencontres.js"; +import { EffetsRencontre } from "../tmr/effets-rencontres.js"; import { RdDItem } from "../item.js"; const tableEffets = [ diff --git a/module/effets-rencontres.js b/module/tmr/effets-rencontres.js similarity index 97% rename from module/effets-rencontres.js rename to module/tmr/effets-rencontres.js index 37599d15..e8dee148 100644 --- a/module/effets-rencontres.js +++ b/module/tmr/effets-rencontres.js @@ -1,7 +1,7 @@ -import { ChatUtility } from "./chat-utility.js"; -import { Poetique } from "./poetique.js"; -import { RdDDice } from "./rdd-dice.js"; -import { TMRUtility } from "./tmr-utility.js"; +import { ChatUtility } from "../chat-utility.js"; +import { Poetique } from "../poetique.js"; +import { RdDDice } from "../rdd-dice.js"; +import { TMRUtility } from "../tmr-utility.js"; export class EffetsRencontre { @@ -87,7 +87,7 @@ export class EffetsRencontre { await EffetsRencontre.$reinsertion(dialog, context.actor, it => true); } } - + static deplacement_aleatoire = async (dialog, context) => { const oldCoord = context.actor.system.reve.tmrpos.coord; const newTmr = await TMRUtility.deplaceTMRAleatoire(context.actor, oldCoord); @@ -113,13 +113,13 @@ export class EffetsRencontre { if (context.rolled.isETotal) { context.queues.push(await context.actor.ajouterQueue()); } - + ChatMessage.create({ whisper: ChatUtility.getWhisperRecipientsAndGMs(this.name), content: await renderTemplate(`systems/foundryvtt-reve-de-dragon/templates/chat-resultat-reve-de-dragon.html`, context) }); } - + static experience_particuliere = async (dialog, context) => { await context.actor.appliquerAjoutExperience(context) }